src/core.c

changeset 3
1efd6da2ad53
parent 2
bb2bfff31f1d
child 6
302971e8599b
equal deleted inserted replaced
2:bb2bfff31f1d 3:1efd6da2ad53
140 140
141 static void asc_event_window_resized(Uint32 id, Sint32 width, Sint32 height) { 141 static void asc_event_window_resized(Uint32 id, Sint32 width, Sint32 height) {
142 CxIterator iter = cxListIterator(asc_context.windows); 142 CxIterator iter = cxListIterator(asc_context.windows);
143 cx_foreach(AscWindow*, w, iter) { 143 cx_foreach(AscWindow*, w, iter) {
144 if (w->id == id) { 144 if (w->id == id) {
145 w->width = width; 145 w->dimensions.width = width;
146 w->height = height; 146 w->dimensions.height = height;
147 return; 147 return;
148 } 148 }
149 } 149 }
150 } 150 }
151 151
184 } 184 }
185 185
186 void asc_window_settings_init_defaults(AscWindowSettings* settings) { 186 void asc_window_settings_init_defaults(AscWindowSettings* settings) {
187 settings->depth_size = 24; 187 settings->depth_size = 24;
188 settings->vsync = 1; 188 settings->vsync = 1;
189 settings->width = 800; 189 settings->dimensions.width = 800;
190 settings->height = 600; 190 settings->dimensions.height = 600;
191 settings->fullscreen = 0; 191 settings->fullscreen = 0;
192 settings->gl_major_version = 3; 192 settings->gl_major_version = 3;
193 settings->gl_minor_version = 3; 193 settings->gl_minor_version = 3;
194 settings->title = "Ascended Window"; 194 settings->title = "Ascended Window";
195 } 195 }
200 200
201 window->window = SDL_CreateWindow( 201 window->window = SDL_CreateWindow(
202 settings->title, 202 settings->title,
203 SDL_WINDOWPOS_CENTERED, 203 SDL_WINDOWPOS_CENTERED,
204 SDL_WINDOWPOS_CENTERED, 204 SDL_WINDOWPOS_CENTERED,
205 settings->width, 205 settings->dimensions.width,
206 settings->height, 206 settings->dimensions.height,
207 flags 207 flags
208 ); 208 );
209 if (window->window == NULL) { 209 if (window->window == NULL) {
210 asc_error(SDL_GetError()); 210 asc_error(SDL_GetError());
211 return; 211 return;
212 } 212 }
213 213
214 window->id = SDL_GetWindowID(window->window); 214 window->id = SDL_GetWindowID(window->window);
215 SDL_GetWindowSize(window->window, &window->width, &window->height); 215 SDL_GetWindowSize(window->window,
216 &window->dimensions.width,
217 &window->dimensions.height
218 );
216 219
217 SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); 220 SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
218 SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, settings->gl_major_version); 221 SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, settings->gl_major_version);
219 SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, settings->gl_minor_version); 222 SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, settings->gl_minor_version);
220 SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, settings->depth_size); 223 SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, settings->depth_size);
278 } 281 }
279 282
280 void asc_window_sync(AscWindow const* window) { 283 void asc_window_sync(AscWindow const* window) {
281 SDL_GL_MakeCurrent(window->window, window->glctx); 284 SDL_GL_MakeCurrent(window->window, window->glctx);
282 SDL_GL_SwapWindow(window->window); 285 SDL_GL_SwapWindow(window->window);
283 glViewport(0, 0, window->width, window->height); 286 glViewport(0, 0, window->dimensions.width, window->dimensions.height);
284 glClearColor(0.0f, 0.0f, 0.0f, 1.0f); 287 glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
285 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 288 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
286 } 289 }

mercurial