1 // ---------------------------------------------------------------------------
\r
3 // @file TwDirect3D10.h
\r
4 // @brief Direct3D10 graph functions
\r
5 // @author Philippe Decaudin - http://www.antisphere.com
\r
6 // @license This file is part of the AntTweakBar library.
\r
7 // For conditions of distribution and use, see License.txt
\r
9 // note: Private header
\r
11 // ---------------------------------------------------------------------------
\r
14 #if !defined ANT_TW_DIRECT3D10_INCLUDED
\r
15 #define ANT_TW_DIRECT3D10_INCLUDED
\r
17 #include "TwGraph.h"
\r
19 // ---------------------------------------------------------------------------
\r
21 class CTwGraphDirect3D10 : public ITwGraph
\r
26 virtual void BeginDraw(int _WndWidth, int _WndHeight);
\r
27 virtual void EndDraw();
\r
28 virtual bool IsDrawing();
\r
29 virtual void Restore();
\r
30 virtual void DrawLine(int _X0, int _Y0, int _X1, int _Y1, color32 _Color0, color32 _Color1, bool _AntiAliased=false);
\r
31 virtual void DrawLine(int _X0, int _Y0, int _X1, int _Y1, color32 _Color, bool _AntiAliased=false) { DrawLine(_X0, _Y0, _X1, _Y1, _Color, _Color, _AntiAliased); }
\r
32 virtual void DrawRect(int _X0, int _Y0, int _X1, int _Y1, color32 _Color00, color32 _Color10, color32 _Color01, color32 _Color11);
\r
33 virtual void DrawRect(int _X0, int _Y0, int _X1, int _Y1, color32 _Color) { DrawRect(_X0, _Y0, _X1, _Y1, _Color, _Color, _Color, _Color); }
\r
34 virtual void DrawTriangles(int _NumTriangles, int *_Vertices, color32 *_Colors, Cull _CullMode);
\r
36 virtual void * NewTextObj();
\r
37 virtual void DeleteTextObj(void *_TextObj);
\r
38 virtual void BuildText(void *_TextObj, const std::string *_TextLines, color32 *_LineColors, color32 *_LineBgColors, int _NbLines, const CTexFont *_Font, int _Sep, int _BgWidth);
\r
39 virtual void DrawText(void *_TextObj, int _X, int _Y, color32 _Color, color32 _BgColor);
\r
41 virtual void ChangeViewport(int _X0, int _Y0, int _Width, int _Height, int _OffsetX, int _OffsetY);
\r
42 virtual void RestoreViewport();
\r
43 virtual void SetScissor(int _X0, int _Y0, int _Width, int _Height);
\r
46 struct ID3D10Device * m_D3DDev;
\r
47 unsigned int m_D3DDevInitialRefCount;
\r
49 const CTexFont * m_FontTex;
\r
50 struct ID3D10ShaderResourceView *m_FontD3DTexRV;
\r
55 void * m_ViewportInit;
\r
56 RECT m_ViewportAndScissorRects[2];
\r
72 struct ID3D10Buffer * m_TextVertexBuffer;
\r
73 struct ID3D10Buffer * m_BgVertexBuffer;
\r
76 int m_TextVertexBufferSize;
\r
77 int m_BgVertexBufferSize;
\r
79 bool m_LineBgColors;
\r
82 struct CState10 * m_State;
\r
83 struct ID3D10DepthStencilState *m_DepthStencilState;
\r
84 struct ID3D10BlendState * m_BlendState;
\r
85 struct ID3D10RasterizerState * m_RasterState;
\r
86 struct ID3D10RasterizerState * m_RasterStateAntialiased;
\r
87 struct ID3D10RasterizerState * m_RasterStateCullCW;
\r
88 struct ID3D10RasterizerState * m_RasterStateCullCCW;
\r
89 struct ID3D10Effect * m_Effect;
\r
90 struct ID3D10EffectTechnique* m_LineRectTech;
\r
91 struct ID3D10EffectTechnique* m_LineRectCstColorTech;
\r
92 struct ID3D10InputLayout * m_LineRectVertexLayout;
\r
93 struct ID3D10Buffer * m_LineVertexBuffer;
\r
94 struct ID3D10Buffer * m_RectVertexBuffer;
\r
95 struct ID3D10Buffer * m_TrianglesVertexBuffer;
\r
96 int m_TrianglesVertexBufferCount;
\r
97 struct ID3D10EffectTechnique* m_TextTech;
\r
98 struct ID3D10EffectTechnique* m_TextCstColorTech;
\r
99 struct ID3D10InputLayout * m_TextVertexLayout;
\r
100 struct ID3D10EffectShaderResourceVariable *m_FontD3DResVar;
\r
101 struct ID3D10EffectVectorVariable *m_OffsetVar;
\r
102 struct ID3D10EffectVectorVariable *m_CstColorVar;
\r
105 // ---------------------------------------------------------------------------
\r
108 #endif // !defined ANT_TW_DIRECT3D10_INCLUDED
\r