Gama C Library
Gama C API Documentation
Loading...
Searching...
No Matches
gapi.h
Go to the documentation of this file.
1#pragma once
2#include <stdint.h>
3
4#include "position.h"
5
6double _gm_dt = 0;
7double _gm_t = 0;
8
9static inline double gm_dt() { return _gm_dt; }
10static inline double gm_t() { return _gm_t; }
11
12struct _gmMouse {
15
16 int32_t pressed;
17 int32_t down;
18};
20 .position =
21 {
22 .x = 0,
23 .y = 0,
24 },
25 .movement =
26 {
27 .x = 0,
28 .y = 0,
29 },
30 .pressed = 0,
31 .down = 0,
32};
33
34// --- Windowing ---
35extern void gapi_set_title(const char *title);
36extern void gapi_resize(const int32_t width, const int32_t height);
37extern void gapi_set_bg_color(const uint8_t r, const uint8_t g, const uint8_t b,
38 const uint8_t a);
39extern void gapi_fullscreen(const int32_t fullscreen);
40
41// --- Utils ---
42extern void gapi_log(const char *message);
43
44// --- Game Loop ---
45extern int32_t gapi_init(const int32_t width, const int32_t height,
46 const char *title);
47extern int32_t gapi_yield(double *dt); // Changed to int32_t return type
48extern void gapi_quit();
49extern int32_t gapi_runs();
50
51// --- Drawing Primitives ---
52extern int32_t gapi_draw_line(double x1, double y1, double x2, double y2,
53 double thickness, uint8_t r, uint8_t g, uint8_t b,
54 uint8_t a);
55extern int32_t gapi_draw_rect(double x, double y, double w, double h,
56 uint8_t cr, uint8_t cg, uint8_t cb, uint8_t ca);
57extern int32_t gapi_draw_rounded_rect(double x, double y, double w, double h,
58 double r, uint8_t cr, uint8_t cg,
59 uint8_t cb, uint8_t ca);
60extern int32_t gapi_draw_circle(double center_x, double center_y, double radius,
61 uint8_t red, uint8_t green, uint8_t blue,
62 uint8_t alpha);
63extern int32_t gapi_draw_ellipse(double x, double y, double w, double h,
64 uint8_t cr, uint8_t cg, uint8_t cb,
65 uint8_t ca);
66extern int32_t gapi_draw_triangle(double x1, double y1, double x2, double y2,
67 double x3, double y3, uint8_t cr, uint8_t cg,
68 uint8_t cb, uint8_t ca);
69
70// --- Image Functions ---
71extern uint32_t gapi_create_image(const char *path, uint32_t *width,
72 uint32_t *height);
73extern int32_t gapi_draw_image(uint32_t handle, double x, double y,
74 double width, double height);
75extern int32_t gapi_draw_image_part(uint32_t handle, uint32_t slice_x,
76 uint32_t slice_y, uint32_t slice_width,
77 uint32_t slice_height, double x, double y,
78 double width, double height);
79
80// --- Text Functions ---
81extern int32_t gapi_draw_text(double x, double y, double height,
82 const char *txt, const char *font, uint8_t style,
83 uint8_t cr, uint8_t cg, uint8_t cb, uint8_t ca);
84
85// --- Event Functions ---
86extern int32_t gapi_key_pressed(char t, char k);
87
88extern void gapi_wait_queue();
89
90extern void gapi_get_mouse_move(double *x, double *y);
91extern int32_t gapi_mouse_down();
92extern int32_t gapi_mouse_pressed();
93extern int32_t gapi_mouse_get(double *x, double *y);
void gapi_set_title(const char *title)
int32_t gapi_draw_rect(double x, double y, double w, double h, uint8_t cr, uint8_t cg, uint8_t cb, uint8_t ca)
int32_t gapi_mouse_down()
double _gm_dt
Definition gapi.h:6
int32_t gapi_draw_ellipse(double x, double y, double w, double h, uint8_t cr, uint8_t cg, uint8_t cb, uint8_t ca)
int32_t gapi_draw_triangle(double x1, double y1, double x2, double y2, double x3, double y3, uint8_t cr, uint8_t cg, uint8_t cb, uint8_t ca)
void gapi_fullscreen(const int32_t fullscreen)
int32_t gapi_mouse_pressed()
int32_t gapi_key_pressed(char t, char k)
uint32_t gapi_create_image(const char *path, uint32_t *width, uint32_t *height)
void gapi_set_bg_color(const uint8_t r, const uint8_t g, const uint8_t b, const uint8_t a)
double _gm_t
Definition gapi.h:7
int32_t gapi_draw_image(uint32_t handle, double x, double y, double width, double height)
int32_t gapi_init(const int32_t width, const int32_t height, const char *title)
void gapi_wait_queue()
void gapi_resize(const int32_t width, const int32_t height)
int32_t gapi_draw_rounded_rect(double x, double y, double w, double h, double r, uint8_t cr, uint8_t cg, uint8_t cb, uint8_t ca)
void gapi_log(const char *message)
void gapi_get_mouse_move(double *x, double *y)
void gapi_quit()
int32_t gapi_yield(double *dt)
int32_t gapi_draw_line(double x1, double y1, double x2, double y2, double thickness, uint8_t r, uint8_t g, uint8_t b, uint8_t a)
int32_t gapi_draw_circle(double center_x, double center_y, double radius, uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
int32_t gapi_runs()
int32_t gapi_draw_image_part(uint32_t handle, uint32_t slice_x, uint32_t slice_y, uint32_t slice_width, uint32_t slice_height, double x, double y, double width, double height)
struct _gmMouse gm_mouse
Definition gapi.h:19
int32_t gapi_mouse_get(double *x, double *y)
int32_t gapi_draw_text(double x, double y, double height, const char *txt, const char *font, uint8_t style, uint8_t cr, uint8_t cg, uint8_t cb, uint8_t ca)
Definition gapi.h:12
gmPos position
Definition gapi.h:13
int32_t pressed
Definition gapi.h:16
gmPos movement
Definition gapi.h:14
int32_t down
Definition gapi.h:17
Definition position.h:4