the_phoenix2 | Voici les erreurs que j ai : Citation :
------ Début de la génération : Projet : TestOpenGL2, Configuration : Debug Win32 ------ Compilation en cours... Frame.cpp f:\projet visual studio 2005\testopengl2\testopengl2\frame.cpp(99) : error C2065: 'r' : identificateur non déclaré f:\projet visual studio 2005\testopengl2\testopengl2\frame.cpp(99) : error C2061: erreur de syntaxe : identificateur 'Rectangle' f:\projet visual studio 2005\testopengl2\testopengl2\frame.cpp(100) : error C2227: la partie gauche de '->draw' doit pointer vers un type class/struct/union/générique le type est ''unknown-type'' Main.cpp Génération de code en cours... Le journal de génération a été enregistré à l'emplacement "file://f:\Projet Visual Studio 2005\TestOpenGL2\TestOpenGL2\Debug\BuildLog.htm" TestOpenGL2 - 3 erreur(s), 0 avertissement(s) ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
|
Rque : Pour la methode void Rectangle:: draw() je suis pas sur que ce que j'ai fait fonctionnera notamment les "glVertex3d(...)" faudrait peut être que je passe le contexte de rendu en parametre, je sais pas trop, openGL c est tout nouveau pour moi ^^ Mais de toute façon "ça merdouille" avant ca ^^ Main.cpp Code :
- #include "Frame.h"
- #include "Rectangle.h"
- int main(int argc, char *argv[])
- {
- Frame *f = new Frame(1024, 768);
- return 0;
- }
| Frame.cpp Code :
- #include "Frame.h"
- Frame::Frame(int l, int h){
- this->setLargeur(l);
- this->setHauteur(h);
- SDL_Event event;
- SDL_Init(SDL_INIT_VIDEO);
- atexit(SDL_Quit);
- SDL_WM_SetCaption("SDL GL Application", NULL);
- SDL_SetVideoMode(l, h, 32, SDL_OPENGL);
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- gluPerspective(70,(double)l/h,1,1000);
- glEnable(GL_DEPTH_TEST);
- Dessiner();
- Uint32 last_time = SDL_GetTicks();
- Uint32 current_time,ellapsed_time;
- Uint32 start_time;
- for (;;)
- {
- start_time = SDL_GetTicks();
- while (SDL_PollEvent(&event))
- {
- switch(event.type)
- {
- case SDL_QUIT:
- exit(0);
- break;
- case SDL_KEYDOWN :
- switch(event.key.keysym.sym)
- {
- case SDLK_UP: // Flèche haut
- break;
- case SDLK_DOWN: // Flèche bas
- break;
- }
- }
- }
- current_time = SDL_GetTicks();
- ellapsed_time = current_time - last_time;
- last_time = current_time;
- Dessiner();
- ellapsed_time = SDL_GetTicks() - start_time;
- if (ellapsed_time < 10)
- {
- SDL_Delay(10 - ellapsed_time);
- }
- }
- // On quitte la SDL
- SDL_Quit();
- }
- Frame::~Frame(void){
- }
- int Frame::getLargeur(){
- return this->largeur;
- }
- int Frame::getHauteur(){
- return this->hauteur;
- }
- void Frame::setLargeur(int l){
- this->largeur = l;
- }
- void Frame::setHauteur(int h){
- this->hauteur = h;
- }
- void Frame::Dessiner(){
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity( );
- gluLookAt(3,4,2,0,0,0,0,0,1);
- glRotated(180,0,0,1);
- Rectangle *r = new Rectangle(0,0,0,10,200,100);
- r->draw();
- glEnd();
- glFlush();
- SDL_GL_SwapBuffers();
- }
| Frame.h
Code :
- #ifndef _FRAME_H_
- #define _FRAME_H_
- #pragma once
- #include <iostream>
- #include <windows.h>
- #include <GL/gl.h>
- #include <GL/glu.h>
- #include <SDL/SDL.h>
- #include "Rectangle.h"
- class Frame
- {
- private :
- int largeur;
- int hauteur;
- public:
- // Constructeur
- Frame(int l, int h);
- // Destructeur
- ~Frame(void);
- // Methode de type GET et SET
- int getLargeur();
- int getHauteur();
- void setLargeur(int l);
- void setHauteur(int h);
- void Dessiner();
- };
- #endif
| Rectangle.cpp Code :
- #include "Rectangle.h"
- Rectangle::Rectangle(void){
- x = 0;
- y = 0;
- z = 0;
- L = 0;
- l = 0;
- h = 0;
- }
- Rectangle::Rectangle(double xx, double yy, double zz, double LL, double ll, double hh){
- x = xx;
- y = yy;
- z = zz;
- L = LL;
- l = ll;
- h = hh;
- }
- Rectangle::~Rectangle(void){
- }
- // GET
- double Rectangle::getX(){
- return x;
- }
- double Rectangle::getY(){
- return y;
- }
- double Rectangle::getZ(){
- return z;
- }
- double Rectangle::getLongueur(){
- return L;
- }
- double Rectangle::getLargeur(){
- return l;
- }
- double Rectangle::getHauteur(){
- return h;
- }
- // SET
- void Rectangle::setX(double d){
- x = d;
- }
- void Rectangle::setY(double d){
- y = d;
- }
- void Rectangle::setZ(double d){
- z = d;
- }
- void Rectangle::setLongueur(double d){
- L = d;
- }
- void Rectangle::setLargeur(double d){
- l = d;
- }
- void Rectangle::setHauteur(double d){
- h = d;
- }
- void Rectangle::draw(){
- glBegin(GL_QUADS);
- // Face de devant
- glColor3ub(255,0,0); //face rouge
- glVertex3d(x,y,z);
- glVertex3d(x,y,z+h);
- glVertex3d(x+L,y,z+h);
- glVertex3d(x+L,y,z);
-
- // Face de gauche
- glColor3ub(0,255,0); //face verte
- glVertex3d(x,y,z);
- glVertex3d(x,y,z+h);
- glVertex3d(x,y+l,z+h);
- glVertex3d(x,y+l,z);
- // Face de derriere
- glColor3ub(0,0,255); //face bleue
- glVertex3d(x,y+l,z);
- glVertex3d(x,y+l,z+h);
- glVertex3d(x+L,y+l,z+h);
- glVertex3d(x+L,y+l,z);
- // Face de droite
- glColor3ub(255,255,0); //face jaune
- glVertex3d(x+L,y,z);
- glVertex3d(x+L,y,z+h);
- glVertex3d(x+L,y+l,z+h);
- glVertex3d(x+L,y+l,z);
- // Face du dessous
- glColor3ub(0,255,255); //face cyan
- glVertex3d(x,y,z);
- glVertex3d(x,y+l,z);
- glVertex3d(x+L,y+l,z);
- glVertex3d(x+L,y,z);
- glColor3ub(255,0,255); //face magenta
- glVertex3d(x,y,z+h);
- glVertex3d(x,y+l,z+h);
- glVertex3d(x+L,y+l,z+h);
- glVertex3d(x+L,y,z+h);
- glEnd();
- }
| Rectangle.h
Code :
- #ifndef _RECTANGLE_H_
- #define _RECTANGLE_H_
- #pragma once
- #include <iostream>
- #include <SDL/SDL.h>
- #include <windows.h>
- #include <GL/gl.h>
- #include <GL/glu.h>
- class Rectangle
- {
- private :
- double x, y, z, L, l, h;
- public:
- Rectangle(void);
- Rectangle(double xx, double yy, double zz, double LL, double ll, double hh);
- ~Rectangle(void);
- // GET
- double getX();
- double getY();
- double getZ();
- double getLongueur();
- double getLargeur();
- double getHauteur();
- // SET
- void setX(double d);
- void setY(double d);
- void setZ(double d);
- void setLongueur(double d);
- void setLargeur(double d);
- void setHauteur(double d);
- void draw();
- };
- #endif
|
Message édité par the_phoenix2 le 24-07-2007 à 14:09:33
|