aboutsummaryrefslogtreecommitdiff
path: root/teensy/teensy.h
diff options
context:
space:
mode:
authoriamcheeseman <[email protected]>2026-05-15 10:09:14 -0400
committeriamcheeseman <[email protected]>2026-05-15 10:09:14 -0400
commit6175e022e05d7224d57de2871246316a30dbf52e (patch)
treeaba031d26837f1e3f12768aea641bdaae54251b4 /teensy/teensy.h
parentb5561bbf7f2639a2bd9754358ddb6acded7355b1 (diff)
comment exposed teensy functions
Diffstat (limited to 'teensy/teensy.h')
-rw-r--r--teensy/teensy.h61
1 files changed, 52 insertions, 9 deletions
diff --git a/teensy/teensy.h b/teensy/teensy.h
index b50bac7..346d9eb 100644
--- a/teensy/teensy.h
+++ b/teensy/teensy.h
@@ -31,6 +31,7 @@
#define TY_COLOR_GRAY ty_color(128, 128, 128)
// Virtual controller. Keyboard keys are also mapped to this.
+typedef uint8_t ty_Button;
enum {
TY_BTN_LEFT_UP, // D-pad #1 up
TY_BTN_LEFT_DOWN, // D-pad #1 down
@@ -47,7 +48,8 @@ enum {
TY_BTN_ACTION_3, // X
TY_BTN_ACTION_4, // Y
- // for use in the editor
+ // For use in the editor
+
TY_BTN_DB_CTRL,
TY_BTN_DB_SHIFT,
TY_BTN_DB_LMB,
@@ -56,8 +58,9 @@ enum {
TY_BTN_COUNT,
};
-typedef uint8_t ty_Button;
+// Tells Teensy what your preferred settings would be. Some settings may not
+// always be accurately followed, hence they are hints.
typedef struct {
int scr_width;
int scr_height;
@@ -65,22 +68,26 @@ typedef struct {
int ticrate;
} ty_Hints;
+// Represents an RGB8 color.
typedef struct {
uint8_t r;
uint8_t g;
uint8_t b;
} ty_Color;
+// Floating-point 2D vector.
typedef struct {
float x;
float y;
} ty_Vec2;
+// Fixed-point 2D vector.
typedef struct {
int x;
int y;
} ty_Vec2i;
+// Floating-point 2D rectangle.
typedef struct {
float x;
float y;
@@ -88,6 +95,7 @@ typedef struct {
float h;
} ty_Rect;
+// Fixed-point 2D rectangle.
typedef struct {
int x;
int y;
@@ -95,12 +103,16 @@ typedef struct {
int h;
} ty_Recti;
+// Stores an image in RGB8 format. When drawing, any texel of the color #FF00FF
+// will be interpreted as transparent.
typedef struct {
ty_Color *data;
int width;
int height;
} ty_Image;
+// Stores a list of images that map to ASCII characters. The only required
+// character is a space (0x20) since it determines the height of the font.
typedef struct {
ty_Image glyphs[CHAR_MAX];
} ty_Font;
@@ -108,75 +120,106 @@ typedef struct {
void ty_init(ty_Hints hints);
void ty_deinit(void);
-// If the button is being held down
+// Returns whether a button is being pressed or not.
bool ty_button_down(ty_Button btn);
-// If the button was pressed just now
+// Returns whether a button was pressed down this frame or not.
bool ty_button_pressed(ty_Button btn);
-// Gets the mouse position; should only be used as debug or dev tools
+// Gets the mouse position; intended to be used as debug or dev tools.
ty_Vec2i ty_mouse_pos(void);
// Whether or not the main loop should continue executing.
bool ty_is_game_running(void);
-// Gets the real time that the game has been running.
+// Gets the real time in seconds that the game has been running.
double ty_get_time(void);
-// Handle events, tick game logic, etc. Returns the amount of times you should
-// tic.
+// Handle events, game logic, etc. Returns the amount of times you should tic.
int ty_tick(void);
+// Takes in a string format and a va_list and returns a TEMPORARILY ALLOCATED
+// formatted string.
char *ty_format_args(const char *fmt, va_list list);
+// Takes in a string format and returns a TEMPORARILY ALLOCATED formatted
+// string.
char *ty_format(const char *fmt, ...);
+// Checks if a point is within a fixed-point rect.
bool ty_pointi_in_recti(ty_Vec2i point, ty_Recti rect);
+// Checks if a point is within a floating-point rect.
bool ty_point_in_rect(ty_Vec2 point, ty_Rect rect);
+// Creates an image using the relevant data (formatted in RGB8). You may free
+// the passed data after this call as it is copied.
ty_Image ty_create_image(int w, int h, const ty_Color* data);
void ty_free_image(ty_Image img);
+// Returns the specified pixel color on an image. Will emit a fatal error if an
+// index is made out of bounds.
ty_Color ty_img_get_pixel(ty_Image img, ty_Vec2i pos);
+// Sets a pixel to a color. Will emit a fatal error if an index is made out of
+// bounds.
void ty_img_set_pixel(
ty_Image img,
ty_Vec2i pos,
ty_Color color
);
+// Adds a glyph to a font. The glyph is an ASCII character.
void ty_font_add_glyph(ty_Font *font, uint8_t c, ty_Image img);
+// Calculates the length, in pixels, of the string when drawn with a font.
int ty_font_width(const ty_Font *font, const char *fmt, ...);
-// Pass NULL to restore the screen.
+// Sets the image that the renderer draws to. Pass NULL to restore the screen.
void ty_draw_set_target(const ty_Image *img);
+// Sets the entire render target to one color.
void ty_draw_clear(ty_Color col);
+// Draws an image at the specified position. The color #FF00FF will be ignored
+// and not drawn.
void ty_draw_image(ty_Image img, ty_Vec2i pos);
+// Draws a portion of the image to the specified destination rect on the render
+// target. The color #FF00FF will be ignored and not drawn.
void ty_draw_image_ex(
ty_Image img,
ty_Recti src,
ty_Recti dst
);
+// Draws an image with a rotation. The color #FF00FF will be ignored and not
+// drawn.
void ty_draw_image_rot(
ty_Image img,
ty_Vec2i pos,
ty_Vec2i offset,
double rot
);
+
+// Draws a axis-aligned rectangle onto the render target.
void ty_draw_rect(ty_Recti rect, ty_Color color);
+// Draws a line to the render target.
void ty_draw_line(
ty_Vec2i start,
ty_Vec2i end,
ty_Color color
);
+
+// Draws text using to the screen, using a specific font.
void ty_draw_text(const ty_Font *font, ty_Vec2i pos, const char *text);
+// Draws formatted text with arguments from a va_list using to the screen, using
+// a specific font.
void ty_draw_text_args(
const ty_Font *font,
ty_Vec2i pos,
const char *fmt,
va_list args
);
+// Draws formatted text using to the screen, using a specific font.
void ty_draw_text_fmt(
const ty_Font *font,
ty_Vec2i pos,
const char *fmt,
...
);
+
+// Finalizes any rendering done.
void ty_draw_end(void);
+// Pause execution of the game for the amount of time passed in milliseconds.
void ty_sleep(uint64_t ms);
#endif // TEENSY_H_