From f5efa774bde2028cb21db0d96812661228d21c6c Mon Sep 17 00:00:00 2001 From: tommy-mitchell Date: Mon, 2 Sep 2024 00:09:39 -0500 Subject: [PATCH 1/2] add sample --- FosterSamples.sln | 6 ++++++ ImageScaling/Assets/FosterLogo.png | Bin 0 -> 1443 bytes ImageScaling/ImageScaling.csproj | 18 ++++++++++++++++++ ImageScaling/Program.cs | 23 +++++++++++++++++++++++ ImageScaling/README.md | 4 ++++ ImageScaling/screenshot.png | Bin 0 -> 4190 bytes README.md | 1 + 7 files changed, 52 insertions(+) create mode 100644 ImageScaling/Assets/FosterLogo.png create mode 100644 ImageScaling/ImageScaling.csproj create mode 100644 ImageScaling/Program.cs create mode 100644 ImageScaling/README.md create mode 100644 ImageScaling/screenshot.png diff --git a/FosterSamples.sln b/FosterSamples.sln index 42c9a3b..c774844 100644 --- a/FosterSamples.sln +++ b/FosterSamples.sln @@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Froggymark", "Froggymark\Fr EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FosterImGui", "ImGui\FosterImGui.csproj", "{ED95B28D-2822-4F3D-B1C5-591658BB2380}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageScaling", "ImageScaling\ImageScaling.csproj", "{D657285F-BF95-4A8E-9637-4FEA829FB008}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -36,5 +38,9 @@ Global {AA3B2D39-7BF3-4CCD-8F19-672474E71D41}.Debug|Any CPU.Build.0 = Debug|Any CPU {AA3B2D39-7BF3-4CCD-8F19-672474E71D41}.Release|Any CPU.ActiveCfg = Release|Any CPU {AA3B2D39-7BF3-4CCD-8F19-672474E71D41}.Release|Any CPU.Build.0 = Release|Any CPU + {D657285F-BF95-4A8E-9637-4FEA829FB008}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D657285F-BF95-4A8E-9637-4FEA829FB008}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D657285F-BF95-4A8E-9637-4FEA829FB008}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D657285F-BF95-4A8E-9637-4FEA829FB008}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/ImageScaling/Assets/FosterLogo.png b/ImageScaling/Assets/FosterLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..f74587d0958e98ed5f609c08e4246c7cd9bf45e2 GIT binary patch literal 1443 zcmb7EYgE!_9R6eK9GSItIMYU0Zl|+pq;6?m!kJojwN(Bh;-yta#imX|Q&5TY+~RbmVYM0sufJtmi9kuGZC;zH_s6gAfy9qX51P{u%&W(vHL&Kwn|#m4P?m z2R&UT(n^Khs&1bt_s0WXAAe0BC=YRh#P0BkZcW_U3Jb*Nl$u=0kgcC4-=U9|ag}Mt zHN#rh1>_UM8tMhNu`rR}(TTkxl#q!V0Qb2!mVfk;jFMY$XMlec*bv#>tndP~51m}8 z0K^@DIC%n2&H;e4+iAdUOE<7(2Nkj-(pp9ZKD2;x7s0&YpFx>>re4uW$HL?0(VB5! zDJ03(b>cZ}u~qTj)Gx`mgp$FoD*T4i;eNJfb5?Rn%)3yJkCQ<$Qc%47Mma|CQx82f zzHG&jf3KUZ4PB?}Bnn1VhMBG*fpwBU87k4Xey9z7>U|m_P5)@OpBlj)H*uozGD*^G zq2H^|2?Q0Ch|rL-vFR9%#cw!txtZ(dAYUC(&Z=(=GqA56dV8+ULY6;>DiW=BHuom@ z$_Gh{uecPr9UzmY&E0LMPPp|X>2i` z-yVg;o{&#^q6)j(8yg~C5XF7vlG;z!SC|TQ$VoeX>M`_FHD#^0Btt@3KigG2Cw*{H zyZl~b_NEMHm%QKq{jJ8E2^z2kvt2p0iZ2v;oBq$qpP)maKs^?DkBix-<4wuWX=Qo3 zQdS**X|e9 z$QR1D56n!5@oXuI(ZyM@o^!!!g}N`%?kDEsJ<~NQFm?Gt6Mj^I zLPuwV+yb0H8n69V$WflfoV8naPy0qureIk!)V83|wWQRCKBR>Yd8nQV;>*YlxkgdF zPhCL;xPpstIG9N*u7Hv*pVaeAkdQrg;g~d4&vaTP=R9@cH~ZxAovsC!nu35CM;v`G z0B$Yz>kl4GIpWpp6}z0NKh>d1DAi&+*9mX*0!MGTH)M?s(;wo^g literal 0 HcmV?d00001 diff --git a/ImageScaling/ImageScaling.csproj b/ImageScaling/ImageScaling.csproj new file mode 100644 index 0000000..dab8dea --- /dev/null +++ b/ImageScaling/ImageScaling.csproj @@ -0,0 +1,18 @@ + + + + Exe + net8.0 + + + + + + + + + PreserveNewest + + + + diff --git a/ImageScaling/Program.cs b/ImageScaling/Program.cs new file mode 100644 index 0000000..9999e61 --- /dev/null +++ b/ImageScaling/Program.cs @@ -0,0 +1,23 @@ +using System.Numerics; +using Foster.Framework; + +App.Register(); +App.Run("Image Scaling", 960, 540); + +class Game : Module +{ + readonly Texture Logo = new(new Image(System.IO.Path.Join("Assets", "FosterLogo.png"))); + readonly Batcher Batcher = new(); + + static RectInt Viewport => new(0, 0, App.WidthInPixels, App.HeightInPixels); + static int Scale => Calc.Min(App.WidthInPixels / App.Width, App.HeightInPixels / App.Height); + + public override void Render() + { + Graphics.Clear(0xdeb813); + + Batcher.Clear(); + Batcher.Image(Logo, Viewport.Center, Logo.Size / 2, Vector2.One * Scale, 0, Color.White); + Batcher.Render(); + } +} diff --git a/ImageScaling/README.md b/ImageScaling/README.md new file mode 100644 index 0000000..12c42a3 --- /dev/null +++ b/ImageScaling/README.md @@ -0,0 +1,4 @@ +# Image Scaling +![Screenshot](screenshot.png "Screenshot") + +A minimal example of using Foster with simple asset loading and rendering. diff --git a/ImageScaling/screenshot.png b/ImageScaling/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..a86449f6e6caa800ecaeedacfa8ccb7de5b0cfd6 GIT binary patch literal 4190 zcmeHKYfO_@7(OiptlBvQH-?0f%&arwxV3~^iy%fjr8UM21Xmc!#nmyicD9zA&e*Wk zR>7$sl(riYR9q_))N-v025V{StXeCjRH&`Uy);y=T}ezVUG{Ikmj3w8$#=eU&i9_@ zec$IiZ`n@bR@Cx<?qWJRWWlyHDgY~d7atg?1yvP7Sw%pq$EC)IPtI#Mcrc=Q2IXDq`0B|n26b8Vy52cPN>y~9Y+STsq zZe-j+;7$)W6Z|_z;@e?7omqu%DY}}#w=;Uw4>Vq2=K#`)X?^ny7i!i0;tsoc>et!? zGr3~mych+9-M&sN`;M#&;I_(-RMW3mB(j}3Vx$`>=~?naPnqeK6WrE?jbrvaO^n5i z&z)&j9__BsKvN@Xn*94!(cK`i>Lre^5SXDUa#bqhmguW{MAf;pOLTO zoyw4%M>9z!rak6YtyS7cX-_=t{e_(gM;(r+-b>sFr74R-dA-(!jH7~3=z2axsM?%x z_su%`$WX+O-Va^Y+=!~)xiDw_84^p{G*)KE^sG%|U$AJa)NDCAJ~X^Y%rPF*9`8Az zFEJt?^W@f`%PpjCKFrnH=l6A(6EaQJ=8hiSu(tEa4ytcoj)&eny%M%T1{-#0FhJNsOco_&p86Zg2BBgA literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 0afd0c4..17c11aa 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ Samples Projects and Demos for the C# [Foster Framework](https://github.com/Fost | Sample | Description | Preview | | --- | --- | --- | +| [Image Scaling](https://github.com/FosterFramework/Samples/tree/main/ImageScaling) | A minimal example of using Foster with simple asset loading and rendering. | | | [Shapes](https://github.com/FosterFramework/Samples/tree/main/Shapes) | A small program that draws shapes to the screen without loading any assets | | | [Froggymark](https://github.com/FosterFramework/Samples/tree/main/Froggymark) | Performance test that draws as many quads to the screen as it can | | | [ImGui](https://github.com/FosterFramework/Samples/tree/main/ImGui) | An example using ImGui.NET wrapped in Foster draw calls | | From da8a685519dce683be306ba618629deabaaf434c Mon Sep 17 00:00:00 2001 From: tommy-mitchell Date: Mon, 2 Sep 2024 00:17:54 -0500 Subject: [PATCH 2/2] implicit usings --- ImageScaling/ImageScaling.csproj | 1 + ImageScaling/Program.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ImageScaling/ImageScaling.csproj b/ImageScaling/ImageScaling.csproj index dab8dea..5d67000 100644 --- a/ImageScaling/ImageScaling.csproj +++ b/ImageScaling/ImageScaling.csproj @@ -3,6 +3,7 @@ Exe net8.0 + enable diff --git a/ImageScaling/Program.cs b/ImageScaling/Program.cs index 9999e61..436be2e 100644 --- a/ImageScaling/Program.cs +++ b/ImageScaling/Program.cs @@ -6,7 +6,7 @@ class Game : Module { - readonly Texture Logo = new(new Image(System.IO.Path.Join("Assets", "FosterLogo.png"))); + readonly Texture Logo = new(new Image(Path.Join("Assets", "FosterLogo.png"))); readonly Batcher Batcher = new(); static RectInt Viewport => new(0, 0, App.WidthInPixels, App.HeightInPixels);