mirror of
https://git.shylie.info/shylie/glerminal.git
synced 2026-01-29 22:50:04 +00:00
Add mouse callbacks
This commit is contained in:
@@ -9,17 +9,24 @@ extern "C"
|
||||
#endif
|
||||
|
||||
typedef void (*glerminal_init_cb)();
|
||||
typedef void (*glerminal_main_cb)(float dt);
|
||||
typedef void (*glerminal_main_cb)(double dt);
|
||||
typedef void (*glerminal_keys_cb)(int key);
|
||||
typedef void (*glerminal_mousemoved_cb)(double x, double y);
|
||||
typedef void (*glerminal_mousepress_cb)(int button, double x, double y);
|
||||
|
||||
typedef struct {
|
||||
glerminal_init_cb init;
|
||||
glerminal_main_cb main;
|
||||
glerminal_keys_cb keypress, keyrelease;
|
||||
glerminal_mousemoved_cb moved;
|
||||
glerminal_mousepress_cb mousepress, mouserelease;
|
||||
} glerminal_init_params;
|
||||
|
||||
/**
|
||||
* @brief Call init once, then run the application's mainloop
|
||||
* @param init initialization callback
|
||||
* @param main main calllback
|
||||
* @param pressed key pressed callback (can be null)
|
||||
* @param released key released callback (can be null)
|
||||
* @param params Initialization parameters
|
||||
*/
|
||||
void glerminal_run(glerminal_init_cb init, glerminal_main_cb main, glerminal_keys_cb pressed, glerminal_keys_cb released);
|
||||
void glerminal_run(glerminal_init_params params);
|
||||
|
||||
void glerminal_quit();
|
||||
|
||||
@@ -30,39 +37,43 @@ void glerminal_flush();
|
||||
|
||||
/**
|
||||
* @brief Set a cell's sprite
|
||||
* @param x position of the cell in the range [0, 40)
|
||||
* @param y position of the cell in the range [0, 25)
|
||||
* @param layer layer of the cell in the range [0, 8)
|
||||
* @param sprite sprite's index in the range [0, 256)
|
||||
* @param x position of the cell in the range [0, GRID_WIDTH)
|
||||
* @param y position of the cell in the range [0, GRID_HEIGHT)
|
||||
* @param layer layer of the cell in the range [0, LAYER_COUNT)
|
||||
* @param sprite sprite's index in the range [0, 4096)
|
||||
*/
|
||||
void glerminal_set(unsigned char x, unsigned char y, unsigned char layer, unsigned short sprite);
|
||||
/**
|
||||
* @brief Get a cell's sprite
|
||||
* @param x position of the cell in the range [0, 40)
|
||||
* @param y position of the cell in the range [0, 25)
|
||||
* @param layer layer of the cell in the range [0, 8)
|
||||
* @param x position of the cell in the range [0, GRID_WIDTH)
|
||||
* @param y position of the cell in the range [0, GRID_HEIGHT)
|
||||
* @param layer layer of the cell in the range [0, LAYER_COUNT)
|
||||
* @return sprite index currently assigned to the cell
|
||||
*/
|
||||
unsigned char glerminal_get(unsigned char x, unsigned char y, unsigned short layer);
|
||||
/**
|
||||
* @brief Set a cell's offset
|
||||
* @param x position of the cell in the range [0, 40)
|
||||
* @param y position of the cell in the range [0, 25)
|
||||
* @param layer layer of the cell in the range [0, 8)
|
||||
* @param x_offset offset of the cell on the x axis in the range [-128, 127], where 0 is no offset
|
||||
* @param y_offset offset of the cell on the y axis in the range [-128, 127], where 0 is no offset
|
||||
* @param x position of the cell in the range [0, GRID_WIDTH)
|
||||
* @param y position of the cell in the range [0, GRID_HEIGHT)
|
||||
* @param layer layer of the cell in the range [0, LAYER_COUNT)
|
||||
* @param x_offset offset of the cell on the x axis in cells
|
||||
* @param y_offset offset of the cell on the y axis in cells
|
||||
*/
|
||||
void glerminal_offset(unsigned char x, unsigned char y, unsigned char layer, float x_offset, float y_offset);
|
||||
|
||||
/**
|
||||
* @brief Set a layer's color
|
||||
* @param layer The layer to modify
|
||||
* @brief Set a cell's color
|
||||
* @param x position of the cell in the range [0, GRID_WIDTH)
|
||||
* @param y position of the cell in the range [0, GRID_HEIGHT)
|
||||
* @param layer layer of the cell in the range [0, LAYER_COUNT)
|
||||
* @param color The new color
|
||||
*/
|
||||
void glerminal_color(unsigned char x, unsigned char y, unsigned char layer, unsigned int color);
|
||||
/**
|
||||
* @brief Set a layer's scale
|
||||
* @param layer The layer to modify
|
||||
* @brief Set a cell's scale
|
||||
* @param x position of the cell in the range [0, GRID_WIDTH)
|
||||
* @param y position of the cell in the range [0, GRID_HEIGHT)
|
||||
* @param layer layer of the cell in the range [0, LAYER_COUNT)
|
||||
* @param scale The new scale
|
||||
*/
|
||||
void glerminal_scale(unsigned char x, unsigned char y, unsigned char layer, float scale);
|
||||
|
||||
Reference in New Issue
Block a user