begin process at 2010 03 18 01:03:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > UNE MINI INTRO (OPENGL + MINIFMOD)

UNE MINI INTRO (OPENGL + MINIFMOD)


 Information sur la source

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :opengl, fmod, intros, demos, graphique Niveau :Débutant Date de création :02/04/2007 Date de mise à jour :11/05/2007 21:44:22 Vu / téléchargé :5 663 / 511

Auteur : Romano58

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

 Description

Cliquez pour voir la capture en taille normale
Une intro coder en utilisant OpenGL. Premier pas dans OpenGL domaine pour moi. Premier pas également dans la conception d'objets... Le code n'est surement pas top mais sa marche bien :)


 Conclusion

Plus de MAJ prevue

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   bin
    • IntroCpp.exe.ManifestTélécharger ce fichier [Réservé aux membres club]660 octets
    • IntroCpp.execTélécharger ce fichier [Réservé aux membres club]27 072 octets
  • graphs.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier9 471 octets
  • graphs.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 086 octets
  • graphs.oTélécharger ce fichier [Réservé aux membres club]6 833 octets
  • IntroCpp.devTélécharger ce fichier [Réservé aux membres club]2 024 octets
  • IntroCpp.exe.ManifestTélécharger ce fichier [Réservé aux membres club]660 octets
  • IntroCpp.icoTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 238 octets
  • IntroCpp.layoutTélécharger ce fichier [Réservé aux membres club]747 octets
  • main.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier7 245 octets
  • main.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier476 octets
  • main.oTélécharger ce fichier [Réservé aux membres club]21 062 octets
  • Makefile.winTélécharger ce fichier [Réservé aux membres club]1 320 octets
  • OpenGL_private.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier615 octets
  • OpenGL_private.rcTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 020 octets
  • OpenGL_private.resTélécharger ce fichier [Réservé aux membres club]4 022 octets
  • s-beauty.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier80 363 octets
  • ufmod.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier8 894 octets
  • ufmod.objTélécharger ce fichier [Réservé aux membres club]9 889 octets

Télécharger le zip


 Historique

04 avril 2007 12:32:23 :
Voila, le fichier xm est maintenant dans l'éxécutable. En effet sur le site de fmod dans l'éxemple fourni avec minifmod pour gcc il est dit que l'on peut jouer le fichier a partir d'une resource "RT_RCDATA", mais avec dev-c++ sa ne marche pas... J'ai été obliger de faire comme ci-dessous: #define RT_RCMOD "#123" Dans la fonction "memopen" de minifmod -> res = FindResource(NULL, name, RT_RCMOD); // Au lieu de RT_RCDATA dans le fichier .rc -> thexm 123 "s-beauty.xm" voila. A+
07 avril 2007 23:42:44 :
Je n'est pas réussi a jouer le fichier xm a partir d'un fichier .h avec minifmod... Mais j'ai trouver uFMOD et sa marche :) On peux choisir plein-ecran/fenêtre aussi maintenant. Je ne sais pas pourquoi le texte est plus petit sur certain PC et quand on est en mode fenêtre on dérégle le timer si on la déplace... J'essaye de comprendre comment réparer sa et je remet la source a jour. A++
08 avril 2007 12:32:30 :
Re-upload de la source...
08 avril 2007 14:46:48 :
re-re-upload; Désolé, petit probléme technique sur le site ;)
11 mai 2007 21:44:22 :
- Plus de code dans les fichier .h - Tout ce qui est relatifs au graphisme dans graph.cpp et graph.h

 Sources du même auteur

Source avec Zip Source avec une capture INFOTICAIRES 2007 INVITRO OFFICIEL

 Sources de la même categorie

Source avec Zip Source avec une capture VISUALISATION DES IMAGES EN 3D SANS OPENGL par Pistol_Pete
Source avec Zip Source avec une capture ANALYSE DE LA TEXTURE D'UNE IMAGE : FILTRE DE GABOR par Pistol_Pete
Source avec Zip Source avec une capture MONPPM : UN AFFICHEUR .PPM par pgl10
Source avec Zip MOTEUR 3D : CASTOR3D par dragonjoker59
Source avec Zip Source avec une capture VIEWER COMPLET POUR LE TRAITEMENT DE L'IMAGE : IMANALYSE par Pistol_Pete

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SCREENSAVER OPENGL DEV C++ par bobby03
Source avec Zip Source avec une capture LEÇON 13 NEHE EN FRANÇAIS OPENGL DEV C++ par bobby03
Source avec Zip MOTEUR 3D : CASTOR3D par dragonjoker59
Source avec Zip Source avec une capture DEMO OPENGL par JeanCodeS
Source avec Zip Source avec une capture STARWAR 2.0(JEU SOUS WIN32 ET OPENGL) par gagah1

Commentaires et avis

Commentaire de bbear le 03/04/2007 15:32:47

un p'tit exe aurait pas été de trop...
ou alors un lien vers celui du site (c'est l'IntroCPP v1.00) ?
si c'est celle là, j'aime bien les "barres de copper" en openGl. Comme je demarre aussi l'OGl, je me demandais comment faire des effets Oldskool (plasma, bobs...).

