SlimApp ported into ideomatic C++ (OOP-style) on a separate branch (cpp): https://github.com/HardCoreCodin/SlimApp/tree/cpp/src
Notable changes:
-
Structs now embody their related functions as member methonds (including
AppandPixelGridwhich now embeds all drawing functions) -
Entry point (only thing that needs to be defined) is now ```cpp SlimApp* createApp()
instead of: ```c void initApp(Defaults *defaults)
it now needs to return a pointer to the app, which could be an instance of a sub-class
-
All callbacks are now overridable virtual methods on the
SlimAppstruct. -
initis now a virtual method and has a detault implementation (so not required):
bool SlimApp::OnReady()
-
The
Defaultsstuct members were moved into the app instance. They can be overridden either increateApp()orOnReady(). -
Platform moved to being a (static)struct with static-only members
osinstead of a member instance ofApp(app.platform) so:cpp os::setWindowCapture(true); os::setCursorVisibility(false);instead of: ```c app->platform.setWindowCapture(true); app->platform.setCursorVisibility(false);
- Rect now passed by refference (instead of by pointer):
```cpp
void drawShapesToCanvas(PixelGrid &canvas) {
// Draw and fill a rectangle with different colors:
Rect rect;
rect.min.x = rect.min.y = 100;
rect.max.x = rect.max.y = 300;
canvas.fillRect(Color(Blue), rect);
canvas.drawRect(Color(Red ), rect);
All sample apps tested and working.