begin process at 2012 05 27 18:59:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OpenGL

 > ODYSEE, DLL POUR UTILISER OPENGL UNIQUEMENT EN OBJET

ODYSEE, DLL POUR UTILISER OPENGL UNIQUEMENT EN OBJET


 Information sur la source

Note :
Aucune note
Catégorie :OpenGL Niveau :Débutant Date de création :30/05/2003 Date de mise à jour :31/05/2003 23:32:37 Vu / téléchargé :2 370 / 109

Auteur : Nemesys

Ecrire un message privé
Site perso
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Première phase de devellopement Objet pour OpenGl.
Pour l'instant une unique classe "Window" permet de creer une fenetre sous OpenGL tres simplement :

#include "Odyssee.h"

void main(int argc, char ** argv)
{
Window maFenetre(argc, argv, 800, 600);
maFenetre.init();
}

Et ensuite, pour ceux qui aiment la programmation objet, il ne reste qu'a hériter et redéfinir les methode "display, reshape, ....."

CI-DESSOUS un exemple d'utilisation de la classe Window et de la DLL  

ATTENTION, testé avec Visual C++ uniquement

Source

  • /*-----------------------------------------------------------------------*/
  • /* Generic Class Version 1.0
  • /*-----------------------------------------------------------------------*/
  • /* Copyright (c) 2000-2003 Nemesys Group
  • /*-----------------------------------------------------------------------*/
  • /* Authors: Picard Vincent <vincent@nemesys.tv>
  • /*-----------------------------------------------------------------------*/
  • /* Contact : <development@nemesys.tv>
  • /*-----------------------------------------------------------------------*/
  • /**----------------------------------------------------------------------*/
  • /* Opengl
  • /*----------------------------------------------------------------------**/
  • #include <GL/glut.h>
  • /**----------------------------------------------------------------------*/
  • /* Declaration de la DLL
  • /*----------------------------------------------------------------------**/
  • #include "Odyssee.h"
  • /**----------------------------------------------------------------------*/
  • /* La nouvelle classe Fenetre
  • /*----------------------------------------------------------------------**/
  • class MyWindow : public Window
  • {
  • public:
  • void display(); // Redefinition
  • MyWindow(int argc, char** argv, int width, int height);
  • };
  • /**----------------------------------------------------------------------*/
  • /* Redefinir la fonction d affichage
  • /*----------------------------------------------------------------------**/
  • void MyWindow::display()
  • {
  • glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  • glutWireSphere(1.0, 10.0, 10.0);
  • glutSwapBuffers();
  • }
  • /**----------------------------------------------------------------------*/
  • /* Constructeur
  • /*----------------------------------------------------------------------**/
  • MyWindow::MyWindow(int argc, char** argv, int width, int height)
  • :Window(argc, argv, width, height)
  • {}
  • /**----------------------------------------------------------------------*/
  • /* Fonction principale
  • /*----------------------------------------------------------------------**/
  • int main(int argc, char* argv[])
  • {
  • // Creer la fenetre
  • MyWindow maFenetre(argc, argv, 800, 600);
  • // Lancer l initialisation de la fenetre
  • maFenetre.init();
  • return 0;
  • }
/*-----------------------------------------------------------------------*/
/*   Generic Class Version 1.0
/*-----------------------------------------------------------------------*/
/*   Copyright (c) 2000-2003 Nemesys Group
/*-----------------------------------------------------------------------*/
/*   Authors: Picard Vincent <vincent@nemesys.tv>            
/*-----------------------------------------------------------------------*/
/*   Contact : <development@nemesys.tv>
/*-----------------------------------------------------------------------*/

/**----------------------------------------------------------------------*/
/* Opengl
/*----------------------------------------------------------------------**/

#include <GL/glut.h>

/**----------------------------------------------------------------------*/
/* Declaration de la DLL
/*----------------------------------------------------------------------**/

#include "Odyssee.h"

/**----------------------------------------------------------------------*/
/* La nouvelle classe Fenetre 
/*----------------------------------------------------------------------**/

class MyWindow : public Window
{
public:
	void display(); // Redefinition
	MyWindow(int argc, char** argv, int width, int height);
};

/**----------------------------------------------------------------------*/
/* Redefinir la fonction d affichage
/*----------------------------------------------------------------------**/

void MyWindow::display()
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

	glutWireSphere(1.0, 10.0, 10.0);

	glutSwapBuffers();		
}

/**----------------------------------------------------------------------*/
/* Constructeur
/*----------------------------------------------------------------------**/

MyWindow::MyWindow(int argc, char** argv, int width, int height)
:Window(argc, argv, width, height)
{}

/**----------------------------------------------------------------------*/
/* Fonction principale
/*----------------------------------------------------------------------**/

