From ed94a611e0eb5b4c942d1ba3cf46f6d11838da27 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Wed, 22 May 2024 21:51:59 +0900 Subject: [PATCH] =?utf8?q?=E7=94=BB=E5=83=8F=E5=8F=8D=E8=BB=A2=E6=A9=9F?= =?utf8?q?=E8=83=BD=E6=80=A7=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + main.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- mivfx.1 | 6 ++++++ 3 files changed, 50 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 052ae57..701c962 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * manpageでコントロールの説明の追加 * 再レンダーリングの問題の修正 * 画像回転機能性の追加 +* 画像反転機能性の追加 # 0.5.0 * .desktopファイルの追加 diff --git a/main.c b/main.c index 4c64587..27e7746 100644 --- a/main.c +++ b/main.c @@ -31,6 +31,10 @@ float zoom = 1.0f; // 回転 float angle = 0.0f; +// 反転 +bool flippedH = false; +bool flippedV = false; + const char* sofname = "mivfx"; const char* version = "0.6.0"; @@ -77,7 +81,7 @@ void rotateWindow(int w, int h) { imgWidth = h; imgHeight = w; - SDL_Rect renderQuad = { 10, 10, h, w }; + SDL_Rect renderQuad = { 10, 10, imgWidth, imgHeight }; SDL_RenderClear(renderer); SDL_SetWindowSize(window, imgWidth + 20, imgHeight + 20); @@ -95,14 +99,50 @@ void windowevent(SDL_Event e) { } else if (e.type == SDL_KEYDOWN) { if (e.key.keysym.sym == SDLK_q) { quit = true; - } else if (e.key.keysym.sym == SDLK_a) { - // GIFアニメーションの停止・続き、0.6.0から追加する予定 + } else if (e.key.keysym.sym == SDLK_e) { + // GIFアニメーションの停止・続き、0.7.0から追加する予定 } else if (e.key.keysym.sym == SDLK_r) { angle -= 90.0f; rotateWindow(imgWidth, imgHeight); } else if (e.key.keysym.sym == SDLK_t) { angle += 90.0f; rotateWindow(imgWidth, imgHeight); + } else if (e.key.keysym.sym == SDLK_y) { + SDL_RenderClear(renderer); + SDL_Rect renderQuad = { 10, 10, imgWidth, imgHeight }; + + SDL_SetWindowSize(window, imgWidth + 20, imgHeight + 20); + SDL_RenderCopyEx( + renderer, + texture, + NULL, + &renderQuad, + angle, + NULL, + !flippedV ? SDL_FLIP_VERTICAL : SDL_FLIP_NONE + ); + flippedV = !flippedV; + SDL_RenderPresent(renderer); + } else if (e.key.keysym.sym == SDLK_u) { + SDL_RenderClear(renderer); + SDL_Rect renderQuad = { 10, 10, imgWidth, imgHeight }; + + SDL_SetWindowSize(window, imgWidth + 20, imgHeight + 20); + SDL_RenderCopyEx( + renderer, + texture, + NULL, + &renderQuad, + angle, + NULL, + !flippedH ? SDL_FLIP_HORIZONTAL : SDL_FLIP_NONE + ); + flippedH = !flippedH; + SDL_RenderPresent(renderer); + } else if (e.key.keysym.sym == SDLK_o) { + // 画像をダウンロードする(リモート画像のみ) + } else if (e.key.keysym.sym == SDLK_p) { + // 画像をrsync|sftp|http postで使って共有する、0.7.0から追加する予定 } } else if (e.type == SDL_MOUSEBUTTONDOWN) { if (e.button.button == SDL_BUTTON_LEFT) { diff --git a/mivfx.1 b/mivfx.1 index 3de10b0..6fd02cf 100644 --- a/mivfx.1 +++ b/mivfx.1 @@ -18,6 +18,12 @@ mivfx - minimalist image view for x \fB\,T\fR 画像を+90°で回転する .TP +\fB\,Y\fR +縦側に反転する +.TP +\fB\,U\fR +横側に反転する +.TP \fB\,マウスでスクロール\fR ズームインやズームアウト .TP -- 2.43.0