Banjo API 0.0.1
C99 game development API
Loading...
Searching...
No Matches
Core
Collaboration diagram for Core:

Topics

 Main Entry Point

Files

file  assert.h

Data Structures

struct  bj_build_info

Macros

#define BJ_FALSE   ((bj_bool)0)
#define BJ_TRUE   ((bj_bool)1)

Typedefs

typedef uint32_t bj_bool

Functions

const struct bj_build_infobj_build_information (void)

Convenience typedefs for public API types

By default, Banjo provides typedefs that allow writing type names without the struct or enum keywords (e.g., bj_vec2 instead of struct bj_vec2).

To disable these typedefs and use explicit struct/enum keywords everywhere, define BJ_NO_TYPEDEF before including Banjo headers.

typedef struct bj_angular_2d bj_angular_2d
typedef struct bj_cli bj_cli
typedef struct bj_cli_argument bj_cli_argument
typedef struct bj_audio_device bj_audio_device
typedef struct bj_audio_play_note_data bj_audio_play_note_data
typedef struct bj_audio_properties bj_audio_properties
typedef struct bj_bitmap bj_bitmap
typedef struct bj_build_info bj_build_info
typedef struct bj_button_event bj_button_event
typedef struct bj_cursor_event bj_cursor_event
typedef struct bj_enter_event bj_enter_event
typedef struct bj_error bj_error
typedef struct bj_event bj_event
typedef struct bj_key_event bj_key_event
typedef struct bj_mat3x2 bj_mat3x2
typedef struct bj_mat3x3 bj_mat3
typedef struct bj_mat3x3 bj_mat3x3
typedef struct bj_mat4x3 bj_mat4x3
typedef struct bj_mat4x4 bj_mat4
typedef struct bj_mat4x4 bj_mat4x4
typedef struct bj_memory_callbacks bj_memory_callbacks
typedef struct bj_particle_2d bj_particle_2d
typedef struct bj_pcg32 bj_pcg32
typedef struct bj_rect bj_rect
typedef struct bj_renderer bj_renderer
typedef struct bj_rigid_body_2d bj_rigid_body_2d
typedef struct bj_stopwatch bj_stopwatch
typedef struct bj_stream bj_stream
typedef struct bj_vec2 bj_vec2
typedef struct bj_vec3 bj_vec3
typedef struct bj_vec4 bj_quat
typedef struct bj_vec4 bj_vec4
typedef struct bj_window bj_window

Platform detection

One of these will be defined to indicate the target OS.

#define BJ_OS_UNKNOWN

Compiler detection

One of these will be defined to indicate the compiler in use.

Additionally BJ_COMPILER_NAME and BJ_COMPILER_VERSION are provided.

#define BJ_COMPILER_NAME   "Doxygen"
#define BJ_COMPILER_VERSION   0

Build configuration

Exactly one of BJ_BUILD_DEBUG or BJ_BUILD_RELEASE is defined.

#define BJ_BUILD_RELEASE
#define BJ_BUILD_DEBUG

Export/visibility helpers

BANJO_EXPORT marks public symbols.

BANJO_NO_EXPORT hides symbols.

#define BANJO_EXPORT
#define BANJO_NO_EXPORT

Restrict qualifier macro

#define BJ_RESTRICT   restrict

Inline helper macro

#define BJ_INLINE   inline

Detailed Description

General-purpose API.


Data Structure Documentation

◆ bj_build_info

struct bj_build_info

Structure holding build information of the binary.

Examples
build_info.c.
Data Fields
bj_bool backend_alsa Built with ALSA audio.
bj_bool backend_cocoa Built with Cocoa/macOS support.
bj_bool backend_emscripten Built with Emscripten support.
bj_bool backend_mme Built with Windows MME audio.
bj_bool backend_win32 Built with Win32 window support.
bj_bool backend_x11 Built with X11 window support.
bj_bool checks_abort Checks abort execution on failure.
bj_bool checks_log Checks log failures.
const char * compiler_name Compiler name string.
int compiler_version Compiler version number.
bj_bool debug Non-zero if built with debug info.
bj_bool fastmath Built with fast-math optimizations.
bj_bool log_color Colored log output enabled.
const char * name API name (see BJ_NAME).
bj_bool pedantic Extra runtime checks enabled.
const char * variant API name variant (see BJ_NAME_VARIANT).
uint32_t version Packed API version (see BJ_VERSION).

Macro Definition Documentation

◆ BANJO_EXPORT

