///////////////////////////////////////////////////////////////////////////////
-// 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 <vadim@wxwindows.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#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
// ============================================================================
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,
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()
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);
}
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
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
{
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;
}
// 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
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;