int init = 0;
SDL_Rect renderQuad;
+// マウス
+int mouseX, mouseY, drag = 0;
+
+ // ズーム
+ float zoom = 1.0f;
+
const char* sofname = "mivfx";
const char* version = "0.5.0";
} else if (e.key.keysym.sym == SDLK_a) {
// GIFアニメーションの停止・続き、0.6.0から追加する予定
}
+ } else if (e.type == SDL_MOUSEBUTTONDOWN) {
+ if (e.button.button == SDL_BUTTON_LEFT) {
+ drag = 1;
+ SDL_GetMouseState(&mouseX, &mouseY);
+ }
+ } else if (e.type == SDL_MOUSEBUTTONUP) {
+ if (e.button.button == SDL_BUTTON_LEFT) {
+ drag = 0;
+ }
+ } else if (e.type == SDL_MOUSEMOTION) {
+ if (drag) {
+ // TODO: 画像サイズを変わらないと、画面が黒くになる
+ int newMouseX, newMouseY;
+ SDL_GetMouseState(&newMouseX, &newMouseY);
+ SDL_RenderClear(renderer);
+
+ renderQuad.x = newMouseX - (renderQuad.w / 2);
+ renderQuad.y = newMouseY - (renderQuad.h / 2);
+
+ SDL_RenderClear(renderer);
+ SDL_RenderCopy(renderer, texture, NULL, &renderQuad);
+ SDL_RenderPresent(renderer);
+ }
+ } else if (e.type == SDL_MOUSEWHEEL) {
+ // TODO: ノートパソコンでおかしくなる
+ float zoomSpeed = 0.1f;
+ if (e.wheel.y > 0) {
+ zoom += zoomSpeed;
+ } else if (e.wheel.y < 0) {
+ zoom -= zoomSpeed;
+ }
+
+ if (zoom < 0.1f) {
+ zoom = 0.1f;
+ }
+
+ // 画像のサイズが変わった場合
+ float newWidth = (float)imgWidth * zoom;
+ float newHeight = (float)imgHeight * zoom;
+ float minLimit = 50.0f;
+
+ // 画像は50x50以下じゃ駄目
+ if (newWidth < minLimit || newHeight < minLimit) {
+ newWidth = minLimit;
+ newHeight = minLimit;
+ } else if (newWidth < minLimit & newHeight >= minLimit) {
+ newWidth = minLimit;
+ } else if (newWidth >= minLimit && newHeight < minLimit) {
+ newHeight = minLimit;
+ }
+
+ // テキスチャーのレンダーリングサイズの設定
+ SDL_RenderClear(renderer);
+
+ renderQuad.w = (int)newWidth;
+ renderQuad.h = (int)newHeight;
+ renderQuad.x = (windowWidth - renderQuad.w) / 2;
+ renderQuad.y = (windowHeight - renderQuad.h) / 2;
+
+ SDL_RenderClear(renderer);
+ SDL_RenderCopy(renderer, texture, NULL, &renderQuad);
+ SDL_RenderPresent(renderer);
} else if (e.type == SDL_WINDOWEVENT && e.window.event == SDL_WINDOWEVENT_RESIZED) {
// ウィンドウのサイズが変わった場合
int newWidth = e.window.data1;