added test implementation of GL_ARB_window_pos

This commit is contained in:
Brian Paul
2001-11-18 23:52:37 +00:00
parent 17fe22d3bf
commit 5b7dab2e4c
12 changed files with 1010 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
# $Id: APIspec,v 1.1 2001/11/18 22:43:16 brianp Exp $
# $Id: APIspec,v 1.2 2001/11/18 23:52:38 brianp Exp $
# This file describes all the OpenGL functions.
# We use a number of Python scripts to parse this file and
@@ -7227,3 +7227,114 @@ param v const GLubyte *
category GL_NV_vertex_program
offset ?
# GL_ARB_window_pos
name WindowPos2dARB
return void
param x GLdouble
param y GLdouble
category GL_ARB_window_pos
offset 578 # unofficial
name WindowPos2fARB
return void
param x GLfloat
param y GLfloat
category GL_ARB_window_pos
offset 579 # unofficial
name WindowPos2iARB
return void
param x GLint
param y GLint
category GL_ARB_window_pos
offset 580 # unofficial
name WindowPos2sARB
return void
param x GLshort
param y GLshort
category GL_ARB_window_pos
offset 581 # unofficial
name WindowPos2dvARB
return void
param p const GLdouble *
category GL_ARB_window_pos
offset 582 # unofficial
name WindowPos2fvARB
return void
param p const GLfloat *
category GL_ARB_window_pos
offset 583 # unofficial
name WindowPos2ivARB
return void
param p const GLint *
category GL_ARB_window_pos
offset 584 # unofficial
name WindowPos2svARB
return void
param p const GLshort *
category GL_ARB_window_pos
offset 585 # unofficial
name WindowPos3dARB
return void
param x GLdouble
param y GLdouble
param z GLdouble
category GL_ARB_window_pos
offset 586 # unofficial
name WindowPos3fARB
return void
param x GLfloat
param y GLfloat
param z GLfloat
category GL_ARB_window_pos
offset 587 # unofficial
name WindowPos3iARB
return void
param x GLint
param y GLint
param z GLint
category GL_ARB_window_pos
offset 588 # unofficial
name WindowPos3sARB
return void
param x GLshort
param y GLshort
param z GLshort
category GL_ARB_window_pos
offset 589 # unofficial
name WindowPos3dvARB
return void
param p const GLdouble *
category GL_ARB_window_pos
offset 590 # unofficial
name WindowPos3fvARB
return void
param p const GLfloat *
category GL_ARB_window_pos
offset 591 # unofficial
name WindowPos3ivARB
return void
param p const GLint *
category GL_ARB_window_pos
offset 592 # unofficial
name WindowPos3svARB
return void
param p const GLshort *
category GL_ARB_window_pos
offset 593 # unofficial

View File

@@ -580,5 +580,21 @@
#define _gloffset_SecondaryColor3usEXT 575
#define _gloffset_SecondaryColor3usvEXT 576
#define _gloffset_SecondaryColorPointerEXT 577
#define _gloffset_WindowPos2dARB 578
#define _gloffset_WindowPos2fARB 579
#define _gloffset_WindowPos2iARB 580
#define _gloffset_WindowPos2sARB 581
#define _gloffset_WindowPos2dvARB 582
#define _gloffset_WindowPos2fvARB 583
#define _gloffset_WindowPos2ivARB 584
#define _gloffset_WindowPos2svARB 585
#define _gloffset_WindowPos3dARB 586
#define _gloffset_WindowPos3fARB 587
#define _gloffset_WindowPos3iARB 588
#define _gloffset_WindowPos3sARB 589
#define _gloffset_WindowPos3dvARB 590
#define _gloffset_WindowPos3fvARB 591
#define _gloffset_WindowPos3ivARB 592
#define _gloffset_WindowPos3svARB 593
#endif

View File

