mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-11 18:41:14 +00:00
Update renderer.cpp (clang-formatted)
This commit is contained in:
parent
3b9ca55bb9
commit
ea2849512e
@ -13,70 +13,97 @@
|
||||
#include <whb/sdcard.h>
|
||||
|
||||
struct IsleGX2Backend {
|
||||
GX2RBuffer positionBuffer;
|
||||
GX2RBuffer colourBuffer;
|
||||
WHBGfxShaderGroup shaderGroup;
|
||||
bool rendering = false;
|
||||
GX2RBuffer positionBuffer;
|
||||
GX2RBuffer colourBuffer;
|
||||
WHBGfxShaderGroup shaderGroup;
|
||||
bool rendering = false;
|
||||
|
||||
void Init(const char* shaderPath) {
|
||||
WHBLogUdpInit();
|
||||
WHBProcInit();
|
||||
WHBGfxInit();
|
||||
WHBMountSdCard();
|
||||
char path[256];
|
||||
sprintf(path, "%s/%s", WHBGetSdCardMountPath(), shaderPath);
|
||||
FILE* f = fopen(path, "rb");
|
||||
if (!f) return;
|
||||
fseek(f, 0, SEEK_END);
|
||||
size_t fsize = ftell(f);
|
||||
rewind(f);
|
||||
char* data = (char*) malloc(fsize);
|
||||
fread(data, 1, fsize, f);
|
||||
WHBGfxLoadGFDShaderGroup(&shaderGroup, 0, data);
|
||||
free(data);
|
||||
WHBGfxInitShaderAttribute(&shaderGroup, "aPosition", 0, 0, GX2_ATTRIB_FORMAT_FLOAT_32_32_32_32);
|
||||
WHBGfxInitShaderAttribute(&shaderGroup, "aColour", 1, 0, GX2_ATTRIB_FORMAT_FLOAT_32_32_32_32);
|
||||
WHBGfxInitFetchShader(&shaderGroup);
|
||||
}
|
||||
void Init(const char* shaderPath)
|
||||
{
|
||||
WHBLogUdpInit();
|
||||
WHBProcInit();
|
||||
WHBGfxInit();
|
||||
WHBMountSdCard();
|
||||
char path[256];
|
||||
sprintf(path, "%s/%s", WHBGetSdCardMountPath(), shaderPath);
|
||||
FILE* f = fopen(path, "rb");
|
||||
if (!f) {
|
||||
return;
|
||||
}
|
||||
fseek(f, 0, SEEK_END);
|
||||
size_t fsize = ftell(f);
|
||||
rewind(f);
|
||||
char* data = (char*) malloc(fsize);
|
||||
fread(data, 1, fsize, f);
|
||||
WHBGfxLoadGFDShaderGroup(&shaderGroup, 0, data);
|
||||
free(data);
|
||||
WHBGfxInitShaderAttribute(&shaderGroup, "aPosition", 0, 0, GX2_ATTRIB_FORMAT_FLOAT_32_32_32_32);
|
||||
WHBGfxInitShaderAttribute(&shaderGroup, "aColour", 1, 0, GX2_ATTRIB_FORMAT_FLOAT_32_32_32_32);
|
||||
WHBGfxInitFetchShader(&shaderGroup);
|
||||
}
|
||||
|
||||
void StartFrame() {
|
||||
if (rendering) return;
|
||||
WHBGfxBeginRender();
|
||||
WHBGfxBeginRenderTV();
|
||||
rendering = true;
|
||||
}
|
||||
void StartFrame()
|
||||
{
|
||||
if (rendering) {
|
||||
return;
|
||||
}
|
||||
WHBGfxBeginRender();
|
||||
WHBGfxBeginRenderTV();
|
||||
rendering = true;
|
||||
}
|
||||
|
||||
void EndFrame() {
|
||||
if (!rendering) return;
|
||||
WHBGfxFinishRenderTV();
|
||||
WHBGfxBeginRenderDRC();
|
||||
WHBGfxFinishRenderDRC();
|
||||
WHBGfxFinishRender();
|
||||
rendering = false;
|
||||
}
|
||||
void EndFrame()
|
||||
{
|
||||
if (!rendering) {
|
||||
return;
|
||||
}
|
||||
WHBGfxFinishRenderTV();
|
||||
WHBGfxBeginRenderDRC();
|
||||
WHBGfxFinishRenderDRC();
|
||||
WHBGfxFinishRender();
|
||||
rendering = false;
|
||||
}
|
||||
|
||||
void Clear(float r, float g, float b) {
|
||||
StartFrame();
|
||||
WHBGfxClearColor(r, g, b, 1.0f);
|
||||
}
|
||||
void Clear(float r, float g, float b)
|
||||
{
|
||||
StartFrame();
|
||||
WHBGfxClearColor(r, g, b, 1.0f);
|
||||
}
|
||||
|
||||
void Flip() {
|
||||
EndFrame();
|
||||
}
|
||||
void Flip() { EndFrame(); }
|
||||
|
||||
void Shutdown() {
|
||||
WHBUnmountSdCard();
|
||||
WHBGfxShutdown();
|
||||
WHBProcShutdown();
|
||||
WHBLogUdpDeinit();
|
||||
}
|
||||
void Shutdown()
|
||||
{
|
||||
WHBUnmountSdCard();
|
||||
WHBGfxShutdown();
|
||||
WHBProcShutdown();
|
||||
WHBLogUdpDeinit();
|
||||
}
|
||||
};
|
||||
|
||||
static IsleGX2Backend g_backend;
|
||||
|
||||
extern "C" void IsleBackendInit(const char* shaderPath) { g_backend.Init(shaderPath); }
|
||||
extern "C" void IsleBackendStartFrame() { g_backend.StartFrame(); }
|
||||
extern "C" void IsleBackendEndFrame() { g_backend.EndFrame(); }
|
||||
extern "C" void IsleBackendClear(float r, float g, float b) { g_backend.Clear(r, g, b); }
|
||||
extern "C" void IsleBackendFlip() { g_backend.Flip(); }
|
||||
extern "C" void IsleBackendShutdown() { g_backend.Shutdown(); }
|
||||
extern "C" void IsleBackendInit(const char* shaderPath)
|
||||
{
|
||||
g_backend.Init(shaderPath);
|
||||
}
|
||||
extern "C" void IsleBackendStartFrame()
|
||||
{
|
||||
g_backend.StartFrame();
|
||||
}
|
||||
extern "C" void IsleBackendEndFrame()
|
||||
{
|
||||
g_backend.EndFrame();
|
||||
}
|
||||
extern "C" void IsleBackendClear(float r, float g, float b)
|
||||
{
|
||||
g_backend.Clear(r, g, b);
|
||||
}
|
||||
extern "C" void IsleBackendFlip()
|
||||
{
|
||||
g_backend.Flip();
|
||||
}
|
||||
extern "C" void IsleBackendShutdown()
|
||||
{
|
||||
g_backend.Shutdown();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user