1 // ---------------------------------------------------------------------------
4 // @brief Direct3D9 graph functions
5 // @author Philippe Decaudin - http://www.antisphere.com
6 // @license This file is part of the AntTweakBar library.
7 // For conditions of distribution and use, see License.txt
9 // note: Private header
11 // ---------------------------------------------------------------------------
14 #if !defined ANT_TW_DIRECT3D9_INCLUDED
15 #define ANT_TW_DIRECT3D9_INCLUDED
19 // ---------------------------------------------------------------------------
21 class CTwGraphDirect3D9 : public ITwGraph
26 virtual void BeginDraw(int _WndWidth, int _WndHeight);
27 virtual void EndDraw();
28 virtual bool IsDrawing();
29 virtual void Restore();
30 virtual void DrawLine(int _X0, int _Y0, int _X1, int _Y1, color32 _Color0, color32 _Color1, bool _AntiAliased=false);
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); }
32 virtual void DrawRect(int _X0, int _Y0, int _X1, int _Y1, color32 _Color00, color32 _Color10, color32 _Color01, color32 _Color11);
33 virtual void DrawRect(int _X0, int _Y0, int _X1, int _Y1, color32 _Color) { DrawRect(_X0, _Y0, _X1, _Y1, _Color, _Color, _Color, _Color); }
34 virtual void DrawTriangles(int _NumTriangles, int *_Vertices, color32 *_Colors, Cull _CullMode);
36 virtual void * NewTextObj();
37 virtual void DeleteTextObj(void *_TextObj);
38 virtual void BuildText(void *_TextObj, const std::string *_TextLines, color32 *_LineColors, color32 *_LineBgColors, int _NbLines, const CTexFont *_Font, int _Sep, int _BgWidth);
39 virtual void DrawText(void *_TextObj, int _X, int _Y, color32 _Color, color32 _BgColor);
41 virtual void ChangeViewport(int _X0, int _Y0, int _Width, int _Height, int _OffsetX, int _OffsetY);
42 virtual void RestoreViewport();
43 virtual void SetScissor(int _X0, int _Y0, int _Width, int _Height);
46 struct IDirect3DDevice9 * m_D3DDev;
48 const CTexFont * m_FontTex;
49 struct IDirect3DTexture9 * m_FontD3DTex;
53 void * m_ViewportInit;
71 std::vector<CTextVtx> m_TextVerts;
72 std::vector<CBgVtx> m_BgVerts;
82 std::vector<CTriVtx> m_TriVertices;
84 struct CState * m_State;
87 // ---------------------------------------------------------------------------
90 #endif // !defined ANT_TW_DIRECT3D9_INCLUDED