Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : SDL Opengl lumiere [ Archives / OpenGL ] (xian240482)

dimanche 11 juillet 2004 à 20:11:15 | SDL Opengl lumiere

xian240482


Alors là, je comprend pas!

Voila un mon code (ultra simplifier) et il ne marche pas : Il plante sur le glend() !
Si c'est ,comme je le crois, une erreur bete et mechante; dite le moi svp.

Merci d'avance.

Mon code :

#include <stdlib.h>
#include <stdio.h>

#include <windows.h>
#include "SDL.h"
#include <GL/gl.h>
#include <GL/glu.h>


#pragma comment(lib,"Opengl32.lib")
#pragma comment(lib,"Glu32.lib")



void STD_ERROR(char * message)
{
fprintf(stderr, message);
fprintf(stderr, SDL_GetError());
fprintf(stderr, "\n");
exit(1);
}

void STD_OUT(char * message)
{
fprintf(stdout, message);
fprintf(stdout, "\n");
}


void process_events( void )
{
SDL_Event event;

while( SDL_PollEvent( &event ) ) {

switch( event.type ) {
case SDL_KEYDOWN:
exit(0);
break;
case SDL_QUIT:
exit(0);
break;
}
}
}




int main( int argc, char* argv[] )
{

int width=1024,height=728;
float ratio = (float) width / (float) height;


if ( SDL_Init( SDL_INIT_VIDEO ) < 0 )
STD_ERROR("Impossible d'initialiser SDL \n");

STD_OUT("Initialisation SDL reussit");
atexit(SDL_Quit );
SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 5 );
SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 5 );
SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 5 );
SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 );
SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );

if ( SDL_SetVideoMode(width , height ,24, SDL_OPENGL + SDL_FULLSCREEN + SDL_INIT_TIMER) == NULL )
STD_ERROR("impossible d'initialise le mode video");
STD_OUT("Initialisation mode video reussit");

glClearColor( 0, 0, 0, 0 );
glViewport( 0, 0, width, height );
glMatrixMode( GL_PROJECTION );
gluPerspective( 45.0f, ratio, 0.1f, 100.0f );
glMatrixMode(GL_MODELVIEW);


GLfloat lumiere_position[4];
GLfloat lumiere_diffusion[4];
GLfloat lumiere_ambient[4];

lumiere_ambient[0]=1.0f;
lumiere_ambient[1]=1.0f;
lumiere_ambient[2]=1.0f;
lumiere_ambient[3]=1.0f;
glLightfv(GL_LIGHT1, GL_AMBIENT,lumiere_ambient);

lumiere_diffusion[0]=1.0f;
lumiere_diffusion[1]=1.0f;
lumiere_diffusion[2]=1.0f;
lumiere_diffusion[3]=0.0f;
glLightfv(GL_LIGHT1, GL_DIFFUSE,lumiere_diffusion);

lumiere_position[0]=100.0f;
lumiere_position[1]=0.0f;
lumiere_position[2]=0.0f;
lumiere_position[3]=0.0f;
glLightfv(GL_LIGHT1, GL_POSITION,lumiere_position);

glEnable(GL_LIGHT1);
glEnable(GL_LIGHTING);

GLfloat angle;
angle=0.0f;

while(1)
{

glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

glLoadIdentity();

glTranslatef(0.0f,0.0f,-5.0f);

glRotatef(angle,1.0f,0.0f,0.0f);
glRotatef(angle,0.0f,1.0f,0.0f);
glRotatef(angle,0.0f,0.0f,1.0f);

angle+=0.5f;


glBegin(GL_QUADS);

glNormal3f( 0.0f, 0.0f, 1.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);
glVertex3f( 1.0f, -1.0f, 1.0f);
glVertex3f( 1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);

glNormal3f( 0.0f, 0.0f,-1.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, 1.0f, -1.0f);
glVertex3f( 1.0f, 1.0f, -1.0f);
glVertex3f( 1.0f, -1.0f, -1.0f);

glNormal3f( 0.0f, 1.0f, 0.0f);
glVertex3f(-1.0f, 1.0f, -1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glVertex3f( 1.0f, 1.0f, 1.0f);
glVertex3f( 1.0f, 1.0f, -1.0f);

glNormal3f( 0.0f,-1.0f, 0.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f( 1.0f, -1.0f, -1.0f);
glVertex3f( 1.0f, -1.0f, 1.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);

glNormal3f( 1.0f, 0.0f, 0.0f);
glVertex3f( 1.0f, -1.0f, -1.0f);
glVertex3f( 1.0f, 1.0f, -1.0f);
glVertex3f( 1.0f, 1.0f, 1.0f);
glVertex3f( 1.0f, -1.0f, 1.0f);

glNormal3f(-1.0f, 0.0f, 0.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, -1.0f);

STD_OUT("avant glEnd()");
glEnd(); // il plante là
STD_OUT("apres glEnd()");

SDL_GL_SwapBuffers();

Sleep(50);

process_events();
}

return 0;
}

dimanche 11 juillet 2004 à 21:47:48 | Re : SDL Opengl lumiere

Funto66

"SDL_SetVideoMode(width , height ,24, SDL_OPENGL + SDL_FULLSCREEN + SDL_INIT_TIMER)"

-> Les "+" ne devraient pas être des OU logiqes bit à bit ("|") ?

Patience et longueur de temps font plus que force ni que rage....

lundi 12 juillet 2004 à 03:51:20 | Re : SDL Opengl lumiere

xarier

oui c vraie c comme adit funto car les | gere les bits alors que les + gere les int
@+
Life is Short

lundi 12 juillet 2004 à 17:49:50 | Re : SDL Opengl lumiere

xian240482

Normalement ca change rien, mais dans le doute, j'ai fait le changement : et vous savez quoi, ca a rien changé!

Le preogramme plante toujours au niveau du glend()!
Le truc le plus marrant, c'est que lorsque l'on n'utilse pas la lumiere (on enleve glEnable(GL_LIGHTING); ) tout marche tres bien !

donc je renouvelle ma question , aider moi svp !

lundi 12 juillet 2004 à 18:18:24 | Re : SDL Opengl lumiere

xarier

re :
voila je viend de compilait ton code sous vc++6 et ca marche a merveille :)

