Banjo API 1.0.0-rc.2
Low-level C99 game development API
Loading...
Searching...
No Matches
Changelog

[1.0.0] - Unreleased

Documentation

Added

Graphics & Rendering

  • Window management with software framebuffer and multiple pixel formats
  • Fullscreen mode and resizable windows with resize callbacks
  • Bitmap operations: blitting (copy, stretched, color-keyed), BMP loading
  • Text rendering with ANSI color code support
  • Drawing primitives: lines, rectangles, triangles, circles, polylines (filled and outlined)
  • Per-pixel shader functions for procedural image generation

Audio

  • Real-time PCM audio playback with custom sample generation callbacks
  • Built-in waveform generators: sine, square, triangle, sawtooth
  • Support for INT16 and F32 audio formats
  • Playback control: play, pause, stop, reset

Input & Events

  • Event system with keyboard, mouse, and window events
  • Callback and polling modes for event handling
  • Key repeat support and standard Virtual-Key codes
  • Mouse button and cursor movement tracking

Networking

  • TCP support: listeners and stream connections
  • UDP support: datagram send/receive with broadcast
  • IPv4 and IPv6 address resolution
  • Connection timeouts, keep-alive, and non-blocking I/O
  • Network simulation for testing

Mathematics

  • Precision-agnostic math (configurable float/double/long double)
  • Vector types: 2D, 3D, 4D with full algebra (dot, cross, normalize, distance)
  • Matrix types: 3x3, 3x2, 4x4, 4x3 for 2D and 3D transforms
  • Quaternions with slerp interpolation and matrix conversion
  • Utilities: clamp, smoothstep, lerp, epsilon-aware comparisons

Physics

  • 1D classical mechanics: acceleration, velocity, position
  • 2D particle simulation with gravity, drag, and point gravity
  • 2D rigid body dynamics with torque and semi-implicit Euler integration
  • 2D collision detection: line segment intersection, circle-segment collision

Utilities

  • Random number generation with PCG32 (independent streams)
  • Distribution helpers: uniform, bernoulli, normal/gaussian
  • Time utilities: Unix timestamp, monotonic clock, stopwatch for delta timing
  • File and memory-backed data streams with unified API
  • Pixel format encoding: indexed (1/4/8-bit), bitfield (RGB565, XRGB1555), byte-per-channel
  • Axis-aligned rectangles with intersection and union operations
  • Command-line argument parsing
  • Logging and error handling infrastructure