simplify drawing to screens

This commit is contained in:
array-in-a-matrix 2024-02-20 22:27:47 -05:00
parent 52ea93de45
commit 8002a8eddd

59
main.c
View file

@ -16,16 +16,6 @@ int main(int argc, char **argv)
void *tvBuffer = memalign(0x100, tvBufferSize);
void *drcBuffer = memalign(0x100, drcBufferSize);
void quit(void)
{
if (tvBuffer)
free(tvBuffer);
if (drcBuffer)
free(drcBuffer);
OSScreenShutdown();
WHBProcShutdown();
}
if (!tvBuffer || !drcBuffer)
{
quit();
@ -48,13 +38,37 @@ int main(int argc, char **argv)
OSScreenPutFontEx(SCREEN_TV, 0, 0, "SimpleDrawU (TV).");
OSScreenPutFontEx(SCREEN_DRC, 0, 0, "SimpleDrawU (Gamepad).");
enum penColor {
white = 0xFFFFFF00,
black = 0x00000000,
red = 0xBF5B5B00,
enum penColor
{
white = 0xFFFFFF00,
black = 0x00000000,
red = 0xBF5B5B00,
yellow = 0xC6B95500,
blue = 0x3C8D8800,
green = 0x86B46000,
blue = 0x3C8D8800,
green = 0x86B46000,
};
void quit(void)
{
if (tvBuffer)
free(tvBuffer);
if (drcBuffer)
free(drcBuffer);
OSScreenShutdown();
WHBProcShutdown();
};
void drawScreen(OSScreenID screen, VPADTouchData gamepad, int color)
{
OSScreenPutPixelEx(screen, gamepad.x - 1, gamepad.y - 1, color);
OSScreenPutPixelEx(screen, gamepad.x + 1, gamepad.y + 1, color);
OSScreenPutPixelEx(screen, gamepad.x + 1, gamepad.y, color);
OSScreenPutPixelEx(screen, gamepad.x - 1, gamepad.y, color);
OSScreenPutPixelEx(screen, gamepad.x, gamepad.y, color);
OSScreenPutPixelEx(screen, gamepad.x, gamepad.y + 1, color);
OSScreenPutPixelEx(screen, gamepad.x, gamepad.y - 1, color);
OSScreenPutPixelEx(screen, gamepad.x - 1, gamepad.y + 1, color);
OSScreenPutPixelEx(screen, gamepad.x + 1, gamepad.y - 1, color);
};
while (WHBProcIsRunning())
@ -121,17 +135,8 @@ int main(int argc, char **argv)
// draw on screen
if (gamepadTouchScreen.touched)
{
OSScreenPutPixelEx(SCREEN_TV, gamepadTouchScreen.x - 1, gamepadTouchScreen.y - 1, penColor);
OSScreenPutPixelEx(SCREEN_TV, gamepadTouchScreen.x + 1, gamepadTouchScreen.y + 1, penColor);
OSScreenPutPixelEx(SCREEN_TV, gamepadTouchScreen.x, gamepadTouchScreen.y, penColor);
OSScreenPutPixelEx(SCREEN_TV, gamepadTouchScreen.x - 1, gamepadTouchScreen.y + 1, penColor);
OSScreenPutPixelEx(SCREEN_TV, gamepadTouchScreen.x + 1, gamepadTouchScreen.y - 1, penColor);
OSScreenPutPixelEx(SCREEN_DRC, gamepadTouchScreen.x + 1, gamepadTouchScreen.y + 1, penColor);
OSScreenPutPixelEx(SCREEN_DRC, gamepadTouchScreen.x - 1, gamepadTouchScreen.y - 1, penColor);
OSScreenPutPixelEx(SCREEN_DRC, gamepadTouchScreen.x, gamepadTouchScreen.y, penColor);
OSScreenPutPixelEx(SCREEN_DRC, gamepadTouchScreen.x - 1, gamepadTouchScreen.y + 1, penColor);
OSScreenPutPixelEx(SCREEN_DRC, gamepadTouchScreen.x + 1, gamepadTouchScreen.y - 1, penColor);
drawScreen(SCREEN_TV, gamepadTouchScreen, penColor);
drawScreen(SCREEN_DRC, gamepadTouchScreen, penColor);
}
DCFlushRange(tvBuffer, tvBufferSize);