gKit2 light

- Main Page
- Related Pages
- Modules
- Classes
- Files

- File List
- File Members

app.cpp
1
2 #include "app.h"
3 #include "glcore.h"
4
5
6 App::App( const int width, const int height, const int major, const int minor )
7 : m_window(nullptr), m_context(nullptr)
8 {
9 m_window= create_window(width, height);
10 m_context= create_context(m_window, major, minor);
11 }
12
13 App::~App( )
14 {
15 if(m_context)
16 release_context(m_context);
17 if(m_window)
18 release_window(m_window);
19 }
20
21 int App::run( )
22 {
23 if(init() < 0)
24 return -1;
25
26 // configure openGL
27 glViewport(0, 0, window_width(), window_height());
28
29 // utiliser SDL_GetPerformanceCounter() / SDL_GetPerformanceFrequency() si la precision n'est pas suffisante
30 m_time= SDL_GetTicks();
31 while(events(m_window))
32 {
33 m_delta= SDL_GetTicks() - m_time;
34 if(update(global_time(), delta_time()) < 0)
35 break;
36 if(render() < 1)
37 break;
38
39 m_time= SDL_GetTicks();
40
41 // presenter le resultat
42 SDL_GL_SwapWindow(m_window);
43 }
44
45 if(quit() < 0)
46 return -1;
47 return 0;
48 }
49
50 float App::global_time( )
51 {
52 return (float) m_time;
53 }
54
55 float App::delta_time( )
56 {
57 return (float) m_delta;
58 }
create_context
Context create_context(Window window, const int major, const int minor)
cree et configure un contexte opengl
Definition: window.cpp:252
App::quit
virtual int quit()=0
a deriver pour detruire les objets openGL.
events
int events(Window window)
fonction interne de gestion d'evenements.
Definition: window.cpp:112
App::global_time
float global_time()
renvoie le temps ecoule depuis le lancement de l'application, en millisecondes.
Definition: app.cpp:50
App::run
int run()
execution de l'application.
Definition: app.cpp:21
window_width
int window_width()
renvoie la largeur de la fenetre de l'application.
Definition: window.cpp:14
App::App
App(const int width, const int height, const int major=3, const int minor=3)
constructeur, dimensions de la fenetre et version d'openGL.
Definition: app.cpp:6
create_window
Window create_window(const int w, const int h)
creation d'une fenetre pour l'application.
Definition: window.cpp:186
App::init
virtual int init()=0
a deriver pour creer les objets openGL.
App::update
virtual int update(const float time, const float delta)
a deriver et redefinir pour animer les objets en fonction du temps.
Definition: app.h:33
window_height
int window_height()
renvoie la hauteur de la fenetre de l'application.
Definition: window.cpp:18
App::render
virtual int render()=0
a deriver pour afficher les objets.
release_context
void release_context(Context context)
detruit le contexte openGL.
Definition: window.cpp:306
app.h
App::delta_time
float delta_time()
renvoie le temps ecoule depuis la derniere frame, en millisecondes.
Definition: app.cpp:55
release_window
void release_window(Window window)
destruction de la fenetre.
Definition: window.cpp:222