SDXFrameWork 0.07 SDXFrameWork

- メインページ
- 関連ページ
- クラス

全て クラス ネームスペース 関数 変数 列挙型 列挙型の値 ページ
System.h
1 #pragma once//☀SDL
2 #include <Multimedia/SDX.h>
3 #include <Multimedia/Window.h>
4 #include <Multimedia/Screen.h>
5 #include <Multimedia/Input.h>
6 #include <Multimedia/Font.h>
7 #include <Multimedia/Music.h>
8
9 namespace SDX
10 {
13 class System
14 {
15 private:
16 System();
17 ~System();
18 static bool isEnd;
19 public:
20
24 static void Initialise( const char* ウィンドウ名 , int 幅 , int 高さ )
25 {
26 if (SDL_Init( SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO ) < 0)
27 {
28 fprintf(stderr, "SDLの初期化に失敗しました：%s\n", SDL_GetError());
29 exit(1);
30 return;
31 }
32
33 setlocale(LC_CTYPE, "jpn");//文字コードを日本語に
34
35 int flag = 0;
36 if (Window::Single().isFullScreen)
37 {
38 flag = SDL_WINDOW_FULLSCREEN;
39 }
40
41 Window::Single().width = 幅;
42 Window::Single().height = 高さ;
43
44 Window::Single().handle = SDL_CreateWindow( ウィンドウ名 ,SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 幅 , 高さ , flag);
45 Screen::SetRenderer(SDL_CreateRenderer(Window::Single().handle, -1, SDL_RENDERER_PRESENTVSYNC));
46
47 #ifdef TABLET
48 int dpiX;
49 int dpiY;
50 SDL_GetWindowSize( Window::Single().handle, &dpiX, &dpiY);
51 Window::Single().aspect = (double)dpiX / dpiY;
52 SDL_RenderSetLogicalSize( Screen::GetHandle() , 幅, 高さ);
53 #endif
54
55 TTF_Init();
56
57 //デフォルトフォントの設定
58 Drawing::SetDefaultFont( SystemFont::Gothic , 16 );
59
60 SDL_InitSubSystem( SDL_INIT_JOYSTICK | SDL_INIT_GAMECONTROLLER | SDL_INIT_EVERYTHING );
61
62 SDL_JoystickEventState(SDL_ENABLE);
63
64 if( SDL_NumJoysticks() > 0 )
65 {
66 Input::pad.Open();
67 }
68
69 //音声関連の初期化
70 Mix_Init(MIX_INIT_MP3);
71 Mix_OpenAudio(44100, AUDIO_S16, 2, 1024);
72 Mix_AllocateChannels(16);
73
74 isEnd = false;
75 }
76
79 static bool End()
80 {
81 TTF_Quit();
82 Mix_CloseAudio();
83 Mix_Quit();
84 SDL_Quit();
85 isEnd = true;
86 return true;
87 }
88
90 static bool Update(bool 描画更新フラグ = true)
91 {
92 if (描画更新フラグ)
93 {
94 Screen::Flip();
95 Screen::Clear();
96 }
97 bool result = System::ProcessMessage();
98 Input::Update();
99 return result;
100 }
101
105 static bool ProcessMessage()
106 {
107 SDL_Event event;
108
109 while (SDL_PollEvent(&event))
110 {
111 /* QUIT イベントが発生したら終了する*/
112 if( event.type == SDL_WINDOWEVENT)
113 {
114 #ifdef TABLET
115 switch (event.window.event)
116 {
117 case SDL_WINDOWEVENT_MINIMIZED:
118 Mix_VolumeMusic( 0 );
119 break;
120 case SDL_WINDOWEVENT_RESTORED:
121 Mix_VolumeMusic( Music::nowVolume );
122 break;
123 }
124 #endif
125 }else if (event.type == SDL_QUIT)
126 {
127 isEnd = true;
128 }
129 else
130 {
131 Input::GetState(event);
132 }
133 }
134
135 return !isEnd;
136 }
137
141 static bool SetOutputLog( bool 出力フラグ)
142 {
143 return false;
144 }
145
148 static bool SetMemToVram( bool VRAM使用フラグ)
149 {
150 return false;
151 }
152
155 static bool SetAlwaysRun( bool 常時処理フラグ )
156 {
157 return false;
158 }
159 };
160 }
161
SDX::Input::Update
static void Update()
状態を更新.
Definition: Input.h:39
SDX::Screen::Flip
static bool Flip()
描画内容を反映.
Definition: Screen.h:101
SDX::System::Initialise
static void Initialise(const char *ウィンドウ名, int 幅, int 高さ)
ライブラリの初期化.
Definition: System.h:24
SDX::System
ライブラリの初期化やシステム的な処理を行う関数群.
Definition: System.h:13
SDX::System::SetAlwaysRun
static bool SetAlwaysRun(bool 常時処理フラグ)
非アクティブ時も処理を続行するか設定[DXLIB].
Definition: System.h:155
SDX::System::Update
static bool Update(bool 描画更新フラグ=true)
各種更新処理をまとめて行う.
Definition: System.h:90
SDX::Screen::Clear
static bool Clear()
画面を消去する.
Definition: Screen.h:115
SDX::Drawing::SetDefaultFont
static void SetDefaultFont(const char *フォント名, int 大きさ)
デフォルトのフォントを設定する.
Definition: Drawing.h:78
SDX::System::SetMemToVram
static bool SetMemToVram(bool VRAM使用フラグ)
ビデオRAM使用を設定[DXLIB].
Definition: System.h:148
SDX::System::End
static bool End()
ライブラリの終了処理.
Definition: System.h:79
SDX::Screen::SetRenderer
static void SetRenderer(ScreenHandle handle)
スクリーンハンドルを設定.
Definition: Screen.h:55
SDX::System::ProcessMessage
static bool ProcessMessage()
OSのメッセージ処理を行う.
Definition: System.h:105
SDX::System::SetOutputLog
static bool SetOutputLog(bool 出力フラグ)
ログ出力の有無を設定[DXLIB].
Definition: System.h:141
SDX::Input::GetState
static void GetState(SDL_Event &event)
入力の状態を更新[SDL].
Definition: Input.h:50
SDX::Screen::GetHandle
static ScreenHandle GetHandle()
スクリーンハンドルを取得.
Definition: Screen.h:49