je pense que c t'une erreur venante de ton compilateur tu utilise Koi au juste ?
Life is Short

lundi 12 juillet 2004 à 23:53:11 | Re : SDL Opengl lumiere

xian240482


vc++6 aussi, avec SDL 1.2.7
c'est peut etre les libraries de opengl, je vais creusé
merci

mardi 13 juillet 2004 à 00:06:46 | Re : SDL Opengl lumiere

xarier

ben chez moi j'ai la sdl 1.2.6 mais je pense pas que c du a ca.

dit estceque l'erreur que ta que c quand tu lance l'exe il te donne une erreur ? si c ca alors c un prob quiest cosé par la sdl avec vc++ et ca solution cde compiler le code et de cré lexe et de le lancer depuis le fichier exe pas depuis le vc++
bonne chance je pense que c ca
Life is Short

mardi 13 juillet 2004 à 00:30:55 | Re : SDL Opengl lumiere

xian240482

ET non !

Il n'y a pas de message d'erreur : le programme stope d'un coup!

j'ai retrouver la sdl 1.2.6, mais ca marche pas quand meme.

Le coup de lancer l'executable directement non plus!

Le truc le plus bissard c'est que opengl marche bien : j'ai fait un autre projet en n'utilisant que opengl (et pas sdl) et ca marche !
Mais j'aurais aime avoir les outil de SDL (le blit, etc...).

Donc pour en revenir a ma premiere phrase de ce topic :
"Alors là, je comprend pas!"

Si ta d'autre sugestion, je prends!


mardi 13 juillet 2004 à 10:36:27 | Re : SDL Opengl lumiere

xian240482

J'ai trouvé!

J'ai lancer l'exzecutable sur un autre ordinateur et .... ca marche!

Donc le probleme ne vient pas de ma programation mes de mon ordinateur. Alors que SDL marche sans opengl : j'ai fait plein de projet avec et il n'y a pas eu de probleme.

Pour la petite info voila ce que j'ai dans le fichier stderr lorsque je le lance sur mon ordinateur:
Fatal signal: Segmentation Fault (SDL Parachute Deployed)


Et merci quand meme.

PS : Je vais me pendre juste apres

mardi 13 juillet 2004 à 12:06:20 | Re : SDL Opengl lumiere

xarier

salut ben moi j'ai d'autre genre d'erreur meme avec la win32 quand je veut passer au mode plien ecran il me donne une erreur sous forme de messagebox en disent que le break point n'est plus sur le bon endroit (meme si je suis en mode realesed ) autre chose j'ai un prob je c pas ou ca vient mais voila:
quand je compile sous winxp avec vc++ des fois mon poste ce redemare et sous win98 (le poste ce blog) j'ai essayser de reainstaller vc++ mais c toujour le meme prob
pour plus d'info j'ai tester ca avec vc++7 et 6


Merci
Life is Short


1 2

Cette discussion est classé dans : glvertex3f, sdl, gl, lumiere, 0f


Répondre à ce message

Sujets en rapport avec ce message

Problemes OpenGl avec SDL [ par ToNtOnYoYo ] bonjour bonjour... voila mon prob.. j'essaye d'afficher une simple ligne nooire ds ma fenetre ( créé avec SDL) et ca ne marche pas .. je vous laiss les sous fenetres en glut n'en font qu'a leurs tetes [ par whikie ] Bonjour,je voudrais comprendre le placement des glutSubWindow.Voici les infos que j'ai :glutCreateSubWindow La fonction glutCreateSubWindow crée une probleme de texture pour creer une explosion [ par elfiosi ] Bonjour a tous,Jai un probleme de texture lorsque jessaie de creer une explosion pour un jeu video. jutilise une image qui represente une etincelle av Probleme d'alpha avec SDL_ttf [ par vladisback ] Je suis entrain de m'arracher les cheuveux avec SDL_ttf, j'essai simplement d'afficher du texte de n'importe quelle couleur opaque sur un fond transpa GL_POINTS--> au bord du suicide [ par satellite34 ] bon voila, je reposte car je pense avoir ciblé le probleme, et c'est du coté d'openGL qui a un truc qui m'echappe et non du wxGLCanvas;En fait j'arriv Probleme sur une forme simple [ par faucheuse ] Tout d'abord je ne travaille pas sous Linux mais sous WindowsXP mais je n'ai pas trouver de sous-forum correspondant dsl.Alors voila, j'essaye de fair Polygone au premier plan avec texte [ par nisaloncaje ] Bonjoru, je suis débutant en OpenGL et j'ai une scène en 3d en perspective. J'aimerais maintenant créer un polygone en 2d qui soit au premier plan (co transparence en OpenGl [ par F0ra ] Bonjour, J'ai un problème en OpenGl Je voudrais rendre uniquement la couleur rose< ecrire du texte 2d sur anim 3d [ par jojomillenium ] Bonjour, J'ai une fenetre OpenGL sur laquel se dessine des briques en 3D. La souris permet de tourner autour, zoomer, translater... bref les fonctions pb avec les rotations [ par ET29 ] Bonjour,je bute sur un petit pb de rotations :je voudrais faire pivoter une pyramide avec la souris autour des axes X et Y de l'ecran (soit horizontal


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.