objc

display.h
Go to the documentation of this file.
1 
9 #pragma once
10 #include "frame.h"
11 #include "types.h"
12 #include <stdbool.h>
13 #include <stdint.h>
14 
16 // FORWARD DECLARATIONS
17 
18 struct pix_display_t;
19 
21 // GLOBALS
22 
31 #define PIX_DISPLAY_CTX_SIZE 64
32 
34 // TYPES
35 
42 typedef void (*pix_display_callback_t)(const struct pix_display_t *display);
43 
51 typedef struct pix_display_t {
55  uint64_t time_ms;
56  uint64_t interval_ms;
57  void *userdata;
59  bool (*lock)(struct pix_display_t
61  *display);
62  bool (*unlock)(struct pix_display_t *display);
65 
67 // LIFECYCLE
68 
69 #ifdef __cplusplus
70 extern "C" {
71 #endif
72 
85 pix_display_t pix_sdl_display_init(const char *title, pix_size_t size,
86  pix_format_t format, uint32_t interval_ms,
88 
94 
99 bool pix_display_runloop(pix_display_t *display);
100 
101 #ifdef __cplusplus
102 }
103 #endif
Display context structure.
Definition: display.h:51
Common pixel types and structures.
uint64_t time_ms
Timestamp of last frame update in milliseconds.
Definition: display.h:55
uint64_t interval_ms
Target frame interval in milliseconds.
Definition: display.h:56
uint8_t ctx[PIX_DISPLAY_CTX_SIZE]
Internal context buffer for display-specific state.
Definition: display.h:58
void(* pix_display_callback_t)(const struct pix_display_t *display)
Display callback function type for frame updates.
Definition: display.h:42
pix_display_callback_t callback
Optional callback function for frame updates.
Definition: display.h:54
Frame functions.
struct pix_display_t pix_display_t
Display context structure.
bool pix_display_runloop(pix_display_t *display)
Perform operations in the runloop for the display.
pix_frame_t frame
Framebuffer containing pixel data for the display.
Definition: display.h:52
Frame structure containing pixel data and drawing operations.
Definition: frame.h:21
pix_display_t pix_sdl_display_init(const char *title, pix_size_t size, pix_format_t format, uint32_t interval_ms, pix_display_callback_t callback)
Initialize a new SDL display with the specified format, size, and interval.
void * userdata
User-defined data pointer passed to callbacks.
Definition: display.h:57
pix_format_t
Pixel format enumeration defining color depth and layout.
Definition: types.h:35
bool pix_display_sdl_finalize(pix_display_t *display)
Finalize and free resources associated with an SDL display.
Size structure representing width and height dimensions.
Definition: types.h:26
bool(* lock)(struct pix_display_t *display)
Function pointer to lock display for drawing.
Definition: display.h:60
bool(* unlock)(struct pix_display_t *display)
Function pointer to unlock display after drawing.
Definition: display.h:62
#define PIX_DISPLAY_CTX_SIZE
Size of the display context buffer.
Definition: display.h:31