zeichenprobleme mit ogl
-
folgende methode einer klasse Sprite zeichnet das gewollte rechteck nicht:
void Sprite::draw() { glLoadIdentity(); glBegin(GL_QUADS); glTexCoord2i(0,0); glVertex3i(m_x,m_y,m_z); glTexCoord2i(1,0); glVertex3i(m_x+m_bitmap->w,m_y,m_z); glTexCoord2i(1,1); glVertex3i(m_x+m_bitmap->w,m_y+m_bitmap->h,m_z); glTexCoord2i(0,1); glVertex3i(m_x,m_y+m_bitmap->h,m_z); glEnd(); }main.cpp [cpp] int main(int argc,char *argv[]) { GLApp app(1024,768); Sprite somesprite("logo.bmp",0,0); SDL_Event event; bool running=true; Uint8 *keys; while(running) { app.clear(); keys=SDL_GetKeyState(0); somesprite.draw(); while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: running=false; break; } } app.Update(); } glDeleteTextures(1, &texPicture); return 0; }glapp erzeugen funktioniert(fenster wird aufgemacht, opengl wird initialisiert),
wenn ich sachen mit "offenen" funktionen zeichne funktioniert das. beispiel:void draw() { glLoadIdentity(); glTranslatef(xpos,0.0f,zoom); glRotatef(rot,0.0f,1.0f,0.0f); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D,texPicture); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); glColor4f(1.0f,1.0f,1.0f,0.7f); glBegin(GL_QUADS); glTexCoord2f(0,0); glVertex3f(-1.0f,1.0f,0.0f); glTexCoord2f(1,0); glVertex3f(1.0f,1.0f,0.0f); glTexCoord2f(1,1); glVertex3f(1.0f,-1.0f,0.0f); glTexCoord2f(0,1); glVertex3f(-1.0f,-1.0f,0.0f); glEnd(); glTranslatef(1.0f,1.0f,2.0f); glBegin(GL_QUADS); glTexCoord2f(0,0); glVertex3i(-1,1,0); glTexCoord2f(1,0); glVertex3i(1,1,0); glTexCoord2f(1,1); glVertex3i(1,-1,0); glTexCoord2f(0,1); glVertex3i(-1,-1,0); glEnd(); };hat einer ne ahnung wieso somesprite.draw() nicht klappt?
-
Vielleicht, weil in Deiner Draw-Funktion das glBegin fehlt?
-
nein das ist drin hab ich wohl beim copy und pasetn irgendwie weggelassen °_°
-
Möglichkeiten, warum in OpenGL das Zeichnen bei mir schon nicht klappte:
-Punkte in außerhalb des sichtbaren Bereichs (indem ich mir falsch merkte, welchen Koordinatensystembereich mein Fenster hatte)
-Alpha so gesetzt, dass der Bereich transparent war
-erst gar keine Farbe gesetzt
Hier kann ich nur fragen: funktionierte das Zeichnen in einer früheren Version? wenn ja, versuche herauszufinden, was sich seitdem verändert hat und das Zeichnen verhindert (ist nur so ein allgemeiner Tipp aus meiner Programmiererfahrung).
-
ok problem hat sich gelöst, war dein zweites (koordinaten falsch gesetzt /gemerkt)
danke dafür