Files
bullet3/Extras/CDTestFramework/AntTweakBar/src/TwOpenGL.h
erwin.coumans 4442a826ed add commandline arguments to serialize demo for xml export and Bullet import file name
update AntTweakBar version in CDTestFramework
add btCompoundShape support in BulletXmlWorldImporter (this importer is still premature/work-in-progress)
2012-09-26 19:47:18 +00:00

100 lines
4.4 KiB
C++

// ---------------------------------------------------------------------------
//
// @file TwOpenGL.h
// @brief OpenGL graph functions
// @author Philippe Decaudin - http://www.antisphere.com
// @license This file is part of the AntTweakBar library.
// For conditions of distribution and use, see License.txt
//
// notes: Private header
// TAB=4
//
// ---------------------------------------------------------------------------
#if !defined ANT_TW_OPENGL_INCLUDED
#define ANT_TW_OPENGL_INCLUDED
#include "TwGraph.h"
// ---------------------------------------------------------------------------
class CTwGraphOpenGL : public ITwGraph
{
public:
virtual int Init();
virtual int Shut();
virtual void BeginDraw(int _WndWidth, int _WndHeight);
virtual void EndDraw();
virtual bool IsDrawing();
virtual void Restore();
virtual void DrawLine(int _X0, int _Y0, int _X1, int _Y1, color32 _Color0, color32 _Color1, bool _AntiAliased=false);
virtual void DrawLine(int _X0, int _Y0, int _X1, int _Y1, color32 _Color, bool _AntiAliased=false) { DrawLine(_X0, _Y0, _X1, _Y1, _Color, _Color, _AntiAliased); }
virtual void DrawRect(int _X0, int _Y0, int _X1, int _Y1, color32 _Color00, color32 _Color10, color32 _Color01, color32 _Color11);
virtual void DrawRect(int _X0, int _Y0, int _X1, int _Y1, color32 _Color) { DrawRect(_X0, _Y0, _X1, _Y1, _Color, _Color, _Color, _Color); }
virtual void DrawTriangles(int _NumTriangles, int *_Vertices, color32 *_Colors, Cull _CullMode);
virtual void * NewTextObj();
virtual void DeleteTextObj(void *_TextObj);
virtual void BuildText(void *_TextObj, const std::string *_TextLines, color32 *_LineColors, color32 *_LineBgColors, int _NbLines, const CTexFont *_Font, int _Sep, int _BgWidth);
virtual void DrawText(void *_TextObj, int _X, int _Y, color32 _Color, color32 _BgColor);
virtual void ChangeViewport(int _X0, int _Y0, int _Width, int _Height, int _OffsetX, int _OffsetY);
virtual void RestoreViewport();
virtual void SetScissor(int _X0, int _Y0, int _Width, int _Height);
protected:
bool m_Drawing;
GLuint m_FontTexID;
const CTexFont * m_FontTex;
GLfloat m_PrevLineWidth;
GLint m_PrevTexEnv;
GLint m_PrevPolygonMode[2];
GLint m_MaxClipPlanes;
GLint m_PrevTexture;
GLint m_PrevArrayBufferARB;
GLint m_PrevElementArrayBufferARB;
GLboolean m_PrevVertexProgramARB;
GLboolean m_PrevFragmentProgramARB;
GLuint m_PrevProgramObjectARB;
GLboolean m_PrevTexture3D;
enum EMaxTextures { MAX_TEXTURES = 128 };
GLboolean m_PrevActiveTexture1D[MAX_TEXTURES];
GLboolean m_PrevActiveTexture2D[MAX_TEXTURES];
GLboolean m_PrevActiveTexture3D[MAX_TEXTURES];
GLboolean m_PrevClientTexCoordArray[MAX_TEXTURES];
GLint m_PrevActiveTextureARB;
GLint m_PrevClientActiveTextureARB;
bool m_SupportTexRect;
GLboolean m_PrevTexRectARB;
GLint m_PrevBlendEquation;
GLint m_PrevBlendEquationRGB;
GLint m_PrevBlendEquationAlpha;
GLint m_PrevBlendSrcRGB;
GLint m_PrevBlendDstRGB;
GLint m_PrevBlendSrcAlpha;
GLint m_PrevBlendDstAlpha;
GLuint m_PrevVertexArray;
GLint m_ViewportInit[4];
GLfloat m_ProjMatrixInit[16];
enum EMaxVtxAttribs { MAX_VERTEX_ATTRIBS = 128 };
GLint m_PrevEnabledVertexAttrib[MAX_VERTEX_ATTRIBS];
int m_WndWidth;
int m_WndHeight;
struct Vec2 { GLfloat x, y; Vec2(){} Vec2(GLfloat _X, GLfloat _Y):x(_X),y(_Y){} Vec2(int _X, int _Y):x(GLfloat(_X)),y(GLfloat(_Y)){} };
struct CTextObj
{
std::vector<Vec2> m_TextVerts;
std::vector<Vec2> m_TextUVs;
std::vector<Vec2> m_BgVerts;
std::vector<color32>m_Colors;
std::vector<color32>m_BgColors;
};
};
// ---------------------------------------------------------------------------
#endif // !defined ANT_TW_OPENGL_INCLUDED