diff options
| author | 2019-04-10 15:14:00 -0400 | |
|---|---|---|
| committer | 2019-04-10 15:14:00 -0400 | |
| commit | 60699af63f92f43cc4b4b9e3050fcdd2a8468281 (patch) | |
| tree | 20a18af2774daa43ae7f4352dd032a24f7e06075 /frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src | |
| parent | 4527bc20241068731c62101d0467d416119ec0c4 (diff) | |
| download | cetris-60699af63f92f43cc4b4b9e3050fcdd2a8468281.tar.gz cetris-60699af63f92f43cc4b4b9e3050fcdd2a8468281.tar.bz2 cetris-60699af63f92f43cc4b4b9e3050fcdd2a8468281.zip | |
add opengl fronend, remove sdl frontend, refactor build system
Diffstat (limited to 'frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src')
9 files changed, 173 insertions, 0 deletions
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 <stdint.h> +#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 <stdint.h> + + +#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 <stdint.h> +#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 Binary files differnew file mode 100644 index 0000000..4baee35 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.png 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 Binary files differnew file mode 100644 index 0000000..b4981a2 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.8xv 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 <stdint.h> +#include "var_gfx.h" + +#include <fileioc.h> +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 <stdint.h> + +#include <stdbool.h> + +#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 <stdbool.h> +#include <stddef.h> +#include <stdint.h> +#include <tice.h> + +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include <compression.h> +#include <graphx.h> + +/* 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); +} |