Re: OpenGL-ES

James Amendolagine <[email protected]>
Newsgroups gmane.comp.graphics.chromium.devel
Message-ID <[email protected]>
On Thu, 2004-09-16 at 13:21, Brian Paul wrote:
> OpenGL-ES also defines an API for pixelformat/drawable/context 
> management (like GLX or WGL) called "EGS": 
> http://www.khronos.org/cgi-bin/fetch/fetch.cgi?egl_1_1
> 

OK, I've done a first pass at an ES version of chromium. 


I've kept notes on the files that required modification: 
-glapi_parser/APIspec.txt  
-opengl_stub/defs.py
-state_tracker/state_buffer.txt 
-state_tracker/state_special
-state_tracker/state_attrib.c    
-state_tracker/state_buffer.c
-state_tracker/state_get.txt
-include/state/cr_buffer.h
-include/state/cr_attrib.h
-state_tracker/state_fog.c
-state_tracker/state_get.py
-state_tracker/state_lighting.c
-state_tracker/state_line.c
-state_tracker/state_point.c
-state_tracker/state_polygon.c
-state_tracker/state_texture.c
-state_tracker/state_transform.c
-packer/packer.def -- also needs some mod

-glapi_parser/apiutil.py:    // added the type    'GLclampx': 4,
-glapi_parser/apiutil.py:    // added the type    'GLfixed': 4,
-progs/packer/packertest.py: 'GLfixed':    ('%d','int'),
-spu/printspu/printspu.h, printspu_matrices.c ... 
-packer/packer_special

-include/cr_estypes.h // added this file

-packer test makefile needed to add an entry for pakerteset600 .. 625
   needed to edit packertest.py to handle a GLfixed params and GLfixed 



Changes to the APIspec.txt file along the lines of this: 

-----------------------------------------------------------
###############################################
#  ESification
###############################################
name		Frustumf
return		void
param		left		GLfloat
paramlist	left		-1.0
param		right		GLfloat
paramlist	right		1.0
param		bottom		GLfloat
paramlist	bottom		-1.0
param		top		GLfloat
paramlist	top		1.0
param		zNear		GLfloat
paramlist	zNear		1.0
param		zFar		GLfloat
paramlist	zFar		10.0
category	1.0
chromium	extpack

name		Frustumx
return		void
param		left		GLfixed
paramlist	left		-1.0
param		right		GLfixed
paramlist	right		1.0
param		bottom		GLfixed
paramlist	bottom		-1.0
param		top		GLfixed
paramlist	top		1.0
param		zNear		GLfixed
paramlist	zNear		1.0
param		zFar		GLfixed
paramlist	zFar		10.0
category	1.0
chromium	extpack

name		Fogx
return		void
param		pname		GLenum
param		param		GLfixed
paramprop	pname		GL_FOG_DENSITY GL_FOG_START GL_FOG_END GL_FOG_INDEX 
category	1.0
chromium	extpack

name		Fogxv
return		void
param		pname		GLenum
paramprop	pname		GL_FOG_MODE GL_FOG_DENSITY GL_FOG_START GL_FOG_END
GL_FOG_INDEX GL_FOG_COLOR
param		params		const GLfixed *
paramvec	params		GL_LINEAR
category	1.0
chromium	extpack

name		DepthRangef
return		void
param		zNear		GLclampf
param		zFar		GLclampf
category	1.0
chromium	extpack

name		DepthRangex
return		void
param		zNear		GLclampx
param		zFar		GLclampx
category	1.0
chromium	extpack

name		Color4x
return		void
param		red		GLfixed
param		green		GLfixed
param		blue		GLfixed
param		alpha		GLfixed
category	1.0
props		pervertex
chromium	extpack

name		ClearDepthx
return		void
param		depth		GLclampx
category	1.0
chromium	extpack

name		ClearDepthf
return		void
param		depth		GLclampd
category	1.0
chromium	extpack

name		AlphaFuncx
return		void
param		func		GLenum
paramprop	func		GL_NEVER GL_LESS GL_EQUAL GL_LEQUAL GL_GREATER
GL_NOTEQUAL GL_GEQUAL GL_ALWAYS
param		ref		GLclampx
category	1.0
chromium	extpack

name		ClearColorx
return		void
param		red		GLclampx
param		green		GLclampx
param		blue		GLclampx
param		alpha		GLclampx
category	1.0
chromium	extpack

