27 lines
918 B
C
27 lines
918 B
C
|
|
#pragma once
|
||
|
|
|
||
|
|
#include "pxl8_types.h"
|
||
|
|
|
||
|
|
typedef struct pxl8_atlas pxl8_atlas;
|
||
|
|
|
||
|
|
typedef struct pxl8_atlas_entry {
|
||
|
|
bool active;
|
||
|
|
u32 texture_id;
|
||
|
|
i32 x, y, w, h;
|
||
|
|
} pxl8_atlas_entry;
|
||
|
|
|
||
|
|
pxl8_atlas* pxl8_atlas_create(u32 width, u32 height, pxl8_color_mode color_mode);
|
||
|
|
void pxl8_atlas_destroy(pxl8_atlas* atlas);
|
||
|
|
|
||
|
|
u32 pxl8_atlas_add_texture(pxl8_atlas* atlas, const u8* pixels, u32 w, u32 h,
|
||
|
|
pxl8_color_mode color_mode);
|
||
|
|
bool pxl8_atlas_expand(pxl8_atlas* atlas, pxl8_color_mode color_mode);
|
||
|
|
|
||
|
|
const pxl8_atlas_entry* pxl8_atlas_get_entry(const pxl8_atlas* atlas, u32 id);
|
||
|
|
u32 pxl8_atlas_get_entry_count(const pxl8_atlas* atlas);
|
||
|
|
u32 pxl8_atlas_get_height(const pxl8_atlas* atlas);
|
||
|
|
const u8* pxl8_atlas_get_pixels(const pxl8_atlas* atlas);
|
||
|
|
u32 pxl8_atlas_get_width(const pxl8_atlas* atlas);
|
||
|
|
bool pxl8_atlas_is_dirty(const pxl8_atlas* atlas);
|
||
|
|
void pxl8_atlas_mark_clean(pxl8_atlas* atlas);
|