]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/palmos/glcanvas.h
added WX_ASSERT_MESSAGE macro to simply using CPPUNIT_ASSERT_MESSAGE with wxString...
[wxWidgets.git] / include / wx / palmos / glcanvas.h
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: wx/palmos/glcanvas.h
3// Purpose: wxGLCanvas, for using OpenGL with wxWidgets under Palm OS
4// Author: William Osborne - minimal working wxPalmOS port
5// Modified by:
6// Created: 10/13/04
7// RCS-ID: $Id$
8// Copyright: (c) William Osborne
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_GLCANVAS_H_
13#define _WX_GLCANVAS_H_
14
15#include "wx/palette.h"
16#include "wx/scrolwin.h"
17
18#include "wx/msw/wrapwin.h"
19
20#include <GL/gl.h>
21
22class WXDLLIMPEXP_FWD_GL wxGLCanvas; /* forward reference */
23
24class WXDLLIMPEXP_GL wxGLContext: public wxObject
25{
26public:
27 wxGLContext(bool isRGB, wxGLCanvas *win, const wxPalette& palette = wxNullPalette);
28
29 wxGLContext( bool isRGB, wxGLCanvas *win,
30 const wxPalette& WXUNUSED(palette),
31 const wxGLContext *other /* for sharing display lists */ );
32
33 virtual ~wxGLContext();
34
35
36 void SetCurrent();
37
38 void SetColour(const wxString& colour);
39
40 void SwapBuffers();
41
42
43 inline wxWindow* GetWindow() const { return m_window; }
44
45 inline WXHDC GetHDC() const { return m_hDC; }
46
47 inline HGLRC GetGLRC() const { return m_glContext; }
48
49public:
50 HGLRC m_glContext;
51 WXHDC m_hDC;
52 wxWindow* m_window;
53};
54
55class WXDLLIMPEXP_GL wxGLCanvas: public wxWindow
56{
57 DECLARE_CLASS(wxGLCanvas)
58public:
59 wxGLCanvas(wxWindow *parent, wxWindowID id = wxID_ANY,
60 const wxPoint& pos = wxDefaultPosition,
61 const wxSize& size = wxDefaultSize, long style = 0,
62 const wxString& name = wxGLCanvasName, int *attribList = 0,
63 const wxPalette& palette = wxNullPalette);
64
65 wxGLCanvas(wxWindow *parent,
66 const wxGLContext *shared = (wxGLContext *) NULL,
67 wxWindowID id = wxID_ANY,
68 const wxPoint& pos = wxDefaultPosition,
69 const wxSize& size = wxDefaultSize,
70 long style = 0,
71 const wxString& name = wxGLCanvasName,
72 int *attribList = (int *) NULL,
73 const wxPalette& palette = wxNullPalette);
74
75 wxGLCanvas(wxWindow *parent,
76 const wxGLCanvas *shared = (wxGLCanvas *)NULL,
77 wxWindowID id = wxID_ANY,
78 const wxPoint& pos = wxDefaultPosition,
79 const wxSize& size = wxDefaultSize,
80 long style = 0,
81 const wxString& name = wxGLCanvasName,
82 int *attribList = 0,
83 const wxPalette& palette = wxNullPalette);
84
85 virtual ~wxGLCanvas();
86
87 // Replaces wxWindow::Create functionality, since
88 // we need to use a different window class
89 bool Create(wxWindow *parent, wxWindowID id,
90 const wxPoint& pos, const wxSize& size,
91 long style, const wxString& name);
92
93 void SetCurrent();
94
95#ifdef __WXUNIVERSAL__
96 virtual bool SetCurrent(bool doit) { return wxWindow::SetCurrent(doit); };
97#endif
98
99 void SetColour(const wxChar *colour);
100
101 void SwapBuffers();
102
103 void OnSize(wxSizeEvent& event);
104
105 void OnQueryNewPalette(wxQueryNewPaletteEvent& event);
106
107 void OnPaletteChanged(wxPaletteChangedEvent& event);
108
109 inline wxGLContext* GetContext() const { return m_glContext; }
110
111 inline WXHDC GetHDC() const { return m_hDC; }
112
113 void SetupPixelFormat(int *attribList = (int *) NULL);
114
115 void SetupPalette(const wxPalette& palette);
116
117protected:
118 WXHDC m_hDC;
119
120 DECLARE_EVENT_TABLE()
121};
122
123#endif
124 // _WX_GLCANVAS_H_
125