diff --git a/Program.cs b/Program.cs index b1c7226..bbc2db7 100644 --- a/Program.cs +++ b/Program.cs @@ -232,7 +232,7 @@ public class UiGeometry { public UiGeometry(Vector2i windowSize) { WindowSize = windowSize; - int numThumbnails = 10; + int numThumbnails = 20; int thumbnailHeight = WindowSize.Y / numThumbnails; int thumbnailWidth = (int) 1.0 * thumbnailHeight * activeCamera.Resolution.X / activeCamera.Resolution.Y; for (int i = 0; i < numThumbnails; i++) { @@ -277,6 +277,7 @@ public class Game : GameWindow { int photoIndex = 0; Shader shader = new(); Matrix4 projection; + float zoomLevel = 0f; protected override void OnUpdateFrame(FrameEventArgs e) { base.OnUpdateFrame(e); @@ -310,6 +311,30 @@ public class Game : GameWindow { upTimer = Int64.MaxValue; } + if (input.IsKeyDown(Keys.D0)) { + zoomLevel = 0f; + } + + if (input.IsKeyDown(Keys.D1)) { + zoomLevel = 1f; + } + + if (input.IsKeyDown(Keys.D2)) { + zoomLevel = 2f; + } + + if (input.IsKeyDown(Keys.D3)) { + zoomLevel = 4f; + } + + if (input.IsKeyDown(Keys.D4)) { + zoomLevel = 8f; + } + + if (input.IsKeyDown(Keys.D5)) { + zoomLevel = 16f; + } + // FIXME: make a proper Model class for tracking the state of the controls? if (input.IsKeyPressed(Keys.Down) || now > downTimer) { if (photoIndex < photos.Count - 1) { @@ -361,7 +386,8 @@ public class Game : GameWindow { // Load textures from JPEGs. // string[] files = Directory.GetFiles(@"c:\users\colin\desktop\photos-test\"); string[] files = Directory.GetFiles(@"c:\users\colin\pictures\photos\2023\07\14\"); - //string[] files = Directory.GetFiles(@"C:\Users\colin\Pictures\photos\2018\06\23"); + // string[] files = Directory.GetFiles(@"C:\Users\colin\Pictures\photos\2018\06\23"); + // string[] files = Directory.GetFiles(@"C:\Users\colin\Desktop\Germany all\104D7000"); for (int i = 0; i < files.Count(); i++) { string file = files[i]; @@ -391,6 +417,9 @@ public class Game : GameWindow { float scaleX = 1f * geometry.PhotoBox.Size.X / active.Size.X; float scaleY = 1f * geometry.PhotoBox.Size.Y / active.Size.Y; float scale = Math.Min(scaleX, scaleY); + if (zoomLevel > 0f) { + scale = zoomLevel; + } Vector2i renderSize = (Vector2i) (((Vector2) active.Size) * scale); Vector2i center = (Vector2i) geometry.PhotoBox.Center;