Banjo API 0.0.1
Multi-purpose C99 API
Loading...
Searching...
No Matches
bitmap.h
Go to the documentation of this file.
1
11#pragma once
12#include <banjo/api.h>
13#include <banjo/error.h>
14#include <banjo/pixel.h>
15#include <banjo/rect.h>
16#include <banjo/stream.h>
17
19typedef int bj_pixel[2];
20
22typedef struct bj_bitmap_t bj_bitmap;
23
30 void
31);
32
49 size_t width,
50 size_t height,
51 bj_pixel_mode mode,
52 size_t stride
53);
54
60BANJO_EXPORT void bj_bitmap_del(
61 bj_bitmap* p_bitmap
62);
63
131 const char* p_path,
132 bj_error** p_error
133);
134
168BANJO_EXPORT bj_bitmap* bj_bitmap_new_from_pixels(
169 void* p_pixels,
170 size_t width,
171 size_t height,
172 bj_pixel_mode mode,
173 size_t stride
174);
175
195BANJO_EXPORT bj_bitmap* bj_bitmap_copy(
196 const bj_bitmap* p_bitmap
197);
198
227BANJO_EXPORT bj_bitmap* bj_bitmap_convert(
228 const bj_bitmap* p_bitmap,
229 bj_pixel_mode mode
230);
231
250BANJO_EXPORT bj_bitmap* bj_bitmap_init(
251 bj_bitmap* p_bitmap,
252 void* p_pixels,
253 size_t width,
254 size_t height,
255 bj_pixel_mode mode,
256 size_t stride
257);
258
264BANJO_EXPORT void bj_bitmap_reset(
265 bj_bitmap* p_bitmap
266);
267
274BANJO_EXPORT void* bj_bitmap_pixels(
275 bj_bitmap* p_bitmap
276);
277
284BANJO_EXPORT size_t bj_bitmap_width(
285 const bj_bitmap* p_bitmap
286);
287
294BANJO_EXPORT size_t bj_bitmap_height(
295 const bj_bitmap* p_bitmap
296);
297
304BANJO_EXPORT int bj_bitmap_mode(
305 bj_bitmap* p_bitmap
306);
307
314BANJO_EXPORT size_t bj_bitmap_stride(
315 bj_bitmap* p_bitmap
316);
317
329BANJO_EXPORT void bj_bitmap_rgb(
330 const bj_bitmap* p_bitmap,
331 size_t x,
332 size_t y,
333 uint8_t* p_red,
334 uint8_t* p_green,
335 uint8_t* p_blue
336);
337
348BANJO_EXPORT uint32_t bj_bitmap_pixel_value(
349 bj_bitmap* p_bitmap,
350 uint8_t red,
351 uint8_t green,
352 uint8_t blue
353);
354
363BANJO_EXPORT void bj_bitmap_put_pixel(
364 bj_bitmap* p_bitmap,
365 size_t x,
366 size_t y,
367 uint32_t value
368);
369
379BANJO_EXPORT void bj_bitmap_clear(
380 bj_bitmap* p_bitmap
381);
382
401BANJO_EXPORT void bj_bitmap_draw_line(
402 bj_bitmap* p_bitmap,
403 bj_pixel p0,
404 bj_pixel p1,
405 uint32_t pixel
406);
407
425BANJO_EXPORT void bj_bitmap_draw_triangle(
426 bj_bitmap* p_bitmap,
427 bj_pixel p0,
428 bj_pixel p1,
429 bj_pixel p2,
430 uint32_t color
431);
432
449BANJO_EXPORT uint32_t bj_bitmap_get(
450 const bj_bitmap* p_bitmap,
451 size_t x,
452 size_t y
453);
454
461BANJO_EXPORT void bj_bitmap_set_clear_color(
462 bj_bitmap* p_bitmap,
463 uint32_t clear_color
464);
465
488BANJO_EXPORT bj_bool bj_bitmap_blit(
489 const bj_bitmap* p_source,
490 const bj_rect* p_source_area,
491 bj_bitmap* p_destination,
492 const bj_rect* p_destination_area
493);
494
527BANJO_EXPORT bj_bool bj_bitmap_blit_stretched(
528 const bj_bitmap* p_source,
529 const bj_rect* p_source_area,
530 bj_bitmap* p_destination,
531 const bj_rect* p_destination_area
532);
533
534
535
536
General-purpose definitions for Banjo API.
Recoverable error handling.
bj_bitmap * bj_bitmap_alloc(void)
Allocate a new bitmap object.
void bj_bitmap_del(bj_bitmap *p_bitmap)
Deletes a bj_bitmap object and releases associated memory.
bj_bitmap * bj_bitmap_new(size_t width, size_t height, bj_pixel_mode mode, size_t stride)
Creates a new bj_bitmap with the specified width and height.
struct bj_bitmap_t bj_bitmap
Typedef for the bj_bitmap struct.
Definition bitmap.h:22
int bj_pixel[2]
Represents a pixel position in a bitmap.
Definition bitmap.h:19
bj_bitmap * bj_bitmap_new_from_file(const char *p_path, bj_error **p_error)
Creates a new bitmap by loading from a file.
bj_bool bj_bitmap_blit_stretched(const bj_bitmap *p_source, const bj_rect *p_source_area, bj_bitmap *p_destination, const bj_rect *p_destination_area)
Error structure.
Definition error.h:131
bj_pixel_mode
Representation of a pixel encoding.
Definition pixel.h:15
struct bj_rect_t bj_rect
Typedef for bj_rect_t.
Definition rect.h:15
Header file for general pixel manipulation facilities.
Defines the bj_rect struct representing a rectangle with position and dimensions.
Header file for bj_stream_t struct and related functions.