#define BANJO_EXPORT

◆ BANJO_NO_EXPORT

#define BANJO_NO_EXPORT

◆ BJ_BUILD_DEBUG

#define BJ_BUILD_DEBUG

Set when Banjo was built on debug mode (NDEBUG not defined).

◆ BJ_BUILD_RELEASE

#define BJ_BUILD_RELEASE

Set when Banjo was built on release mode (NDEBUG defined).

◆ BJ_COMPILER_NAME

#define BJ_COMPILER_NAME   "Doxygen"

◆ BJ_COMPILER_VERSION

#define BJ_COMPILER_VERSION   0

◆ BJ_FALSE

#define BJ_FALSE   ((bj_bool)0)

Boolean false value (0).

See also
bj_bool
BJ_TRUE

◆ BJ_INLINE

#define BJ_INLINE   inline

BJ_INLINE expands to an inline specifier appropriate for the toolchain.

If BJ_API_FORCE_INLINE is defined, stronger inlining is requested.

◆ BJ_OS_UNKNOWN

#define BJ_OS_UNKNOWN

◆ BJ_RESTRICT

#define BJ_RESTRICT   restrict

BJ_RESTRICT expands to the appropriate restrict qualifier per toolchain.

◆ BJ_TRUE

#define BJ_TRUE   ((bj_bool)1)

Boolean true value (1).

See also
bj_bool
BJ_FALSE
Examples
drawing_2d.c.

Typedef Documentation

◆ bj_angular_2d

typedef struct bj_angular_2d bj_angular_2d

◆ bj_audio_device

Examples
audio_pcm.c.

◆ bj_audio_play_note_data

typedef struct bj_audio_play_note_data bj_audio_play_note_data

◆ bj_audio_properties

typedef struct bj_audio_properties bj_audio_properties

◆ bj_bitmap

◆ bj_bool

typedef uint32_t bj_bool

Boolean type used throughout the Banjo API.

Defined as a 32-bit unsigned integer for portability and ABI clarity.

See also
BJ_FALSE
BJ_TRUE

◆ bj_build_info

typedef struct bj_build_info bj_build_info

◆ bj_button_event

typedef struct bj_button_event bj_button_event

◆ bj_cli

typedef struct bj_cli bj_cli

◆ bj_cli_argument

typedef struct bj_cli_argument bj_cli_argument

◆ bj_cursor_event

typedef struct bj_cursor_event bj_cursor_event

◆ bj_enter_event

typedef struct bj_enter_event bj_enter_event

◆ bj_error

typedef struct bj_error bj_error

◆ bj_event

typedef struct bj_event bj_event

◆ bj_key_event

typedef struct bj_key_event bj_key_event

◆ bj_mat3

typedef struct bj_mat3x3 bj_mat3

◆ bj_mat3x2

typedef struct bj_mat3x2 bj_mat3x2

◆ bj_mat3x3

typedef struct bj_mat3x3 bj_mat3x3

◆ bj_mat4

typedef struct bj_mat4x4 bj_mat4

◆ bj_mat4x3

typedef struct bj_mat4x3 bj_mat4x3

◆ bj_mat4x4

typedef struct bj_mat4x4 bj_mat4x4

◆ bj_memory_callbacks

typedef struct bj_memory_callbacks bj_memory_callbacks

◆ bj_particle_2d

typedef struct bj_particle_2d bj_particle_2d

◆ bj_pcg32

typedef struct bj_pcg32 bj_pcg32

◆ bj_quat

typedef struct bj_vec4 bj_quat

◆ bj_rect

typedef struct bj_rect bj_rect

◆ bj_renderer

◆ bj_rigid_body_2d

typedef struct bj_rigid_body_2d bj_rigid_body_2d

◆ bj_stopwatch

typedef struct bj_stopwatch bj_stopwatch

◆ bj_stream

typedef struct bj_stream bj_stream

◆ bj_vec2

typedef struct bj_vec2 bj_vec2

◆ bj_vec3

typedef struct bj_vec3 bj_vec3

◆ bj_vec4

typedef struct bj_vec4 bj_vec4

◆ bj_window

Function Documentation

◆ bj_build_information()

const struct bj_build_info * bj_build_information ( void )

Get runtime build information for the loaded Banjo binaries.

The returned pointer is owned by the library and remains valid for the lifetime of the process. The content is immutable.

Returns
Pointer to a struct bj_build_info structure describing the runtime build.
Examples
build_info.c.