objc

frame.h
Go to the documentation of this file.
1 
9 #pragma once
10 #include "types.h"
11 
21 typedef struct pix_frame_t {
25  void *buf;
26  size_t stride;
27 
36  bool (*drawable)(void);
37 
48  void (*clear_rect)(struct pix_frame_t *frame, pix_color_t color,
49  pix_point_t origin, pix_size_t size);
50 
57  pix_color_t (*get)(struct pix_frame_t *frame, pix_point_t origin);
58 
66  void (*set)(struct pix_frame_t *frame, pix_color_t color, pix_point_t origin,
67  pix_op_t op);
68 
79  size_t (*get_rect)(struct pix_frame_t *frame, pix_color_t *dst,
80  pix_point_t origin, pix_size_t size);
81 
90  void (*set_rect)(struct pix_frame_t *frame, pix_color_t *src,
91  pix_point_t origin, pix_size_t size, pix_op_t op);
92 } pix_frame_t;
93 
95 // LIFECYCLE
96 
121  size_t alignment);
122 
133 bool pix_frame_finalize(pix_frame_t *frame);
134 
136 // PUBLIC METHODS
137 
149 bool pix_frame_clear_rect(pix_frame_t *frame, pix_color_t color,
150  pix_point_t origin, pix_size_t size);
Common pixel types and structures.
void * buf
Raw buffer holding pixel data.
Definition: frame.h:25
pix_point_t offset
Offset (in pixels) to the origin within the buffer.
Definition: frame.h:22
struct pix_frame_t pix_frame_t
Frame structure containing pixel data and drawing operations.
size_t(* get_rect)(struct pix_frame_t *frame, pix_color_t *dst, pix_point_t origin, pix_size_t size)
Get a rectangular region of pixels.
Definition: frame.h:79
uint32_t pix_color_t
Color value type for pixel operations.
Definition: types.h:54
void(* clear_rect)(struct pix_frame_t *frame, pix_color_t color, pix_point_t origin, pix_size_t size)
Clear a rectangular region to a solid color.
Definition: frame.h:48
pix_size_t size
Size of the buffer in pixels.
Definition: frame.h:23
pix_format_t format
Pixel format of the buffer.
Definition: frame.h:24
Frame structure containing pixel data and drawing operations.
Definition: frame.h:21
Point structure representing X,Y coordinates.
Definition: types.h:17
pix_op_t
Pixel operation types for drawing operations.
Definition: types.h:44
bool pix_frame_clear_rect(pix_frame_t *frame, pix_color_t color, pix_point_t origin, pix_size_t size)
Clear a rectangular region to a solid color.
bool pix_frame_finalize(pix_frame_t *frame)
Finalize and free resources associated with a framebuffer.
pix_frame_t pix_frame_init(pix_format_t format, pix_size_t size, size_t alignment)
Initialize a new framebuffer with the specified format and size.
pix_format_t
Pixel format enumeration defining color depth and layout.
Definition: types.h:35
Size structure representing width and height dimensions.
Definition: types.h:26
bool(* drawable)(void)
Check if the framebuffer is currently drawable.
Definition: frame.h:36
size_t stride
Bytes per scanline.
Definition: frame.h:26
void(* set_rect)(struct pix_frame_t *frame, pix_color_t *src, pix_point_t origin, pix_size_t size, pix_op_t op)
Set a rectangular region of pixels from RGBA32 source data.
Definition: frame.h:90