Commit Graph

10 Commits

Author SHA1 Message Date
fincs
2fc57e99b9 Replace most of the renderqueue logic with GX command queues, details:
- Removed double buffered gpu cmdbuffer (might be added back later)
- Added a global gxCmdQueue which by default is configured to run
  commands as they arrive (in the future it might be double buffered)
- Added C3D_FrameSync for explicitly waiting for "vblank"
- Repurposed C3D_FRAME_SYNCDRAW to perform C3D_FrameSync
- Added C3D_FrameSplit for splitting/submitting the gpu cmdlist in the
  middle of a renderqueue frame
- C3D_RenderTargetSetClear is still supported, however it's unofficially
  deprecated (it's performed after drawing/transferring instead of before
  drawing, which is pretty counter-intuitive)
- C3D_RenderTargetSetOutput is explicitly NOT deprecated since it's
  necessary to avoid screen tearing when transferring to the screen
  framebuffers (this stems from a Nintendo design flaw where screen swap
  processing is done immediately after GX transfers finish)
2017-03-26 20:24:23 +02:00
fincs
1739f88e40 Add support for procedural textures (Texture Unit 3) 2017-03-15 16:49:06 +01:00
fincs
c030f3e70a Use weak symbols instead of function pointers for optional features 2017-03-05 23:28:30 +01:00
fincs
ac755aa3ec Add some shadow-related texture functions:
- C3D_TexShadowParams: configure GPUREG_TEXUNIT0_SHADOW
- C3D_TexInitShadow: create shadow map texture
- C3D_TexInitShadowCube: as above, but for shadow cubemaps
2017-02-14 19:40:07 +01:00
fincs
82b9eea410 Refactor GPUREG_TEXUNIT_CONFIG state (in preparation of future changes) 2017-02-14 18:40:58 +01:00
fincs
5c1d037fa2 Introduce framebuffer (light renderbuffer) infrastructure 2017-02-14 18:24:57 +01:00
fincs
15de0e300e Add support for cube textures, see below:
- Added C3D_TexCube structure for holding pointers to all 6 faces
- C3D_TexLoadImage accepts face number and mipmap level
- C3D_TexGenerateMipmap accepts face number
- Added functions (C3D_Tex*GetImagePtr) for accessing image data
- Now using GX to copy texture data to VRAM instead of failing
- Moved texunit setup code to texture.c
2017-02-12 00:14:04 +01:00
fincs
2a1dc2ba87 Added C3D_FragOpShadow() 2017-02-09 19:59:46 +01:00
fincs
73aea35120 Add bIsZBuffer parameter to C3D_DepthMap 2017-02-09 19:59:31 +01:00
Michael Theall
3ae31adab4 Add doxygen support 2017-02-09 19:45:33 +01:00