diff options
Diffstat (limited to 'src/3ds/graphics.h')
-rw-r--r-- | src/3ds/graphics.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/3ds/graphics.h b/src/3ds/graphics.h new file mode 100644 index 0000000..badd898 --- /dev/null +++ b/src/3ds/graphics.h @@ -0,0 +1,67 @@ +//3DS graphics.h +#ifndef GRAPHICS_H +#define GRAPHICS_H + +#include <3ds.h> + +typedef struct { + u8 r; + u8 g; + u8 b; +} PHL_RGB; + +typedef struct { + u8* pxdata; + u16 width; + u16 height; + PHL_RGB colorKey; +} PHL_Surface; + +typedef struct { + gfxScreen_t screen; + gfx3dSide_t side; + u16 width; + u16 height; +} Screen; + +typedef struct { + int tileX[16][12]; + int tileY[16][12]; +} PHL_Background; + +PHL_Surface db; +Screen* activeScreen; + +PHL_Surface backBuffer; + +void PHL_GraphicsInit(); +void PHL_GraphicsExit(); + +void PHL_StartDrawing(); +void PHL_EndDrawing(); + +void PHL_ForceScreenUpdate(); + +void PHL_SetDrawbuffer(PHL_Surface surf); +void PHL_ResetDrawbuffer(); + +PHL_RGB PHL_NewRGB(u8 r, u8 g, u8 b); +void PHL_SetColorKey(PHL_Surface surf, u8 r, u8 g, u8 b); + +PHL_Surface PHL_NewSurface(u16 w, u16 h); +void PHL_FreeSurface(PHL_Surface surf); + +PHL_Surface PHL_LoadBMP_Debug(int index); +PHL_Surface PHL_LoadBMP(int index); + +void PHL_DrawRect(s16 x, s16 y, u16 w, u16 h, PHL_RGB col); + +void PHL_DrawSurface(s16 x, s16 y, PHL_Surface surf); +void PHL_DrawSurfacePart(s16 x, s16 y, s16 cropx, s16 cropy, s16 cropw, s16 croph, PHL_Surface surf); + +void PHL_DrawBackground(PHL_Background back, PHL_Background fore); +void PHL_UpdateBackground(PHL_Background back, PHL_Background fore); + +void swapScreen(gfxScreen_t screen, gfx3dSide_t side); + +#endif
\ No newline at end of file |