NV_vdpau_interop: fix IsSurfaceNV return type
authorGrigori Goronzy <greg@chown.ath.cx>
Sun, 2 Mar 2014 11:57:04 +0000 (12:57 +0100)
committerChristian König <christian.koenig@amd.com>
Mon, 3 Mar 2014 17:37:59 +0000 (18:37 +0100)
The spec incorrectly used void as return type, when it should have
been GLboolean. This has now been fixed. According to Nvidia, their
implementation always used GLboolean.

Reviewed-by: Christian König <christian.koenig@amd.com>
include/GL/glext.h
src/mapi/glapi/gen/NV_vdpau_interop.xml
src/mesa/main/vdpau.c
src/mesa/main/vdpau.h

index 7d6033e10cf8b05129a830b0c6cb61511fc63ee5..62bae4c4a08e4ca88777bd89d21af79635c73c2b 100644 (file)
@@ -9658,7 +9658,7 @@ GLAPI void APIENTRY glVDPAUInitNV (const void *vdpDevice, const void *getProcAdd
 GLAPI void APIENTRY glVDPAUFiniNV (void);
 GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
 GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
-GLAPI void APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface);
+GLAPI GLboolean APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface);
 GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface);
 GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
 GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access);
index cf5f0eddd2555cce4193cbce8f2f2cced1f50c76..0b19e1a85f6602e1578a871f2ff5ec5bbd1641a6 100644 (file)
@@ -29,6 +29,7 @@
     </function>
 
     <function name="VDPAUIsSurfaceNV" offset="assign">
+        <return type="GLboolean"/>
        <param name="surface" type="GLintptr"/>
     </function>
 
index 3597576076f3d36abb9d01dbe2dfbd467bda6c90..c2cf20664c68ef962a647595f7dcd1caeba08c57 100644 (file)
@@ -205,7 +205,7 @@ _mesa_VDPAURegisterOutputSurfaceNV(const GLvoid *vdpSurface, GLenum target,
                            numTextureNames, textureNames);
 }
 
-void GLAPIENTRY
+GLboolean GLAPIENTRY
 _mesa_VDPAUIsSurfaceNV(GLintptr surface)
 {
    struct vdp_surface *surf = (struct vdp_surface *)surface;
@@ -213,13 +213,14 @@ _mesa_VDPAUIsSurfaceNV(GLintptr surface)
 
    if (!ctx->vdpDevice || !ctx->vdpGetProcAddress || !ctx->vdpSurfaces) {
       _mesa_error(ctx, GL_INVALID_OPERATION, "VDPAUIsSurfaceNV");
-      return;
+      return false;
    }
 
    if (!_mesa_set_search(ctx->vdpSurfaces, _mesa_hash_pointer(surf), surf)) {
-      _mesa_error(ctx, GL_INVALID_VALUE, "VDPAUIsSurfaceNV");
-      return;
+      return false;
    }
+
+   return true;
 }
 
 void GLAPIENTRY
index f32d6dacb839f0a1282849ca3444d7538e14ae26..627609c50de15665f6bc188021fd5bcaf2bfb048 100644 (file)
@@ -50,7 +50,7 @@ _mesa_VDPAURegisterOutputSurfaceNV(const GLvoid *vdpSurface, GLenum target,
                                    GLsizei numTextureNames,
                                    const GLuint *textureNames);
 
-extern void GLAPIENTRY
+extern GLboolean GLAPIENTRY
 _mesa_VDPAUIsSurfaceNV(GLintptr surface);
 
 extern void GLAPIENTRY