aboutsummaryrefslogtreecommitdiff
path: root/src/3ds/graphics.h
blob: badd898bbba16e2bbb28989cec7727c80a3b0b2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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