simplify drawing to screens
This commit is contained in:
parent
52ea93de45
commit
8002a8eddd
59
main.c
59
main.c
|
@ -16,16 +16,6 @@ int main(int argc, char **argv)
|
||||||
void *tvBuffer = memalign(0x100, tvBufferSize);
|
void *tvBuffer = memalign(0x100, tvBufferSize);
|
||||||
void *drcBuffer = memalign(0x100, drcBufferSize);
|
void *drcBuffer = memalign(0x100, drcBufferSize);
|
||||||
|
|
||||||
void quit(void)
|
|
||||||
{
|
|
||||||
if (tvBuffer)
|
|
||||||
free(tvBuffer);
|
|
||||||
if (drcBuffer)
|
|
||||||
free(drcBuffer);
|
|
||||||
OSScreenShutdown();
|
|
||||||
WHBProcShutdown();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!tvBuffer || !drcBuffer)
|
if (!tvBuffer || !drcBuffer)
|
||||||
{
|
{
|
||||||
quit();
|
quit();
|
||||||
|
@ -48,13 +38,37 @@ int main(int argc, char **argv)
|
||||||
OSScreenPutFontEx(SCREEN_TV, 0, 0, "SimpleDrawU (TV).");
|
OSScreenPutFontEx(SCREEN_TV, 0, 0, "SimpleDrawU (TV).");
|
||||||
OSScreenPutFontEx(SCREEN_DRC, 0, 0, "SimpleDrawU (Gamepad).");
|
OSScreenPutFontEx(SCREEN_DRC, 0, 0, "SimpleDrawU (Gamepad).");
|
||||||
|
|
||||||
enum penColor {
|
enum penColor
|
||||||
white = 0xFFFFFF00,
|
{
|
||||||
black = 0x00000000,
|
white = 0xFFFFFF00,
|
||||||
red = 0xBF5B5B00,
|
black = 0x00000000,
|
||||||
|
red = 0xBF5B5B00,
|
||||||
yellow = 0xC6B95500,
|
yellow = 0xC6B95500,
|
||||||
blue = 0x3C8D8800,
|
blue = 0x3C8D8800,
|
||||||
green = 0x86B46000,
|
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())
|
while (WHBProcIsRunning())
|
||||||
|
@ -121,17 +135,8 @@ int main(int argc, char **argv)
|
||||||
// draw on screen
|
// draw on screen
|
||||||
if (gamepadTouchScreen.touched)
|
if (gamepadTouchScreen.touched)
|
||||||
{
|
{
|
||||||
OSScreenPutPixelEx(SCREEN_TV, gamepadTouchScreen.x - 1, gamepadTouchScreen.y - 1, penColor);
|
drawScreen(SCREEN_TV, gamepadTouchScreen, penColor);
|
||||||
OSScreenPutPixelEx(SCREEN_TV, gamepadTouchScreen.x + 1, gamepadTouchScreen.y + 1, penColor);
|
drawScreen(SCREEN_DRC, gamepadTouchScreen, 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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DCFlushRange(tvBuffer, tvBufferSize);
|
DCFlushRange(tvBuffer, tvBufferSize);
|
||||||
|
|
Loading…
Reference in a new issue