Banjo API 0.0.1
Multi-purpose C99 API
Loading...
Searching...
No Matches
shader.h
Go to the documentation of this file.
1
25
26#pragma once
27
28#include <banjo/api.h>
29#include <banjo/bitmap.h>
30#include <banjo/linmath.h>
31
45typedef int (*bj_bitmap_shading_fn_t)(bj_vec3 out_color, const bj_vec2 pixel_coord, void* user_data);
46
134
145#define BJ_SHADER_STANDARD_FLAGS (BJ_SHADER_INVERT_Y | BJ_SHADER_CLAMP_COLOR | BJ_SHADER_NORMALIZE_COORDS | BJ_SHADER_CENTER_COORDS)
146
160BANJO_EXPORT void bj_bitmap_apply_shader(
161 bj_bitmap* p_bitmap,
162 bj_bitmap_shading_fn_t p_shader,
163 void* p_data,
164 uint8_t flags
165);
166
General-purpose definitions for Banjo API.
Header file for Bitmap type.
struct bj_bitmap_t bj_bitmap
Typedef for the bj_bitmap struct.
Definition bitmap.h:40
bj_real_t bj_vec3[3]
Defines a 3D vector type.
Definition linmath.h:54
bj_real_t bj_vec2[2]
Defines a 2D vector type.
Definition linmath.h:43
bj_shader_flag_t
Shader input control flags.
Definition shader.h:55
void bj_bitmap_apply_shader(bj_bitmap *p_bitmap, bj_bitmap_shading_fn_t p_shader, void *p_data, uint8_t flags)
Applies a shader function to every pixel in a bitmap.
int(* bj_bitmap_shading_fn_t)(bj_vec3 out_color, const bj_vec2 pixel_coord, void *user_data)
Function type for a bitmap shading operation.
Definition shader.h:45
enum bj_shader_flag_t bj_shader_flag
Shader input control flags.
@ BJ_SHADER_CENTER_COORDS
Center pixel coordinates around the origin.
Definition shader.h:131
@ BJ_SHADER_CLAMP_COLOR
Clamp the output color to the range [0.0, 1.0].
Definition shader.h:96
@ BJ_SHADER_INVERT_Y
Invert the Y coordinate of the input pixel.
Definition shader.h:85
@ BJ_SHADER_NORMALIZE_COORDS
Normalize pixel coordinates to the [0.0, 1.0] range.
Definition shader.h:110
@ BJ_SHADER_INVERT_X
Invert the X coordinate of the input pixel.
Definition shader.h:70