]> Nishi Git Mirror - mivfx.git/commitdiff
ズームはうまく出来る様にした。そうして、ズームイン限定を消した 14/head
author諏訪子 <suwako@076.moe>
Thu, 2 May 2024 13:33:34 +0000 (22:33 +0900)
committer諏訪子 <suwako@076.moe>
Thu, 2 May 2024 13:33:34 +0000 (22:33 +0900)
CHANGELOG.md
main.c

index 90001ee0451303df19f88d3a906c32930c69412c..87fdb638eb4fac552e177c84bbff34c6d92ff264 100644 (file)
@@ -5,6 +5,7 @@
 * 「Q」キーを押すと、終了する様に
 * サイズ変更の修正
 * Pixivからダウンロード出来る様に
+* ズーム機能性の追加
 
 # 0.4.0
 * URLから画像ファイルを開ける様に
diff --git a/main.c b/main.c
index 2205a2c3ba19b616eecf8320eb9f308fc0d221ff..52b5f8324885995f1260110df241ab9350976f7a 100644 (file)
--- a/main.c
+++ b/main.c
@@ -90,32 +90,18 @@ void windowevent(SDL_Event e) {
     // 画像のサイズが変わった場合
     float newWidth = (float)imgWidth * zoom;
     float newHeight = (float)imgHeight * zoom;
-
     float minLimit = 50.0f;
-    float maxLimitW = (screenWidth - 20);
-    float maxLimitH = (screenHeight - 20);
 
     // 画像は50x50以下じゃ駄目
-    if (newWidth < minLimit && newWidth < minLimit) {
+    if (newWidth < minLimit || newHeight < minLimit) {
       newWidth = minLimit;
       newHeight = minLimit;
-    } else if (newWidth < minLimit && newHeight >= minLimit) {
+    } else if (newWidth < minLimit & newHeight >= minLimit) {
       newWidth = minLimit;
     } else if (newWidth >= minLimit && newHeight < minLimit) {
       newHeight = minLimit;
     }
 
-    // 大きすぎの場合もふざけんな
-    // TODO: 大きすぎの場合は、ズームインを辞める様にして
-    if (newWidth >= maxLimitW && newHeight >= maxLimitH) {
-      newHeight = (screenHeight * aspectRatio) - 20;
-      newWidth = (screenWidth * aspectRatio) - 20;
-    } else if (newWidth >= maxLimitW && newHeight < maxLimitH) {
-      newWidth = (screenWidth * aspectRatio) - 20;
-    } else if (newWidth < maxLimitW && newHeight >= maxLimitH) {
-      newHeight = (screenHeight * aspectRatio) - 20;
-    }
-
     // テキスチャーのレンダーリングサイズの設定
     SDL_RenderClear(renderer);
 
@@ -176,18 +162,20 @@ void windowevent(SDL_Event e) {
         (imgWidth >= (screenWidth - 100)) &&
         imgHeight >= (screenHeight - 100)
     ) {
-      imgWidth -= (screenWidth * 3);
-      imgHeight -= (screenHeight * 3);
+      imgWidth = (screenWidth - 100);
+      imgHeight = (screenHeight - 100);
     } else if (
         (imgWidth >= (screenWidth - 100)) &&
         imgHeight <= (screenHeight - 100)
     ) {
-      imgWidth -= (screenWidth * 3);
+      imgWidth = (screenWidth - 100);
+      imgHeight = (imgWidth * aspectRatio);
     } else if (
         (imgWidth <= (screenWidth - 100)) &&
         imgHeight >= (screenHeight - 100)
     ) {
-      imgHeight -= (screenHeight * 3);
+      imgHeight = (screenHeight - 100);
+      imgWidth = (imgHeight * aspectRatio);
     }
 
     SDL_RenderCopy(renderer, texture, NULL, &renderQuad);