Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Mai 20, 2024 03:24

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
BeitragVerfasst: So Aug 19, 2007 20:35 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 23, 2005 20:31
Beiträge: 212
Wohnort: Sachsen/ Vogtland
Hallihallo,

Ich binde gerade die Änderung der Auflösung zur Laufzeit in mein SDL-Framework ein. Kein ganz so triviales Thema, da SDL mit der aktuellen Version ja scheinbar alle Texturen "vergißt", und man diese neu laden muß. Allerdings muß ich sagen dass es mit der Unit EasySDLTexures recht einfach scheint das Nachladen der Texturen zu regeln. Leider klappt es nicht ganz. Ich beschreibe mal eben, was ich beim Ändern der Auflösung so treibe:
Code:
  1.         //  Festlegen der neuen Auflösung
  2.         surface := SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP,videoflags );
  3.  
  4.         // Mein erster verdächtiger. Der war's aber nicht.
  5.         glFrontFace(GL_CCW);
  6.  
  7.         // mit glGetIntegerv die Diemsionen für den Orthomodus
  8.         gamemenu.menu.ResetViewPort;
  9.  
  10.         //  In EasySDLTexures werden die FNames durchgegangen
  11.         // (bei mir stehen auf den Namen die absolute Pfade), nachgeladen und die evtl. neuen ID's hinterlegt
  12.         ReinitTextures;


Klingt für mich nach der Lösung des Problems. Leider werden hinterher nur noch die Hintergrundtextur und der Mauszeiger angezeigt. Das ganze Menu ist schlicht unsichtbar. (Funktionieren tut es noch. Man muß halt blind die Knöpfe treffen.) Mauszeiger und Hintergrund werden auf folgende Weise gezeichnet:
Code:
  1.       glBindTexture(GL_TEXTURE_2D, BackTexId);    
  2.         If (Self.FVisible) Then begin
  3.         glBegin(GL_QUADS);
  4.           // Hintergrund
  5.           glTexCoord2f(1, 1);   glVertex2f(FViewPortWidth   ,  0);
  6.           glTexCoord2f(0, 1);   glVertex2f(0                ,  0);
  7.           glTexCoord2f(0, 0);   glVertex2f(0                , FViewPortHeight);
  8.           glTexCoord2f(1, 0);   glVertex2f(FViewPortWidth   , FViewPortHeight);
  9.         glEnd;
  10.       end;

Also gehe ich davon aus, daß das Nachladen der Texturen klappen hat, sonst wäre hiervon auch nix zu sehen. Aber:

Die "fehlenden" Elemente werden ebenso gezeichnet, sind aber nicht in der Szene sichtbar:
Code:
  1.   glBegin(GL_QUADS);
  2.       glTexCoord2f(71/128, 48/128); glVertex2f(FX + FWidth -16 , FY + 16);
  3.       glTexCoord2f(56/128, 48/128); glVertex2f(FX + FWidth       , FY + 16);
  4.       glTexCoord2f(56/128, 63/128); glVertex2f(FX + FWidth       , FY );
  5.       glTexCoord2f(71/128, 63/128); glVertex2f(FX + FWidth -16 , FY );
  6.   glend;
  7.  


Interessanterweise werde nicht einmal GL_LINES gezeichnet.
Code:
  1.   if EditMode then
  2.   begin
  3.     glDisable(GL_TEXTURE_2D);
  4.     glBegin(GL_LINES);
  5.       glVertex2f(FViewPortWidth div 2,0);
  6.       glVertex2f(FViewPortWidth div 2,FViewPortHeight);
  7.  
  8.       glVertex2f(0,FViewPortHeight div 2);
  9.       glVertex2f(FViewPortWidth,FViewPortHeight div 2);
  10.  
  11.     glEnd;
  12.     glEnable(GL_TEXTURE_2D);
  13.   End;
  14.  


Gibt's da noch einen Stolperstrick bei SDL den ich nicht umgangen habe? Jeder direkte Hinweis oder Wink in die richtige Richtung wäre toll.

Danke und Grüße,
DNA

_________________
Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]