4coder-non-source/test_data/lots_of_files/app_base.h

72 lines
1.0 KiB
C

/*
* 4tech reusable platform layer interface
* by Allen Webster
* 20.08.2015
*
*/
// TOP
#if FTECH_ALLOW_ASSERT
#include <assert.h>
#define _Assert assert
#else
#define _Assert(x)
#endif
#define SOFTWARE_RENDER 0
#define OPENGL_RENDER 1
#if FTECH_GL_RENDER
#define RENDER_MODE OPENGL_RENDER
#endif
#if FTECH_SOFT_RENDER
#define RENDER_MODE SOFTWARE_RENDER
#endif
#ifndef RENDER_MODE
#error render mode not set
#endif
struct Mouse_State{
bool32 in_window;
i32 x, y;
bool32 l, r;
bool32 pl, pr;
i16 wheel;
};
struct Memory{
void *mem;
i32 size;
};
struct Render_Target{
i32 w, h;
};
struct App_Step_Data{
Memory memory;
Render_Target render_target;
Mouse_State mouse;
};
enum App_Mouse_Cursor{
APP_MOUSE_CURSOR_UNSET,
APP_MOUSE_CURSOR_IBEAM,
APP_MOUSE_CURSOR_ARROW,
APP_MOUSE_CURSOR_LEFTRIGHT,
APP_MOUSE_CURSOR_UPDOWN
};
struct App_Step_Out{
App_Mouse_Cursor mouse_cursor;
};
#define APP_STEP_SIG(name) void name(App_Step_Data *step, App_Step_Out *out)
APP_STEP_SIG(app_step);
// BOTTOM