@@ -584,6 +584,22 @@ struct _glapi_table
void (*SecondaryColor3usEXT)(GLushort red, GLushort green, GLushort blue); /* 575 */
void (*SecondaryColor3usvEXT)(const GLushort * v); /* 576 */
void (*SecondaryColorPointerEXT)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 577 */
void (*WindowPos2dARB)(GLdouble x, GLdouble y); /* 578 */
void (*WindowPos2fARB)(GLfloat x, GLfloat y); /* 579 */
void (*WindowPos2iARB)(GLint x, GLint y); /* 580 */
void (*WindowPos2sARB)(GLshort x, GLshort y); /* 581 */
void (*WindowPos2dvARB)(const GLdouble * p); /* 582 */
void (*WindowPos2fvARB)(const GLfloat * p); /* 583 */
void (*WindowPos2ivARB)(const GLint * p); /* 584 */
void (*WindowPos2svARB)(const GLshort * p); /* 585 */
void (*WindowPos3dARB)(GLdouble x, GLdouble y, GLdouble z); /* 586 */
void (*WindowPos3fARB)(GLfloat x, GLfloat y, GLfloat z); /* 587 */
void (*WindowPos3iARB)(GLint x, GLint y, GLint z); /* 588 */
void (*WindowPos3sARB)(GLshort x, GLshort y, GLshort z); /* 589 */
void (*WindowPos3dvARB)(const GLdouble * p); /* 590 */
void (*WindowPos3fvARB)(const GLfloat * p); /* 591 */
void (*WindowPos3ivARB)(const GLint * p); /* 592 */
void (*WindowPos3svARB)(const GLshort * p); /* 593 */
};
#endif

View File

@@ -3610,6 +3610,87 @@ KEYWORD1 void KEYWORD2 NAME(SamplePatternEXT)(GLenum pattern)
/* No dispatch for VertexAttribs4svNV() */
/* No dispatch for VertexAttribs4fvNV() */
/* No dispatch for VertexAttribs4dvNV() */
/* No dispatch for VertexAttribs4ubvNV() */
KEYWORD1 void KEYWORD2 NAME(WindowPos2dARB)(GLdouble x, GLdouble y)
{
DISPATCH(WindowPos2dARB, (x, y), (F, "glWindowPos2dARB(%f, %f);", x, y));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2fARB)(GLfloat x, GLfloat y)
{
DISPATCH(WindowPos2fARB, (x, y), (F, "glWindowPos2fARB(%f, %f);", x, y));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2iARB)(GLint x, GLint y)
{
DISPATCH(WindowPos2iARB, (x, y), (F, "glWindowPos2iARB(%d, %d);", x, y));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2sARB)(GLshort x, GLshort y)
{
DISPATCH(WindowPos2sARB, (x, y), (F, "glWindowPos2sARB(%d, %d);", x, y));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2dvARB)(const GLdouble * p)
{
DISPATCH(WindowPos2dvARB, (p), (F, "glWindowPos2dvARB(%p);", (void *) p));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2fvARB)(const GLfloat * p)
{
DISPATCH(WindowPos2fvARB, (p), (F, "glWindowPos2fvARB(%p);", (void *) p));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2ivARB)(const GLint * p)
{
DISPATCH(WindowPos2ivARB, (p), (F, "glWindowPos2ivARB(%p);", (void *) p));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2svARB)(const GLshort * p)
{
DISPATCH(WindowPos2svARB, (p), (F, "glWindowPos2svARB(%p);", (void *) p));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3dARB)(GLdouble x, GLdouble y, GLdouble z)
{
DISPATCH(WindowPos3dARB, (x, y, z), (F, "glWindowPos3dARB(%f, %f, %f);", x, y, z));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3fARB)(GLfloat x, GLfloat y, GLfloat z)
{
DISPATCH(WindowPos3fARB, (x, y, z), (F, "glWindowPos3fARB(%f, %f, %f);", x, y, z));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3iARB)(GLint x, GLint y, GLint z)
{
DISPATCH(WindowPos3iARB, (x, y, z), (F, "glWindowPos3iARB(%d, %d, %d);", x, y, z));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3sARB)(GLshort x, GLshort y, GLshort z)
{
DISPATCH(WindowPos3sARB, (x, y, z), (F, "glWindowPos3sARB(%d, %d, %d);", x, y, z));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3dvARB)(const GLdouble * p)
{
DISPATCH(WindowPos3dvARB, (p), (F, "glWindowPos3dvARB(%p);", (void *) p));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3fvARB)(const GLfloat * p)
{
DISPATCH(WindowPos3fvARB, (p), (F, "glWindowPos3fvARB(%p);", (void *) p));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3ivARB)(const GLint * p)
{
DISPATCH(WindowPos3ivARB, (p), (F, "glWindowPos3ivARB(%p);", (void *) p));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3svARB)(const GLshort * p)
{
DISPATCH(WindowPos3svARB, (p), (F, "glWindowPos3svARB(%p);", (void *) p));
}
/*
@@ -4201,6 +4282,22 @@ void *DISPATCH_TABLE_NAME[] = {
TABLE_ENTRY(SecondaryColor3usEXT),
TABLE_ENTRY(SecondaryColor3usvEXT),
TABLE_ENTRY(SecondaryColorPointerEXT),
TABLE_ENTRY(WindowPos2dARB),
TABLE_ENTRY(WindowPos2fARB),
TABLE_ENTRY(WindowPos2iARB),
TABLE_ENTRY(WindowPos2sARB),
TABLE_ENTRY(WindowPos2dvARB),
TABLE_ENTRY(WindowPos2fvARB),
TABLE_ENTRY(WindowPos2ivARB),
TABLE_ENTRY(WindowPos2svARB),
TABLE_ENTRY(WindowPos3dARB),
TABLE_ENTRY(WindowPos3fARB),
TABLE_ENTRY(WindowPos3iARB),
TABLE_ENTRY(WindowPos3sARB),
TABLE_ENTRY(WindowPos3dvARB),
TABLE_ENTRY(WindowPos3fvARB),
TABLE_ENTRY(WindowPos3ivARB),
TABLE_ENTRY(WindowPos3svARB),
/* A whole bunch of no-op functions. These might be called
* when someone tries to call a dynamically-registered
* extension function without a current rendering context.

View File

@@ -1,8 +1,8 @@
/* $Id: dlist.c,v 1.77 2001/11/18 22:48:11 brianp Exp $ */
/* $Id: dlist.c,v 1.78 2001/11/18 23:52:37 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -242,6 +242,8 @@ typedef enum {
OPCODE_COMPRESSED_TEX_SUB_IMAGE_3D,
/* GL_ARB_multisample */
OPCODE_SAMPLE_COVERAGE,
/* GL_ARB_window_pos */
OPCODE_WINDOW_POS_ARB,
/* The following three are meta instructions */
OPCODE_ERROR, /* raise compiled-in error */
OPCODE_CONTINUE,
@@ -627,6 +629,8 @@ void _mesa_init_lists( void )
InstSize[OPCODE_SAMPLE_COVERAGE] = 3;
/* GL_ARB_multitexture */
InstSize[OPCODE_ACTIVE_TEXTURE] = 2;
/* GL_ARB_window_pos */
InstSize[OPCODE_WINDOW_POS_ARB] = 4;
}
init_flag = 1;
}
@@ -3546,6 +3550,103 @@ static void save_WindowPos4svMESA(const GLshort *v)
/*
* GL_ARB_window_pos
*/
static void save_WindowPos3fARB( GLfloat x, GLfloat y, GLfloat z )
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
FLUSH_CURRENT(ctx, 0);
n = ALLOC_INSTRUCTION( ctx, OPCODE_WINDOW_POS_ARB, 3 );
if (n) {
n[1].f = x;
n[2].f = y;
n[3].f = z;
}
if (ctx->ExecuteFlag) {
(*ctx->Exec->WindowPos3fMESA)( x, y, z );
}
}
static void save_WindowPos2dARB(GLdouble x, GLdouble y)
{
save_WindowPos3fARB((GLfloat) x, (GLfloat) y, 0.0F);
}
static void save_WindowPos2fARB(GLfloat x, GLfloat y)
{
save_WindowPos3fARB(x, y, 0.0F);
}
static void save_WindowPos2iARB(GLint x, GLint y)
{
save_WindowPos3fARB((GLfloat) x, (GLfloat) y, 0.0F);
}
static void save_WindowPos2sARB(GLshort x, GLshort y)
{
save_WindowPos3fARB(x, y, 0.0F);
}
static void save_WindowPos3dARB(GLdouble x, GLdouble y, GLdouble z)
{
save_WindowPos3fARB((GLfloat) x, (GLfloat) y, (GLfloat) z);
}
static void save_WindowPos3iARB(GLint x, GLint y, GLint z)
{
save_WindowPos3fARB((GLfloat) x, (GLfloat) y, (GLfloat) z);
}
static void save_WindowPos3sARB(GLshort x, GLshort y, GLshort z)
{
save_WindowPos3fARB(x, y, z);
}
static void save_WindowPos2dvARB(const GLdouble *v)
{
save_WindowPos3fARB((GLfloat) v[0], (GLfloat) v[1], 0.0F);
}
static void save_WindowPos2fvARB(const GLfloat *v)
{
save_WindowPos3fARB(v[0], v[1], 0.0F);
}
static void save_WindowPos2ivARB(const GLint *v)
{
save_WindowPos3fARB((GLfloat) v[0], (GLfloat) v[1], 0.0F);
}
static void save_WindowPos2svARB(const GLshort *v)
{
save_WindowPos3fARB(v[0], v[1], 0.0F);
}
static void save_WindowPos3dvARB(const GLdouble *v)
{
save_WindowPos3fARB((GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
}
static void save_WindowPos3fvARB(const GLfloat *v)
{
save_WindowPos3fARB(v[0], v[1], v[2]);
}
static void save_WindowPos3ivARB(const GLint *v)
{
save_WindowPos3fARB((GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
}
static void save_WindowPos3svARB(const GLshort *v)
{
save_WindowPos3fARB(v[0], v[1], v[2]);
}
/* GL_ARB_multitexture */
static void save_ActiveTextureARB( GLenum target )
{
@@ -4611,6 +4712,9 @@ execute_list( GLcontext *ctx, GLuint list )
case OPCODE_SAMPLE_COVERAGE: /* GL_ARB_multisample */
(*ctx->Exec->SampleCoverage)(n[1].f, n[2].b);
break;
case OPCODE_WINDOW_POS_ARB: /* GL_ARB_window_pos */
(*ctx->Exec->WindowPos3fARB)( n[1].f, n[2].f, n[3].f );
break;
case OPCODE_CONTINUE:
n = (Node *) n[1].next;
break;
@@ -5898,6 +6002,24 @@ _mesa_init_dlist_table( struct _glapi_table *table, GLuint tableSize )
/* GL_EXT_fog_coord */
table->FogCoordPointerEXT = exec_FogCoordPointerEXT;
/* GL_ARB_window_pos */
table->WindowPos2dARB = save_WindowPos2dARB;
table->WindowPos2dvARB = save_WindowPos2dvARB;
table->WindowPos2fARB = save_WindowPos2fARB;
table->WindowPos2fvARB = save_WindowPos2fvARB;
table->WindowPos2iARB = save_WindowPos2iARB;
table->WindowPos2ivARB = save_WindowPos2ivARB;
table->WindowPos2sARB = save_WindowPos2sARB;
table->WindowPos2svARB = save_WindowPos2svARB;
table->WindowPos3dARB = save_WindowPos3dARB;
table->WindowPos3dvARB = save_WindowPos3dvARB;
table->WindowPos3fARB = save_WindowPos3fARB;
table->WindowPos3fvARB = save_WindowPos3fvARB;
table->WindowPos3iARB = save_WindowPos3iARB;
table->WindowPos3ivARB = save_WindowPos3ivARB;
table->WindowPos3sARB = save_WindowPos3sARB;
table->WindowPos3svARB = save_WindowPos3svARB;
}

View File

@@ -673,5 +673,21 @@ static struct name_address_offset static_functions[] = {
{ "glTbufferMask3DFX", (GLvoid *) glTbufferMask3DFX, _gloffset_TbufferMask3DFX },
{ "glSampleMaskEXT", (GLvoid *) glSampleMaskEXT, _gloffset_SampleMaskSGIS },
{ "glSamplePatternEXT", (GLvoid *) glSamplePatternEXT, _gloffset_SamplePatternSGIS },
{ "glWindowPos2dARB", (GLvoid *) glWindowPos2dARB, _gloffset_WindowPos2dARB },
{ "glWindowPos2fARB", (GLvoid *) glWindowPos2fARB, _gloffset_WindowPos2fARB },
{ "glWindowPos2iARB", (GLvoid *) glWindowPos2iARB, _gloffset_WindowPos2iARB },
{ "glWindowPos2sARB", (GLvoid *) glWindowPos2sARB, _gloffset_WindowPos2sARB },
{ "glWindowPos2dvARB", (GLvoid *) glWindowPos2dvARB, _gloffset_WindowPos2dvARB },
{ "glWindowPos2fvARB", (GLvoid *) glWindowPos2fvARB, _gloffset_WindowPos2fvARB },
{ "glWindowPos2ivARB", (GLvoid *) glWindowPos2ivARB, _gloffset_WindowPos2ivARB },
{ "glWindowPos2svARB", (GLvoid *) glWindowPos2svARB, _gloffset_WindowPos2svARB },
{ "glWindowPos3dARB", (GLvoid *) glWindowPos3dARB, _gloffset_WindowPos3dARB },
{ "glWindowPos3fARB", (GLvoid *) glWindowPos3fARB, _gloffset_WindowPos3fARB },
{ "glWindowPos3iARB", (GLvoid *) glWindowPos3iARB, _gloffset_WindowPos3iARB },
{ "glWindowPos3sARB", (GLvoid *) glWindowPos3sARB, _gloffset_WindowPos3sARB },
{ "glWindowPos3dvARB", (GLvoid *) glWindowPos3dvARB, _gloffset_WindowPos3dvARB },
{ "glWindowPos3fvARB", (GLvoid *) glWindowPos3fvARB, _gloffset_WindowPos3fvARB },
{ "glWindowPos3ivARB", (GLvoid *) glWindowPos3ivARB, _gloffset_WindowPos3ivARB },
{ "glWindowPos3svARB", (GLvoid *) glWindowPos3svARB, _gloffset_WindowPos3svARB },
{ NULL, NULL } /* end of list marker */
};

View File

@@ -1,8 +1,8 @@
/* $Id: mtypes.h,v 1.52 2001/11/06 15:53:00 brianp Exp $ */
/* $Id: mtypes.h,v 1.53 2001/11/18 23:52:37 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -1204,6 +1204,7 @@ struct gl_extensions {
GLboolean ARB_texture_env_combine;
GLboolean ARB_texture_env_dot3;
GLboolean ARB_texture_mirrored_repeat;
GLboolean ARB_window_pos;
GLboolean EXT_blend_color;
GLboolean EXT_blend_func_separate;
GLboolean EXT_blend_logic_op;

View File

@@ -1,4 +1,4 @@
/* $Id: rastpos.c,v 1.31 2001/09/18 23:06:14 kschultz Exp $ */
/* $Id: rastpos.c,v 1.32 2001/11/18 23:52:38 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -764,3 +764,139 @@ void glWindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w )
}
#endif
/**********************************************************************/
/*** GL_ARB_window_pos ***/
/**********************************************************************/
void _mesa_WindowPos2dARB(GLdouble x, GLdouble y)
{
_mesa_WindowPos3fARB((GLfloat) x, (GLfloat) y, 0.0F);
}
void _mesa_WindowPos2fARB(GLfloat x, GLfloat y)
{
_mesa_WindowPos3fARB(x, y, 0.0F);
}
void _mesa_WindowPos2iARB(GLint x, GLint y)
{
_mesa_WindowPos3fARB((GLfloat) x, (GLfloat) y, 0.0F);
}
void _mesa_WindowPos2sARB(GLshort x, GLshort y)
{
_mesa_WindowPos3fARB((GLfloat) x, (GLfloat) y, 0.0F);
}
void _mesa_WindowPos2dvARB(const GLdouble *p)
{
_mesa_WindowPos3fARB((GLfloat) p[0], (GLfloat) p[1], 0.0F);
}
void _mesa_WindowPos2fvARB(const GLfloat *p)
{
_mesa_WindowPos3fARB((GLfloat) p[0], (GLfloat) p[1], 0.0F);
}
void _mesa_WindowPos2ivARB(const GLint *p)
{
_mesa_WindowPos3fARB((GLfloat) p[0], (GLfloat) p[1], 0.0F);
}
void _mesa_WindowPos2svARB(const GLshort *p)
{
_mesa_WindowPos3fARB((GLfloat) p[0], (GLfloat) p[1], 0.0F);
}
void _mesa_WindowPos3dARB(GLdouble x, GLdouble y, GLdouble z)
{
_mesa_WindowPos3fARB((GLfloat) x, (GLfloat) y, (GLfloat) z);
}
void _mesa_WindowPos3fARB(GLfloat x, GLfloat y, GLfloat z)
{
GET_CURRENT_CONTEXT(ctx);
GLfloat z2;
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
FLUSH_CURRENT(ctx, 0);
z2 = CLAMP(z, 0.0F, 1.0F) * (ctx->Viewport.Far - ctx->Viewport.Near)
+ ctx->Viewport.Near;
/* set raster position */
ctx->Current.RasterPos[0] = x;
ctx->Current.RasterPos[1] = y;
ctx->Current.RasterPos[2] = z2;
ctx->Current.RasterPos[3] = 0.0F;
ctx->Current.RasterPosValid = GL_TRUE;
/* XXX might have to change this */
ctx->Current.RasterDistance = ctx->Current.FogCoord;
ctx->Current.RasterFogCoord = ctx->Current.FogCoord;
/* raster color = current color or index */
if (ctx->Visual.rgbMode) {
ctx->Current.RasterColor[0] = CLAMP(ctx->Current.Color[0], 0.0F, 1.0F);
ctx->Current.RasterColor[1] = CLAMP(ctx->Current.Color[1], 0.0F, 1.0F);
ctx->Current.RasterColor[2] = CLAMP(ctx->Current.Color[2], 0.0F, 1.0F);
ctx->Current.RasterColor[3] = CLAMP(ctx->Current.Color[3], 0.0F, 1.0F);
ctx->Current.RasterSecondaryColor[0]
= CLAMP(ctx->Current.SecondaryColor[0], 0.0F, 1.0F);
ctx->Current.RasterSecondaryColor[1]
= CLAMP(ctx->Current.SecondaryColor[1], 0.0F, 1.0F);
ctx->Current.RasterSecondaryColor[2]
= CLAMP(ctx->Current.SecondaryColor[2], 0.0F, 1.0F);
ctx->Current.RasterSecondaryColor[3]
= CLAMP(ctx->Current.SecondaryColor[3], 0.0F, 1.0F);
}
else {
ctx->Current.RasterIndex = ctx->Current.Index;
}
/* raster texcoord = current texcoord */
{
GLuint texSet;
for (texSet = 0; texSet < ctx->Const.MaxTextureUnits; texSet++) {
COPY_4FV( ctx->Current.RasterMultiTexCoord[texSet],
ctx->Current.Texcoord[texSet] );
}
}
if (ctx->RenderMode==GL_SELECT) {
_mesa_update_hitflag( ctx, ctx->Current.RasterPos[2] );
}
}
void _mesa_WindowPos3iARB(GLint x, GLint y, GLint z)
{
_mesa_WindowPos3fARB((GLfloat) x, (GLfloat) y, (GLfloat) z);
}
void _mesa_WindowPos3sARB(GLshort x, GLshort y, GLshort z)
{
_mesa_WindowPos3fARB((GLfloat) x, (GLfloat) y, (GLfloat) z);
}
void _mesa_WindowPos3dvARB(const GLdouble *p)
{
_mesa_WindowPos3fARB((GLfloat) p[0], (GLfloat) p[1], (GLfloat) p[2]);
}
void _mesa_WindowPos3fvARB(const GLfloat *p)
{
_mesa_WindowPos3fARB(p[0], p[1], p[2]);
}
void _mesa_WindowPos3ivARB(const GLint *p)
{
_mesa_WindowPos3fARB((GLfloat) p[0], (GLfloat) p[1], (GLfloat) p[2]);
}
void _mesa_WindowPos3svARB(const GLshort *p)
{
_mesa_WindowPos3fARB((GLfloat) p[0], (GLfloat) p[1], (GLfloat) p[2]);
}

View File

@@ -1,4 +1,4 @@
/* $Id: rastpos.h,v 1.4 2001/06/18 17:26:08 brianp Exp $ */
/* $Id: rastpos.h,v 1.5 2001/11/18 23:52:38 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -182,4 +182,41 @@ extern void
_mesa_WindowPos4svMESA(const GLshort *v);
/**********************************************************************/
/*** GL_ARB_window_pos ***/
/**********************************************************************/
extern void _mesa_WindowPos2dARB(GLdouble x, GLdouble y);
extern void _mesa_WindowPos2fARB(GLfloat x, GLfloat y);
extern void _mesa_WindowPos2iARB(GLint x, GLint y);
extern void _mesa_WindowPos2sARB(GLshort x, GLshort y);
extern void _mesa_WindowPos2dvARB(const GLdouble *p);
extern void _mesa_WindowPos2fvARB(const GLfloat *p);
extern void _mesa_WindowPos2ivARB(const GLint *p);
extern void _mesa_WindowPos2svARB(const GLshort *p);
extern void _mesa_WindowPos3dARB(GLdouble x, GLdouble y, GLdouble z);
extern void _mesa_WindowPos3fARB(GLfloat x, GLfloat y, GLfloat z);
extern void _mesa_WindowPos3iARB(GLint x, GLint y, GLint z);
extern void _mesa_WindowPos3sARB(GLshort x, GLshort y, GLshort z);
extern void _mesa_WindowPos3dvARB(const GLdouble *p);
extern void _mesa_WindowPos3fvARB(const GLfloat *p);
extern void _mesa_WindowPos3ivARB(const GLint *p);
extern void _mesa_WindowPos3svARB(const GLshort *p);
#endif

View File

@@ -1,8 +1,8 @@
/* $Id: state.c,v 1.70 2001/11/18 22:48:13 brianp Exp $ */
/* $Id: state.c,v 1.71 2001/11/18 23:52:38 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -478,6 +478,23 @@ _mesa_init_exec_table(struct _glapi_table *exec, GLuint tableSize)
exec->CompressedTexSubImage1D = _mesa_CompressedTexSubImage1DARB;
exec->GetCompressedTexImage = _mesa_GetCompressedTexImageARB;
/* GL_ARB_window_pos */
exec->WindowPos2dARB = _mesa_WindowPos2dARB;
exec->WindowPos2dvARB = _mesa_WindowPos2dvARB;
exec->WindowPos2fARB = _mesa_WindowPos2fARB;
exec->WindowPos2fvARB = _mesa_WindowPos2fvARB;
exec->WindowPos2iARB = _mesa_WindowPos2iARB;
exec->WindowPos2ivARB = _mesa_WindowPos2ivARB;
exec->WindowPos2sARB = _mesa_WindowPos2sARB;
exec->WindowPos2svARB = _mesa_WindowPos2svARB;
exec->WindowPos3dARB = _mesa_WindowPos3dARB;
exec->WindowPos3dvARB = _mesa_WindowPos3dvARB;
exec->WindowPos3fARB = _mesa_WindowPos3fARB;
exec->WindowPos3fvARB = _mesa_WindowPos3fvARB;
exec->WindowPos3iARB = _mesa_WindowPos3iARB;
exec->WindowPos3ivARB = _mesa_WindowPos3ivARB;
exec->WindowPos3sARB = _mesa_WindowPos3sARB;
exec->WindowPos3svARB = _mesa_WindowPos3svARB;
}

View File

@@ -14069,6 +14069,342 @@ GL_PREFIX(SamplePatternEXT):
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_SamplePatternSGIS)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos2dARB))
.type WindowPos2dARB,#function
GL_PREFIX(WindowPos2dARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos2dARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos2dARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos2dARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos2fARB))
.type WindowPos2fARB,#function
GL_PREFIX(WindowPos2fARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos2fARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos2fARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos2fARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos2iARB))
.type WindowPos2iARB,#function
GL_PREFIX(WindowPos2iARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos2iARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos2iARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos2iARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos2sARB))
.type WindowPos2sARB,#function
GL_PREFIX(WindowPos2sARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos2sARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos2sARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos2sARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos2dvARB))
.type WindowPos2dvARB,#function
GL_PREFIX(WindowPos2dvARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos2dvARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos2dvARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos2dvARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos2fvARB))
.type WindowPos2fvARB,#function
GL_PREFIX(WindowPos2fvARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos2fvARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos2fvARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos2fvARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos2ivARB))
.type WindowPos2ivARB,#function
GL_PREFIX(WindowPos2ivARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos2ivARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos2ivARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos2ivARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos2svARB))
.type WindowPos2svARB,#function
GL_PREFIX(WindowPos2svARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos2svARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos2svARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos2svARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos3dARB))
.type WindowPos3dARB,#function
GL_PREFIX(WindowPos3dARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos3dARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos3dARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos3dARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos3fARB))
.type WindowPos3fARB,#function
GL_PREFIX(WindowPos3fARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos3fARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos3fARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos3fARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos3iARB))
.type WindowPos3iARB,#function
GL_PREFIX(WindowPos3iARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos3iARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos3iARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos3iARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos3sARB))
.type WindowPos3sARB,#function
GL_PREFIX(WindowPos3sARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos3sARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos3sARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos3sARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos3dvARB))
.type WindowPos3dvARB,#function
GL_PREFIX(WindowPos3dvARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos3dvARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos3dvARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos3dvARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos3fvARB))
.type WindowPos3fvARB,#function
GL_PREFIX(WindowPos3fvARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos3fvARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos3fvARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos3fvARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos3ivARB))
.type WindowPos3ivARB,#function
GL_PREFIX(WindowPos3ivARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos3ivARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos3ivARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos3ivARB)], %g3
#endif
jmpl %g3, %g0
nop
GLOBL_FN(GL_PREFIX(WindowPos3svARB))
.type WindowPos3svARB,#function
GL_PREFIX(WindowPos3svARB):
#ifdef __sparc_v9__
sethi %hi(0x00000000), %g2
sethi %hi(0x00000000), %g1
or %g2, %lo(0x00000000), %g2
or %g1, %lo(0x00000000), %g1
sllx %g2, 32, %g2
ldx [%g1 + %g2], %g1
sethi %hi(8 * _gloffset_WindowPos3svARB), %g2
or %g2, %lo(8 * _gloffset_WindowPos3svARB), %g2
ldx [%g1 + %g2], %g3
#else
sethi %hi(0x00000000), %g1
ld [%g1 + %lo(0x00000000)], %g1
ld [%g1 + (4 * _gloffset_WindowPos3svARB)], %g3
#endif
jmpl %g3, %g0
nop

