aboutsummaryrefslogtreecommitdiff
path: root/KaplaDemo/samples/sampleViewer3/GLFontRenderer.h
diff options
context:
space:
mode:
authorgit perforce import user <a@b>2016-10-25 12:29:14 -0600
committerSheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees>2016-10-25 18:56:37 -0500
commit3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch)
treefa6485c169e50d7415a651bf838f5bcd0fd3bfbd /KaplaDemo/samples/sampleViewer3/GLFontRenderer.h
downloadphysx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz
physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip
Initial commit:
PhysX 3.4.0 Update @ 21294896 APEX 1.4.0 Update @ 21275617 [CL 21300167]
Diffstat (limited to 'KaplaDemo/samples/sampleViewer3/GLFontRenderer.h')
-rw-r--r--KaplaDemo/samples/sampleViewer3/GLFontRenderer.h73
1 files changed, 73 insertions, 0 deletions
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<PxF32> mVertList;
+ shdfnd::Array<PxF32> mTextureCoordList;
+ template<typename TOperator>
+ 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__