diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /sp/src/public/togl/linuxwin/glmdebug.h | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'sp/src/public/togl/linuxwin/glmdebug.h')
| -rw-r--r-- | sp/src/public/togl/linuxwin/glmdebug.h | 320 |
1 files changed, 160 insertions, 160 deletions
diff --git a/sp/src/public/togl/linuxwin/glmdebug.h b/sp/src/public/togl/linuxwin/glmdebug.h index 80df86f1..8efba8b4 100644 --- a/sp/src/public/togl/linuxwin/glmdebug.h +++ b/sp/src/public/togl/linuxwin/glmdebug.h @@ -1,160 +1,160 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-#ifndef GLMDEBUG_H
-#define GLMDEBUG_H
-
-#include "tier0/platform.h"
-
-// include this anywhere you need to be able to compile-out code related specifically to GLM debugging.
-
-// we expect DEBUG to be driven by the build system so you can include this header anywhere.
-// when we come out, GLMDEBUG will be defined to a value - 0, 1, or 2
-// 0 means no GLM debugging is possible
-// 1 means it's possible and resulted from being a debug build
-// 2 means it's possible and resulted from being manually forced on for a release build
-
-#ifdef POSIX
- #ifndef GLMDEBUG
- #ifdef DEBUG
- #define GLMDEBUG 1 // normally 1 here, testing
- #else
- // #define GLMDEBUG 2 // don't check this in enabled..
- #endif
-
- #ifndef GLMDEBUG
- #define GLMDEBUG 0
- #endif
- #endif
-#else
- #ifndef GLMDEBUG
- #define GLMDEBUG 0
- #endif
-#endif
-
-
-//===============================================================================
-// debug channels
-
-enum EGLMDebugChannel
-{
- ePrintf,
- eDebugger,
- eGLProfiler
-};
-
-#if GLMDEBUG
- // make all these prototypes disappear in non GLMDEBUG
- void GLMDebugInitialize( bool forceReinit=false );
-
- bool GLMDetectOGLP( void );
- bool GLMDetectGDB( void );
- uint GLMDetectAvailableChannels( void );
-
- uint GLMDebugChannelMask( uint *newValue = NULL );
- // note that GDB and OGLP can both come and go during run - forceCheck will allow that to be detected.
- // mask returned is in form of 1<<n, n from EGLMDebugChannel
-#endif
-
-//===============================================================================
-// debug message flavors
-
-enum EGLMDebugFlavor
-{
- eAllFlavors, // 0
- eDebugDump, // 1 debug dump flavor -D-
- eTenure, // 2 code tenures > <
- eComment, // 3 one off messages ---
- eMatrixData, // 4 matrix data -M-
- eShaderData, // 5 shader data (params) -S-
- eFrameBufData, // 6 FBO data (attachments) -F-
- eDXStuff, // 7 dxabstract spew -X-
- eAllocations, // 8 tracking allocs and frees -A-
- eSlowness, // 9 slow things happening (srgb flips..) -Z-
- eDefaultFlavor, // not specified (no marker)
- eFlavorCount
-};
-uint GLMDebugFlavorMask( uint *newValue = NULL );
-
-// make all these prototypes disappear in non GLMDEBUG
-#if GLMDEBUG
- // these are unconditional outputs, they don't interrogate the string
- void GLMStringOut( const char *string );
- void GLMStringOutIndented( const char *string, int indentColumns );
-
- #ifdef TOGL_DLL_EXPORT
- // these will look at the string to guess its flavor: <, >, ---, -M-, -S-
- DLL_EXPORT void GLMPrintfVA( const char *fmt, va_list vargs );
- DLL_EXPORT void GLMPrintf( const char *fmt, ... );
- #else
- DLL_IMPORT void GLMPrintfVA( const char *fmt, va_list vargs );
- DLL_IMPORT void GLMPrintf( const char *fmt, ... );
- #endif
-
- // these take an explicit flavor with a default value
- void GLMPrintStr( const char *str, EGLMDebugFlavor flavor = eDefaultFlavor );
-
- #define GLMPRINTTEXT_NUMBEREDLINES 0x80000000
- void GLMPrintText( const char *str, EGLMDebugFlavor flavor = eDefaultFlavor, uint options=0 ); // indent each newline
-
- int GLMIncIndent( int indentDelta );
- int GLMGetIndent( void );
- void GLMSetIndent( int indent );
-
-#endif
-
-// helpful macro if you are in a position to call GLM functions directly (i.e. you live in materialsystem / shaderapidx9)
-#if GLMDEBUG
- #define GLMPRINTF(args) GLMPrintf args
- #define GLMPRINTSTR(args) GLMPrintStr args
- #define GLMPRINTTEXT(args) GLMPrintText args
-#else
- #define GLMPRINTF(args)
- #define GLMPRINTSTR(args)
- #define GLMPRINTTEXT(args)
-#endif
-
-
-//===============================================================================
-// knob twiddling
-#ifdef TOGL_DLL_EXPORT
- DLL_EXPORT float GLMKnob( char *knobname, float *setvalue ); // Pass NULL to not-set the knob value
- DLL_EXPORT float GLMKnobToggle( char *knobname );
-#else
- DLL_IMPORT float GLMKnob( char *knobname, float *setvalue ); // Pass NULL to not-set the knob value
- DLL_IMPORT float GLMKnobToggle( char *knobname );
-#endif
-
-//===============================================================================
-// other stuff
-
-#if GLMDEBUG
-void GLMTriggerDebuggerBreak();
-inline void GLMDebugger( void )
-{
- if (GLMDebugChannelMask() & (1<<eDebugger))
- {
-#ifdef OSX
- asm {int 3 };
-#else
- DebuggerBreak();
-#endif
- }
-
- if (GLMDebugChannelMask() & (1<<eGLProfiler))
- {
- GLMTriggerDebuggerBreak();
- }
-}
-#else
- #define GLMDebugger() do { } while(0)
-#endif
-
-// helpers for CGLSetOption - no op if no profiler
-void GLMProfilerClearTrace( void );
-void GLMProfilerEnableTrace( bool enable );
-
-// helpers for CGLSetParameter - no op if no profiler
-void GLMProfilerDumpState( void );
-
-void CheckGLError( int line );
-
-#endif // GLMDEBUG_H
+//========= Copyright Valve Corporation, All rights reserved. ============// +#ifndef GLMDEBUG_H +#define GLMDEBUG_H + +#include "tier0/platform.h" + +// include this anywhere you need to be able to compile-out code related specifically to GLM debugging. + +// we expect DEBUG to be driven by the build system so you can include this header anywhere. +// when we come out, GLMDEBUG will be defined to a value - 0, 1, or 2 +// 0 means no GLM debugging is possible +// 1 means it's possible and resulted from being a debug build +// 2 means it's possible and resulted from being manually forced on for a release build + +#ifdef POSIX + #ifndef GLMDEBUG + #ifdef DEBUG + #define GLMDEBUG 1 // normally 1 here, testing + #else + // #define GLMDEBUG 2 // don't check this in enabled.. + #endif + + #ifndef GLMDEBUG + #define GLMDEBUG 0 + #endif + #endif +#else + #ifndef GLMDEBUG + #define GLMDEBUG 0 + #endif +#endif + + +//=============================================================================== +// debug channels + +enum EGLMDebugChannel +{ + ePrintf, + eDebugger, + eGLProfiler +}; + +#if GLMDEBUG + // make all these prototypes disappear in non GLMDEBUG + void GLMDebugInitialize( bool forceReinit=false ); + + bool GLMDetectOGLP( void ); + bool GLMDetectGDB( void ); + uint GLMDetectAvailableChannels( void ); + + uint GLMDebugChannelMask( uint *newValue = NULL ); + // note that GDB and OGLP can both come and go during run - forceCheck will allow that to be detected. + // mask returned is in form of 1<<n, n from EGLMDebugChannel +#endif + +//=============================================================================== +// debug message flavors + +enum EGLMDebugFlavor +{ + eAllFlavors, // 0 + eDebugDump, // 1 debug dump flavor -D- + eTenure, // 2 code tenures > < + eComment, // 3 one off messages --- + eMatrixData, // 4 matrix data -M- + eShaderData, // 5 shader data (params) -S- + eFrameBufData, // 6 FBO data (attachments) -F- + eDXStuff, // 7 dxabstract spew -X- + eAllocations, // 8 tracking allocs and frees -A- + eSlowness, // 9 slow things happening (srgb flips..) -Z- + eDefaultFlavor, // not specified (no marker) + eFlavorCount +}; +uint GLMDebugFlavorMask( uint *newValue = NULL ); + +// make all these prototypes disappear in non GLMDEBUG +#if GLMDEBUG + // these are unconditional outputs, they don't interrogate the string + void GLMStringOut( const char *string ); + void GLMStringOutIndented( const char *string, int indentColumns ); + + #ifdef TOGL_DLL_EXPORT + // these will look at the string to guess its flavor: <, >, ---, -M-, -S- + DLL_EXPORT void GLMPrintfVA( const char *fmt, va_list vargs ); + DLL_EXPORT void GLMPrintf( const char *fmt, ... ); + #else + DLL_IMPORT void GLMPrintfVA( const char *fmt, va_list vargs ); + DLL_IMPORT void GLMPrintf( const char *fmt, ... ); + #endif + + // these take an explicit flavor with a default value + void GLMPrintStr( const char *str, EGLMDebugFlavor flavor = eDefaultFlavor ); + + #define GLMPRINTTEXT_NUMBEREDLINES 0x80000000 + void GLMPrintText( const char *str, EGLMDebugFlavor flavor = eDefaultFlavor, uint options=0 ); // indent each newline + + int GLMIncIndent( int indentDelta ); + int GLMGetIndent( void ); + void GLMSetIndent( int indent ); + +#endif + +// helpful macro if you are in a position to call GLM functions directly (i.e. you live in materialsystem / shaderapidx9) +#if GLMDEBUG + #define GLMPRINTF(args) GLMPrintf args + #define GLMPRINTSTR(args) GLMPrintStr args + #define GLMPRINTTEXT(args) GLMPrintText args +#else + #define GLMPRINTF(args) + #define GLMPRINTSTR(args) + #define GLMPRINTTEXT(args) +#endif + + +//=============================================================================== +// knob twiddling +#ifdef TOGL_DLL_EXPORT + DLL_EXPORT float GLMKnob( char *knobname, float *setvalue ); // Pass NULL to not-set the knob value + DLL_EXPORT float GLMKnobToggle( char *knobname ); +#else + DLL_IMPORT float GLMKnob( char *knobname, float *setvalue ); // Pass NULL to not-set the knob value + DLL_IMPORT float GLMKnobToggle( char *knobname ); +#endif + +//=============================================================================== +// other stuff + +#if GLMDEBUG +void GLMTriggerDebuggerBreak(); +inline void GLMDebugger( void ) +{ + if (GLMDebugChannelMask() & (1<<eDebugger)) + { +#ifdef OSX + asm {int 3 }; +#else + DebuggerBreak(); +#endif + } + + if (GLMDebugChannelMask() & (1<<eGLProfiler)) + { + GLMTriggerDebuggerBreak(); + } +} +#else + #define GLMDebugger() do { } while(0) +#endif + +// helpers for CGLSetOption - no op if no profiler +void GLMProfilerClearTrace( void ); +void GLMProfilerEnableTrace( bool enable ); + +// helpers for CGLSetParameter - no op if no profiler +void GLMProfilerDumpState( void ); + +void CheckGLError( int line ); + +#endif // GLMDEBUG_H |