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