phantasia

Phantasia - 2D SDL3 RPG prototype.
git clone git://git.beep.wimdupont.com/phantasia.git
Log | Files | Refs | README | LICENSE

render.h (1038B)


      1 #ifndef PH_ENGINE_RENDER_H
      2 #define PH_ENGINE_RENDER_H
      3 
      4 #include "engine/world.h"
      5 
      6 enum { PH_MAX_ASSETS = 32 };
      7 
      8 typedef struct {
      9 	unsigned char r;
     10 	unsigned char g;
     11 	unsigned char b;
     12 } PhColorKey;
     13 
     14 typedef struct {
     15 	const char *path;
     16 	PhColorKey key;
     17 } PhAssetDef;
     18 
     19 #if PH_USE_SDL
     20 #include <SDL3/SDL.h>
     21 
     22 typedef struct {
     23 	SDL_Texture *textures[PH_MAX_ASSETS];
     24 	int texture_count;
     25 } PhRenderAssets;
     26 
     27 int ph_render_assets_load(PhRenderAssets *assets, SDL_Renderer *renderer,
     28 	const PhAssetDef *defs, int def_count);
     29 void ph_render_assets_destroy(PhRenderAssets *assets);
     30 SDL_Texture *ph_render_asset(const PhRenderAssets *assets, int asset_id);
     31 void ph_render_sprite(SDL_Renderer *renderer, SDL_Texture *texture,
     32 	int sprite_tile_x, int sprite_tile_y, SDL_FRect dst, SDL_FlipMode flip);
     33 void ph_render_entity_frame(const PhEntityDef *def, const PhEntity *entity,
     34 	int *sprite_tile_x, int *sprite_tile_y, SDL_FlipMode *flip);
     35 void ph_render_world(SDL_Renderer *renderer, const PhRenderAssets *assets,
     36 	const PhWorld *world);
     37 
     38 #endif
     39 
     40 #endif