]> git.saurik.com Git - wxWidgets.git/blob - include/wx/cocoa/glcanvas.h
use global operator new to fix compilation errors if type T overloads new (as wxObjec...
[wxWidgets.git] / include / wx / cocoa / glcanvas.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/cocoa/glcanvas.h
3 // Purpose: wxGLCanvas class
4 // Author: David Elliott
5 // Modified by:
6 // Created: 2004/09/29
7 // RCS-ID: $Id$
8 // Copyright: (c) 2004 David Elliott
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_COCOA_GLCANVAS_H__
13 #define _WX_COCOA_GLCANVAS_H__
14
15 #include "wx/window.h"
16
17 // #include "wx/cocoa/NSOpenGLView.h"
18 // Include gl.h from the OpenGL framework
19 #include <OpenGL/gl.h>
20
21 class WXDLLIMPEXP_FWD_GL wxGLCanvas;
22 DECLARE_WXCOCOA_OBJC_CLASS(NSOpenGLContext);
23 DECLARE_WXCOCOA_OBJC_CLASS(NSOpenGLView);
24
25 // ========================================================================
26 // wxGLContext
27 // ========================================================================
28
29 class WXDLLIMPEXP_GL wxGLContext : public wxGLContextBase
30 {
31 public:
32 wxGLContext(wxGLCanvas *win, const wxGLContext *other = NULL);
33
34 virtual ~wxGLContext();
35
36 virtual void SetCurrent(const wxGLCanvas& win) const;
37
38 WX_NSOpenGLContext GetNSOpenGLContext() const
39 { return m_cocoaNSOpenGLContext; }
40
41 private:
42 WX_NSOpenGLContext m_cocoaNSOpenGLContext;
43 };
44
45 // ========================================================================
46 // wxGLCanvas
47 // ========================================================================
48
49 class WXDLLIMPEXP_GL wxGLCanvas : public wxGLCanvasBase
50 // , protected wxCocoaNSOpenGLView
51 {
52 DECLARE_DYNAMIC_CLASS(wxGLCanvas)
53 // WX_DECLARE_COCOA_OWNER(NSOpenGLView,NSView,NSView)
54 // ------------------------------------------------------------------------
55 // initialization
56 // ------------------------------------------------------------------------
57 public:
58 wxGLCanvas(wxWindow *parent,
59 wxWindowID id = wxID_ANY,
60 const int *attribList = NULL,
61 const wxPoint& pos = wxDefaultPosition,
62 const wxSize& size = wxDefaultSize,
63 long style = 0,
64 const wxString& name = wxGLCanvasName,
65 const wxPalette& palette = wxNullPalette)
66 {
67 Create(parent, id, pos, size, style, name, attribList, palette);
68 }
69
70 bool Create(wxWindow *parent,
71 wxWindowID id = wxID_ANY,
72 const wxPoint& pos = wxDefaultPosition,
73 const wxSize& size = wxDefaultSize,
74 long style = 0,
75 const wxString& name = wxGLCanvasName,
76 const int *attribList = NULL,
77 const wxPalette& palette = wxNullPalette);
78
79 virtual ~wxGLCanvas();
80
81 // ------------------------------------------------------------------------
82 // Cocoa callbacks
83 // ------------------------------------------------------------------------
84 protected:
85 // NSOpenGLView cannot be enabled/disabled
86 virtual void CocoaSetEnabled(bool enable) { }
87 // ------------------------------------------------------------------------
88 // Implementation
89 // ------------------------------------------------------------------------
90 public:
91 virtual void SwapBuffers();
92
93
94 NSOpenGLView *GetNSOpenGLView() const
95 { return (NSOpenGLView *)m_cocoaNSView; }
96 };
97
98 #endif //ndef _WX_COCOA_GLCANVAS_H__