Nintendo OpenGL: Difference between revisions

Neobrain (talk | contribs)
Kids plz.
Neobrain (talk | contribs)
 
(One intermediate revision by the same user not shown)
Line 4: Line 4:
== Description ==
== Description ==


The PICA200 is an opengl ES 1.1 compliant GPU manufactured by DMP. It comes loaded with a number of extensions that make it similar to an openGL ES 2.0 compliant GPU (ability to run programmable vertex/geometry shaders, for instance). Because of this, Nintendo wrapped GPU access into an openGL ES 2.0 implementation with some limitations. As the fragment stage of the pipeline is non-programmable, Nintendo instead gives developers the ability to configure a number of fragment-related values through glGetUniformLocation and glUniformXX. See below for the full list.
The PICA200 is an OpenGL ES 1.1 compliant GPU manufactured by DMP. It comes loaded with a number of extensions that make it similar to an OpenGL ES 2.0 compliant GPU (ability to run programmable vertex/geometry shaders, for instance). Because of this, Nintendo wrapped GPU access into an OpenGL ES 2.0 implementation with some limitations. As the fragment stage of the pipeline is non-programmable, Nintendo instead gives developers the ability to configure a number of fragment-related values through glGetUniformLocation and glUniformXX. See below for the full list.


== Shader program structure ==
== Shader program structure ==
Line 2,236: Line 2,236:


On steeldiver's uniform handlers : R1 is a pointer to the current shader program object, R12 is a pointer to the data the uniform is being set to.
On steeldiver's uniform handlers : R1 is a pointer to the current shader program object, R12 is a pointer to the data the uniform is being set to.
== Other Symbols ==
The list above is not exhaustive. A number of other strings specific to Nintendo's rendering framework have been found. Below is a table listing those strings including the location they were found in.
{| class="wikitable" border="1"
! Name
!  Context
!  Occurrence
|-
| dmp_Point.viewport.xy
| Name of a shader uniform
| CTRAging's romfs:/gpu/GasCessna/shader.shbin
|-
| dmp_Point.distanceAttenuation
| Name of a shader uniform
| CTRAging's romfs:/gpu/GasCessna/shader.shbin
|-
| dmp_Point.Position
| Name of a shader uniform
| CTRAging's romfs:/gpu/GasCessna/shader.shbin
|-
| dmp_Point.PointSize
| Name of a shader uniform
| CTRAging's romfs:/gpu/GasCessna/shader.shbin
|}