A 3d fps game made in OpenGL
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Symmetry/src/gui.h

57 lines
1.6 KiB

#ifndef GUI_H
#define GUI_H
#define NK_INCLUDE_FIXED_TYPES
#define NK_INCLUDE_DEFAULT_ALLOCATOR
#define NK_INCLUDE_STANDARD_VARARGS
#define NK_INCLUDE_FONT_BAKING
#define NK_INCLUDE_DEFAULT_FONT
#define NK_BUTTON_TRIGGER_ON_RELEASE
#define NK_INCLUDE_VERTEX_BUFFER_OUTPUT
#define NK_INCLUDE_DEFAULT_FONT
#include <nuklear.h>
#include "gl_load.h"
struct Gui_State
{
struct nk_buffer cmds;
struct nk_draw_null_texture null;
struct nk_context context;
struct nk_font_atlas atlas;
struct nk_font* current_font;
GLuint vbo, vao, ebo;
int shader;
GLuint vert_shdr;
GLuint frag_shdr;
GLint attrib_pos;
GLint attrib_uv;
GLint attrib_col;
GLint uniform_tex;
GLint uniform_proj;
int font_tex;
};
enum Gui_Theme
{
GT_DEFAULT = 0,
GT_WHITE,
GT_RED,
GT_BLUE,
GT_DARK
};
int gui_init(void);
void gui_cleanup(void);
void gui_render(enum nk_anti_aliasing AA, int max_vertex_buffer, int max_element_buffer);
void gui_handle_mousewheel_event(int x, int y);
void gui_handle_mousemotion_event(int x, int y, int xrel, int yrel);
void gui_handle_mousebutton_event(int button, int state, int x, int y);
void gui_handle_keyboard_event(int key, int state, int mod_ctrl, int mod_shift);
void gui_input_begin(void);
void gui_input_end(void);
void gui_font_set(const char* font_name, float font_height);
void gui_theme_set(enum Gui_Theme theme);
struct Gui_State* gui_state_get(void);
#endif