H. Verbeet : wined3d: Add definitions and detection for
GL_NV_half_float.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Aug 2 06:23:05 CDT 2007
Module: wine
Branch: master
Commit: f11ca610ba1e1c4d75eda7073dba28af50a03ada
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f11ca610ba1e1c4d75eda7073dba28af50a03ada
Author: H. Verbeet <hverbeet at gmail.com>
Date: Wed Aug 1 22:48:49 2007 +0200
wined3d: Add definitions and detection for GL_NV_half_float.
---
dlls/wined3d/directx.c | 1 +
include/wine/wined3d_gl.h | 102 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 103 insertions(+), 0 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 8914724..d4a905a 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -100,6 +100,7 @@ static const struct {
{"GL_EXT_vertex_weighting", EXT_VERTEX_WEIGHTING},
/* NV */
+ {"GL_NV_half_float", NV_HALF_FLOAT},
{"GL_NV_fence", NV_FENCE},
{"GL_NV_fog_distance", NV_FOG_DISTANCE},
{"GL_NV_fragment_program", NV_FRAGMENT_PROGRAM},
diff --git a/include/wine/wined3d_gl.h b/include/wine/wined3d_gl.h
index e8ec3bc..ed257ce 100644
--- a/include/wine/wined3d_gl.h
+++ b/include/wine/wined3d_gl.h
@@ -986,6 +986,60 @@ typedef void (APIENTRY * PGLFNGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint l
#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
#endif
+
+/* GL_NV_half_float */
+#ifndef GL_NV_half_float
+#define GL_NV_half_float 1
+typedef unsigned short GLhalfNV;
+#define GL_HALF_FLOAT_NV 0x140B
+#endif
+typedef void (APIENTRY * PGLFNVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y);
+typedef void (APIENTRY * PGLFNVERTEX2HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void (APIENTRY * PGLFNVERTEX3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void (APIENTRY * PGLFNVERTEX4HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
+typedef void (APIENTRY * PGLFNNORMAL3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void (APIENTRY * PGLFNCOLOR3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
+typedef void (APIENTRY * PGLFNCOLOR4HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNTEXCOORD1HNVPROC) (GLhalfNV s);
+typedef void (APIENTRY * PGLFNTEXCOORD1HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t);
+typedef void (APIENTRY * PGLFNTEXCOORD2HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void (APIENTRY * PGLFNTEXCOORD3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void (APIENTRY * PGLFNTEXCOORD4HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s);
+typedef void (APIENTRY * PGLFNMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t);
+typedef void (APIENTRY * PGLFNMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void (APIENTRY * PGLFNMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void (APIENTRY * PGLFNMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNFOGCOORDHNVPROC) (GLhalfNV fog);
+typedef void (APIENTRY * PGLFNFOGCOORDHVNVPROC) (const GLhalfNV *fog);
+typedef void (APIENTRY * PGLFNSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void (APIENTRY * PGLFNSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNVERTEXWEIGHTHNVPROC) (GLhalfNV weight);
+typedef void (APIENTRY * PGLFNVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight);
+typedef void (APIENTRY * PGLFNVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x);
+typedef void (APIENTRY * PGLFNVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y);
+typedef void (APIENTRY * PGLFNVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void (APIENTRY * PGLFNVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void (APIENTRY * PGLFNVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (APIENTRY * PGLFNVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+
/* GL_NV_fog_distance */
#ifndef GL_NV_fog_distance
#define GL_NV_fog_distance 1
@@ -1675,6 +1729,7 @@ typedef enum _GL_SupportedExt {
EXT_TEXTURE_SRGB,
EXT_VERTEX_WEIGHTING,
/* NVIDIA */
+ NV_HALF_FLOAT,
NV_FOG_DISTANCE,
NV_FRAGMENT_PROGRAM,
NV_FRAGMENT_PROGRAM2,
@@ -1898,6 +1953,53 @@ typedef enum _GL_SupportedExt {
/* GL_ATI_separate_stencil */ \
USE_GL_FUNC(PGLFNSTENCILOPSEPARATEATIPROC, glStencilOpSeparateATI); \
USE_GL_FUNC(PGLFNSTENCILFUNCSEPARATEATIPROC, glStencilFuncSeparateATI); \
+ /* GL_NV_half_float */ \
+ USE_GL_FUNC(PGLFNVERTEX2HNVPROC, glVertex2hNV); \
+ USE_GL_FUNC(PGLFNVERTEX2HVNVPROC, glVertex2hvNV); \
+ USE_GL_FUNC(PGLFNVERTEX3HNVPROC, glVertex3hNV); \
+ USE_GL_FUNC(PGLFNVERTEX3HVNVPROC, glVertex3hvNV); \
+ USE_GL_FUNC(PGLFNVERTEX4HNVPROC, glVertex4hNV); \
+ USE_GL_FUNC(PGLFNVERTEX4HVNVPROC, glVertex4hvNV); \
+ USE_GL_FUNC(PGLFNNORMAL3HNVPROC, glNormal3hNV); \
+ USE_GL_FUNC(PGLFNNORMAL3HVNVPROC, glNormal3hvNV); \
+ USE_GL_FUNC(PGLFNCOLOR3HNVPROC, glColor3hNV); \
+ USE_GL_FUNC(PGLFNCOLOR3HVNVPROC, glColor3hvNV); \
+ USE_GL_FUNC(PGLFNCOLOR4HNVPROC, glColor4hNV); \
+ USE_GL_FUNC(PGLFNCOLOR4HVNVPROC, glColor4hvNV); \
+ USE_GL_FUNC(PGLFNTEXCOORD1HNVPROC, glTexCoord1hNV); \
+ USE_GL_FUNC(PGLFNTEXCOORD1HVNVPROC, glTexCoord1hvNV); \
+ USE_GL_FUNC(PGLFNTEXCOORD2HNVPROC, glTexCoord2hNV); \
+ USE_GL_FUNC(PGLFNTEXCOORD2HVNVPROC, glTexCoord2hvNV); \
+ USE_GL_FUNC(PGLFNTEXCOORD3HNVPROC, glTexCoord3hNV); \
+ USE_GL_FUNC(PGLFNTEXCOORD3HVNVPROC, glTexCoord3hvNV); \
+ USE_GL_FUNC(PGLFNTEXCOORD4HNVPROC, glTexCoord4hNV); \
+ USE_GL_FUNC(PGLFNTEXCOORD4HVNVPROC, glTexCoord4hvNV); \
+ USE_GL_FUNC(PGLFNMULTITEXCOORD1HNVPROC, glMultiTexCoord1hNV); \
+ USE_GL_FUNC(PGLFNMULTITEXCOORD1HVNVPROC, glMultiTexCoord1hvNV); \
+ USE_GL_FUNC(PGLFNMULTITEXCOORD2HNVPROC, glMultiTexCoord2hNV); \
+ USE_GL_FUNC(PGLFNMULTITEXCOORD2HVNVPROC, glMultiTexCoord2hvNV); \
+ USE_GL_FUNC(PGLFNMULTITEXCOORD3HNVPROC, glMultiTexCoord3hNV); \
+ USE_GL_FUNC(PGLFNMULTITEXCOORD3HVNVPROC, glMultiTexCoord3hvNV); \
+ USE_GL_FUNC(PGLFNMULTITEXCOORD4HNVPROC, glMultiTexCoord4hNV); \
+ USE_GL_FUNC(PGLFNMULTITEXCOORD4HVNVPROC, glMultiTexCoord4hvNV); \
+ USE_GL_FUNC(PGLFNFOGCOORDHNVPROC, glFogCoordhNV); \
+ USE_GL_FUNC(PGLFNFOGCOORDHVNVPROC, glFogCoordhvNV); \
+ USE_GL_FUNC(PGLFNSECONDARYCOLOR3HNVPROC, glSecondaryColor3hNV); \
+ USE_GL_FUNC(PGLFNSECONDARYCOLOR3HVNVPROC, glSecondaryColor3hvNV); \
+ USE_GL_FUNC(PGLFNVERTEXWEIGHTHNVPROC, glVertexWeighthNV); \
+ USE_GL_FUNC(PGLFNVERTEXWEIGHTHVNVPROC, glVertexWeighthvNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIB1HNVPROC, glVertexAttrib1hNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIB1HVNVPROC, glVertexAttrib1hvNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIB2HNVPROC, glVertexAttrib2hNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIB2HVNVPROC, glVertexAttrib2hvNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIB3HNVPROC, glVertexAttrib3hNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIB3HVNVPROC, glVertexAttrib3hvNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIB4HNVPROC, glVertexAttrib4hNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIB4HVNVPROC, glVertexAttrib4hvNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIBS1HVNVPROC, glVertexAttribs1hvNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIBS2HVNVPROC, glVertexAttribs2hvNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIBS3HVNVPROC, glVertexAttribs3hvNV); \
+ USE_GL_FUNC(PGLFNVERTEXATTRIBS4HVNVPROC, glVertexAttribs4hvNV); \
/* GL_NV_register_combiners */ \
USE_GL_FUNC(PGLFNCOMBINERINPUTNVPROC, glCombinerInputNV); \
USE_GL_FUNC(PGLFNCOMBINEROUTPUTNVPROC, glCombinerOutputNV); \
More information about the wine-cvs
mailing list