JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

[sdl&ogl] SDL ttf zusammen mit Opengl?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
manu
Super JLI'ler


Alter: 34
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 10.03.2007, 12:22    Titel: [sdl&ogl] SDL ttf zusammen mit Opengl? Antworten mit Zitat

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 Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
manu
Super JLI'ler


Alter: 34
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 13.03.2007, 21:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
magynhard
Super JLI'ler



Anmeldedatum: 26.04.2003
Beiträge: 461
Wohnort: Wild durch die Welt ;-)
Medaillen: Keine

BeitragVerfasst am: 13.03.2007, 22:31    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
LordHoto
JLI'ler


Alter: 34
Anmeldedatum: 27.03.2003
Beiträge: 137
Wohnort: Gelnhausen
Medaillen: Keine

BeitragVerfasst am: 13.03.2007, 23:51    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
manu
Super JLI'ler


Alter: 34
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 14.03.2007, 17:51    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum