From 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 Mon Sep 17 00:00:00 2001 From: git perforce import user Date: Tue, 25 Oct 2016 12:29:14 -0600 Subject: Initial commit: PhysX 3.4.0 Update @ 21294896 APEX 1.4.0 Update @ 21275617 [CL 21300167] --- KaplaDemo/samples/sampleViewer3/GLFontRenderer.h | 73 ++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 KaplaDemo/samples/sampleViewer3/GLFontRenderer.h (limited to 'KaplaDemo/samples/sampleViewer3/GLFontRenderer.h') diff --git a/KaplaDemo/samples/sampleViewer3/GLFontRenderer.h b/KaplaDemo/samples/sampleViewer3/GLFontRenderer.h new file mode 100644 index 00000000..321ddc41 --- /dev/null +++ b/KaplaDemo/samples/sampleViewer3/GLFontRenderer.h @@ -0,0 +1,73 @@ +/*----------------------------------------------------------------------------*\ +| +| AGEIA PhysX Technology +| +| www.ageia.com +| +\*----------------------------------------------------------------------------*/ + +#ifndef __GL_FONT_RENDERER__ +#define __GL_FONT_RENDERER__ + +#include "foundation/PxVec3.h" +#include "PsArray.h" + +using namespace physx; + +enum FontColor +{ + FNT_COLOR_BLUE = 0xffff0000, + FNT_COLOR_GREEN = 0xff00ff00, + FNT_COLOR_RED = 0xff0000ff, + + FNT_COLOR_DARK_BLUE = 0xff800000, + FNT_COLOR_DARK_GREEN = 0xff008000, + FNT_COLOR_DARK_RED = 0xff000080, + + FNT_COLOR_WHITE = 0xffffffff +}; + +struct GLFontMeasureResult +{ + float width; + float height; + GLFontMeasureResult( float w, float h ) + : width( w ) + , height( h ) + { + } +}; + +class GLFontRenderer{ + +private: + + bool m_isInit; + unsigned int m_textureObject; + int m_screenWidth; + int m_screenHeight; + unsigned int m_color; + shdfnd::Array mVertList; + shdfnd::Array mTextureCoordList; + template + void print( float fontSize, const char* pString, bool forceMonoSpace, int monoSpaceWidth, bool doOthoProj, TOperator inOperator ); + +public: + GLFontRenderer() : m_isInit(false), m_textureObject(0), m_screenWidth(0), m_screenHeight(0) {} + + bool init(); + void print(float x, float y, float fontSize, const char* pString, bool forceMonoSpace=false, int monoSpaceWidth=11, bool doOrthoProj=true); + GLFontMeasureResult measure( float fontSize, const char* pString, bool forceMonoSpace=false, int monoSpaceWidth=11 ); + + void print3d(const physx::PxVec3& pos, const physx::PxVec3& cameraDir, const physx::PxVec3& up, float fontSize, const char* pString, bool forceMonoSpace=false, int monoSpaceWidth=11); + void setScreenResolution(int screenWidth, int screenHeight); + void getScreenResolution( int& screenWidth, int& screenHeight ) { screenWidth = m_screenWidth; screenHeight = m_screenHeight; } + + // PT: contrary to what the comment said before the format is abgr: + // 0xffff0000 = blue + // 0xff00ff00 = green + // 0xff0000ff = red + void setColor(unsigned int abgr); +}; + +#endif // __GL_FONT_RENDERER__ -- cgit v1.2.3