- Page principale
- Espaces de nommage
- Classes
- Fichiers

- Liste des fichiers
- Membres de fichier

# src/Video/RenderOpenGL.hpp

Aller à la documentation de ce fichier.

    00001 #ifndef VIDEO_RENDER_OPEN_GL_HPP
    00002 #define VIDEO_RENDER_OPEN_GL_HPP
    00003
    00004 // Détection du système cible...
    00005 #include "usgeDetectSystem.h"
    00006
    00007 // C++
    00008 #include <string>
    00009
    00010 // Les types "USpeed Game Engine"
    00011 #include "Core/CoreTypes.hpp"
    00012 #include "Video/Video.hpp"
    00013 #include "Material/Material.hpp"
    00014 #include "Material/Texture.hpp"
    00015 #include "Object3D/Object3D.hpp"
    00016
    00017 namespace USpeedGameEngine
    00018 {
    00019
    00020 class RenderOpenGL
    00021 {
    00022     /****************
    00023     * Les attributs *
    00024     ****************/
    00025     public :
    00026     protected :
    00027     private :
    00028         bool initialized;
    00029
    00030     /***************
    00031     * Les méthodes *
    00032     ***************/
    00033     public :
    00034         // Destructeur par défaut
    00035         ~RenderOpenGL();
    00036
    00037         // Accès à l'instance unique de cette classe.
    00038         static RenderOpenGL *getInstance();
    00039
    00041         // Héritage //
    00043         // Initialisation du moteur de rendu.
    00044         bool init();
    00045         // Libération du moteur de rendu.
    00046         void clean();
    00047         // Prépare l'affichage avant de tracer les polygones.
    00048         void prepareDraw();
    00049         // Achève les traitements pour l'affichage après avoir tracé les polygones.
    00050         void finishDraw();
    00051         // Changement de la vue.
    00052         void changeViewport(int width, int height);
    00053         // Changement de la perspective.
    00054         void changePerspective(float pFov, float pAspect, float dNear, float dFar);
    00055
    00057         // Instruction de traçage //
    00059         // Démarrage du traçage.
    00060         void start();
    00061         void start(bool noCamera);
    00062         // Transformation de translation.
    00063         void translate(USGE_Float3 const &vector);
    00064         // Transformation de rotation.
    00065         void rotate(USGE_Float3 const &angles);
    00066         // Transformation de rotation.
    00067         void scale(USGE_Float3 const &ratios);
    00068         // Modèle de rendu des zones sombres et éclairées : face ou point.
    00069         void setShadeModel(bool vertexShader);
    00070         // Application de la texture au modèle.
    00071         void setMaterial(Material *material);
    00072         // Instruction de traçage des points 3D en mode TRIANGLE.
    00073         void render(USGE_Vertex *vertices, unsigned int count);
    00074         // Finalisation de l'utilisation du Video::Render.
    00075         void finish();
    00076         // Instruction de traçage des points 3D en mode TRIANGLE avec texture etc...
    00077         void renderFull(USGE_Vertex *vertices, unsigned int count, Material *material, Object3DParentAttach *anchor, USGE_Float3 const &vector, USGE_Float3 const &angles, USGE_Float3 const &ratios, bool vertexShader, bool noCamera);
    00078
    00080         // Accesseurs //
    00082         // Retourne la focale de la perspective.
    00083         float getFov();
    00084         // Retourne l'aspect ratio de la perspective.
    00085         float getAspectRatio();
    00086
    00087     protected :
    00088     private :
    00089         // Constructeur par défaut
    00090         RenderOpenGL();
    00091
    00092 };
    00093
    00094 }        // Fin "namespace USpeedGameEngine"
    00095
    00096 #endif