glu32: Import quadric functions from Mesa.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2017-04-14 09:36:54 +02:00
parent 03c5ab2e72
commit 845b1ff5bf
4 changed files with 1189 additions and 126 deletions

View file

@ -4,4 +4,5 @@ IMPORTS = opengl32
C_SRCS = \
glu.c \
project.c
project.c \
quad.c

View file

@ -125,11 +125,8 @@ static void (*p_gluBeginSurface)( GLUnurbs* nurb );
static void (*p_gluBeginTrim)( GLUnurbs* nurb );
static GLint (*p_gluBuild1DMipmaps)( GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data );
static GLint (*p_gluBuild2DMipmaps)( GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data );
static void (*p_gluCylinder)( GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks );
static void (*p_gluDeleteNurbsRenderer)( GLUnurbs* nurb );
static void (*p_gluDeleteQuadric)( GLUquadric* quad );
static void (*p_gluDeleteTess)( GLUtesselator* tess );
static void (*p_gluDisk)( GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops );
static void (*p_gluEndCurve)( GLUnurbs* nurb );
static void (*p_gluEndSurface)( GLUnurbs* nurb );
static void (*p_gluEndTrim)( GLUnurbs* nurb );
@ -137,21 +134,13 @@ static void (*p_gluGetNurbsProperty)( GLUnurbs* nurb, GLenum property, GLfloat*
static void (*p_gluGetTessProperty)( GLUtesselator* tess, GLenum which, GLdouble* data );
static void (*p_gluLoadSamplingMatrices)( GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view );
static GLUnurbs* (*p_gluNewNurbsRenderer)(void);
static GLUquadric* (*p_gluNewQuadric)(void);
static GLUtesselator* (*p_gluNewTess)(void);
static void (*p_gluNurbsCallback)( GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc );
static void (*p_gluNurbsCurve)( GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type );
static void (*p_gluNurbsProperty)( GLUnurbs* nurb, GLenum property, GLfloat value );
static void (*p_gluNurbsSurface)( GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type );
static void (*p_gluPartialDisk)( GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep );
static void (*p_gluPwlCurve)( GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type );
static void (*p_gluQuadricCallback)( GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc );
static void (*p_gluQuadricDrawStyle)( GLUquadric* quad, GLenum draw );
static void (*p_gluQuadricNormals)( GLUquadric* quad, GLenum normal );
static void (*p_gluQuadricOrientation)( GLUquadric* quad, GLenum orientation );
static void (*p_gluQuadricTexture)( GLUquadric* quad, GLboolean texture );
static GLint (*p_gluScaleImage)( GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut );
static void (*p_gluSphere)( GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks );
static void (*p_gluTessBeginContour)( GLUtesselator* tess );
static void (*p_gluTessBeginPolygon)( GLUtesselator* tess, GLvoid* data );
static void (*p_gluTessCallback)( GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc );
@ -253,109 +242,6 @@ int WINAPI wine_gluBuild2DMipmaps( GLenum target, GLint components, GLint width,
return p_gluBuild2DMipmaps( target, components, width, height, format, type, data );
}
/***********************************************************************
* gluNewQuadric (GLU32.@)
*/
GLUquadric * WINAPI wine_gluNewQuadric(void)
{
if (!LOAD_FUNCPTR( gluNewQuadric )) return NULL;
return p_gluNewQuadric();
}
/***********************************************************************
* gluDeleteQuadric (GLU32.@)
*/
void WINAPI wine_gluDeleteQuadric( GLUquadric *state )
{
if (!LOAD_FUNCPTR( gluDeleteQuadric )) return;
p_gluDeleteQuadric( state );
}
/***********************************************************************
* gluQuadricDrawStyle (GLU32.@)
*/
void WINAPI wine_gluQuadricDrawStyle( GLUquadric *quadObject, GLenum drawStyle )
{
if (!LOAD_FUNCPTR( gluQuadricDrawStyle )) return;
p_gluQuadricDrawStyle( quadObject, drawStyle );
}
/***********************************************************************
* gluQuadricOrientation (GLU32.@)
*/
void WINAPI wine_gluQuadricOrientation( GLUquadric *quadObject, GLenum orientation )
{
if (!LOAD_FUNCPTR( gluQuadricOrientation )) return;
p_gluQuadricOrientation( quadObject, orientation );
}
/***********************************************************************
* gluQuadricNormals (GLU32.@)
*/
void WINAPI wine_gluQuadricNormals( GLUquadric *quadObject, GLenum normals )
{
if (!LOAD_FUNCPTR( gluQuadricNormals )) return;
p_gluQuadricNormals( quadObject, normals );
}
/***********************************************************************
* gluQuadricTexture (GLU32.@)
*/
void WINAPI wine_gluQuadricTexture( GLUquadric *quadObject, GLboolean textureCoords )
{
if (!LOAD_FUNCPTR( gluQuadricTexture )) return;
p_gluQuadricTexture( quadObject, textureCoords );
}
/***********************************************************************
* gluQuadricCallback (GLU32.@)
*/
void WINAPI wine_gluQuadricCallback( GLUquadric *qobj, GLenum which, void (CALLBACK *fn)(void) )
{
if (!LOAD_FUNCPTR( gluQuadricCallback )) return;
/* FIXME: callback calling convention */
p_gluQuadricCallback( qobj, which, (_GLUfuncptr)fn );
}
/***********************************************************************
* gluCylinder (GLU32.@)
*/
void WINAPI wine_gluCylinder( GLUquadric *qobj, GLdouble baseRadius, GLdouble topRadius,
GLdouble height, GLint slices, GLint stacks )
{
if (!LOAD_FUNCPTR( gluCylinder )) return;
p_gluCylinder( qobj, baseRadius, topRadius, height, slices, stacks );
}
/***********************************************************************
* gluSphere (GLU32.@)
*/
void WINAPI wine_gluSphere( GLUquadric *qobj, GLdouble radius, GLint slices, GLint stacks )
{
if (!LOAD_FUNCPTR( gluSphere )) return;
p_gluSphere( qobj, radius, slices, stacks );
}
/***********************************************************************
* gluDisk (GLU32.@)
*/
void WINAPI wine_gluDisk( GLUquadric *qobj, GLdouble innerRadius, GLdouble outerRadius,
GLint slices, GLint loops )
{
if (!LOAD_FUNCPTR( gluDisk )) return;
p_gluDisk( qobj, innerRadius, outerRadius, slices, loops );
}
/***********************************************************************
* gluPartialDisk (GLU32.@)
*/
void WINAPI wine_gluPartialDisk( GLUquadric *qobj, GLdouble innerRadius, GLdouble outerRadius,
GLint slices, GLint loops, GLdouble startAngle, GLdouble sweepAngle )
{
if (!LOAD_FUNCPTR( gluPartialDisk )) return;
p_gluPartialDisk( qobj, innerRadius, outerRadius, slices, loops, startAngle, sweepAngle );
}
/***********************************************************************
* gluNewNurbsRenderer (GLU32.@)
*/

View file

@ -5,11 +5,11 @@
@ stdcall gluBuild1DMipmaps(long long long long long ptr) wine_gluBuild1DMipmaps
@ stdcall gluBuild2DMipmaps(long long long long long long ptr) wine_gluBuild2DMipmaps
@ stdcall gluCheckExtension(str ptr) wine_gluCheckExtension
@ stdcall gluCylinder(ptr double double double long long) wine_gluCylinder
@ stdcall gluCylinder(ptr double double double long long)
@ stdcall gluDeleteNurbsRenderer(ptr) wine_gluDeleteNurbsRenderer
@ stdcall gluDeleteQuadric(ptr) wine_gluDeleteQuadric
@ stdcall gluDeleteQuadric(ptr)
@ stdcall gluDeleteTess(ptr) wine_gluDeleteTess
@ stdcall gluDisk(ptr double double long long) wine_gluDisk
@ stdcall gluDisk(ptr double double long long)
@ stdcall gluEndCurve(ptr) wine_gluEndCurve
@ stdcall gluEndPolygon(ptr) wine_gluEndPolygon
@ stdcall gluEndSurface(ptr) wine_gluEndSurface
@ -22,7 +22,7 @@
@ stdcall gluLoadSamplingMatrices(ptr ptr ptr ptr) wine_gluLoadSamplingMatrices
@ stdcall gluLookAt(double double double double double double double double double)
@ stdcall gluNewNurbsRenderer() wine_gluNewNurbsRenderer
@ stdcall gluNewQuadric() wine_gluNewQuadric
@ stdcall gluNewQuadric()
@ stdcall gluNewTess() wine_gluNewTess
@ stdcall gluNextContour(ptr long) wine_gluNextContour
@ stdcall gluNurbsCallback(ptr long ptr) wine_gluNurbsCallback
@ -30,18 +30,18 @@
@ stdcall gluNurbsProperty(ptr long long) wine_gluNurbsProperty
@ stdcall gluNurbsSurface(ptr long ptr long ptr long long ptr long long long) wine_gluNurbsSurface
@ stdcall gluOrtho2D(double double double double)
@ stdcall gluPartialDisk(ptr double double long long double double) wine_gluPartialDisk
@ stdcall gluPartialDisk(ptr double double long long double double)
@ stdcall gluPerspective(double double double double)
@ stdcall gluPickMatrix(double double double double ptr)
@ stdcall gluProject(double double double ptr ptr ptr ptr ptr ptr)
@ stdcall gluPwlCurve(ptr long ptr long long) wine_gluPwlCurve
@ stdcall gluQuadricCallback(ptr long ptr) wine_gluQuadricCallback
@ stdcall gluQuadricDrawStyle(ptr long) wine_gluQuadricDrawStyle
@ stdcall gluQuadricNormals(ptr long) wine_gluQuadricNormals
@ stdcall gluQuadricOrientation(ptr long) wine_gluQuadricOrientation
@ stdcall gluQuadricTexture(ptr long) wine_gluQuadricTexture
@ stdcall gluQuadricCallback(ptr long ptr)
@ stdcall gluQuadricDrawStyle(ptr long)
@ stdcall gluQuadricNormals(ptr long)
@ stdcall gluQuadricOrientation(ptr long)
@ stdcall gluQuadricTexture(ptr long)
@ stdcall gluScaleImage(long long long long ptr long long long ptr) wine_gluScaleImage
@ stdcall gluSphere(ptr double long long) wine_gluSphere
@ stdcall gluSphere(ptr double long long)
@ stdcall gluTessBeginContour(ptr) wine_gluTessBeginContour
@ stdcall gluTessBeginPolygon(ptr ptr) wine_gluTessBeginPolygon
@ stdcall gluTessCallback(ptr long ptr) wine_gluTessCallback

1176
dlls/glu32/quad.c Normal file

File diff suppressed because it is too large Load diff