mirror of
https://github.com/Ed94/pikuma_ps1.git
synced 2026-06-01 18:41:13 -07:00
67 lines
1.9 KiB
C
67 lines
1.9 KiB
C
// #include <stdlib.h>
|
|
#include "duffle/dsl.h"
|
|
#include "duffle/math.h"
|
|
#include "duffle/gp.h"
|
|
#include "hello_gpu.h"
|
|
|
|
#include "libgpu.h"
|
|
#include "libetc.h"
|
|
|
|
DoubleBuffer screen_buffer;
|
|
S16 active_screen_buffer;
|
|
|
|
void gp_screen_init_c11(void)
|
|
{
|
|
ResetGraph(0);
|
|
// First buffer area
|
|
SetDefDispEnv((DISPENV*)& screen_buffer.display[0], 0, 0, ScreenRes_X, ScreenRes_Y);
|
|
SetDefDrawEnv((DRAWENV*)& screen_buffer.draw [0], 0, ScreenRes_Y, ScreenRes_X, ScreenRes_Y);
|
|
// Second buffer rea
|
|
SetDefDispEnv((DISPENV*)& screen_buffer.display[1], 0, ScreenRes_Y, ScreenRes_X, ScreenRes_Y);
|
|
SetDefDrawEnv((DRAWENV*)& screen_buffer.draw [1], 0, 0, ScreenRes_X, ScreenRes_Y);
|
|
// Set the back/drawing buffer
|
|
screen_buffer.draw[0].enable_auto_clear = true;
|
|
screen_buffer.draw[1].enable_auto_clear = true;
|
|
// Set the background clear color
|
|
screen_buffer.draw[0].initial_bg_color = (RGB8){ .r = 63, .g = 0, .b = 127 };
|
|
screen_buffer.draw[1].initial_bg_color = (RGB8){ .r = 127, .g = 63, .b = 0 };
|
|
// Set the current initial buffer
|
|
active_screen_buffer = 0;
|
|
PutDispEnv((DISPENV*)& screen_buffer.display[active_screen_buffer]);
|
|
PutDrawEnv((DRAWENV*)& screen_buffer.draw [active_screen_buffer]);
|
|
// Initialize and setup the GTE geometry offsets
|
|
InitGeom();
|
|
SetGeomOffset(ScreenRes_CenterX, ScreenRes_CenterY);
|
|
SetGeomScreen(ScreenRes_CenterX);
|
|
// Enable display
|
|
SetDispMask(1);
|
|
}
|
|
|
|
void gp_display_frame_c11(void) {
|
|
DrawSync(0);
|
|
VSync(0);
|
|
PutDispEnv((DISPENV*)& screen_buffer.display[active_screen_buffer]);
|
|
PutDrawEnv((DRAWENV*)& screen_buffer.draw [active_screen_buffer]);
|
|
{
|
|
// TODO: Sort objects in ordering table
|
|
}
|
|
active_screen_buffer = !active_screen_buffer; // Swap current buffer
|
|
}
|
|
|
|
void render_c11(void) {
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
// gp_screen_init();
|
|
gp_screen_init_c11();
|
|
|
|
while (1)
|
|
{
|
|
render_c11();
|
|
gp_display_frame_c11();
|
|
};
|
|
|
|
return 0;
|
|
}
|