PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SDL in OpenGL



localhost
09-07-2005, 12:14
/* Wenn ich das so compelire dan geht es aber das mit den w taste nicht
* g++ opengl.cpp -o opengl -lglut `sdl-config --libs`
*
* Wenn ich das so compelire kommt eine fehlermeldung
* g++ opengl.cpp -o opengl -lglut

/tmp/ccMikWwd.o(.text+0x1df): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `SDL_GetKeyState'
collect2: ld returned 1 exit status

*/


#include<GL/glut.h>
#include<SDL/SDL.h>
using namespace std;

Uint8 *keyState = SDL_GetKeyState(NULL);

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);

if(keyState[SDLK_w]) glColor3f(1.0,0.50,0.25);
else glColor3f(0.50,0.75,0.50);


// X Y Z
glBegin(GL_QUADS);
glVertex3f(-0.30, 0.30, 0.00); // oben links
glVertex3f( 0.30, 0.30, 0.00); // oben rechts
glVertex3f( 0.30,-0.30, 0.00); // unten rechts
glVertex3f(-0.40,-0.40, 0.00); // unten links
glEnd();

glFlush();
}

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(640,480);
glutCreateWindow("Linux-strike");

//glEnable(GL_LIGHTING);
glRotated(-65.0,1.0,0.0,0.0); // Szene um X drehen
glRotated(-75.0,0.0,1.0,0.0); // Szene um Z drehen

glClearColor(1.0F, 1.0F, 1.0F, 1.0F);

glutDisplayFunc(display);
glutMainLoop();

return 0;
}

the_easterbunny
10-07-2005, 18:33
Hallo,
ich hab den Code jetzt nicht getestet, aber eigentlich müsstest du ja nach jedem Frame wieder die Tastenzustände abfragen. Also würde z.B. vor

if(keyState[SDLK_w]) glColor3f(1.0,0.50,0.25);
else glColor3f(0.50,0.75,0.50);
noch ein

keyState = SDL_GetKeyState(NULL);
gehören.
MfG
the_easterbunny

Edit: Außerdem, was mir jetzt gerade aufgefallen ist, warum verwendest du GLUT und SDL? Geht das überhaupt?