wxGLCanvas

wxGLCanvas is a class for displaying OpenGL graphics. There are wrappers for OpenGL on Windows, and GTK+ and Motif.

To use this class, create a wxGLCanvas window, call wxGLCanvas::SetCurrent to direct normal OpenGL commands to the window, and then call wxGLCanvas::SwapBuffers to show the OpenGL buffer on the window.

To set up the attributes for the rendering context (number of bits for the depth buffer, number of bits for the stencil buffer and so on) you should set up the correct values of the attribList parameter. The values that should be set up and their meanings will be described below.

To switch wxGLCanvas support on under Windows, edit setup.h and set wxUSE_GLCANVAS to $1$. You may also need to have to add opengl32.lib to the list of libraries your program is linked with. On Unix, pass -with-opengl to configure to compile using OpenGL or Mesa.

Derived from

wxWindow
wxEvtHandler
wxObject

Include files

<wx/glcanvas.h>

Window styles

There are no specific window styles for this class.

See also window styles overview.

Constants

The generic GL implementation doesn't support many of these options, such as stereo, auxiliary buffers, alpha channel, and accum buffer. Other implementations may support them.

WX_GL_RGBA Use true colour
WX_GL_BUFFER_SIZE Bits for buffer if not WX_GL_RGBA
WX_GL_LEVEL 0 for main buffer, >0 for overlay, <0 for underlay
WX_GL_DOUBLEBUFFER Use doublebuffer
WX_GL_STEREO Use stereoscopic display
WX_GL_AUX_BUFFERS Number of auxiliary buffers (not all implementation support this option)
WX_GL_MIN_RED Use red buffer with most bits (> MIN_RED bits)
WX_GL_MIN_GREEN Use green buffer with most bits (> MIN_GREEN bits)
WX_GL_MIN_BLUE Use blue buffer with most bits (> MIN_BLUE bits)
WX_GL_MIN_ALPHA Use alpha buffer with most bits (> MIN_ALPHA bits)
WX_GL_DEPTH_SIZE Bits for Z-buffer (0,16,32)
WX_GL_STENCIL_SIZE Bits for stencil buffer
WX_GL_MIN_ACCUM_RED Use red accum buffer with most bits (> MIN_ACCUM_RED bits)
WX_GL_MIN_ACCUM_GREEN Use green buffer with most bits (> MIN_ACCUM_GREEN bits)
WX_GL_MIN_ACCUM_BLUE Use blue buffer with most bits (> MIN_ACCUM_BLUE bits)
WX_GL_MIN_ACCUM_ALPHA Use blue buffer with most bits (> MIN_ACCUM_ALPHA bits)

See also

wxGLContext



wxGLCanvas::wxGLCanvas



void wxGLCanvas(wxWindow* parent, wxWindowID id = -1, const wxPoint& pos, const wxSize& size, long style=0, const wxString& name="GLCanvas", int* attribList = 0, const wxPalette& palette = wxNullPalette)



void wxGLCanvas(wxWindow* parent, wxGLCanvas* sharedCanvas = NULL, wxWindowID id = -1, const wxPoint& pos, const wxSize& size, long style=0, const wxString& name="GLCanvas", int* attribList = 0, const wxPalette& palette = wxNullPalette)



void wxGLCanvas(wxWindow* parent, wxGLContext* sharedContext = NULL, wxWindowID id = -1, const wxPoint& pos, const wxSize& size, long style=0, const wxString& name="GLCanvas", int* attribList = 0, const wxPalette& palette = wxNullPalette)

Constructor.

parent
Pointer to a parent window.

sharedcontext
Context to share object resources with.

id
Window identifier. If -1, will automatically create an identifier.

pos
Window position. wxDefaultPosition is (-1, -1) which indicates that wxWidgets should generate a default position for the window.

size
Window size. wxDefaultSize is (-1, -1) which indicates that wxWidgets should generate a default size for the window. If no suitable size can be found, the window will be sized to 20x20 pixels so that the window is visible but obviously not correctly sized.

style
Window style.

name
Window name.

attribList
Array of int. With this parameter you can set the device context attributes associated to this window. This array is zero-terminated: it should be set up with constants described in the table above. If a constant should be followed by a value, put it in the next array position. For example, the WX_GL_DEPTH_SIZE should be followed by the value that indicates the number of bits for the depth buffer, so:

attribList[index]= WX_GL_DEPTH_SIZE;
attribList[index+1]=32;
and so on.

palette
If the window has the palette, it should by pass this value. Note: palette and WX_GL_RGBA are mutually exclusive.



wxGLCanvas::GetContext



wxGLContext* GetContext(void)

Obtains the context that is associated with this canvas.



wxGLCanvas::SetCurrent



void SetCurrent(void)

Sets this canvas as the current recipient of OpenGL calls. Each canvas contains an OpenGL device context that has been created during the creation of this window. So this call sets the current device context as the target device context for OpenGL operations.



wxGLCanvas::SetColour



void SetColour(const char* colour)

Sets the current colour for this window, using the wxWidgets colour database to find a named colour.



wxGLCanvas::SwapBuffers



void SwapBuffers(void)

Displays the previous OpenGL commands on the window.

ymasuda 平成17年11月19日