1 #ifndef __FBPROFILER_H__
2 #define __FBPROFILER_H__
44 #define FBSDK_DLL K_DLLIMPORT
50 #ifdef FBSDKUseNamespace
60 #define FBProfiler_CreateTaskCycle( pClass, pR, pG, pB ) \
61 int gProfilingIndex_##pClass = -1; \
62 float gProfilingColor_##pClass[3] = { pR, pG, pB };
69 #define FBProfiling_SetupTaskCycle( pClass ) \
70 if(gProfilingIndex_##pClass == -1) \
71 gProfilingIndex_##pClass = FBProfiler::TheOne().RegisterTaskCycle(#pClass,gProfilingColor_##pClass);
78 #define FBProfiling_TaskCycleIndex( pClass ) \
79 gProfilingIndex_##pClass
132 const char* GetName();
133 const float* GetColor();
141 void GetAvgMinMaxUsage(
double& pAvg,
double& pMin,
double& pMax);
188 const float* GetColor();
190 const char* GetTypeName();
191 const char* GetComment();
194 bool IsSingleEvent();
244 int GetEventSampleCount();
266 int GetStatIndex(
const char* pName);
271 const char* GetStatName(
int pIndex);
276 const char* GetStatComment(
int pIndex);
282 double GetStatStart(
int pIndex);
288 double GetStatStop(
int pIndex);
294 double GetStatDuration(
int pIndex);
299 double GetProfilingCost();
306 static int RegisterTaskCycle(
const char* pUniqueName,
float* pColor =
NULL);
312 static bool IsTaskCycleNameRegistered(
const char* pName);
362 #ifdef FBSDKUseNamespace
#define __FBClassDeclare(Name, Parent)
For internal use only.
class FBPropertyBaseEnum< enum FBProfilingMode > FBPropertyProfilingMode
Collect profiling for all known tasks .
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
bool IsStarted()
Test to see if profiling is started. Useful to verify if profiling is in progress.
FBPropertyBool FrameReference
Read/Write Property: Draw task cycles in relation to main thread cycle time - frame cycle (percentage...
FBProfileTaskCycle * FBGetMainThreadTaskCycle()
Get root task cycle.
class FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
Contains definitions for devices, boxes and models.
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
FBPropertyInt BufferSize
Read/Write Property: Buffer size for average and timing computation (maximum value 200)...
FBPropertyProfilingMode ProfilingMode
Read/Write Property: Profiling collection modes, including disabling all profiling.
FBProfileTaskCycle * FBGetEvaluationTaskCycle()
Get evaluation task cycle.
Collect profiling for device Input/Output and Device Evaluation.
FBProfilingMode
Available Profiling modes.
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
#define FBSDKNamespace
FBSDKNamespace define.
FBPropertyInt EvaluationDepth
Read/Write Property: Specify the depth of evaluation profiling for data collection (maximum value is ...
All profiling disabled, this include Viewer profiling.
MotionBuilder SDK base class.
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Collect profiling for all known rendering tasks.
FBProfileTaskCycle * FBGetRenderingTaskCycle()
Get rendering task cycle.
AnimationNodeNotify evaluation information.
Collect profiling for all known tasks that doesn't increase remarkably with scene size...
Collect profiling for all known evaluation tasks (default mode).
Collect profiling for SDK.
FBPropertyBool ActiveSampling
Read/Write Property: Activate the sampling for time events.
class FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool