DTRenderer/src/DRendererPlatform.h
2017-05-08 22:59:44 +10:00

97 lines
1.2 KiB
C

#ifndef DRENDERER_PLATFORM_H
#define DRENDERER_PLATFORM_H
#include "dqn.h"
enum Key
{
key_up,
key_down,
key_left,
key_right,
key_escape,
key_1,
key_2,
key_3,
key_4,
key_q,
key_w,
key_e,
key_r,
key_a,
key_s,
key_d,
key_f,
key_z,
key_x,
key_c,
key_v,
key_count,
};
typedef struct KeyState
{
bool endedDown;
u32 halfTransitionCount;
} KeyState;
typedef struct PlatformInput
{
f32 deltaForFrame;
union {
KeyState key[key_count];
struct
{
KeyState up;
KeyState down;
KeyState left;
KeyState right;
KeyState escape;
KeyState key_1;
KeyState key_2;
KeyState key_3;
KeyState key_4;
KeyState key_q;
KeyState key_w;
KeyState key_e;
KeyState key_r;
KeyState key_a;
KeyState key_s;
KeyState key_d;
KeyState key_f;
KeyState key_z;
KeyState key_x;
KeyState key_c;
KeyState key_v;
};
};
} PlatformInput;
typedef struct PlatformMemory
{
DqnMemBuffer permanentBuffer;
DqnMemBuffer transientBuffer;
} PlatformMemory;
typedef struct PlatformRenderBuffer
{
i32 width;
i32 height;
i32 bytesPerPixel;
// Pixel Format: XX RR GG BB
void *memory;
} PlatformRenderBuffer;
#endif