From 60699af63f92f43cc4b4b9e3050fcdd2a8468281 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Wed, 10 Apr 2019 15:14:00 -0400 Subject: add opengl fronend, remove sdl frontend, refactor build system --- .../CEdev/examples/gfx_blitting/autotester.json | 46 +++++++++++++++++++++ .../CEdev/examples/gfx_blitting/makefile | 15 +++++++ .../CEdev/examples/gfx_blitting/readme.md | 7 ++++ .../CEdev/examples/gfx_blitting/src/main.c | 47 ++++++++++++++++++++++ 4 files changed, 115 insertions(+) create mode 100644 frontends/calculator/CEdev/examples/gfx_blitting/autotester.json create mode 100644 frontends/calculator/CEdev/examples/gfx_blitting/makefile create mode 100644 frontends/calculator/CEdev/examples/gfx_blitting/readme.md create mode 100644 frontends/calculator/CEdev/examples/gfx_blitting/src/main.c (limited to 'frontends/calculator/CEdev/examples/gfx_blitting') diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/autotester.json b/frontends/calculator/CEdev/examples/gfx_blitting/autotester.json new file mode 100644 index 0000000..bb67e72 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_blitting/autotester.json @@ -0,0 +1,46 @@ +{ + "rom": "84pce_515.rom", + "transfer_files": [ + "bin/DEMO.8xp" + ], + "target": { + "name": "DEMO", + "isASM": true + }, + "sequence": [ + "action|launch", + "hashWait|1", + "key|enter", + "hashWait|2", + "key|enter", + "hashWait|3", + "key|enter", + "hashWait|4" + ], + "hashes": { + "1": { + "description": "Nothing blitted yet, white screen", + "start": "vram_start", + "size": "vram_8_size", + "expected_CRCs": [ "3132DE74" ] + }, + "2": { + "description": "Parts of buffer blitted to screen", + "start": "vram_start", + "size": "vram_8_size", + "expected_CRCs": [ "830291D3" ] + }, + "3": { + "description": "Full buffer blitted to screen", + "start": "vram_start", + "size": "vram_8_size", + "expected_CRCs": [ "EA181DC1" ] + }, + "4": { + "description": "Back to the home screen (exit check)", + "start": "vram_start", + "size": "vram_16_size", + "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] + } + } +} diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/makefile b/frontends/calculator/CEdev/examples/gfx_blitting/makefile new file mode 100644 index 0000000..1f1b36b --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_blitting/makefile @@ -0,0 +1,15 @@ +# ---------------------------- +# Set NAME to the program name +# Set ICON to the png icon file name +# Set DESCRIPTION to display within a compatible shell +# Set COMPRESSED to "YES" to create a compressed program +# ---------------------------- + +NAME ?= DEMO +COMPRESSED ?= NO +ICON ?= iconc.png +DESCRIPTION ?= "C SDK Demo" + +# ---------------------------- + +include $(CEDEV)/include/.makefile diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/readme.md b/frontends/calculator/CEdev/examples/gfx_blitting/readme.md new file mode 100644 index 0000000..caa3bcb --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_blitting/readme.md @@ -0,0 +1,7 @@ +### GraphX Blitting Demo + +This example demonstrates blitting to manually copy data from the drawing buffer to the screen buffer + +--- + +This demo is a part of the C SDK Toolchain for use on the CE. diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/src/main.c b/frontends/calculator/CEdev/examples/gfx_blitting/src/main.c new file mode 100644 index 0000000..1582583 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_blitting/src/main.c @@ -0,0 +1,47 @@ +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +/* This tutorial is meant to be played around with to get a feeling for how blitting works */ +void main(void) { + uint8_t c; + + /* Initialize the 8bpp graphics, screen cleared to white */ + gfx_Begin(); + + /* Draw to buffer instead of directly to screen */ + gfx_SetDrawBuffer(); // This is the same as gfx_SetDraw(gfx_buffer) + + /* Draw a gradient (to the buffer) */ + for (c = 0; c < 8; c++) { + gfx_SetColor(c); + gfx_FillRectangle_NoClip(c * (LCD_WIDTH / 8), 0, LCD_WIDTH / 8, LCD_HEIGHT); + } + + /* Wait for a key */ + while (!os_GetCSC()); + + /* Copy parts of the buffer to the screen */ + gfx_BlitLines(gfx_buffer, LCD_HEIGHT - 32, 32); + gfx_BlitRectangle(gfx_buffer, LCD_WIDTH / 4, LCD_HEIGHT / 4, LCD_WIDTH / 2, LCD_HEIGHT / 2); + + /* Wait for a key */ + while (!os_GetCSC()); + + /* Copy the full buffer to the screen */ + gfx_BlitBuffer(); // This is the same as gfx_Blit(gfx_buffer) + + /* Wait for a key */ + while (!os_GetCSC()); + + /* Close the graphics */ + gfx_End(); +} -- cgit v1.2.3-101-g0448