Skip to content

Latest commit

 

History

History
125 lines (80 loc) · 4.55 KB

File metadata and controls

125 lines (80 loc) · 4.55 KB

AP2

AP2 is a work‑in‑progress graphics engine written in C17. I develop it in my spare time, and the goal is to build a fully supported engine with a clear, consistent API and a straightforward codebase. It’s still early in development, but the core systems are mainly functional and the project is actively growing.


Overview

AP2 currently includes:

  • Window creation and event handling
  • 2D rendering (rectangles, lines, textures, sprites)
  • 3D rendering (camera, meshes, lights, custom shaders)
  • Keyboard, mouse, and gamepad input
  • Audio/Mixer
  • Text rendering (bitmap font + TTF)
  • Immediate‑mode UI
  • (in-dev) Further advanced UI support with customizable styling for desktop applications
  • A post-processing pipeline

The engine is designed to stay readable and approachable. Most of the API uses simple structs and AP_* functions, and the internal layout is meant to be easy to follow for contributors.


Guides

Tutorials

Subjects

  1. Hello window
  2. Drawing in 2D
  3. Textures and sprites
  4. Input
  5. Audio
  6. Text and fonts
  7. Immediate GUI
  8. 3D
  9. Shaders and post-processing
  10. Tilemaps

Apps and games

  1. Breakout — bricks, paddle, collision, score
  2. Top-down walker — WASD/gamepad, camera, spatial SFX
  3. Desktop tool — inspector-style GUI app

Advanced, step-by-step

  1. 3D: a PBR product scene — glTF/GLB loading (incl. folder-based models), studio lighting, orbit camera, per-mesh material overrides, post-processing
  2. Retained-mode GUIAP2_GuiAdvanced: windows, layouts, theming, signals, CSS-like styling, embedded canvas widgets
  3. Camera rigs and cinematic post — first-person/orbit rigs, screen-space picking, the full post-processing effect catalog
  4. Capstone: a complete application — 3D + tilemap HUD + retained GUI + spatial audio + post, wired into one app

Headers under include/AP2/ win if a tutorial and a signature disagree.

The GitHub Pages site and the wiki are published from this folder on each push.


Building

AP2 supports both CMake and cforge.

CMake

cmake -B build cmake --build build ./build/bin/ap2

cforge

cforge build cforge run

Dependencies are included in the repository and handled automatically.


Current State

AP2 is usable for small projects, experiments, and learning. The engine is still under active development, and systems will continue to evolve. Expect breaking changes as things improve.


Planned Improvements

Some of the work planned for future versions:

  • More complete text rendering
  • Additional post‑processing effects
  • Improved material/shader system
  • More examples and documentation
  • Expansion of 3D features
  • General engine tooling and workflow improvements

If you have ideas or find issues, feel free to open them.


Contributing

Contributions are welcome. The project is still growing, so even small improvements help — bug fixes, cleanup, documentation, examples, or focused feature work.

If you’re interested in contributing:

  • Open an issue to discuss changes
  • Submit a PR when ready
  • Keep things simple and consistent with the existing style

I review and merge changes when I have time.


License

MIT License.