forked from mia/Aegisub
Another shot at fixing wxGLCanvas woes on Mac, updates #850. This time the code is also considerably simpler!
Originally committed to SVN as r3014.
This commit is contained in:
parent
cf9fb5ae9a
commit
d1251757ef
1 changed files with 13 additions and 17 deletions
|
@ -467,26 +467,22 @@ void VideoContext::JumpToTime(int ms,bool exact) {
|
|||
//////////////////
|
||||
// Get GL context
|
||||
wxGLContext *VideoContext::GetGLContext(wxGLCanvas *canvas) {
|
||||
#ifdef __WXMAC__
|
||||
// This code is written blindly, might be very broken
|
||||
// What are the wxMac developers thinking? This is impossible to work with,
|
||||
// having a different API on different platforms...
|
||||
if (!glContext) {
|
||||
GLint pfmtattribs[] = {AGL_WINDOW, AGL_BACKING_STORE, AGL_STENCIL_SIZE, 1, 0};
|
||||
AGLPixelFormat pfmt = aglChoosePixelFormat(0, 0, pfmtattribs);
|
||||
glContext = new wxGLContext(pfmt, canvas, wxPalette(), 0);
|
||||
}
|
||||
#else
|
||||
// wxGLCanvas and wxGLContext is a funky couple.
|
||||
// On wxMac wxGLContext has a different constructor than everywhere else...
|
||||
// But wxMac is also the only implementation that creates and initialises a context
|
||||
// in the canvas constructor, meaning a wxGLCanvas on wxMac comes with a context
|
||||
// for free, while we have to create our own everywhere else.
|
||||
// So let's first see if the canvas might already have a context of its own and
|
||||
// get that if we lack one.
|
||||
// That should always succeed on wxMac...
|
||||
// Everywhere else, we can just create a wxGLContext using the documented interface
|
||||
// and be over with it after that.
|
||||
// Also see bug #850.
|
||||
if (!glContext) glContext = canvas->GetContext();
|
||||
#ifndef __WXMAC__
|
||||
if (!glContext) glContext = new wxGLContext(canvas);
|
||||
#endif
|
||||
return glContext;
|
||||
/*
|
||||
if (!((VideoDisplay*)canvas)->freeSize) return glContext;
|
||||
else {
|
||||
static wxGLContext *test = NULL;
|
||||
if (test = NULL) test = new wxGLContext(canvas,glContext);
|
||||
return test;
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue