From 3c9b798ee96a4f96a5cf15d01f6e120605118d16 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Wed, 26 Feb 2025 02:16:52 -0700 Subject: [PATCH] Add `drawImageRotated` example to `test-graphics` project The `Gear.png` image was custom created in Inkscape. --- test-graphics/TestGraphics.cpp | 8 ++++++++ test-graphics/TestGraphics.h | 4 ++++ test-graphics/data/Gear.png | Bin 0 -> 3344 bytes 3 files changed, 12 insertions(+) create mode 100644 test-graphics/data/Gear.png diff --git a/test-graphics/TestGraphics.cpp b/test-graphics/TestGraphics.cpp index acab63462..8d98edfb3 100644 --- a/test-graphics/TestGraphics.cpp +++ b/test-graphics/TestGraphics.cpp @@ -6,6 +6,7 @@ #include #include #include +#include "NAS2D/Math/Angle.h" #include #include @@ -42,6 +43,9 @@ namespace TestGraphics::TestGraphics() : + mTimer{}, + mGear1{"Gear.png"}, + mGear2{"Gear.png"}, mDxImage{"Test_DirectX.png"}, mOglImage{"Test_OpenGL.png"} {} @@ -109,6 +113,10 @@ NAS2D::State* TestGraphics::update() r.drawPoint(NAS2D::Point{84, 60} + offset, NAS2D::Color{grey, grey, grey}); } + const auto angle = NAS2D::Angle::degrees(static_cast(mTimer.tick() * 360 / 10 / 1000)); + r.drawImageRotated(mGear1, {158, 60}, angle); + r.drawImageRotated(mGear2, {219, 60}, -angle); + r.drawImage(mDxImage, {10, 134}); r.drawImage(mOglImage, {10 + 512, 134}); diff --git a/test-graphics/TestGraphics.h b/test-graphics/TestGraphics.h index c7be01b03..fd0f55cda 100644 --- a/test-graphics/TestGraphics.h +++ b/test-graphics/TestGraphics.h @@ -2,6 +2,7 @@ #include "NAS2D/State.h" #include "NAS2D/EventHandler.h" +#include "NAS2D/Timer.h" #include "NAS2D/Resource/Image.h" @@ -22,6 +23,9 @@ class TestGraphics : public NAS2D::State void onWindowResized(int w, int h); private: + NAS2D::Timer mTimer; + NAS2D::Image mGear1; + NAS2D::Image mGear2; NAS2D::Image mDxImage; NAS2D::Image mOglImage; }; diff --git a/test-graphics/data/Gear.png b/test-graphics/data/Gear.png new file mode 100644 index 0000000000000000000000000000000000000000..a4b85cc2e98a844aae41152469529e97843f86e5 GIT binary patch literal 3344 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