diff options
Diffstat (limited to 'src/mesa')
| -rw-r--r-- | src/mesa/glapi/APIspec | 113 | ||||
| -rw-r--r-- | src/mesa/glapi/glapioffsets.h | 16 | ||||
| -rw-r--r-- | src/mesa/glapi/glapitable.h | 16 | ||||
| -rw-r--r-- | src/mesa/glapi/glapitemp.h | 97 | ||||
| -rw-r--r-- | src/mesa/main/dlist.c | 126 | ||||
| -rw-r--r-- | src/mesa/main/glprocs.h | 16 | ||||
| -rw-r--r-- | src/mesa/main/mtypes.h | 5 | ||||
| -rw-r--r-- | src/mesa/main/rastpos.c | 138 | ||||
| -rw-r--r-- | src/mesa/main/rastpos.h | 39 | ||||
| -rw-r--r-- | src/mesa/main/state.c | 21 | ||||
| -rw-r--r-- | src/mesa/sparc/glapi_sparc.S | 336 | ||||
| -rw-r--r-- | src/mesa/x86/glapi_x86.S | 96 | 
12 files changed, 1010 insertions, 9 deletions
| diff --git a/src/mesa/glapi/APIspec b/src/mesa/glapi/APIspec index ea87d11258..807067b4f1 100644 --- a/src/mesa/glapi/APIspec +++ b/src/mesa/glapi/APIspec @@ -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 + diff --git a/src/mesa/glapi/glapioffsets.h b/src/mesa/glapi/glapioffsets.h index 0a83d478b3..84726084b5 100644 --- a/src/mesa/glapi/glapioffsets.h +++ b/src/mesa/glapi/glapioffsets.h @@ -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 diff --git a/src/mesa/glapi/glapitable.h b/src/mesa/glapi/glapitable.h index 53071cef83..271bce0dfd 100644 --- a/src/mesa/glapi/glapitable.h +++ b/src/mesa/glapi/glapitable.h @@ -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 diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h index 10f40d268e..76ec6cbf8f 100644 --- a/src/mesa/glapi/glapitemp.h +++ b/src/mesa/glapi/glapitemp.h @@ -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. diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index 0f4d7d875c..ea6d6d7663 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -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;  } diff --git a/src/mesa/main/glprocs.h b/src/mesa/main/glprocs.h index ca60e2cb65..f79083c9ba 100644 --- a/src/mesa/main/glprocs.h +++ b/src/mesa/main/glprocs.h @@ -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 */  }; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index b4853f64e6..f8d330b75c 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -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; diff --git a/src/mesa/main/rastpos.c b/src/mesa/main/rastpos.c index 716bef2302..a7b4e16a41 100644 --- a/src/mesa/main/rastpos.c +++ b/src/mesa/main/rastpos.c @@ -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]); +} + diff --git a/src/mesa/main/rastpos.h b/src/mesa/main/rastpos.h index 234eb76ce1..62779443c0 100644 --- a/src/mesa/main/rastpos.h +++ b/src/mesa/main/rastpos.h @@ -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 diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c index 0c884e1959..66d862286e 100644 --- a/src/mesa/main/state.c +++ b/src/mesa/main/state.c @@ -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;  } diff --git a/src/mesa/sparc/glapi_sparc.S b/src/mesa/sparc/glapi_sparc.S index c4ca052ac5..95da2212f8 100644 --- a/src/mesa/sparc/glapi_sparc.S +++ b/src/mesa/sparc/glapi_sparc.S @@ -14072,6 +14072,342 @@ GL_PREFIX(SamplePatternEXT):  #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  	 nop  .globl _mesa_sparc_glapi_end diff --git a/src/mesa/x86/glapi_x86.S b/src/mesa/x86/glapi_x86.S index 8ddb165a3c..a94697b560 100644 --- a/src/mesa/x86/glapi_x86.S +++ b/src/mesa/x86/glapi_x86.S @@ -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__ */ | 
