st/wgl: check for hPbuffer=0 in wgl pbuffer functions

Per the GL_WGL_pbuffer spec, generate ERROR_INVALID_HANDLE and
return FALSE (and don't segfault).

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
Brian Paul
2012-02-16 12:20:57 -07:00
parent 9ffc8ea8f4
commit be05388ce9
@@ -239,6 +239,11 @@ wglGetPbufferDCARB(HPBUFFERARB hPbuffer)
struct stw_framebuffer *fb;
HDC hDC;
if (!hPbuffer) {
SetLastError(ERROR_INVALID_HANDLE);
return NULL;
}
fb = (struct stw_framebuffer *)hPbuffer;
hDC = GetDC(fb->hWnd);
@@ -255,6 +260,11 @@ wglReleasePbufferDCARB(HPBUFFERARB hPbuffer,
{
struct stw_framebuffer *fb;
if (!hPbuffer) {
SetLastError(ERROR_INVALID_HANDLE);
return 0;
}
fb = (struct stw_framebuffer *)hPbuffer;
return ReleaseDC(fb->hWnd, hDC);
@@ -266,6 +276,11 @@ wglDestroyPbufferARB(HPBUFFERARB hPbuffer)
{
struct stw_framebuffer *fb;
if (!hPbuffer) {
SetLastError(ERROR_INVALID_HANDLE);
return FALSE;
}
fb = (struct stw_framebuffer *)hPbuffer;
/* This will destroy all our data */
@@ -280,6 +295,11 @@ wglQueryPbufferARB(HPBUFFERARB hPbuffer,
{
struct stw_framebuffer *fb;
if (!hPbuffer) {
SetLastError(ERROR_INVALID_HANDLE);
return FALSE;
}
fb = (struct stw_framebuffer *)hPbuffer;
switch (iAttribute) {