|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
manu Super JLI'ler
Alter: 35 Anmeldedatum: 09.03.2006 Beiträge: 327 Wohnort: allgäu (DE) Medaillen: Keine
|
Verfasst am: 10.03.2007, 11:22 Titel: [sdl&ogl] SDL ttf zusammen mit Opengl? |
|
|
Hi,
ich will gerne sdl ttf zur Textausgabe verwenden. Vorallem deswegen, da ich noch nicht in der Lage bin mir was eigenes in OpenGl zu schreiben^^
Bloß leider kommt das was ich ausgebe nicht im SDL Fenster an, wenn ich open gl verwende. Aber hinter meinem Vorgehen steckt vermutlich nur ein falscher Denkansatz.
Den Text schreibe ich klassenintern auf mein sdl screen Surface nachdem ich per Opengl den Bildschirm mit nem schönen Gelb gefüllt habe.
CPP: | CGraphicSys::Instance().GLClear(1.0f, 1.0f, 0.0f);
/* Clear Screen */
CGraphicSys::Instance().WriteTextBlended("Hallo Welt",
255, 255, 0, 100, 100);
|
dannach folgt noch folgender Aufruf in der Spielschleife
CPP: | CGraphicSys::Instance().UpdateAndFlip();
|
hinter dem sich folgendes verbirgt
CPP: | bool CGraphicSys::UpdateAndFlip()
{
glLoadIdentity();
SDL_GL_SwapBuffers();
SDL_UpdateRect(m_FrontBuffer, 0, 0, m_WindowWidth, m_WindowHeight);
SDL_Flip(m_FrontBuffer);
return true;
}
|
Von dem text bekomme ich leider nichts zu sehen. verwende ich kein Opengl funktioniert es.
Irgendwo mache ich was falsch was Opengl in kombination mit der sdl betrifft. ich könnte mir auch vorstellen, dass es an dem teil des Initialisierens liegt.
CPP: | m_FrontBuffer = SDL_SetVideoMode(m_WindowWidth, m_WindowHeight, 32,
SDL_HWSURFACE | SDL_DOUBLEBUF | fullscreen | SDL_OPENGL);
|
aber ich hab eben leider noch nicht ganz so viel Ahnung von OpenGl.
wäre schon, wenn mir jemand auf die Sprünge helfen könnte |
|
Nach oben |
|
|
manu Super JLI'ler
Alter: 35 Anmeldedatum: 09.03.2006 Beiträge: 327 Wohnort: allgäu (DE) Medaillen: Keine
|
Verfasst am: 13.03.2007, 20:53 Titel: |
|
|
niemand ne idee?
mir ist eben eine gekommen.
Ich werde einfach mal verscuhen den text auf ein SDL_Surface zu schreiben aus dem ich dann eine Opengltextur mache und diese auf ein Quad lege... |
|
Nach oben |
|
|
magynhard Super JLI'ler
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 13.03.2007, 21:31 Titel: |
|
|
Spontan kam mir hierbei:
CPP: | bool CGraphicSys::UpdateAndFlip()
{
glLoadIdentity();
SDL_GL_SwapBuffers();
SDL_UpdateRect(m_FrontBuffer, 0, 0, m_WindowWidth, m_WindowHeight);
SDL_Flip(m_FrontBuffer);
return true;
}
|
SwapBuffers am Ende aufrufen bzw. zumindest nach UpdateRect? (kannst ja beides ausprobieren).
Bin leider nicht tief genug in der Materie um Dir sonst großartig weiterzuhelfen. _________________ Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
|
|
Nach oben |
|
|
LordHoto JLI'ler
Alter: 35 Anmeldedatum: 27.03.2003 Beiträge: 137 Wohnort: Gelnhausen Medaillen: Keine
|
Verfasst am: 13.03.2007, 22:51 Titel: |
|
|
Wenn du OpenGL initialisiert hast kannst du nicht mehr auf die Screensurface blitten (http://www.libsdl.org/cgi/docwiki.cgi/SDL_5fSetVideoMode siehe auch den veralteten parameter: SDL_OPENGLBLIT).
Ausserdem wurde SDL_UpdateRect oder SDL_Flip reichen, aber beides zusammen brauchst du nicht, kannst ja in der Doku naeheres nachlesen. |
|
Nach oben |
|
|
manu Super JLI'ler
Alter: 35 Anmeldedatum: 09.03.2006 Beiträge: 327 Wohnort: allgäu (DE) Medaillen: Keine
|
Verfasst am: 14.03.2007, 16:51 Titel: |
|
|
ok, dann blitte ich auf ein anderes surface und mache es zu einer opengl textur, habs gestern mal gestestet und es scheint annehmbar zu funktionieren. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|