first commit
This commit is contained in:
70
include/engine/core/core_profiler.h
Normal file
70
include/engine/core/core_profiler.h
Normal file
@ -0,0 +1,70 @@
|
||||
/* -----------------------------------------------------------------------------
|
||||
nEngine - GSFramework
|
||||
Copyright 2001-2011 Emmanuel Julien. All Rights Reserved.
|
||||
------------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#ifndef __NPROFILER_TOOLS__
|
||||
#define __NPROFILER_TOOLS__
|
||||
|
||||
|
||||
#include "color/color.h"
|
||||
#include "nstring/nstring.h"
|
||||
|
||||
|
||||
/*!
|
||||
@short Core profiler tools.
|
||||
@author Emmanuel Julien (ejulien@nworks.fr)
|
||||
*/
|
||||
namespace GS {
|
||||
namespace Render {
|
||||
class Renderer;
|
||||
class RasterFont;
|
||||
}
|
||||
namespace Core {
|
||||
|
||||
enum NumberFormat
|
||||
{
|
||||
Count,
|
||||
MemorySize
|
||||
};
|
||||
|
||||
template <class T> const Color &GetColorCode(const T &v, const T &warning, const T &alert)
|
||||
{
|
||||
if (v > alert)
|
||||
return Color::Red;
|
||||
if (v > warning)
|
||||
return Color::Green;
|
||||
return Color::White;
|
||||
}
|
||||
|
||||
/// Format a value to string.
|
||||
template <class T> String FormatNumber(const T &v, NumberFormat format = Count)
|
||||
{
|
||||
switch (format)
|
||||
{
|
||||
case Count:
|
||||
if (v < 1000)
|
||||
return String::Format("%d", (int)v);
|
||||
else if (v < 1000000)
|
||||
return String::Format("%.01fK", (float)v / 1000);
|
||||
return String::Format("%.01fM", (float)v / 1000000);
|
||||
|
||||
case MemorySize:
|
||||
if (v < 1000)
|
||||
return String::Format("%dB", (int)v);
|
||||
else if (v < 1000000)
|
||||
return String::Format("%.01fKB", (float)v / 1000.f);
|
||||
return String::Format("%.01fMB", (float)v / 1000000.f);
|
||||
}
|
||||
return String() << v;
|
||||
}
|
||||
|
||||
/// Draw allocator profiler text.
|
||||
void DrawAllocProfilerText(Render::Renderer &, Render::RasterFont *[2], float &x, float &y, float width = 0, float height = 0);
|
||||
|
||||
} // Core
|
||||
} // GS
|
||||
|
||||
|
||||
#endif // __NPROFILER_TOOLS__
|
||||
Reference in New Issue
Block a user