diff options
| author | Brian Paul <brian.paul@tungstengraphics.com> | 2006-11-22 16:01:48 +0000 | 
|---|---|---|
| committer | Brian Paul <brian.paul@tungstengraphics.com> | 2006-11-22 16:01:48 +0000 | 
| commit | 9540c9c04fa0b691202f419520d9c4d8d495588d (patch) | |
| tree | 9ec84da35227dc6909f5cdf4c925adbe0f2bbd7f | |
| parent | 96c0a6de25de2ba8f9601c13f67c22e1aff17b29 (diff) | |
GLX protocol fixes for glMap* functions (bug 8899)
| -rw-r--r-- | src/mesa/glapi/glX_XML.py | 4 | ||||
| -rw-r--r-- | src/mesa/glapi/gl_API.dtd | 4 | ||||
| -rw-r--r-- | src/mesa/glapi/gl_API.xml | 20 | ||||
| -rw-r--r-- | src/mesa/glapi/gl_XML.py | 5 | 
4 files changed, 19 insertions, 14 deletions
| diff --git a/src/mesa/glapi/glX_XML.py b/src/mesa/glapi/glX_XML.py index 3759e8da02..1b5c3239e0 100644 --- a/src/mesa/glapi/glX_XML.py +++ b/src/mesa/glapi/glX_XML.py @@ -262,7 +262,7 @@ class glx_function(gl_XML.gl_function):  				if param.name != self.img_reset:  					param.offset = offset -					if not param.is_variable_length(): +					if not param.is_variable_length() and not param.is_client_only:  						offset += param.size()  				if self.pad_after( param ): @@ -331,7 +331,7 @@ class glx_function(gl_XML.gl_function):  		size = 0  		for param in self.parameterIterateGlxSend(0): -			if param.name != self.img_reset: +			if param.name != self.img_reset and not param.is_client_only:  				if size == 0:  					size = param.offset + param.size()  				else: diff --git a/src/mesa/glapi/gl_API.dtd b/src/mesa/glapi/gl_API.dtd index 2f0c88aae5..f89d381866 100644 --- a/src/mesa/glapi/gl_API.dtd +++ b/src/mesa/glapi/gl_API.dtd @@ -40,6 +40,7 @@                     mode                (get | set) "set">  <!ATTLIST param    name                NMTOKEN #REQUIRED                     type                CDATA   #REQUIRED +		   client_only	       (true | false) "false"                     count               NMTOKEN #IMPLIED                     counter             (true | false) "false"                     count_scale         NMTOKEN "1" @@ -79,6 +80,9 @@ will just mean adding a '<glx ignore="true"/>' tag.  param:       name - name of the parameter       type - fully qualified type (e.g., with "const", etc.) +     client_only - boolean flag set on parameters which are interpreted only +         by the client and are not present in the protocol encoding (e.g., +	 the stride parameters to Map1f, etc.)       count - for counted arrays (e.g., the 'lists' parameter to glCallLists),           the parameter or literal that represents the count.  For functions           like glVertex3fv it will be a litteral, for others it will be one of diff --git a/src/mesa/glapi/gl_API.xml b/src/mesa/glapi/gl_API.xml index 4f3a8805e0..905c4a03a6 100644 --- a/src/mesa/glapi/gl_API.xml +++ b/src/mesa/glapi/gl_API.xml @@ -2364,9 +2364,9 @@          <param name="target" type="GLenum"/>          <param name="u1" type="GLdouble"/>          <param name="u2" type="GLdouble"/> -        <param name="stride" type="GLint"/> +        <param name="stride" type="GLint" client_only="true"/>          <param name="order" type="GLint"/> -        <param name="points" type="const GLdouble *"/> +        <param name="points" type="const GLdouble *" variable_param="order"/>          <glx rop="143" handcode="true"/>      </function> @@ -2374,9 +2374,9 @@          <param name="target" type="GLenum"/>          <param name="u1" type="GLfloat"/>          <param name="u2" type="GLfloat"/> -        <param name="stride" type="GLint"/> +        <param name="stride" type="GLint" client_only="true"/>          <param name="order" type="GLint"/> -        <param name="points" type="const GLfloat *"/> +        <param name="points" type="const GLfloat *" variable_param="order"/>          <glx rop="144" handcode="true"/>      </function> @@ -2384,13 +2384,13 @@          <param name="target" type="GLenum"/>          <param name="u1" type="GLdouble"/>          <param name="u2" type="GLdouble"/> -        <param name="ustride" type="GLint"/> +        <param name="ustride" type="GLint" client_only="true"/>          <param name="uorder" type="GLint"/>          <param name="v1" type="GLdouble"/>          <param name="v2" type="GLdouble"/> -        <param name="vstride" type="GLint"/> +        <param name="vstride" type="GLint" client_only="true"/>          <param name="vorder" type="GLint"/> -        <param name="points" type="const GLdouble *"/> +        <param name="points" type="const GLdouble *" variable_param="uorder"/>          <glx rop="145" handcode="true"/>      </function> @@ -2398,13 +2398,13 @@          <param name="target" type="GLenum"/>          <param name="u1" type="GLfloat"/>          <param name="u2" type="GLfloat"/> -        <param name="ustride" type="GLint"/> +        <param name="ustride" type="GLint" client_only="true"/>          <param name="uorder" type="GLint"/>          <param name="v1" type="GLfloat"/>          <param name="v2" type="GLfloat"/> -        <param name="vstride" type="GLint"/> +        <param name="vstride" type="GLint" client_only="true"/>          <param name="vorder" type="GLint"/> -        <param name="points" type="const GLfloat *"/> +        <param name="points" type="const GLfloat *" variable_param="uorder"/>          <glx rop="146" handcode="true"/>      </function> diff --git a/src/mesa/glapi/gl_XML.py b/src/mesa/glapi/gl_XML.py index 15c3adc02b..b7a7388400 100644 --- a/src/mesa/glapi/gl_XML.py +++ b/src/mesa/glapi/gl_XML.py @@ -438,8 +438,9 @@ class gl_parameter:  		#if ts == "GLdouble":  		#	print '/* stack size -> %s = %u (after) */' % (self.name, self.type_expr.get_stack_size()) -		self.is_counter = is_attr_true( element, 'counter' ) -		self.is_output  = is_attr_true( element, 'output' ) +		self.is_client_only = is_attr_true( element, 'client_only' ) +		self.is_counter     = is_attr_true( element, 'counter' ) +		self.is_output      = is_attr_true( element, 'output' )  		# Pixel data has special parameters. | 