int main(int argc, char* argv[])
{
	// Creer la fenetre

	MyWindow maFenetre(argc, argv, 800, 600);

	// Lancer l initialisation de la fenetre

	maFenetre.init();

	return 0;
}
   


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Odyssee.dllTélécharger ce fichier [Réservé aux membres club]221 276 octets
  • Odyssee.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier3 016 octets
  • Odyssee.libTélécharger ce fichier [Réservé aux membres club]7 008 octets
  • test.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 271 octets
  • test.exeTélécharger ce fichier [Réservé aux membres club]180 324 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip CLASS BOX
Source avec Zip NOMBRES COMPLEXES ( C++, CLASSE )

 Sources de la même categorie

Source avec Zip Source avec une capture AFFICHER DES COURBES DE BEZIER par shorzy
Source avec Zip Source avec une capture BASE/MOTEUR 3D EN QT/OPENGL (COMPLET ET FONCTIONNEL!) POUR U... par envi33
Source avec Zip Source avec une capture CLASSE AVEC OPENGL - OBJETS 3D ET ANIMATIONS par rasta63
Source avec Zip Source avec une capture LETTRES 3D AVEC OPENGL ET QT par opossum_farceur
Source avec Zip CUBE 3D GLUT32 VC++ ET DEVC++ par bobby03

Commentaires et avis

Commentaire de Kirua le 31/05/2003 10:07:35

tu le mets en .NET, ça veut dire que ça marchera pas avec Borland C++ Builder? :-(

Commentaire de Nemesys le 31/05/2003 14:37:51

Non, c'est purement une erreur de ma part. La DLL à été dévéloppé avec Visual C++. Je ne peux pas te dire si elle fonctionne avec Borland C++ mais je l'espère !!

Nemesys

Commentaire de Kirua le 31/05/2003 17:02:11

ah ok plus la peine de répondre au messae privé ;-)

mais comme je te disais, je souffre bcp pr l'instant, pas moyen de compiler qq ch de convenable (la compile est ok mais l'exe bie nque gros ne fait rien)

Commentaire de Nemesys le 02/06/2003 02:22:33

Pour voir ce que cela donne, tu peux lancer le .exe fourni dans le ZIP (simple fenêtre opengl avec une sphère). Je n'ai pas encore installé Borland pour faire le test avec.

Commentaire de Kirua le 07/06/2003 19:16:18

Dis Nemesys, dans to ncode, ça crée la fenêtre ok, mais comment on fait pour utiliser ça dans une boucle? je veux dire, si mon programme doit intercepter les touches clavier et changer le dessin en conséquence, habituellement je mettais ça dans la while() de winmain. ici je fais comment ?

Commentaire de Nemesys le 09/06/2003 00:53:13

Ci-dessous la liste des methodes virtuelles de la classe Window. Ainsi, pour ton while, il te suffit de créer une classe qui herite de window dans laquelle tu redéfini la methode run().

virtual void display();
virtual void reshape(int width, int height);
virtual void keyboard(unsigned char key, int x, int y);
virtual void keyboardUp(unsigned char key, int x, int y);
virtual void mouse(int button, int state, int x, int y);
virtual void special(int key, int x, int y);
virtual void run();

Ce qui permet de rendre bcps plus simple l'utilistion d'OpenGl. Avec cela, il faut juste redéfinir les methodes que l'on souhaite utiliser.

Commentaire de Kirua le 09/06/2003 21:50:33

ah ok. je sais pas comment faire mais c pas grave, je ne vais pas utiliser ça ;-) c énervant de devoir fournir les DLL avec les exe, ça donne tjs des problèmes à la fin (manque la pièce ds le zip etc)

enfin merci qd meme

Commentaire de Nemesys le 10/06/2003 00:05:46

Dommage, c vrai que les DLL sont parfois manquantes, mais quand tu veux faire un programme assez complet, c'est plus facile d'avoir plusieurs DLL et un point EXE plutot qu'un seul EXE de 10 Mo (voir plus). Pas pratique pour la compil et aussi pour la mise à jour avec un seul .EXE.

Commentaire de Kirua le 10/06/2003 12:23:53

ou ic'est un point de vue qui se défend, c'est certain. disons que dans un premeir temps je vais m'en tenir à un .h ;-)

Commentaire de Nemesys le 10/06/2003 14:16:22

Et bien alors, pour quelqu'un qui n'aime pas les DLL c'est surprenant de voir  "la DLL KiruaSofts" sur ton site  ;-)
En tout cas, ton FTP rapide fonctionne bien.

Commentaire de Kirua le 10/06/2003 15:17:15

oui c'es étonnant et par après je l'ai regretté, surtout qu'elle ne contient que la boîte à propos... toujorus en quête d'un hébergeur :-)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales