GLut und GLaux
-
Hi,
habe schon ein bissl angefangen mit GLut unter VC++ zu programmieren. Geht ganz gut.
Bei http://www.opengl.org/ sehe ich aber immer wieder Beispielprogramme, die GLaux benutzen.- Wo bekomme ich die glaux.lib/.h/.dll her? Ich finde immer nur die glut-Dateien.
- Was ist eigentlich der Unterschied zw. glut und glaux? Ist das eine Ergänzung? Habe bis jetzt nur rausgefunden, dass man mit glaux zusätzlich noch Texturen machen kann.
PS: Kann mir jmd. sagen, was an der folg. Zeile falsch ist (Code ist von nicht von mir; ich kenne mich mit C-Speicherzuweisung nicht aus, habe das nur in C++ mit new gemacht.)
stack_node *newNode1 = malloc(sizeof(stack_node));
Das struct ist so implementiert:
typedef struct stack_node { int size; struct stack_node *next; } stack_node;
-
Glaux ist alt, und ziemlich buggy. Wird meines Wissens auch nicht mehr weiterentwickelt. Ist aber bei VC6 zumindest als Lib & Header dabei.
Glut hat aber auch seit einem Jahr oder so kein Update mehr gesehen
Glut kann einiges mehr. Z.B. Input devices abfragen.
-
Was für eine Fehlermeldung bekommst du bei dem malloc?
Wenn ich mich recht entsinne, Meckerte der VC bei mir auch immer, bis ich zu dem erstellten Type gecastet habe.
-
Aso, der Fehler:
...: error C2440: 'initializing' : cannot convert from 'void *' to 'struct stack_node *'
hm..die doku von glut is noch von 2000...aber glut is trotzdem die meistbenutzte OpenGL-API, oder?
Andere APIs/Libs sind doch für nicht hochprofessionelle Nutzung zu schwierig.Wie kann ich da in GLut Texturen auflegen? Geht das? Habe es bisher nur in GLaux gesehen.
-
Dann caste nach stack_node
stack_node *newNode1 = (stack_node*)malloc(sizeof(stack_node))
Somit ist das Problem behoben.
Zu den Libs:
Die libSDL ist genauso Easy2Use, wenn nicht einfacher. Auf jeden Fall einen Blick wert.Zur Init von Texturen:
Hier ein stück aus dem Testframework von mir, damit kannst du sicher rauslesen, was du brauchst:
bool CTexture::LoadTexture( char *fileName, GLuint MipMaps ) { SDL_Surface *src = SDL_LoadBMP( fileName ); if( !src ) return false; // Erstelle TexturID glGenTextures( MipMaps, &ID ); glBindTexture( GL_TEXTURE_2D, ID ); if( MipMaps ) { glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST ); gluBuild2DMipmaps( GL_TEXTURE_2D, src->format->BytesPerPixel, src->w, src->h, GL_BGR_EXT, GL_UNSIGNED_BYTE, src->pixels ); } else { glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); glTexImage2D( GL_TEXTURE_2D, 0, src->format->BytesPerPixel, src->w, src->h, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, src->pixels ); } SDL_FreeSurface( src ); return true; }
Ist zwar der Loader SDL, aber der rest ist OpenGL.
[edit] Sorry - error im code
- ist wohl nicht upgedated gewesen
-
Vielen Dank.
Ich werde morgen alles mal testen.
-
und falls es dich interresiert
GLUt = OpenGL Utility Toolkit
GLAUX -> IpenGL Auxilary Libary