1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#include "window.h"
#include "../util/util.h"
#include <stdlib.h>
Window* window_new(const char* title, Uint32 width, Uint32 height)
{
Window* window = malloc(sizeof(Window));
window->title = title;
window->Width = width;
window->Height = height;
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
//SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
//SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
window->window = SDL_CreateWindow(title, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
width, height, SDL_WINDOW_OPENGL);
if(window->window == NULL)
Util_FatalError( "The window could not be created:\n%s", SDL_GetError() );
window->context = SDL_GL_CreateContext(window->window);
if(window->context == NULL)
Util_FatalError( "Context could not be created:\n%s", SDL_GetError() );
glViewport(0, 0, width, height);
return window;
}
void window_resize(Window* window, Uint32 width, Uint32 height)
{
window->Width = width;
window->Height = height;
SDL_SetWindowSize(window->window, width, height);
glViewport(0, 0, width, height);
}
void window_update(Window* window)
{
SDL_GL_SwapWindow(window->window);
}
void window_destroy(Window* window)
{
SDL_GL_DeleteContext(window->context);
SDL_DestroyWindow(window->window);
free(window);
}
|