View File

@@ -4033,5 +4033,101 @@ GL_PREFIX(SamplePatternEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_SamplePatternSGIS))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos2dARB))
GL_PREFIX(WindowPos2dARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos2dARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos2fARB))
GL_PREFIX(WindowPos2fARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos2fARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos2iARB))
GL_PREFIX(WindowPos2iARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos2iARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos2sARB))
GL_PREFIX(WindowPos2sARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos2sARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos2dvARB))
GL_PREFIX(WindowPos2dvARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos2dvARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos2fvARB))
GL_PREFIX(WindowPos2fvARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos2fvARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos2ivARB))
GL_PREFIX(WindowPos2ivARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos2ivARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos2svARB))
GL_PREFIX(WindowPos2svARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos2svARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos3dARB))
GL_PREFIX(WindowPos3dARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos3dARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos3fARB))
GL_PREFIX(WindowPos3fARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos3fARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos3iARB))
GL_PREFIX(WindowPos3iARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos3iARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos3sARB))
GL_PREFIX(WindowPos3sARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos3sARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos3dvARB))
GL_PREFIX(WindowPos3dvARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos3dvARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos3fvARB))
GL_PREFIX(WindowPos3fvARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos3fvARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos3ivARB))
GL_PREFIX(WindowPos3ivARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos3ivARB))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos3svARB))
GL_PREFIX(WindowPos3svARB):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
JMP(GL_OFFSET(_gloffset_WindowPos3svARB))
#endif /* __WIN32__ */