name		Lightx
return		void
param		light		GLenum
paramprop	light		GL_LIGHT0 GL_LIGHT1 GL_LIGHT2 GL_LIGHT3 GL_LIGHT4
GL_LIGHT5 GL_LIGHT6 GL_LIGHT7
param		pname		GLenum
paramprop	pname		GL_SPOT_EXPONENT GL_SPOT_CUTOFF GL_CONSTANT_ATTENUATION
GL_LINEAR_ATTENUATION GL_QUADRATIC_ATTENUATION
param		param		GLfixed
paramlist	param		0.0
category	1.0
chromium	extpack

name		Lightxv
return		void
param		light		GLenum
paramprop	light		GL_LIGHT0 GL_LIGHT1 GL_LIGHT2 GL_LIGHT3 GL_LIGHT4
GL_LIGHT5 GL_LIGHT6 GL_LIGHT7
param		pname		GLenum
paramprop	pname		GL_SPOT_EXPONENT GL_SPOT_CUTOFF GL_CONSTANT_ATTENUATION
GL_LINEAR_ATTENUATION GL_QUADRATIC_ATTENUATION
param		param		const GLfixed *
paramlist	param		0.0
category	1.0
chromium	extpack

name		LineWidthx
return		void
param		width		GLfixed
category	1.0
chromium	extpack

name		LoadMatrixx
return		void
param		m		const GLfixed *
paramvec	m		1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1
vector		m		16
category	1.0
chromium	extpack

name		MultMatrixx
return		void
param		m		const GLfixed *
paramvec	m		1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1
vector		m		16
category	1.0
chromium	extpack

name		Translatex
return		void
param		x		GLfixed
param		y		GLfixed
param		z		GLfixed
category	1.0
chromium	extpack

name		Rotatex
return		void
param		angle		GLfixed
param		x		GLfixed
param		y		GLfixed
param		z		GLfixed
category	1.0
chromium	extpack

name		Scalex
return		void
param		x		GLfixed
param		y		GLfixed
param		z		GLfixed
category	1.0
chromium	extpack

name		Orthox
return		void
param		left		GLfixed
param		right		GLfixed
param		bottom		GLfixed
param		top		GLfixed
param		zNear		GLfixed
param		zFar		GLfixed
category	1.0
chromium	extpack

name		Orthof
return		void
param		left		GLfloat
param		right		GLfloat
param		bottom		GLfloat
param		top		GLfloat
param		zNear		GLfloat
param		zFar		GLfloat
category	1.0
chromium	extpack

name		PointSizex
return		void
param		size		GLfixed
category	1.0
chromium	extpack

name		PolygonOffsetx
return		void
param		factor		GLfixed
param		units		GLfixed
category	1.1
chromium	extpack

name		Materialx
return		void
param		face		GLenum
paramprop	face		GL_FRONT GL_BACK GL_FRONT_AND_BACK
param		pname		GLenum
paramprop	pname		GL_SHININESS
param		param		GLfixed
paramlist	param		1.0
category	1.0
chromium	extpack

name		Materialxv
return		void
param		face		GLenum
paramprop	face		GL_FRONT GL_BACK GL_FRONT_AND_BACK
param		pname		GLenum
paramprop	pname		GL_AMBIENT GL_DIFFUSE GL_SPECULAR GL_EMISSION
GL_SHININESS GL_AMBIENT_AND_DIFFUSE GL_COLOR_INDEXES
param		params		const GLfixed *
paramvec	params		0.8 0.8 0.5 0.1
category	1.0
chromium	extpack

name		Normal3x
return		void
param		nx		GLfixed
param		ny		GLfixed
param		nz		GLfixed
category	1.0
props		pervertex
chromium	extpack

name		SampleCoveragex
return		void
param		value		GLclampx
param		invert		GLboolean
category	1.0
chromium	extpack

name		TexEnvx
return		void
param		target		GLenum
param		pname		GLenum
paramset	[ target pname ] [ GL_TEXTURE_ENV ] [ GL_TEXTURE_ENV_MODE ]
paramset	[ target pname ] [ GL_POINT_SPRITE_ARB ] [ GL_COORD_REPLACE_ARB
]
paramset	[ target pname ] [ GL_COMBINE_RGB_EXT ] [ GL_DOT3_RGB_EXT
GL_DOT3_RGBA_EXT ]
paramset	[ target pname ] [ GL_TEXTURE_FILTER_CONTROL_EXT ] [
GL_TEXTURE_LOD_BIAS_EXT ]
param		param		GLfixed
paramlist	param		GL_MODULATE GL_DECAL GL_BLEND GL_REPLACE GL_ADD 
category	1.0
chromium	nopack

