gKit2 light
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
App Class Referenceabstract

classe application. More...

#include <app.h>

+ Inheritance diagram for App:

Public Member Functions

 App (const int width, const int height, const int major=3, const int minor=3, const int samples=0)
 constructeur, dimensions de la fenetre et version d'openGL. More...
 
virtual int init ()=0
 a deriver pour creer les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon. More...
 
virtual int quit ()=0
 a deriver pour detruire les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon. More...
 
virtual int update (const float time, const float delta)
 a deriver et redefinir pour animer les objets en fonction du temps. More...
 
virtual int render ()=0
 a deriver pour afficher les objets. renvoie 1 pour continuer, 0 pour fermer l'application. More...
 
int run ()
 execution de l'application. More...
 

Protected Member Functions

virtual int prerender ()
 
virtual int postrender ()
 
void vsync_off ()
 

Protected Attributes

Window m_window
 
Context m_context
 
bool sync
 

Detailed Description

classe application.

squelette d'application: creation d'une fenetre, d'un contexte openGL et gestion des evenements. tuto7.cpp et tuto8.cpp presentent un exemple simple d'utilisation.

la class App expose les fonctionnalites de window.h, elles sont juste presentees differemment. les fonctions globales de window.h sont toujours utilisables (a part run() qui est remplace par App::run()).

Definition at line 19 of file app.h.

Constructor & Destructor Documentation

◆ App()

App::App ( const int  width,
const int  height,
const int  major = 3,
const int  minor = 3,
const int  samples = 0 
)

constructeur, dimensions de la fenetre et version d'openGL.

Definition at line 11 of file app.cpp.

12  : m_window(nullptr), m_context(nullptr), sync(true)
13 {
14  m_window= create_window(width, height, major, minor, samples);
15  m_context= create_context(m_window);
16 }
Context create_context(Window window)
cree et configure un contexte opengl
Definition: window.cpp:356
Window create_window(const int w, const int h, const int major, const int minor, const int samples)
creation d'une fenetre pour l'application.
Definition: window.cpp:259

Member Function Documentation

◆ init()

virtual int App::init ( )
pure virtual

a deriver pour creer les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.

Implemented in AppTime, AppCamera, VertexCompute, TP, TP, TP, TP, StorageImage, StorageBuffer, TP, Pad, TPFramebuffer, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, DrawInstanceBuffer, DrawInstanceID, Tuto2GL, TP, MeshViewer, TP, DrawInstanceBuffer, ReadBuffer, RT, RT, TP, TP, TP, TP, IS, Histogram, Histogram, Histogram, ReadBuffer, ComputeImage, ComputeBuffer, TP, and ImageViewer.

◆ quit()

virtual int App::quit ( )
pure virtual

a deriver pour detruire les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.

Implemented in AppTime, AppCamera, VertexCompute, TP, TP, TP, TP, StorageImage, StorageBuffer, TP, Pad, TPFramebuffer, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, DrawInstanceBuffer, DrawInstanceID, Tuto2GL, TP, MeshViewer, TP, DrawInstanceBuffer, ReadBuffer, RT, RT, TP, TP, TP, TP, IS, Histogram, Histogram, Histogram, ReadBuffer, ComputeImage, ComputeBuffer, TP, and ImageViewer.

◆ update()

virtual int App::update ( const float  time,
const float  delta 
)
inlinevirtual

a deriver et redefinir pour animer les objets en fonction du temps.

Reimplemented in TP, StorageImage, Pad, TPFramebuffer, TP, DrawInstanceBuffer, DrawInstanceID, TP, DrawInstanceBuffer, TP, TP, AppTime, and AppCamera.

Definition at line 32 of file app.h.

32 { return 0; }

◆ render()

virtual int App::render ( )
pure virtual

a deriver pour afficher les objets. renvoie 1 pour continuer, 0 pour fermer l'application.

Implemented in AppTime, AppCamera, VertexCompute, TP, TP, TP, TP, StorageImage, StorageBuffer, TP, Pad, TPFramebuffer, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, TP, DrawInstanceBuffer, DrawInstanceID, Tuto2GL, TP, MeshViewer, TP, DrawInstanceBuffer, ReadBuffer, RT, RT, TP, TP, TP, TP, IS, Histogram, Histogram, Histogram, ReadBuffer, ComputeImage, ComputeBuffer, TP, and ImageViewer.

◆ run()

int App::run ( )

execution de l'application.

Definition at line 36 of file app.cpp.

37 {
38  if(init() < 0)
39  return -1;
40 
41  // configure openGL
42  glViewport(0, 0, window_width(), window_height());
43 
44  // gestion des evenements
45  while(events(m_window))
46  {
47  if(prerender() < 0)
48  break;
49 
50  if(render() < 1)
51  break;
52 
53  if(postrender() < 0)
54  break;
55 
56  // presenter le resultat
57  SDL_GL_SwapWindow(m_window);
58 
59  // force openGL a finir d'executer toutes les commandes,
60  // cf https://www.khronos.org/opengl/wiki/Swap_Interval#GPU_vs_CPU_synchronization
61  // devrait limiter la consommation sur portable
62  if(sync)
63  glFinish();
64  }
65 
66  if(quit() < 0)
67  return -1;
68 
69  // tout c'est bien passe...
70  return 0;
71 }
virtual int render()=0
a deriver pour afficher les objets. renvoie 1 pour continuer, 0 pour fermer l'application.
virtual int init()=0
a deriver pour creer les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.
virtual int quit()=0
a deriver pour detruire les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.
int events(Window window)
fonction interne de gestion d'evenements.
Definition: window.cpp:170
int window_height()
renvoie la hauteur de la fenetre de l'application.
Definition: window.cpp:29
int window_width()
renvoie la largeur de la fenetre de l'application.
Definition: window.cpp:25

The documentation for this class was generated from the following files: