add display state
This commit is contained in:
@@ -75,10 +75,6 @@ errorret_t displayInitDolphin(void) {
|
||||
)
|
||||
);
|
||||
|
||||
// Setup cull modes
|
||||
GX_SetCullMode(GX_CULL_NONE);
|
||||
GX_SetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR);
|
||||
GX_SetZMode(GX_TRUE, GX_ALWAYS, GX_FALSE);
|
||||
GX_SetDispCopyGamma(GX_GM_1_0);
|
||||
GX_SetColorUpdate(GX_TRUE);
|
||||
|
||||
@@ -103,12 +99,36 @@ errorret_t displayUpdateDolphin(void) {
|
||||
errorOk();
|
||||
}
|
||||
|
||||
errorret_t displaySetStateDolphin(displaystate_t state) {
|
||||
if(state.flags & DISPLAY_STATE_FLAG_CULL) {
|
||||
GX_SetCullMode(GX_CULL_BACK);
|
||||
} else {
|
||||
GX_SetCullMode(GX_CULL_NONE);
|
||||
}
|
||||
|
||||
if(state.flags & DISPLAY_STATE_FLAG_DEPTH_TEST) {
|
||||
GX_SetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
|
||||
} else {
|
||||
GX_SetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
||||
}
|
||||
|
||||
if(state.flags & DISPLAY_STATE_FLAG_BLEND) {
|
||||
GX_SetBlendMode(
|
||||
GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR
|
||||
);
|
||||
} else {
|
||||
GX_SetBlendMode(
|
||||
GX_BM_NONE, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR
|
||||
);
|
||||
}
|
||||
|
||||
errorOk();
|
||||
}
|
||||
|
||||
errorret_t displaySwapDolphin(void) {
|
||||
GX_DrawDone();
|
||||
|
||||
DISPLAY.whichFrameBuffer ^= 1;
|
||||
// GX_SetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
|
||||
// GX_SetColorUpdate(GX_TRUE);
|
||||
GX_CopyDisp(DISPLAY.frameBuffer[DISPLAY.whichFrameBuffer], GX_TRUE);
|
||||
VIDEO_SetNextFramebuffer(DISPLAY.frameBuffer[DISPLAY.whichFrameBuffer]);
|
||||
VIDEO_Flush();
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#pragma once
|
||||
#include "error/error.h"
|
||||
#include "display/displaystate.h"
|
||||
|
||||
#define DISPLAY_DOLPHIN_FIFO_SIZE (256*1024)
|
||||
|
||||
@@ -30,4 +31,9 @@ errorret_t displayUpdateDolphin(void);
|
||||
/**
|
||||
* Swaps the display buffers on Dolphin.
|
||||
*/
|
||||
errorret_t displaySwapDolphin(void);
|
||||
errorret_t displaySwapDolphin(void);
|
||||
|
||||
/**
|
||||
* Sets the display state on Dolphin.
|
||||
*/
|
||||
errorret_t displaySetStateDolphin(displaystate_t state);
|
||||
@@ -11,5 +11,6 @@
|
||||
#define displayPlatformInit displayInitDolphin
|
||||
#define displayPlatformUpdate displayUpdateDolphin
|
||||
#define displayPlatformSwap displaySwapDolphin
|
||||
#define displayPlatformSetState displaySetStateDolphin
|
||||
|
||||
typedef displaydolphin_t displayplatform_t;
|
||||
Reference in New Issue
Block a user