Banjo API 0.0.1
C99 game development API
Loading...
Searching...
No Matches
Renderer

Enumerations

enum  bj_renderer_type { BJ_RENDERER_TYPE_SOFTWARE }

Functions

struct bj_rendererbj_create_renderer (enum bj_renderer_type type)
void bj_destroy_renderer (struct bj_renderer *renderer)
void bj_renderer_configure (struct bj_renderer *renderer, struct bj_window *window)
struct bj_bitmapbj_get_framebuffer (struct bj_renderer *renderer)
void bj_present (struct bj_renderer *renderer, struct bj_window *window)

Detailed Description

Software rendering backend API.

This module provides a rendering abstraction that manages framebuffers and presentation to windows. Currently supports software rendering with extensibility for additional backends.

Typical usage:

Enumeration Type Documentation

◆ bj_renderer_type

Renderer backend type.

Specifies the type of rendering backend to use.

Enumerator
BJ_RENDERER_TYPE_SOFTWARE 

Software (CPU-based) renderer.

Function Documentation

◆ bj_create_renderer()

struct bj_renderer * bj_create_renderer ( enum bj_renderer_type type)

Create a new renderer instance.

Allocates and initializes a renderer of the specified type.

Parameters
typeThe type of renderer to create.
Returns
Pointer to the newly created renderer, or NULL on failure.
Memory Management

The caller is responsible for destroying the renderer with bj_destroy_renderer.

See also
bj_destroy_renderer

◆ bj_destroy_renderer()

void bj_destroy_renderer ( struct bj_renderer * renderer)

Destroy a renderer and free associated resources.

Releases all resources associated with the renderer.

Parameters
rendererPointer to the renderer to destroy.
See also
bj_create_renderer

◆ bj_get_framebuffer()

struct bj_bitmap * bj_get_framebuffer ( struct bj_renderer * renderer)

Get the renderer's framebuffer.

Returns a pointer to the framebuffer bitmap that can be drawn to. All drawing operations should target this bitmap.

Parameters
rendererPointer to the renderer.
Returns
Pointer to the framebuffer bitmap, or NULL if not configured.
Memory Management

The returned bitmap is owned by the renderer. Do not destroy it manually.

See also
bj_renderer_configure, bj_present

◆ bj_present()

void bj_present ( struct bj_renderer * renderer,
struct bj_window * window )

Present the framebuffer to a window.

Copies the contents of the renderer's framebuffer to the specified window, making the rendered content visible.

Parameters
rendererPointer to the renderer.
windowPointer to the target window.
Behavior

This function should be called after all drawing operations are complete to display the final result on the window.

See also
bj_get_framebuffer

◆ bj_renderer_configure()

void bj_renderer_configure ( struct bj_renderer * renderer,
struct bj_window * window )

Configure a renderer for a specific window.

Associates the renderer with a window and sets up the framebuffer to match the window dimensions and properties.

Parameters
rendererPointer to the renderer to configure.
windowPointer to the target window.
Behavior

This function should be called before rendering operations to ensure the framebuffer matches the window's current size and format.

See also
bj_get_framebuffer