X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c39d2e0a3822e695efdfb2ead77a09defd6ed8c1..6f026b5b63fe7ccb025e84509886f74772b9df13:/src/unix/glx11.cpp diff --git a/src/unix/glx11.cpp b/src/unix/glx11.cpp index 9e1c4464c0..ec2bd5b098 100644 --- a/src/unix/glx11.cpp +++ b/src/unix/glx11.cpp @@ -1,9 +1,8 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: src/univ/glx11.cpp +// Name: src/unix/glx11.cpp // Purpose: code common to all X11-based wxGLCanvas implementations // Author: Vadim Zeitlin // Created: 2007-04-15 -// RCS-ID: $Id$ // Copyright: (c) 2007 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -27,6 +26,16 @@ #include "wx/glcanvas.h" +// IRIX headers call this differently +#ifdef __SGI__ + #ifndef GLX_SAMPLE_BUFFERS_ARB + #define GLX_SAMPLE_BUFFERS_ARB GLX_SAMPLE_BUFFERS_SGIS + #endif + #ifndef GLX_SAMPLES_ARB + #define GLX_SAMPLES_ARB GLX_SAMPLES_SGIS + #endif +#endif // __SGI__ + // ============================================================================ // wxGLContext implementation // ============================================================================ @@ -38,7 +47,7 @@ wxGLContext::wxGLContext(wxGLCanvas *gc, const wxGLContext *other) if ( wxGLCanvas::GetGLXVersion() >= 13 ) { GLXFBConfig *fbc = gc->GetGLXFBConfig(); - wxCHECK_RET( fbc, _T("invalid GLXFBConfig for OpenGL") ); + wxCHECK_RET( fbc, wxT("invalid GLXFBConfig for OpenGL") ); m_glContext = glXCreateNewContext( wxGetX11Display(), fbc[0], GLX_RGBA_TYPE, other ? other->m_glContext : None, @@ -47,14 +56,14 @@ wxGLContext::wxGLContext(wxGLCanvas *gc, const wxGLContext *other) else // GLX <= 1.2 { XVisualInfo *vi = gc->GetXVisualInfo(); - wxCHECK_RET( vi, _T("invalid visual for OpenGL") ); + wxCHECK_RET( vi, wxT("invalid visual for OpenGL") ); m_glContext = glXCreateContext( wxGetX11Display(), vi, other ? other->m_glContext : None, GL_TRUE ); } - wxASSERT_MSG( m_glContext, _T("Couldn't create OpenGL context") ); + wxASSERT_MSG( m_glContext, wxT("Couldn't create OpenGL context") ); } wxGLContext::~wxGLContext() @@ -74,7 +83,7 @@ bool wxGLContext::SetCurrent(const wxGLCanvas& win) const return false; const Window xid = win.GetXWindow(); - wxCHECK2_MSG( xid, return false, _T("window must be shown") ); + wxCHECK2_MSG( xid, return false, wxT("window must be shown") ); return MakeCurrent(xid, m_glContext); } @@ -145,7 +154,7 @@ bool wxGLCanvasX11::IsGLXMultiSampleAvailable() bool wxGLCanvasX11::ConvertWXAttrsToGL(const int *wxattrs, int *glattrs, size_t n) { - wxCHECK_MSG( n >= 16, false, _T("GL attributes buffer too small") ); + wxCHECK_MSG( n >= 16, false, wxT("GL attributes buffer too small") ); /* Different versions of GLX API use rather different attributes lists, see @@ -186,7 +195,7 @@ wxGLCanvasX11::ConvertWXAttrsToGL(const int *wxattrs, int *glattrs, size_t n) glattrs[i] = None; - wxASSERT_MSG( i < n, _T("GL attributes buffer too small") ); + wxASSERT_MSG( i < n, wxT("GL attributes buffer too small") ); } else // have non-default attributes { @@ -278,33 +287,36 @@ wxGLCanvasX11::ConvertWXAttrsToGL(const int *wxattrs, int *glattrs, size_t n) break; case WX_GL_SAMPLE_BUFFERS: - if ( !IsGLXMultiSampleAvailable() ) +#ifdef GLX_SAMPLE_BUFFERS_ARB + if ( IsGLXMultiSampleAvailable() ) { - // if it was specified just to disable it, no problem - if ( !wxattrs[arg++] ) - continue; - - // otherwise indicate that it's not supported - return false; + glattrs[p++] = GLX_SAMPLE_BUFFERS_ARB; + break; } +#endif // GLX_SAMPLE_BUFFERS_ARB + // if it was specified just to disable it, no problem + if ( !wxattrs[arg++] ) + continue; - glattrs[p++] = GLX_SAMPLE_BUFFERS_ARB; - break; + // otherwise indicate that it's not supported + return false; case WX_GL_SAMPLES: - if ( !IsGLXMultiSampleAvailable() ) +#ifdef GLX_SAMPLES_ARB + if ( IsGLXMultiSampleAvailable() ) { - if ( !wxattrs[arg++] ) - continue; - - return false; + glattrs[p++] = GLX_SAMPLES_ARB; + break; } +#endif // GLX_SAMPLES_ARB - glattrs[p++] = GLX_SAMPLES_ARB; - break; + if ( !wxattrs[arg++] ) + continue; + + return false; default: - wxLogDebug(_T("Unsupported OpenGL attribute %d"), + wxLogDebug(wxT("Unsupported OpenGL attribute %d"), wxattrs[arg - 1]); continue; } @@ -427,7 +439,7 @@ int wxGLCanvasX11::GetGLXVersion() // check the GLX version int glxMajorVer, glxMinorVer; bool ok = glXQueryVersion(wxGetX11Display(), &glxMajorVer, &glxMinorVer); - wxASSERT_MSG( ok, _T("GLX version not found") ); + wxASSERT_MSG( ok, wxT("GLX version not found") ); if (!ok) s_glxVersion = 10; // 1.0 by default else @@ -440,7 +452,7 @@ int wxGLCanvasX11::GetGLXVersion() bool wxGLCanvasX11::SwapBuffers() { const Window xid = GetXWindow(); - wxCHECK2_MSG( xid, return false, _T("window must be shown") ); + wxCHECK2_MSG( xid, return false, wxT("window must be shown") ); glXSwapBuffers(wxGetX11Display(), xid); return true;