Header cleanup.

This commit is contained in:
Ben Vanik
2014-08-16 18:31:54 -07:00
parent 27bc4ba405
commit 4675161902
9 changed files with 90 additions and 138 deletions

View File

@@ -12,10 +12,11 @@
#include <memory>
#include <xenia/config.h>
#include <xenia/string.h>
#include <xenia/types.h>
#define XE_OPTION_PROFILING 1
#if XE_OPTION_PROFILING
// Pollutes the global namespace. Yuck.
#include <microprofile/microprofile.h>
@@ -28,7 +29,8 @@ namespace xe {
// Defines a profiling scope for CPU tasks.
// Use `SCOPE_profile_cpu(name)` to activate the scope.
#define DEFINE_profile_cpu(name, group_name, scope_name) \
MICROPROFILE_DEFINE(name, group_name, scope_name, xe::Profiler::GetColor(scope_name))
MICROPROFILE_DEFINE(name, group_name, scope_name, \
xe::Profiler::GetColor(scope_name))
// Declares a previously defined profile scope. Use in a translation unit.
#define DECLARE_profile_cpu(name) MICROPROFILE_DECLARE(name)
@@ -36,40 +38,43 @@ namespace xe {
// Defines a profiling scope for GPU tasks.
// Use `COUNT_profile_gpu(name)` to activate the scope.
#define DEFINE_profile_gpu(name, group_name, scope_name) \
MICROPROFILE_DEFINE_GPU(name, group_name, scope_name, xe::Profiler::GetColor(scope_name))
MICROPROFILE_DEFINE_GPU(name, group_name, scope_name, \
xe::Profiler::GetColor(scope_name))
// Declares a previously defined profile scope. Use in a translation unit.
#define DECLARE_profile_gpu(name) MICROPROFILE_DECLARE_GPU(name)
// Enters a previously defined CPU profiling scope, active for the duration
// of the containing block.
#define SCOPE_profile_cpu(name) \
MICROPROFILE_SCOPE(name)
#define SCOPE_profile_cpu(name) MICROPROFILE_SCOPE(name)
// Enters a CPU profiling scope, active for the duration of the containing
// block. No previous definition required.
#define SCOPE_profile_cpu_i(group_name, scope_name) \
MICROPROFILE_SCOPEI(group_name, scope_name, xe::Profiler::GetColor(scope_name))
MICROPROFILE_SCOPEI(group_name, scope_name, \
xe::Profiler::GetColor(scope_name))
// Enters a CPU profiling scope by function name, active for the duration of
// the containing block. No previous definition required.
#define SCOPE_profile_cpu_f(group_name) \
MICROPROFILE_SCOPEI(group_name, __FUNCTION__, xe::Profiler::GetColor(__FUNCTION__))
#define SCOPE_profile_cpu_f(group_name) \
MICROPROFILE_SCOPEI(group_name, __FUNCTION__, \
xe::Profiler::GetColor(__FUNCTION__))
// Enters a previously defined GPU profiling scope, active for the duration
// of the containing block.
#define SCOPE_profile_gpu(name) \
MICROPROFILE_SCOPEGPU(name)
#define SCOPE_profile_gpu(name) MICROPROFILE_SCOPEGPU(name)
// Enters a GPU profiling scope, active for the duration of the containing
// block. No previous definition required.
#define SCOPE_profile_gpu_i(group_name, scope_name) \
MICROPROFILE_SCOPEGPUI(group_name, scope_name, xe::Profiler::GetColor(scope_name))
MICROPROFILE_SCOPEGPUI(group_name, scope_name, \
xe::Profiler::GetColor(scope_name))
// Enters a GPU profiling scope by function name, active for the duration of
// the containing block. No previous definition required.
#define SCOPE_profile_gpu_f(group_name) \
MICROPROFILE_SCOPEGPUI(group_name, __FUNCTION__, xe::Profiler::GetColor(__FUNCTION__))
#define SCOPE_profile_gpu_f(group_name) \
MICROPROFILE_SCOPEGPUI(group_name, __FUNCTION__, \
xe::Profiler::GetColor(__FUNCTION__))
// Tracks a CPU value counter.
#define COUNT_profile_cpu(name, count) MICROPROFILE_META_CPU(name, count)
@@ -83,14 +88,30 @@ namespace xe {
#define DEFINE_profile_gpu(name, group_name, scope_name)
#define DECLARE_profile_cpu(name)
#define DECLARE_profile_gpu(name)
#define SCOPE_profile_cpu(name) do {} while (false)
#define SCOPE_profile_cpu_f(name) do {} while (false)
#define SCOPE_profile_cpu_i(group_name, scope_name) do {} while (false)
#define SCOPE_profile_gpu(name) do {} while (false)
#define SCOPE_profile_gpu_f(name) do {} while (false)
#define SCOPE_profile_gpu_i(group_name, scope_name) do {} while (false)
#define COUNT_profile_cpu(name, count) do {} while (false)
#define COUNT_profile_gpu(name, count) do {} while (false)
#define SCOPE_profile_cpu(name) \
do { \
} while (false)
#define SCOPE_profile_cpu_f(name) \
do { \
} while (false)
#define SCOPE_profile_cpu_i(group_name, scope_name) \
do { \
} while (false)
#define SCOPE_profile_gpu(name) \
do { \
} while (false)
#define SCOPE_profile_gpu_f(name) \
do { \
} while (false)
#define SCOPE_profile_gpu_i(group_name, scope_name) \
do { \
} while (false)
#define COUNT_profile_cpu(name, count) \
do { \
} while (false)
#define COUNT_profile_gpu(name, count) \
do { \
} while (false)
#define MICROPROFILE_TEXT_WIDTH 1
#define MICROPROFILE_TEXT_HEIGHT 1
@@ -98,7 +119,7 @@ namespace xe {
#endif // XE_OPTION_PROFILING
class ProfilerDisplay {
public:
public:
enum BoxType {
#if XE_OPTION_PROFILING
BOX_TYPE_BAR = MicroProfileBoxTypeBar,
@@ -116,13 +137,15 @@ public:
virtual void Begin() = 0;
virtual void End() = 0;
virtual void DrawBox(int x, int y, int x1, int y1, uint32_t color, BoxType type) = 0;
virtual void DrawBox(int x, int y, int x1, int y1, uint32_t color,
BoxType type) = 0;
virtual void DrawLine2D(uint32_t count, float* vertices, uint32_t color) = 0;
virtual void DrawText(int x, int y, uint32_t color, const char* text, size_t text_length) = 0;
virtual void DrawText(int x, int y, uint32_t color, const char* text,
size_t text_length) = 0;
};
class Profiler {
public:
public:
#if XE_OPTION_PROFILING
static bool is_enabled() { return true; }
#else
@@ -161,7 +184,7 @@ public:
// TODO(benvanik): display mode/pause/etc?
private:
private:
static std::unique_ptr<ProfilerDisplay> display_;
};