* #0: various fixes for windows build
* remove warnings that definition of a variable hides previously defined ones
* remove warnings that function argument is not used
* remove warnings that statements are not reached
* event_trace_win: fix compilation with UNICODE
* #0 various windows fixes: react to PR comments
* localize unicode handling of process info to ProcessInfo
* fix compilation error in Properties constructor
* event_trace_win: fix bug in ProcessInfo initialization
We didn't retry setting the name when GetModuleBaseName() didn't succeed,
even though we did that before the last refactoring.
* Revert "event_trace_win: fix bug in ProcessInfo initialization"
This reverts commit c4ce6cf488be5489fa0a1a9c24e92dd39bbc42a1.
* Revert "#0 various windows fixes: react to PR comments"
This reverts commit cae31a25371e53a3645ddab82372c3772138d658.
* #0 various windows fixes: react to PR comments again
* keep number of allocations minimal
* add getProcessName() to retrieve the process name as char always (i.e. not UNICODE)
Now you can use EASY_FRAME_COUNTER (which is only frame-counter) or EASY_FRAME (which is EASY_FRAME_COUNTER + EASY_BLOCK) or EASY_FRAME_FUNCTION (which is EASY_FRAME_COUNTER + EASY_FUNCTION) to measure frame time even if profiler is disabled.
To get frame time you can use profiler::main_thread::frameTimeLocalMax to get maximum frame duration since last call or profiler::main_thread::frameTime to get last frame time.
--- NOTE: You have to put EASY_MAIN_THREAD to your main thread to be able to use profiler::main_thread functions.
If you do not want to then you can use same functions from profiler::this_thread, but you will have to call them from your main thread.
- Disables warnings for no-braced-scalar-init which shows up for ATOMIC_VAR_INIT.
- Fixes compile warnings, mostly "moving a temporary objects prevents
copy elision" (-Wpessimizing-move) and unused variables.
- Adds some necessary fields to make the sample compile after having
build the core library.
1) Added macro EASY_CONST_NAME(name) to make possible to force EasyProfiler think that given block name is const and not changed during application execution (this rely to compile-time strings saved into a run-time variable);
2) Starting from now, EasyProfiler will not store partially finished frames - first, this means that profiler enabled during frame execution will skip all blocks from this frame, and second, this means that when dumping profiled information profiler will wait until all frames finish before dumping blocks.
* (Core) Context switch events also register threads for current process;
* (Core) Writing process id into output file (old files still could be opened);