GPU/Programming Guide: Difference between revisions
Steveice10 (talk | contribs) mNo edit summary |
Steveice10 (talk | contribs) mNo edit summary |
||
Line 20: | Line 20: | ||
When drawing using triangle strips or fans, [[GPU/Internal Registers#GPUREG_RESTART_PRIMITIVE|GPUREG_RESTART_PRIMITIVE]] should be used to end the previous strip before (or while) drawing. | When drawing using triangle strips or fans, [[GPU/Internal Registers#GPUREG_RESTART_PRIMITIVE|GPUREG_RESTART_PRIMITIVE]] should be used to end the previous strip before (or while) drawing. | ||
== Drawing elements == | |||
The 3DS GPU is capable of drawing vertex + index arrays, triggered by [[GPU/Internal_Registers#GPUREG_DRAWELEMENTS|GPUREG_DRAWELEMENTS]]. A set of commands commonly used by the standard GL implementation to accomplish this is as follows: | |||
{| class="wikitable" border="1" | |||
! Command Index | |||
! Register | |||
! Description | |||
|- | |||
| 0 | |||
| [[GPU/Internal_Registers#GPUREG_GEOSTAGE_CONFIG|GPUREG_GEOSTAGE_CONFIG]] | |||
| Set whether drawing triangle elements | |||
|- | |||
| 1-2 | |||
| [[GPU/Internal_Registers#GPUREG_GEOSTAGE_CONFIG2|GPUREG_GEOSTAGE_CONFIG2]] | |||
| Set whether drawing triangle elements | |||
|- | |||
| 3 | |||
| [[GPU/Internal_Registers#GPUREG_PRIMITIVE_CONFIG|GPUREG_PRIMITIVE_CONFIG]] | |||
| Set primitive mode | |||
|- | |||
| 4 | |||
| [[GPU/Internal_Registers#GPUREG_PRIMITIVE_CONFIG|GPUREG_PRIMITIVE_CONFIG]] | |||
| Set number of output map registers | |||
|- | |||
| 5 | |||
| [[GPU/Internal_Registers#GPUREG_RESTART_PRIMITIVE|GPUREG_RESTART_PRIMITIVE]] | |||
| Trigger reset | |||
|- | |||
| 6 | |||
| [[GPU/Internal_Registers#GPUREG_GEOSTAGE_CONFIG2|GPUREG_GEOSTAGE_CONFIG2]] | |||
| Set function indicator to 0 | |||
|- | |||
| 7 | |||
| [[GPU/Internal_Registers#GPUREG_INDEXBUFFER_CONFIG|GPUREG_INDEXBUFFER_CONFIG]] | |||
| Set offset and type | |||
|- | |||
| 8 | |||
| [[GPU/Internal_Registers#GPUREG_NUMVERTICES|GPUREG_NUMVERTICES]] | |||
| Set vertex count | |||
|- | |||
| 9 | |||
| [[GPU/Internal_Registers#GPUREG_START_DRAW_FUNC0|GPUREG_START_DRAW_FUNC0]] | |||
| Set mode to drawing | |||
|- | |||
| 10 | |||
| [[GPU/Internal_Registers#GPUREG_DRAWELEMENTS|GPUREG_DRAWELEMENTS]] | |||
| Trigger draw | |||
|- | |||
| 11 | |||
| [[GPU/Internal_Registers#GPUREG_START_DRAW_FUNC0|GPUREG_START_DRAW_FUNC0]] | |||
| Set mode to configuration | |||
|- | |||
| 12 | |||
| [[GPU/Internal_Registers#GPUREG_VTX_FUNC|GPUREG_VTX_FUNC]] | |||
| Trigger post-vertex cache clear | |||
|- | |||
| 13 | |||
| [[GPU/Internal_Registers#GPUREG_FRAMEBUFFER_FLUSH|GPUREG_FRAMEBUFFER_FLUSH]] | |||
| Flush framebuffer | |||
|- | |||
| 14 | |||
| [[GPU/Internal_Registers#GPUREG_GEOSTAGE_CONFIG|GPUREG_GEOSTAGE_CONFIG]] | |||
| Clear drawing triangle elements | |||
|- | |||
| 15 | |||
| [[GPU/Internal_Registers#GPUREG_GEOSTAGE_CONFIG2|GPUREG_GEOSTAGE_CONFIG2]] | |||
| Clear drawing triangle elements | |||
|- | |||
| 16 | |||
| [[GPU/Internal_Registers#GPUREG_PRIMITIVE_CONFIG|GPUREG_PRIMITIVE_CONFIG]] | |||
| Clear primitive mode | |||
|- | |||
| 17 | |||
| [[GPU/Internal_Registers#GPUREG_VSH_ENTRYPOINT|GPUREG_VSH_ENTRYPOINT]] | |||
| Clear entry point | |||
|} | |||
[[Category:GPU]] | [[Category:GPU]] |