name		TexEnvxv
return		void
param		target		GLenum
param		pname		GLenum
paramset	[ target pname ] [ GL_TEXTURE_ENV ] [ GL_TEXTURE_ENV_MODE ]
paramset	[ target pname ] [ GL_POINT_SPRITE_ARB ] [ GL_COORD_REPLACE_ARB
]
paramset	[ target pname ] [ GL_COMBINE_RGB_EXT ] [ GL_DOT3_RGB_EXT
GL_DOT3_RGBA_EXT ]
paramset	[ target pname ] [ GL_TEXTURE_FILTER_CONTROL_EXT ] [
GL_TEXTURE_LOD_BIAS_EXT ]
param		params		const GLfixed *
paramvec	params		0.0 0.0 0.0 0.0
category	1.0
chromium	extpack
vectoralias	TexEnvx

name		TexParameterx
return		void
param		target		GLenum
param		pname		GLenum
param		param		GLfixed
paramset	[ target pname param ]	[ GL_TEXTURE_1D GL_TEXTURE_2D
GL_TEXTURE_3D ] [ GL_TEXTURE_MIN_FILTER ] [ GL_NEAREST GL_LINEAR
GL_NEAREST_MIPMAP_NEAREST GL_LINEAR_MIPMAP_NEAREST
GL_NEAREST_MIPMAP_LINEAR GL_LINEAR_MIPMAP_LINEAR ]
paramset	[ target pname param ]	[ GL_TEXTURE_1D GL_TEXTURE_2D
GL_TEXTURE_3D ] [ GL_TEXTURE_MAG_FILTER ] [ GL_NEAREST GL_LINEAR ]
paramset	[ target pname param ]	[ GL_TEXTURE_1D GL_TEXTURE_2D
GL_TEXTURE_3D ] [ GL_TEXTURE_COMPARE_MODE_ARB ] [
GL_COMPARE_R_TO_TEXTURE_ARB ]
paramset	[ target pname param ]	[ GL_TEXTURE_1D GL_TEXTURE_2D
GL_TEXTURE_3D ] [ GL_TEXTURE_WRAP_S GL_TEXTURE_WRAP_T GL_TEXTURE_WRAP_R
] [ GL_CLAMP GL_CLAMP_TO_EDGE GL_REPEAT GL_CLAMP_TO_BORDER_ARB
GL_MIRRORED_REPEAT_ARB ]
paramset	[ target pname param ]	[ GL_TEXTURE_1D GL_TEXTURE_2D
GL_TEXTURE_3D ] [ GL_GENERATE_MIPMAP_SGIS ] [ GL_TRUE GL_FALSE ]
paramset	[ target pname param ]	[ GL_TEXTURE_1D GL_TEXTURE_2D
GL_TEXTURE_3D ] [ GL_DEPTH_TEXTURE_MODE_ARB ] [ GL_ALPHA GL_LUMINANCE
GL_INTENSITY ]
category	1.0
chromium	nopack

name		MultiTexCoord4x
return		void
param		texture		GLenum
paramprop	texture		GL_TEXTURE0 GL_TEXTURE1 GL_TEXTURE2 GL_TEXTURE3
GL_TEXTURE4 GL_TEXTURE5 GL_TEXTURE6 GL_TEXTURE7
param		s		GLfixed
param		t		GLfixed
param		r		GLfixed
param		q		GLfixed
category	1.0

name		TexParameterxv
return		void
param		target		GLenum
paramprop	target		GL_TEXTURE_1D GL_TEXTURE_2D GL_TEXTURE_3D
param		pname		GLenum
paramprop	pname		GL_TEXTURE_MIN_FILTER GL_TEXTURE_MAG_FILTER
GL_TEXTURE_MIN_LOD GL_TEXTURE_MAX_LOD GL_TEXTURE_BASE_LEVEL
GL_TEXTURE_MAX_LEVEL GL_TEXTURE_WRAP_S GL_TEXTURE_WRAP_T
GL_TEXTURE_WRAP_R GL_TEXTURE_PRIORITY GL_TEXTURE_COMPARE_FUNC_ARB
GL_TEXTURE_COMPARE_MODE_ARB
param		params		const GLfixed *
category	1.0
chromium	extpack
vectoralias	TexParameterx

###############################################
#  ESification
###############################################



I've seperated the EGL work from the ES work by adding an ES
functionality wrapper to the Mesa- OpenGL library on my system -- So
OpenGL on my system now looks like GL + GLES. 

I did a sanity test on all of the GLES calls now in Chromium by building
a test application that does drawing using each ES call. This now works
through the chromium system. 




> -------------------------------------------------------
> This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
> Project Admins to receive an Apple iPod Mini FREE for your judgement on
> who ports your project to Linux PPC the best. Sponsored by IBM.
> Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php
> _______________________________________________
> Chromium-dev mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/chromium-dev



-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.