diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..64ecc08 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,50 @@ +# Todo + +Here some ideas for improving this tiny engine: + +## Rendering +- [ ] replace the OpenGL renderer with a Vulkan backend +- [ ] add animatable sprites (access to UV mapping and tiling) +- [ ] add a SDF based renderer (parametric tiles and font rendering) + +## Game Support +- [ ] audio! +- [ ] some minimal animation system with tweening with different f-curves + + +## System Level + +- [ ] add a `Asset` handler to load cache and manage assets +- [ ] introspection of file system if we load assset + +## Design + +- [ ] replace some of the 'unkown source' assets + +## Build / Dev Support +- [ ] add a test rig either with Snitch or Catch2 +- [ ] write some reasonable testcases +- [ ] add CPU and GPU benchmarks to address various issues + + +# Issues + + +```sh + Performance counter stats for 'bin/paradiso_pong': + + 555,35 msec task-clock:u # 0,042 CPUs utilized + 0 context-switches:u # 0,000 /sec + 0 cpu-migrations:u # 0,000 /sec + 4.072 page-faults:u # 7,332 K/sec + 319.484.735 cycles:u # 0,575 GHz + 358.165.995 instructions:u # 1,12 insn per cycle + 86.037.942 branches:u # 154,926 M/sec + 2.469.068 branch-misses:u # 2,87% of all branches + + 13,092775373 seconds time elapsed + + 0,311565000 seconds user + 0,247491000 seconds sys +``` +above run with `perf stat bin/paradiso_pong` shows some really bad performance issues. diff --git a/examples/pong/pong.cpp b/examples/pong/pong.cpp index 11f89f0..2b979f7 100644 --- a/examples/pong/pong.cpp +++ b/examples/pong/pong.cpp @@ -1,7 +1,7 @@ /** * paradiso - Paradigmen der Softwareentwicklung * - * (c) Copyright 2023 Hartmut Seichter + * (c) Copyright 2023-2024 Hartmut Seichter * */ @@ -16,7 +16,6 @@ #include -#include #include struct PongStage { @@ -86,7 +85,7 @@ struct PongPaddle { velocity_horizontal *= whoopiness; sprite.pivot.x() += velocity_horizontal; - std::clamp(sprite.pivot.x(), -0.5f, 0.5f); + sprite.pivot.x() = std::clamp(sprite.pivot.x(), -0.5f, 0.5f); // update shader uniforms shader.set_uniform("pivot", sprite.pivot); @@ -151,7 +150,7 @@ struct PongBall { void draw(const paradiso::Shader& shader) { - std::clamp(sprite.pivot.x(), -0.5f, 0.5f); + sprite.pivot.x() = std::clamp(sprite.pivot.x(), -0.5f, 0.5f); // update shader uniforms shader.set_uniform("pivot", sprite.pivot); @@ -166,6 +165,9 @@ struct PongBall { paradiso::Renderer renderer{}; constexpr void push(const auto& impulse) noexcept { velocity += impulse; } + + constexpr void whoop(const auto& whoopiness) noexcept { velocity *= whoopiness; } + }; auto main() -> int { @@ -234,6 +236,19 @@ auto main() -> int { ball.sprite.pivot.x() = 0.0f; ball.sprite.pivot.y() = 0.9f; } + // speed adjust + if (w.keyboard_input().top().key == 'N') { + + std::cout << "Speed Up!\n"; + + ball.push(paradiso::Vector2::make(0.f,0.01f)); + + } else if (w.keyboard_input().top().key == 'M') { + + ball.push(paradiso::Vector2::make(0.f,-0.01f)); + + std::cout << "Speed Lower!\n"; + } } ball.interact(stage); @@ -251,4 +266,4 @@ auto main() -> int { }; return 0; -} \ No newline at end of file +} diff --git a/examples/quickwings/assets/tappybird/Font/kenvector_future.ttf b/examples/quickwings/assets/tappybird/Font/kenvector_future.ttf new file mode 100644 index 0000000..39ebdfa Binary files /dev/null and b/examples/quickwings/assets/tappybird/Font/kenvector_future.ttf differ diff --git a/examples/quickwings/assets/tappybird/Font/kenvector_future_thin.ttf b/examples/quickwings/assets/tappybird/Font/kenvector_future_thin.ttf new file mode 100644 index 0000000..9f4b4fa Binary files /dev/null and b/examples/quickwings/assets/tappybird/Font/kenvector_future_thin.ttf differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterA.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterA.png new file mode 100644 index 0000000..eb9a6ab Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterA.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterB.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterB.png new file mode 100644 index 0000000..75a6276 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterB.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterC.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterC.png new file mode 100644 index 0000000..8ae3c7f Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterC.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterD.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterD.png new file mode 100644 index 0000000..99dffaa Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterD.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterE.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterE.png new file mode 100644 index 0000000..d9d0ecf Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterE.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterF.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterF.png new file mode 100644 index 0000000..d118f25 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterF.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterG.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterG.png new file mode 100644 index 0000000..6285343 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterG.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterH.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterH.png new file mode 100644 index 0000000..c0969fd Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterH.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterI.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterI.png new file mode 100644 index 0000000..9c5e737 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterI.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterJ.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterJ.png new file mode 100644 index 0000000..ecb0f6e Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterJ.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterK.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterK.png new file mode 100644 index 0000000..5362d89 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterK.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterL.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterL.png new file mode 100644 index 0000000..e747d8a Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterL.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterM.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterM.png new file mode 100644 index 0000000..e197a99 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterM.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterN.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterN.png new file mode 100644 index 0000000..60884b3 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterN.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterO.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterO.png new file mode 100644 index 0000000..390b566 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterO.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterP.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterP.png new file mode 100644 index 0000000..70883d0 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterP.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterQ.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterQ.png new file mode 100644 index 0000000..c8ee726 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterQ.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterR.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterR.png new file mode 100644 index 0000000..fcae55c Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterR.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterS.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterS.png new file mode 100644 index 0000000..c5b671f Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterS.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterT.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterT.png new file mode 100644 index 0000000..5e4a3e7 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterT.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterU.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterU.png new file mode 100644 index 0000000..8fb60a9 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterU.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterV.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterV.png new file mode 100644 index 0000000..ad94fc7 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterV.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterW.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterW.png new file mode 100644 index 0000000..0b3e63e Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterW.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterX.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterX.png new file mode 100644 index 0000000..f65c348 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterX.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterY.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterY.png new file mode 100644 index 0000000..ba733c2 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterY.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Letters/letterZ.png b/examples/quickwings/assets/tappybird/PNG/Letters/letterZ.png new file mode 100644 index 0000000..d5e88ad Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Letters/letterZ.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Numbers/number0.png b/examples/quickwings/assets/tappybird/PNG/Numbers/number0.png new file mode 100644 index 0000000..a6ad98c Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Numbers/number0.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Numbers/number1.png b/examples/quickwings/assets/tappybird/PNG/Numbers/number1.png new file mode 100644 index 0000000..99b38b8 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Numbers/number1.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Numbers/number2.png b/examples/quickwings/assets/tappybird/PNG/Numbers/number2.png new file mode 100644 index 0000000..90dd749 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Numbers/number2.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Numbers/number3.png b/examples/quickwings/assets/tappybird/PNG/Numbers/number3.png new file mode 100644 index 0000000..1942bc4 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Numbers/number3.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Numbers/number4.png b/examples/quickwings/assets/tappybird/PNG/Numbers/number4.png new file mode 100644 index 0000000..b72f2e3 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Numbers/number4.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Numbers/number5.png b/examples/quickwings/assets/tappybird/PNG/Numbers/number5.png new file mode 100644 index 0000000..0bb43f8 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Numbers/number5.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Numbers/number6.png b/examples/quickwings/assets/tappybird/PNG/Numbers/number6.png new file mode 100644 index 0000000..f488ffb Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Numbers/number6.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Numbers/number7.png b/examples/quickwings/assets/tappybird/PNG/Numbers/number7.png new file mode 100644 index 0000000..7533db1 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Numbers/number7.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Numbers/number8.png b/examples/quickwings/assets/tappybird/PNG/Numbers/number8.png new file mode 100644 index 0000000..71ba693 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Numbers/number8.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Numbers/number9.png b/examples/quickwings/assets/tappybird/PNG/Numbers/number9.png new file mode 100644 index 0000000..18c1d42 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Numbers/number9.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeBlue1.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeBlue1.png new file mode 100644 index 0000000..ea52a1d Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeBlue1.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeBlue2.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeBlue2.png new file mode 100644 index 0000000..566b1f4 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeBlue2.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeBlue3.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeBlue3.png new file mode 100644 index 0000000..7264222 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeBlue3.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeGreen1.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeGreen1.png new file mode 100644 index 0000000..ba2949b Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeGreen1.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeGreen2.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeGreen2.png new file mode 100644 index 0000000..2ae3006 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeGreen2.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeGreen3.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeGreen3.png new file mode 100644 index 0000000..4b22f29 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeGreen3.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeRed1.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeRed1.png new file mode 100644 index 0000000..c0d1ddb Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeRed1.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeRed2.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeRed2.png new file mode 100644 index 0000000..a492b1d Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeRed2.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeRed3.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeRed3.png new file mode 100644 index 0000000..5ca6c70 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeRed3.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeYellow1.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeYellow1.png new file mode 100644 index 0000000..906947d Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeYellow1.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeYellow2.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeYellow2.png new file mode 100644 index 0000000..aedbe37 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeYellow2.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/Planes/planeYellow3.png b/examples/quickwings/assets/tappybird/PNG/Planes/planeYellow3.png new file mode 100644 index 0000000..6f2af91 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/Planes/planeYellow3.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/UIbg.png b/examples/quickwings/assets/tappybird/PNG/UI/UIbg.png new file mode 100644 index 0000000..0f238ff Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/UIbg.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/buttonLarge.png b/examples/quickwings/assets/tappybird/PNG/UI/buttonLarge.png new file mode 100644 index 0000000..edda3bc Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/buttonLarge.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/buttonSmall.png b/examples/quickwings/assets/tappybird/PNG/UI/buttonSmall.png new file mode 100644 index 0000000..ff1fbae Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/buttonSmall.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/medalBronze.png b/examples/quickwings/assets/tappybird/PNG/UI/medalBronze.png new file mode 100644 index 0000000..18ee3df Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/medalBronze.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/medalGold.png b/examples/quickwings/assets/tappybird/PNG/UI/medalGold.png new file mode 100644 index 0000000..9a41593 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/medalGold.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/medalSilver.png b/examples/quickwings/assets/tappybird/PNG/UI/medalSilver.png new file mode 100644 index 0000000..dd6bb8e Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/medalSilver.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/tap.png b/examples/quickwings/assets/tappybird/PNG/UI/tap.png new file mode 100644 index 0000000..5c82864 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/tap.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/tapLeft.png b/examples/quickwings/assets/tappybird/PNG/UI/tapLeft.png new file mode 100644 index 0000000..336fd1d Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/tapLeft.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/tapRight.png b/examples/quickwings/assets/tappybird/PNG/UI/tapRight.png new file mode 100644 index 0000000..daec2ca Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/tapRight.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/tapTick.png b/examples/quickwings/assets/tappybird/PNG/UI/tapTick.png new file mode 100644 index 0000000..5ba2731 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/tapTick.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/textGameOver.png b/examples/quickwings/assets/tappybird/PNG/UI/textGameOver.png new file mode 100644 index 0000000..11d730d Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/textGameOver.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/UI/textGetReady.png b/examples/quickwings/assets/tappybird/PNG/UI/textGetReady.png new file mode 100644 index 0000000..ed0d035 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/UI/textGetReady.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/background.png b/examples/quickwings/assets/tappybird/PNG/background.png new file mode 100644 index 0000000..05c6a07 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/background.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/groundDirt.png b/examples/quickwings/assets/tappybird/PNG/groundDirt.png new file mode 100644 index 0000000..4223b3c Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/groundDirt.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/groundGrass.png b/examples/quickwings/assets/tappybird/PNG/groundGrass.png new file mode 100644 index 0000000..fd3655e Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/groundGrass.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/groundIce.png b/examples/quickwings/assets/tappybird/PNG/groundIce.png new file mode 100644 index 0000000..4ae4512 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/groundIce.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/groundRock.png b/examples/quickwings/assets/tappybird/PNG/groundRock.png new file mode 100644 index 0000000..c7fc7f1 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/groundRock.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/groundSnow.png b/examples/quickwings/assets/tappybird/PNG/groundSnow.png new file mode 100644 index 0000000..891e3e0 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/groundSnow.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/puffLarge.png b/examples/quickwings/assets/tappybird/PNG/puffLarge.png new file mode 100644 index 0000000..4023cc7 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/puffLarge.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/puffSmall.png b/examples/quickwings/assets/tappybird/PNG/puffSmall.png new file mode 100644 index 0000000..12dfc4b Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/puffSmall.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/rock.png b/examples/quickwings/assets/tappybird/PNG/rock.png new file mode 100644 index 0000000..1a89ad9 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/rock.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/rockDown.png b/examples/quickwings/assets/tappybird/PNG/rockDown.png new file mode 100644 index 0000000..90edad5 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/rockDown.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/rockGrass.png b/examples/quickwings/assets/tappybird/PNG/rockGrass.png new file mode 100644 index 0000000..2f06686 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/rockGrass.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/rockGrassDown.png b/examples/quickwings/assets/tappybird/PNG/rockGrassDown.png new file mode 100644 index 0000000..d6a18c6 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/rockGrassDown.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/rockIce.png b/examples/quickwings/assets/tappybird/PNG/rockIce.png new file mode 100644 index 0000000..7dc1fca Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/rockIce.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/rockIceDown.png b/examples/quickwings/assets/tappybird/PNG/rockIceDown.png new file mode 100644 index 0000000..1ed4858 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/rockIceDown.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/rockSnow.png b/examples/quickwings/assets/tappybird/PNG/rockSnow.png new file mode 100644 index 0000000..6c20222 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/rockSnow.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/rockSnowDown.png b/examples/quickwings/assets/tappybird/PNG/rockSnowDown.png new file mode 100644 index 0000000..7bac5dd Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/rockSnowDown.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/starBronze.png b/examples/quickwings/assets/tappybird/PNG/starBronze.png new file mode 100644 index 0000000..6ad5c8e Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/starBronze.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/starGold.png b/examples/quickwings/assets/tappybird/PNG/starGold.png new file mode 100644 index 0000000..c866382 Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/starGold.png differ diff --git a/examples/quickwings/assets/tappybird/PNG/starSilver.png b/examples/quickwings/assets/tappybird/PNG/starSilver.png new file mode 100644 index 0000000..3ad059c Binary files /dev/null and b/examples/quickwings/assets/tappybird/PNG/starSilver.png differ diff --git a/examples/quickwings/assets/tappybird/Spritesheet/planes.png b/examples/quickwings/assets/tappybird/Spritesheet/planes.png new file mode 100644 index 0000000..cd94487 Binary files /dev/null and b/examples/quickwings/assets/tappybird/Spritesheet/planes.png differ diff --git a/examples/quickwings/assets/tappybird/Spritesheet/planes.xml b/examples/quickwings/assets/tappybird/Spritesheet/planes.xml new file mode 100644 index 0000000..82733ab --- /dev/null +++ b/examples/quickwings/assets/tappybird/Spritesheet/planes.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/quickwings/assets/tappybird/Spritesheet/sheet.png b/examples/quickwings/assets/tappybird/Spritesheet/sheet.png new file mode 100644 index 0000000..2584c66 Binary files /dev/null and b/examples/quickwings/assets/tappybird/Spritesheet/sheet.png differ diff --git a/examples/quickwings/assets/tappybird/Spritesheet/sheet.xml b/examples/quickwings/assets/tappybird/Spritesheet/sheet.xml new file mode 100644 index 0000000..129f283 --- /dev/null +++ b/examples/quickwings/assets/tappybird/Spritesheet/sheet.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/quickwings/assets/tappybird/Vector/vector.svg b/examples/quickwings/assets/tappybird/Vector/vector.svg new file mode 100644 index 0000000..92800b3 --- /dev/null +++ b/examples/quickwings/assets/tappybird/Vector/vector.svg @@ -0,0 +1,510 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/quickwings/assets/tappybird/Vector/vector.swf b/examples/quickwings/assets/tappybird/Vector/vector.swf new file mode 100644 index 0000000..4956561 Binary files /dev/null and b/examples/quickwings/assets/tappybird/Vector/vector.swf differ diff --git a/examples/quickwings/assets/tappybird/license.txt b/examples/quickwings/assets/tappybird/license.txt new file mode 100644 index 0000000..b1a5ebe --- /dev/null +++ b/examples/quickwings/assets/tappybird/license.txt @@ -0,0 +1,14 @@ + +############################################################################### + + Tappy Plane by Kenney Vleugels (www.kenney.nl) + + ------------------------------ + + License (CC0) + http://creativecommons.org/publicdomain/zero/1.0/ + + You may use these graphics in personal and commercial projects. + Credit (Kenney or www.kenney.nl) would be nice but is not mandatory. + +############################################################################### \ No newline at end of file diff --git a/examples/quickwings/assets/tappybird/preview.png b/examples/quickwings/assets/tappybird/preview.png new file mode 100644 index 0000000..21772c0 Binary files /dev/null and b/examples/quickwings/assets/tappybird/preview.png differ diff --git a/examples/quickwings/assets/tappybird/sample.png b/examples/quickwings/assets/tappybird/sample.png new file mode 100644 index 0000000..efccaf4 Binary files /dev/null and b/examples/quickwings/assets/tappybird/sample.png differ diff --git a/examples/quickwings/quickwings.cpp b/examples/quickwings/quickwings.cpp index 2d8bd96..9df112b 100644 --- a/examples/quickwings/quickwings.cpp +++ b/examples/quickwings/quickwings.cpp @@ -1,14 +1,10 @@ /** * paradiso - Paradigmen der Softwareentwicklung * - * (c) Copyright 2023 Hartmut Seichter, Robin Rottstädt, brxxh (Hannes Brothuhn) + * (c) Copyright 2023-2024 Hartmut Seichter, Robin Rottstädt, brxxh (Hannes Brothuhn) * */ -#include -#include -#include -#include #include #include #include @@ -20,14 +16,7 @@ #include #include -#include -#include #include -#include -#include -#include - -// #include "lib/image_loader.hpp" const int frame_rate = 60; bool game_over = false; @@ -115,7 +104,7 @@ struct Pipe { .scale = {paradiso::Vector2::make(((500.0f - (500.0f - 52.0f)) / 500.0f) * 2.25f, ((700.0f - (700.0f - 320.0f)) / 700.0f) * 2.25f)}}; paused = true; - + } void update() { @@ -163,7 +152,7 @@ struct Pipe { shader.set_uniform("pivot", pipe_bottom.pivot); shader.set_uniform("scale", pipe_bottom.scale); renderer1.draw(pipe_bottom, shader); - + shader.set_uniform("pivot", pipe_top.pivot); shader.set_uniform("scale", pipe_top.scale); shader.set_uniform("rotation", pipe_top.rotation); @@ -302,12 +291,12 @@ struct QuickWings { if (game_over == true) { paused = true; } - + // Stop game if (paused) { return; } - else { + else { // Apply gravity velocity += gravity; @@ -406,7 +395,7 @@ struct Message { messageSprite.pivot.y() = pos; } } - + void on_keyboard(const paradiso::Window::KeyboardInputStack& input) { if (input.size()) { start = true; @@ -517,7 +506,7 @@ auto main() -> int { grass.draw(shader); message.draw(shader); - if (game_over == true) { + if (game_over == true) { gameover.draw(shader); } diff --git a/src/lib/include/paradiso/aabb.hpp b/src/lib/include/paradiso/aabb.hpp index 62267bf..cad123f 100644 --- a/src/lib/include/paradiso/aabb.hpp +++ b/src/lib/include/paradiso/aabb.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -59,4 +59,4 @@ struct AABB final { } // namespace paradiso -#endif \ No newline at end of file +#endif diff --git a/src/lib/include/paradiso/bitmap.hpp b/src/lib/include/paradiso/bitmap.hpp index d75d352..d6971f5 100644 --- a/src/lib/include/paradiso/bitmap.hpp +++ b/src/lib/include/paradiso/bitmap.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -106,4 +106,4 @@ struct Bitmap final { }; } // namespace paradiso -#endif \ No newline at end of file +#endif diff --git a/src/lib/include/paradiso/bitmap_io.hpp b/src/lib/include/paradiso/bitmap_io.hpp index 0ed2cff..af0c529 100644 --- a/src/lib/include/paradiso/bitmap_io.hpp +++ b/src/lib/include/paradiso/bitmap_io.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -53,4 +53,4 @@ struct BitmapIO { } // namespace paradiso -#endif \ No newline at end of file +#endif diff --git a/src/lib/include/paradiso/context.hpp b/src/lib/include/paradiso/context.hpp index f53495a..31a9ac1 100644 --- a/src/lib/include/paradiso/context.hpp +++ b/src/lib/include/paradiso/context.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/src/lib/include/paradiso/geometry.hpp b/src/lib/include/paradiso/geometry.hpp index e3a8393..acd018a 100644 --- a/src/lib/include/paradiso/geometry.hpp +++ b/src/lib/include/paradiso/geometry.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -71,4 +71,4 @@ struct Rectangle final { }; } // namespace paradiso -#endif \ No newline at end of file +#endif diff --git a/src/lib/include/paradiso/globals.hpp b/src/lib/include/paradiso/globals.hpp index 3c126ed..440bc7d 100644 --- a/src/lib/include/paradiso/globals.hpp +++ b/src/lib/include/paradiso/globals.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -41,4 +41,4 @@ -#endif \ No newline at end of file +#endif diff --git a/src/lib/include/paradiso/matrix.hpp b/src/lib/include/paradiso/matrix.hpp index f5c87e0..c359a87 100644 --- a/src/lib/include/paradiso/matrix.hpp +++ b/src/lib/include/paradiso/matrix.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -32,7 +32,7 @@ namespace paradiso { template struct Matrix : MatrixBase> { - Scalar data[R * C]{}; + Scalar data[R * C]{}; static constexpr std::size_t rows{R}; static constexpr std::size_t cols{C}; diff --git a/src/lib/include/paradiso/matrixbase.hpp b/src/lib/include/paradiso/matrixbase.hpp index 491102b..b20a8d4 100644 --- a/src/lib/include/paradiso/matrixbase.hpp +++ b/src/lib/include/paradiso/matrixbase.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -144,4 +144,4 @@ template struct MatrixBase { }; } // namespace paradiso -#endif \ No newline at end of file +#endif diff --git a/src/lib/include/paradiso/renderer.hpp b/src/lib/include/paradiso/renderer.hpp index 2f349de..b52a908 100644 --- a/src/lib/include/paradiso/renderer.hpp +++ b/src/lib/include/paradiso/renderer.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/src/lib/include/paradiso/rgba.hpp b/src/lib/include/paradiso/rgba.hpp index 0ab6ec4..d7745e2 100644 --- a/src/lib/include/paradiso/rgba.hpp +++ b/src/lib/include/paradiso/rgba.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -90,4 +90,4 @@ struct RGBA final { }; } // namespace paradiso -#endif \ No newline at end of file +#endif diff --git a/src/lib/include/paradiso/shader.hpp b/src/lib/include/paradiso/shader.hpp index 549fe7d..d51f6cf 100644 --- a/src/lib/include/paradiso/shader.hpp +++ b/src/lib/include/paradiso/shader.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -58,7 +58,7 @@ struct Shader final { const Shader& set_uniform_at_location(int location, float v) const; //!< sets a float in a shader - + const Shader& set_uniform_at_location( int location, uint32_t v) const; //!< sets a 32bit unsigned in a shader diff --git a/src/lib/include/paradiso/sprite.hpp b/src/lib/include/paradiso/sprite.hpp index 34a024b..a518e51 100644 --- a/src/lib/include/paradiso/sprite.hpp +++ b/src/lib/include/paradiso/sprite.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -72,4 +72,4 @@ struct Sprite final { }; } // namespace paradiso -#endif \ No newline at end of file +#endif diff --git a/src/lib/include/paradiso/vector.hpp b/src/lib/include/paradiso/vector.hpp index 647f8cf..2012ef5 100644 --- a/src/lib/include/paradiso/vector.hpp +++ b/src/lib/include/paradiso/vector.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -82,4 +82,4 @@ template struct Vector3 : Matrix<3, 1, T> { }; // namespace paradiso -#endif \ No newline at end of file +#endif diff --git a/src/lib/include/paradiso/window.hpp b/src/lib/include/paradiso/window.hpp index 6613b99..91337ac 100644 --- a/src/lib/include/paradiso/window.hpp +++ b/src/lib/include/paradiso/window.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -89,4 +89,4 @@ struct Window final { } // namespace paradiso -#endif \ No newline at end of file +#endif diff --git a/src/lib/src/bitmap_io.cpp b/src/lib/src/bitmap_io.cpp index fabfda3..3490669 100644 --- a/src/lib/src/bitmap_io.cpp +++ b/src/lib/src/bitmap_io.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -138,4 +138,4 @@ std::string BitmapIO::path() const } -} // namespace paradiso \ No newline at end of file +} // namespace paradiso diff --git a/src/lib/src/context.cpp b/src/lib/src/context.cpp index 031ca07..6ef465c 100644 --- a/src/lib/src/context.cpp +++ b/src/lib/src/context.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -71,7 +71,7 @@ struct Context::impl { Context::Context() : impl_(std::make_unique()) {} -Context::~Context() {} +Context::~Context() = default; Context& Context::set_blend() { return *this; } diff --git a/src/lib/src/renderer.cpp b/src/lib/src/renderer.cpp index 3c5853d..ab03c23 100644 --- a/src/lib/src/renderer.cpp +++ b/src/lib/src/renderer.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,7 +34,7 @@ #include #include -#if defined(_WIN32) +#if defined(_WIN32) #undef max #endif diff --git a/src/lib/src/shader.cpp b/src/lib/src/shader.cpp index 7a6b04e..e3d6b73 100644 --- a/src/lib/src/shader.cpp +++ b/src/lib/src/shader.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/src/lib/src/shader_sprite.hpp b/src/lib/src/shader_sprite.hpp index fc4c15d..1f546c9 100644 --- a/src/lib/src/shader_sprite.hpp +++ b/src/lib/src/shader_sprite.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,7 +34,7 @@ layout (location = 2) in vec2 texture_coords; // pivot der sprite uniform vec2 pivot = vec2( 0.0, 0.0 ); -// scale +// scale uniform vec2 scale = vec2( 1.0, 1.0 ); // rotation uniform float rotation = 0.0; @@ -80,4 +80,4 @@ void main() { })"; } // namespace paradiso -#endif \ No newline at end of file +#endif diff --git a/src/lib/src/window.cpp b/src/lib/src/window.cpp index 4962439..a264dcf 100644 --- a/src/lib/src/window.cpp +++ b/src/lib/src/window.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2023 Hartmut Seichter + * Copyright 2023-2024 Hartmut Seichter * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal