5 #include <Multimedia/SDX.h>
6 #include <Multimedia/Screen.h>
22 SDL_Window* handle =
nullptr;
24 bool isFullScreen =
false;
30 static std::list<SubWindow*> windowS;
32 static void CheckWindowID(
int 削除するWindowのID)
34 for (
auto it : windowS)
36 if (SDL_GetWindowID(it->handle) == 削除するWindowのID)
55 SubWindow(
const char* ウィンドウ名,
int 幅,
int 高さ,
bool フルスクリーンフラグ =
false)
57 Create(ウィンドウ名, 幅, 高さ, フルスクリーンフラグ);
76 bool Create(
const char* ウィンドウ名,
int 幅,
int 高さ,
bool フルスクリーンフラグ =
false)
78 if (handle !=
nullptr){
return false; }
82 isFullScreen = フルスクリーンフラグ;
87 flag = SDL_WINDOW_FULLSCREEN;
90 handle = SDL_CreateWindow(ウィンドウ名, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 幅, 高さ, flag);
92 renderer.Create(handle);
94 windowS.push_back(
this);
103 if (handle ==
nullptr){
return false; }
105 renderer.isWindow =
false;
107 SDL_DestroyWindow(handle);
109 if (windowS.size() >= 2)
111 windowS.remove(
this);
122 if (handle ==
nullptr){
return false; }
126 SDL_ShowWindow(handle);
130 SDL_HideWindow(handle);
139 if (handle ==
nullptr){
return false; }
141 isFullScreen = フルスクリーンフラグ;
146 SDL_SetWindowFullscreen( handle, SDL_WINDOW_FULLSCREEN_DESKTOP);
150 SDL_SetWindowFullscreen( handle, 0);
162 if (handle ==
nullptr){
return false; }
164 SDL_SetWindowTitle(handle, タイトル名);
171 if (handle ==
nullptr){
return false; }
176 SDL_RenderSetLogicalSize(renderer.
GetHandle(), 幅, 高さ);
177 SDL_SetWindowSize(handle, 幅, 高さ);
179 if (logicWidth != -1)
181 SDL_RenderSetLogicalSize(renderer.
GetHandle(), logicWidth, logicheight);
202 if (handle ==
nullptr){
return{ 0, 0, 0, 0 }; }
205 SDL_GetWindowPosition(handle, &x, &y);
207 return{ x, y, width, height };
216 if (handle ==
nullptr){
return false; }
218 SDL_Surface* icon = IMG_Load(ファイル名);
219 if (icon ==
nullptr){
return false; }
221 SDL_SetWindowIcon(handle, icon);
222 SDL_FreeSurface(icon);
240 SDL_RenderSetLogicalSize(renderer.
GetHandle(), 幅, 高さ);
Renderer & GetRenderer()
対応Rendererの取得.
Definition: SubWindow.h:69
bool SetFullscreen(bool フルスクリーンフラグ)
スクリーンモードを設定する.
Definition: SubWindow.h:137
マウスの状態を表すクラス.
Definition: Mouse.h:30
矩形を表す図形クラス.
Definition: Rect.h:22
int GetHeight()
高さの取得.
Definition: SubWindow.h:194
bool SetTitle(const char *タイトル名)
タイトルを設定.
Definition: SubWindow.h:157
int GetWidth()
幅の取得.
Definition: SubWindow.h:188
void Update()
描画処理を反映する.
Definition: SubWindow.h:228
タッチ操作の各種ジェスチャー.
Definition: Gesture.h:12
ライブラリの初期化やシステム的な処理を行う関数群.
Definition: System.h:13
bool Create(const char *ウィンドウ名, int 幅, int 高さ, bool フルスクリーンフラグ=false)
Windowの初期化と生成.
Definition: SubWindow.h:76
bool Destroy()
Rendererを削除.
Definition: Renderer.h:90
SDL_Renderer * GetHandle()
描画ハンドルを取得.
Definition: Renderer.h:69
bool SetIcon(const char *ファイル名)
ウィンドウのアイコンを設定.
Definition: SubWindow.h:211
SubWindow(const char *ウィンドウ名, int 幅, int 高さ, bool フルスクリーンフラグ=false)
Windowの初期化と生成.
Definition: SubWindow.h:55
描画先を表すクラス.
Definition: Renderer.h:27
bool Clear()
画面を消去する.
Definition: Renderer.h:161
SDL_Window * GetHandle()
Windowハンドルの取得.
Definition: SubWindow.h:62
static SDL_Renderer * GetHandle()
スクリーンハンドルを取得.
Definition: Screen.h:26
ウィンドウを表すクラス.
Definition: SubWindow.h:13
bool SetSize(int 幅, int 高さ)
ウィンドウサイズの設定.
Definition: SubWindow.h:169
static SubWindow mainWindow
現在アクティブなウィンドウ
Definition: SubWindow.h:45
bool Destroy()
SubWindowを削除.
Definition: SubWindow.h:101
タッチ操作.
Definition: Touch.h:12
Rect GetSize()
ウィンドウの位置と座標を取得.
Definition: SubWindow.h:200
bool SetShowFlag(bool 表示フラグ)
ウィンドウの表示/非表示設定.
Definition: SubWindow.h:120
アクティブなSubWindowを操作するクラス.
Definition: Window.h:14
void SetLogicalSize(int 幅, int 高さ)
描画領域の大きさを設定する.
Definition: SubWindow.h:236