How x-ege/xege works
EGE is a cross-platform C/C++ graphics library with a beginner-friendly, BGI-like API. Its main workflow is an application opening a graphics window, issuing drawing or image operations, handling input, and presenting pixels through a native platform backend. Separate capabilities include image loading and transformation, text, input, camera capture, and music. The README documents the platform backends and broader feature set; sampled source confirms image operations and native render-target behavior, but does not expose all dispatch wiring, so uncertain links are omitted.
Main entry points: graphics.cpp Graphics API · image.cpp Image operations · PixelSurface.cpp Pixel surface · image_ex.cpp Image extensions
Components 21
Public API
- BGI API
include/graphics.h - Graphics API
src/graphics.cpp - Window lifecycle
src/window.cpp
Drawing and Images
- Image operations
src/image.cpp - Image extensions
src/image_ex.cpp - Image codecs
src/stb_image_impl.cpp - Image resizing
src/external/stb_image_resize2.h - Pixel surface
src/backend/common/PixelSurface.cpp - Render interface
src/backend/interface/RenderTarget.h
Platform Backends
- Window interface
src/backend/interface/Window.h - Cairo renderer
src/backend/linux/CairoRenderTarget.cpp - Linux window
src/backend/linux/LinuxWindow.cpp - Core Graphics renderer
src/backend/macos/CoreGraphicsRenderTarget.cpp - macOS window
src/backend/macos/MacWindow.h
Input and Media
- Keyboard and mouse
src/keyboard.cpp - Font and text
src/font.cpp - Camera capture
src/camera_capture.cpp - Music playback
src/music.cpp
Other components
- C/C++ application
- Camera devices
- Audio system
Connections 20
- C/C++ application → BGI API: calls
- BGI API → Graphics API: declares API
- Graphics API → Window lifecycle: manages window
- Graphics API → Image operations: draws images
- Image operations → Pixel surface: uses pixels
- Image operations → Image codecs: loads and saves
- Image extensions → Image operations: transforms
- Image extensions → Image resizing: resizes
- Pixel surface → Cairo renderer: presents pixels
- Pixel surface → Core Graphics renderer: presents pixels
- Cairo renderer → Render interface: implements
- Core Graphics renderer → Render interface: implements
- Linux window → Window interface: implements
- macOS window → Window interface: implements
- Graphics API → Keyboard and mouse: handles input
- Graphics API → Font and text: draws text
- C/C++ application → Camera capture: uses camera API
- Camera capture → Camera devices: captures frames
- C/C++ application → Music playback: uses music API
- Music playback → Audio system: plays audio