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 --- .../gfx_fullscreen_tiled_image/src/gfx/convpng.ini | 15 +++++ .../gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c | 4 ++ .../gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h | 8 +++ .../gfx_fullscreen_tiled_image/src/gfx/tileset.c | 18 ++++++ .../gfx_fullscreen_tiled_image/src/gfx/tileset.png | Bin 0 -> 182649 bytes .../gfx_fullscreen_tiled_image/src/gfx/var_gfx.8xv | Bin 0 -> 56118 bytes .../gfx_fullscreen_tiled_image/src/gfx/var_gfx.c | 31 ++++++++++ .../gfx_fullscreen_tiled_image/src/gfx/var_gfx.h | 31 ++++++++++ .../examples/gfx_fullscreen_tiled_image/src/main.c | 66 +++++++++++++++++++++ 9 files changed, 173 insertions(+) create mode 100644 frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini create mode 100644 frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c create mode 100644 frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h create mode 100644 frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c create mode 100644 frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.png create mode 100644 frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.8xv create mode 100644 frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c create mode 100644 frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h create mode 100644 frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c (limited to 'frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src') diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini new file mode 100644 index 0000000..3c282fe --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini @@ -0,0 +1,15 @@ +// Appvar to place all graphics in + +#AppvarC : var_gfx +#OutputPalettes : tiles_gfx +#PNGImages : + tileset + +// The compressed group for the tileset + +#GroupC : tiles_gfx +#Tilemap : 80,80,true +#Compression : zx7 +#PNGImages : + tileset + diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c new file mode 100644 index 0000000..7243683 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c @@ -0,0 +1,4 @@ +// convpng +#include +#include "tiles_gfx.h" + diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h new file mode 100644 index 0000000..1ae708a --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h @@ -0,0 +1,8 @@ +// convpng +// this file contains all the graphics sources for easy inclusion in a project +#ifndef __tiles_gfx__ +#define __tiles_gfx__ +#include + + +#endif diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c new file mode 100644 index 0000000..ff03cd2 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c @@ -0,0 +1,18 @@ +// convpng +#include +#include "tiles_gfx.h" + +uint8_t *tileset_tiles_compressed[12] = { + (uint8_t*)0, + (uint8_t*)3752, + (uint8_t*)7872, + (uint8_t*)12183, + (uint8_t*)15527, + (uint8_t*)20894, + (uint8_t*)25809, + (uint8_t*)30646, + (uint8_t*)35982, + (uint8_t*)41664, + (uint8_t*)46419, + (uint8_t*)50679, +}; diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.png b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.png new file mode 100644 index 0000000..4baee35 Binary files /dev/null and b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.png differ diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.8xv b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.8xv new file mode 100644 index 0000000..b4981a2 Binary files /dev/null and b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.8xv differ diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c new file mode 100644 index 0000000..6de6afa --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c @@ -0,0 +1,31 @@ +// convpng +#include +#include "var_gfx.h" + +#include +uint8_t *var_gfx[2] = { + (uint8_t*)0, + (uint8_t*)55530, +}; + +bool var_gfx_init(void) { + unsigned int data, i; + ti_var_t appvar; + + ti_CloseAll(); + + appvar = ti_Open("var_gfx", "r"); + data = (unsigned int)ti_GetDataPtr(appvar) - (unsigned int)var_gfx[0]; + for (i = 0; i < var_gfx_num; i++) { + var_gfx[i] += data; + } + + ti_CloseAll(); + + data = (unsigned int)var_gfx[0] - (unsigned int)tileset_tiles_compressed[0]; + for (i = 0; i < tileset_tiles_num; i++) { + tileset_tiles_compressed[i] += data; + } + + return (bool)appvar; +} diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h new file mode 100644 index 0000000..23b61b1 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h @@ -0,0 +1,31 @@ +// convpng +// this file contains all the graphics sources for easy inclusion in a project +#ifndef __var_gfx__ +#define __var_gfx__ +#include + +#include + +#define var_gfx_num 2 + +extern uint8_t *var_gfx[2]; +#define tileset_compressed ((gfx_sprite_t*)var_gfx[0]) +#define tileset_tiles_num 12 +extern uint8_t *tileset_tiles_compressed[12]; +#define tileset_tile_0_compressed ((gfx_sprite_t*)tileset_tiles_compressed[0]) +#define tileset_tile_1_compressed ((gfx_sprite_t*)tileset_tiles_compressed[1]) +#define tileset_tile_2_compressed ((gfx_sprite_t*)tileset_tiles_compressed[2]) +#define tileset_tile_3_compressed ((gfx_sprite_t*)tileset_tiles_compressed[3]) +#define tileset_tile_4_compressed ((gfx_sprite_t*)tileset_tiles_compressed[4]) +#define tileset_tile_5_compressed ((gfx_sprite_t*)tileset_tiles_compressed[5]) +#define tileset_tile_6_compressed ((gfx_sprite_t*)tileset_tiles_compressed[6]) +#define tileset_tile_7_compressed ((gfx_sprite_t*)tileset_tiles_compressed[7]) +#define tileset_tile_8_compressed ((gfx_sprite_t*)tileset_tiles_compressed[8]) +#define tileset_tile_9_compressed ((gfx_sprite_t*)tileset_tiles_compressed[9]) +#define tileset_tile_10_compressed ((gfx_sprite_t*)tileset_tiles_compressed[10]) +#define tileset_tile_11_compressed ((gfx_sprite_t*)tileset_tiles_compressed[11]) +#define sizeof_tiles_gfx_pal 512 +#define tiles_gfx_pal ((uint16_t*)var_gfx[1]) +bool var_gfx_init(void); + +#endif diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c new file mode 100644 index 0000000..1ed734b --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c @@ -0,0 +1,66 @@ +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +/* Include the graphics */ +#include "gfx/tiles_gfx.h" +#include "gfx/var_gfx.h" + +/* Include the external map data */ +extern uint8_t tilemap_map[]; + +#define TILE_WIDTH 80 +#define TILE_HEIGHT 80 + +void main(void) { + unsigned int i; + unsigned int x, y; + gfx_sprite_t *tile; + + tile = gfx_MallocSprite(TILE_WIDTH, TILE_HEIGHT); + + /* Initialize the graphics */ + if (!var_gfx_init()) { + return; + } + + /* Start the graphics */ + gfx_Begin(); + x = y = i = 0; + + /* Draw offscreen */ + gfx_SetDrawBuffer(); + + /* Decompress the tiles */ + for (; i < tileset_tiles_num; i++) { + zx7_Decompress(tile, tileset_tiles_compressed[i]); + gfx_Sprite_NoClip(tile, x, y); + x += TILE_WIDTH; + if (x >= LCD_WIDTH) { + y += TILE_HEIGHT; + x = 0; + } + } + + /* Copy to visible screen */ + gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0); + gfx_BlitBuffer(); + + /* Wait for a key */ + while (!os_GetCSC()); + + /* Close the graphics and return to the OS */ + gfx_End(); + + /* Free the earlier allocation */ + free(tile); +} -- cgit v1.2.3-101-g0448