si tu utilises Minifmod, tu peux integrer le module dans l'exe (pm pour plus d'infos ou chercher mes messages, j'ai déjà posté la-dessus)

Commentaire de Romano58 le 04/04/2007 12:40:46

Voila j'ai mis l'éxécutable dans le zip. Vous pouvez le télécharger et l'éxécuter diréctement.

J'ai modifier un peux la source, mais ce ne sont que des petit truc de rien du tout.

Voila.

BBEAR> A mon avis c'est chaud de faire des metaballs ou du plasma quand on commence l'OpenGL :) J'éssayerai peut être plus tard mais là pour le moment c'est au dela de mes compétences.

A++

Commentaire de bbear le 04/04/2007 12:57:36

pour Minifmod, il ne faut pas passer par les ressources, mais il faut transformer le fichier module en tableau de char (j'utilise INCPRO) qui sera sauvegarder dans un fichier .H
ensuite utiliser les fonctions memopen/memseek... modifiées :
[code]
// minifmod include & lib
#include "minifmod.h"
#pragma comment(lib,"minifmod.lib")
#pragma comment(lib,"winmm.lib")
//--- Module
#include "MOD.H"

// module struct
typedef struct
{
int length;
int pos;
void *data;
} MEMFILE;

FMUSIC_MODULE *pModule;

unsigned int memopen(char *name)
{
MEMFILE *memfile;

memfile = (MEMFILE *)calloc(sizeof(MEMFILE),1);

memfile->length = sizeof(music);
memfile->data = malloc(memfile->length);
memfile->pos = 0;
memcpy(memfile->data,music,memfile->length);

return (unsigned int)memfile;
}

void memclose(unsigned int handle)
{
MEMFILE *memfile = (MEMFILE *)handle;
free(memfile->data);
}

int memread(void *buffer, int size, unsigned int handle)
{
MEMFILE *memfile = (MEMFILE *)handle;

if (memfile->pos + size >= memfile->length)
size = memfile->length - memfile->pos;

memcpy(buffer, (char *)memfile->data+memfile->pos, size);
memfile->pos += size;

return size;
}

void memseek(unsigned int handle, int pos, signed char mode)
{
MEMFILE *memfile = (MEMFILE *)handle;

if (mode == SEEK_SET)
memfile->pos = pos;
else if (mode == SEEK_CUR)
memfile->pos += pos;
else if (mode == SEEK_END)
memfile->pos = memfile->length + pos;

if (memfile->pos > memfile->length)
memfile->pos = memfile->length;
}

int memtell(unsigned int handle)
{
MEMFILE *memfile = (MEMFILE *)handle;

return memfile->pos;
}

// pour Initialiser :
// init FMOD
FSOUND_File_SetCallbacks(memopen, memclose, memread, memseek, memtell);
pModule = FMUSIC_LoadSong( (char*)music, NULL ); //sampleloadcallback;
FMUSIC_PlaySong(pModule); // start music
[/code]

Commentaire de shenron666 le 04/04/2007 22:37:05

sympa comme petite intro, par contre elle me pose quelques problèmes :
- elle n'est pas en plein écran mais dans une fenêtre sans bordure (mon bureau est en 1280x1024)
- le texte, du moins je pense que c'est du texte, est illisible, il reste trop "loin" ou en tout cas il est trop petit

je pense que c'est pour faire "old school" que tu as voulu mettre en resource la musique ?
je suis pas très fan mais la suggestion de BBEAR de générer un .H est préférable au système de resources

à part ça c'est pas mal pour un début
bon courage pour les metaballs ^^
ps: si ça t'intéresse, cherches "marching cubes"

Commentaire de bbear le 04/04/2007 22:49:29

en fait, elle ne s'ouvre pas en fullscreen mais en windowed 1024x768.

ps: je pensais BOBS (pas Blobs) dans le sens afficher des "sprites" 2D (images) en OpenGl (voir l'invitro de la Breakpoint 2007 de Keops avec des vieux effets)

Commentaire de Romano58 le 05/04/2007 12:57:25

Ok alors je vais essayer de mettre le fichier xm en .h :)

shenron666> Oui l'intro est en 1024x768, car je ne sais pas comment obtenir la resolution d'écran... Quand je trouverez je modifierais a nouveau la source. (pour l'instant je vais remettre les bordures sur la fenêtre et agrandir le texte...).

Sa risque de prendre quelques jours, ce n'est pas que je galére a coder mais c'est que en ce moment j'ai trop de trucs a faire :)

A+ les gars.

Commentaire de bbear le 05/04/2007 13:17:41

une version rapide d'ouvrir une fenetre fullscreen (dans le main):
[code]
PIXELFORMATDESCRIPTOR pfd;  
pfd.cColorBits = pfd.cDepthBits = 32;
pfd.dwFlags    = PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
HDC hDC = GetDC ( CreateWindow("edit", 0,
WS_POPUP|WS_VISIBLE|WS_MAXIMIZE,
0, 0, 0 , 0, 0, 0, 0, 0) );        
SetPixelFormat ( hDC, ChoosePixelFormat ( hDC, &pfd) , &pfd );
wglMakeCurrent ( hDC, wglCreateContext(hDC) );
[/code]

sinon avec une selection windowed/fullscreen :
[code]
void wmChangeToFullScreen()
{
DEVMODE dmSettings; // Device Mode variable

memset(&dmSettings,0,sizeof(dmSettings)); // Makes Sure Memory's Cleared

// Get current settings -- This function fills our the settings
// This makes sure NT and Win98 machines change correctly
if(!EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&dmSettings))
{
// Display error message if we couldn't get display settings
MessageBox(NULL, "Could Not Enum Display Settings", "Error", MB_OK);
return;
}

dmSettings.dmPelsWidth = ScreenWidth; // Selected Screen Width
dmSettings.dmPelsHeight = ScreenHeight; // Selected Screen Height

// This function actually changes the screen to full screen
// CDS_FULLSCREEN Gets Rid Of Start Bar.
// We always want to get a result from this function to check if we failed
int result = ChangeDisplaySettings(&dmSettings,CDS_FULLSCREEN);

// Check if we didn't recieved a good return message From the function
if(result != DISP_CHANGE_SUCCESSFUL)
{
// Display the error message and quit the program
MessageBox(NULL, "Display Mode Not Compatible", "Error", MB_OK);
PostQuitMessage(0);
}
}
[/code]

Commentaire de Romano58 le 05/04/2007 21:47:59

Meci BBEAR, je fait de suite un copier/coller dans le bloc note !

Concernant le probléme du texte trop petit, j'ai eu le même probléme sur le PC de mon frére (et c'est vrai que c'est chiant !!!), je vais éssayer de voir d'ou cela peux bien venir... En tout cas ne croyais pas que je laisse la source a l'abandon si pendant quelques jours il n'y a aucun changement...

Je vais quand même éssayer de faire vite si je peux.
Mercie pour l'aide c'est super cool de votre part.
A+

Commentaire de goast_tu le 07/04/2007 11:37:48

une ptite remarque d'habitude on ne met pas du code executable dans les *.h

Commentaire de shenron666 le 07/04/2007 21:58:19

c'est vrai qu'il faudrait nettoyer un peu le code
toujours avoir un .cpp avec un .h
s'il y a du code dans un .h le plus souvent c'est pour faire du inline avec du code critique (appelé plusieurs fois par image par ex)
les fonctions de fenêtrage c'est pas trop critique

Commentaire de Romano58 le 08/04/2007 12:30:15

Ahh, j'ai uploader le zip mais il ne c'est pas mis a jour ! (sa ma fait pareil avec un source delphi)...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Probleme affichage OpenGL [ par LudoBoOz ] Bonjour @ tousVoila je fais une appli où j'ai besoin d'avoir trois scenes OpenGl sur une même fenetre Windows. Pour cela, j'ai créé 3 frames dans lesq moteur graphique [ par vladisback ] bonjour je pense depuis quelque temps a essayer de réaliser un moteur graphique (bien que ce ne soit peut etre pas le bon terme) comme opengl et direc Comment debuter avec OpenGL [ par douggyfresh ] douggy Je suis un amateur de la programmation graphique en c en mode console vga. Mais, j'aimerais faire de la programmation graphique 32 bits avec o Comment recuperer les images d'une webcam avec OpenGL ???? [ par anthonygiroud ] Bonjour a tous!J'ai un petit probleme. C'est pour mon sujet de stage : j'ai une webcam, et il faudrait,avec OpenGL, que je separe un individu qui est Interface graphique en c ou C++ [ par toxjamescook ] Bonjour je souhaites savoir comment créer une interface graphique pour windows xp en c ou c++ sans utiliser les activex d'un borlandbuilder ou au passage coordonnées normalisé en opengl [ par seb_nachos ] Bonjour, j'ai un probleme au niveau de la creation des coordonnées opengl. En fait je dessine, je recupere les coordonnées de la souris (en RE interface graphique en c et c++ [ par toxjamescook ] Voila mon probleme c'est que je dois réalisé des graphiques qu'on ne trouvent pas dans les bibliotheques windows comme des bargraphs tr&#232 OpenGL figé [ par keselbingo ] Bonsoir à tous, Je viens de lire les dix pages de sujets sur OpenGL du forum, et je n'ai rien trouvé qui ressemble à ce que j'ai, je s Fmod durée [ par victorcoasne ] Bonjour, Je voudrais savoir la fonction qui donne avec FMOD la durée de la musique si le fichier est midi (FMUSIC) Merci, Le créateur du Calcul en c++ interface graphique en visual basic possible??? [ par toxjamescook ] bonjour je souhaites savoir si je peux créer un programme sous visual c++ ou c++ builder qui me fait des calculs et adapter par exemple les r&#23


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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,998 sec (3)

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