5 #include <Multimedia/SDX.h>
6 #include <Multimedia/Screen.h>
23 SDL_Window* handle =
nullptr;
25 bool isFullScreen =
false;
31 static std::list<SubWindow*> windowS;
33 static void CheckWindowID(
int 削除するWindowのID)
35 for (
auto it : windowS)
37 if (SDL_GetWindowID(it->handle) == 削除するWindowのID)
56 SubWindow(
const char* ウィンドウ名,
int 幅,
int 高さ,
bool フルスクリーンフラグ =
false)
58 Create(ウィンドウ名, 幅, 高さ, フルスクリーンフラグ);
77 bool Create(
const char* ウィンドウ名,
int 幅,
int 高さ,
bool フルスクリーンフラグ =
false)
79 if (handle !=
nullptr){
return false; }
83 isFullScreen = フルスクリーンフラグ;
88 flag = SDL_WINDOW_FULLSCREEN;
91 handle = SDL_CreateWindow(ウィンドウ名, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 幅, 高さ, flag);
93 renderer.Create(handle);
95 windowS.push_back(
this);
104 if (handle ==
nullptr){
return false; }
106 renderer.isWindow =
false;
108 SDL_DestroyWindow(handle);
110 if (windowS.size() >= 2)
112 windowS.remove(
this);
123 if (handle ==
nullptr){
return false; }
127 SDL_ShowWindow(handle);
131 SDL_HideWindow(handle);
140 if (handle ==
nullptr){
return false; }
142 isFullScreen = フルスクリーンフラグ;
147 SDL_SetWindowFullscreen( handle, SDL_WINDOW_FULLSCREEN_DESKTOP);
151 SDL_SetWindowFullscreen( handle, 0);
163 if (handle ==
nullptr){
return false; }
165 SDL_SetWindowTitle(handle, タイトル名);
172 if (handle ==
nullptr){
return false; }
177 SDL_RenderSetLogicalSize(renderer.
GetHandle(), 幅, 高さ);
178 SDL_SetWindowSize(handle, 幅, 高さ);
180 if (logicWidth != -1)
182 SDL_RenderSetLogicalSize(renderer.
GetHandle(), logicWidth, logicheight);
203 if (handle ==
nullptr){
return{ 0, 0, 0, 0 }; }
206 SDL_GetWindowPosition(handle, &x, &y);
208 return{ x, y, width, height };
217 if (handle ==
nullptr){
return false; }
219 SDL_Surface* icon = IMG_Load(ファイル名);
220 if (icon ==
nullptr){
return false; }
222 SDL_SetWindowIcon(handle, icon);
223 SDL_FreeSurface(icon);
241 SDL_RenderSetLogicalSize(renderer.
GetHandle(), 幅, 高さ);
Renderer & GetRenderer()
対応Rendererの取得.
Definition: SubWindow.h:70
bool SetFullscreen(bool フルスクリーンフラグ)
スクリーンモードを設定する.
Definition: SubWindow.h:138
マウスの状態を表すクラス.
Definition: Mouse.h:30
矩形を表す図形クラス.
Definition: Rect.h:22
int GetHeight()
高さの取得.
Definition: SubWindow.h:195
bool SetTitle(const char *タイトル名)
タイトルを設定.
Definition: SubWindow.h:158
int GetWidth()
幅の取得.
Definition: SubWindow.h:189
void Update()
描画処理を反映する.
Definition: SubWindow.h:229
タッチ操作の各種ジェスチャー.
Definition: Gesture.h:12
ライブラリの初期化やシステム的な処理を行う関数群.
Definition: System.h:23
bool Create(const char *ウィンドウ名, int 幅, int 高さ, bool フルスクリーンフラグ=false)
Windowの初期化と生成.
Definition: SubWindow.h:77
bool Destroy()
Rendererを削除.
Definition: Renderer.h:90
SDL_Renderer * GetHandle()
描画ハンドルを取得.
Definition: Renderer.h:69
bool SetIcon(const char *ファイル名)
ウィンドウのアイコンを設定.
Definition: SubWindow.h:212
SubWindow(const char *ウィンドウ名, int 幅, int 高さ, bool フルスクリーンフラグ=false)
Windowの初期化と生成.
Definition: SubWindow.h:56
描画先を表すクラス.
Definition: Renderer.h:27
bool Clear()
画面を消去する.
Definition: Renderer.h:161
SDL_Window * GetHandle()
Windowハンドルの取得.
Definition: SubWindow.h:63
static SDL_Renderer * GetHandle()
スクリーンハンドルを取得.
Definition: Screen.h:26
ウィンドウを表すクラス.
Definition: SubWindow.h:14
bool SetSize(int 幅, int 高さ)
ウィンドウサイズの設定.
Definition: SubWindow.h:170
static SubWindow mainWindow
現在アクティブなウィンドウ
Definition: SubWindow.h:46
bool Destroy()
SubWindowを削除.
Definition: SubWindow.h:102
タッチ操作.
Definition: Touch.h:12
Rect GetSize()
ウィンドウの位置と座標を取得.
Definition: SubWindow.h:201
bool SetShowFlag(bool 表示フラグ)
ウィンドウの表示/非表示設定.
Definition: SubWindow.h:121
アクティブなSubWindowを操作するクラス.
Definition: Window.h:14
void SetLogicalSize(int 幅, int 高さ)
描画領域の大きさを設定する.
Definition: SubWindow.h:237