$(WX_WIDGETS_ROOT)/include/wx/glcanvas.h
$(WX_WIDGETS_ROOT)/include/wx/msw/glcanvas.h
$(WX_WIDGETS_ROOT)/src/msw/glcanvas.cpp
打完补丁后,重新编译 wxWidgets 库。
要在您的 wxWidgets OpenGL 程序中启用多重采样,需要对代码进行轻微更改。
需要将属性列表传递给 wxGLCanvas 构造函数:
int attribList[] = {WX_GL_RGBA,
WX_GL_DOUBLEBUFFER,
WX_GL_SAMPLE_BUFFERS, GL_TRUE, // Multi-sampling
WX_GL_DEPTH_SIZE, 16,
0, 0};
如果您已经在使用属性列表,则将包含GL_SAMPLE_BUFFERS, GL_TRUE
的行添加到其中。否则,请将此属性列表定义添加到您的代码中。
然后,修改您的wxGLCanvas构造函数以将此属性列表作为参数:
myGLFrame::myGLFrame // Derived from wxGLCanvas
(
wxWindow *parent,
wxWindowID id,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString& name
)
: wxGLCanvas(parent, (wxGLCanvas*) NULL, id, pos, size, style, name, attribList)
{
// ...
}
glEnable(GL_MULTISAMPLE);
glDisable(GL_MULTISAMPLE);
多重采样现在应该可以在wxWidgets OpenGL程序中正常工作。希望它很快能够被支持并包含在稳定版本的wxWidgets中,这将使得这些信息变得无关紧要 :-)