X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d9698bd4acdee91faaca22c4246842ac9456f876..43f4e852a1b2ac37c3db6a2b87315192ac549191:/src/msw/glcanvas.cpp diff --git a/src/msw/glcanvas.cpp b/src/msw/glcanvas.cpp index c8a84f6cf6..a16f03e7b8 100644 --- a/src/msw/glcanvas.cpp +++ b/src/msw/glcanvas.cpp @@ -117,7 +117,9 @@ wxGLContext::wxGLContext(wxGLCanvas *win, const wxGLContext* other) if ( other ) { if ( !wglShareLists(other->m_glContext, m_glContext) ) - wxLogLastError(_T("wglShareLists")); + { + wxLogLastError(wxT("wglShareLists")); + } } } @@ -131,7 +133,7 @@ bool wxGLContext::SetCurrent(const wxGLCanvas& win) const { if ( !wglMakeCurrent(win.GetHDC(), m_glContext) ) { - wxLogLastError(_T("wglMakeCurrent")); + wxLogLastError(wxT("wglMakeCurrent")); return false; } return true; @@ -144,8 +146,10 @@ bool wxGLContext::SetCurrent(const wxGLCanvas& win) const IMPLEMENT_CLASS(wxGLCanvas, wxWindow) BEGIN_EVENT_TABLE(wxGLCanvas, wxWindow) +#if wxUSE_PALETTE EVT_PALETTE_CHANGED(wxGLCanvas::OnPaletteChanged) EVT_QUERY_NEW_PALETTE(wxGLCanvas::OnQueryNewPalette) +#endif END_EVENT_TABLE() // ---------------------------------------------------------------------------- @@ -207,7 +211,7 @@ bool wxGLCanvas::CreateWindow(wxWindow *parent, DWORD msflags = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN; msflags |= MSWGetStyle(style, &exStyle); - if ( !MSWCreate(wxApp::GetRegisteredClassName(_T("wxGLCanvas"), -1, CS_OWNDC), + if ( !MSWCreate(wxApp::GetRegisteredClassName(wxT("wxGLCanvas"), -1, CS_OWNDC), NULL, pos, size, msflags, exStyle) ) return false; @@ -275,7 +279,7 @@ bool wxGLCanvas::Create(wxWindow *parent, if ( !::SetPixelFormat(m_hDC, pixelFormat, &pfd) ) { - wxLogLastError(_T("SetPixelFormat")); + wxLogLastError(wxT("SetPixelFormat")); return false; } } @@ -299,7 +303,7 @@ bool wxGLCanvas::SwapBuffers() { if ( !::SwapBuffers(m_hDC) ) { - wxLogLastError(_T("SwapBuffers")); + wxLogLastError(wxT("SwapBuffers")); return false; } @@ -491,12 +495,21 @@ static int ChoosePixelFormatARB(HDC hdc, const int *attribList) int pf; UINT numFormats = 0; + if ( !wglChoosePixelFormatARB(hdc, iAttributes, NULL, 1, &pf, &numFormats) ) { - wxLogLastError(_T("wglChoosePixelFormatARB")); + wxLogLastError(wxT("wglChoosePixelFormatARB")); return 0; } + // Although TRUE is returned if no matching formats are found (see + // http://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt), pf is + // not initialized in this case so we need to check for numFormats being + // not 0 explicitly (however this is not an error so don't call + // wxLogLastError() here). + if ( !numFormats ) + pf = 0; + return pf; } @@ -681,13 +694,13 @@ int wxGLCanvas::DoSetup(PIXELFORMATDESCRIPTOR &pfd, const int *attribList) if ( !pixelFormat ) { - wxLogLastError(_T("ChoosePixelFormat")); + wxLogLastError(wxT("ChoosePixelFormat")); return 0; } if ( !::SetPixelFormat(m_hDC, pixelFormat, &pfd) ) { - wxLogLastError(_T("SetPixelFormat")); + wxLogLastError(wxT("SetPixelFormat")); return 0; } @@ -705,14 +718,14 @@ bool wxGLCanvas::SetupPalette(const wxPalette& palette) const int pixelFormat = ::GetPixelFormat(m_hDC); if ( !pixelFormat ) { - wxLogLastError(_T("GetPixelFormat")); + wxLogLastError(wxT("GetPixelFormat")); return false; } PIXELFORMATDESCRIPTOR pfd; if ( !::DescribePixelFormat(m_hDC, pixelFormat, sizeof(pfd), &pfd) ) { - wxLogLastError(_T("DescribePixelFormat")); + wxLogLastError(wxT("DescribePixelFormat")); return false; } @@ -721,22 +734,22 @@ bool wxGLCanvas::SetupPalette(const wxPalette& palette) m_palette = palette; - if ( !m_palette.Ok() ) + if ( !m_palette.IsOk() ) { m_palette = CreateDefaultPalette(); - if ( !m_palette.Ok() ) + if ( !m_palette.IsOk() ) return false; } if ( !::SelectPalette(m_hDC, GetHpaletteOf(m_palette), FALSE) ) { - wxLogLastError(_T("SelectPalette")); + wxLogLastError(wxT("SelectPalette")); return false; } if ( ::RealizePalette(m_hDC) == GDI_ERROR ) { - wxLogLastError(_T("RealizePalette")); + wxLogLastError(wxT("RealizePalette")); return false; } @@ -786,7 +799,7 @@ wxPalette wxGLCanvas::CreateDefaultPalette() void wxGLCanvas::OnQueryNewPalette(wxQueryNewPaletteEvent& event) { /* realize palette if this is the current window */ - if ( GetPalette()->Ok() ) { + if ( GetPalette()->IsOk() ) { ::UnrealizeObject((HPALETTE) GetPalette()->GetHPALETTE()); ::SelectPalette(GetHDC(), (HPALETTE) GetPalette()->GetHPALETTE(), FALSE); ::RealizePalette(GetHDC()); @@ -801,7 +814,7 @@ void wxGLCanvas::OnPaletteChanged(wxPaletteChangedEvent& event) { /* realize palette if this is *not* the current window */ if ( GetPalette() && - GetPalette()->Ok() && (this != event.GetChangedWindow()) ) + GetPalette()->IsOk() && (this != event.GetChangedWindow()) ) { ::UnrealizeObject((HPALETTE) GetPalette()->GetHPALETTE()); ::SelectPalette(GetHDC(), (HPALETTE) GetPalette()->GetHPALETTE(), FALSE);