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

Aktuelle Zeit: Mi Jul 09, 2025 22:26

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: vollbild funzt net
BeitragVerfasst: Sa Jul 29, 2006 13:23 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
hallo, ich möchte gerne mein bild vervollbilden ^^ aber sobald ich

MainForm.BorderStyle := bsNone; oder

MainForm.FormStyle := fsstayontop;

benutzte, bleibt das bild leer, es wird dann nichts mehr gezeichnet. habs mit meiner eigenen prozedur und
der aus den templates versucht, es funzt einfach net :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jul 29, 2006 17:02 
Offline
DGL Member

Registriert: Di Jun 06, 2006 09:59
Beiträge: 474
Du musst vorher Opengl schließen, dann auf Vollbild wechseln, dann OpenGl wieder neu initialisieren. Das liegt daran, dass Delphi intern das Fensterhandle zerstört und neu erstellt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jul 29, 2006 17:34 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
jetzt habe ich komischerweise keine texturen, obwohl gl_texture_2d aktiviert wird Oo

so sieht das ganze aus:
Code:
  1.  
  2. procedure TEngine.DoFullscreen;
  3. begin
  4.   with Form do
  5.   begin
  6.     //Ecke oben links
  7.     top := 0;
  8.     left := 0;
  9.     //Volle Größe
  10.     clientwidth := screen.width;
  11.     clientheight := screen.height;
  12.     //Status maximiert
  13.     Windowstate := wsMaximized;
  14.  
  15.     //OpenGL freigeben
  16.     if Initialised then
  17.     begin
  18.       DeactivateRenderingContext;
  19.       wglDeleteContext(RC);
  20.       ReleaseDC(Form.Handle, DC);
  21.       ChangeDisplaySettings(DevMode(nil^), 0);
  22.     end;
  23.  
  24.     //Kein Rahmen
  25.     borderstyle := bsnone;
  26.     //Immer im Vordergrund
  27.     formstyle := fsstayontop;
  28.  
  29.     // Nicht initialisiert
  30.     Initialised := false;
  31.  
  32.     // OpenGL Initialisieren
  33.     InitOpenGL;
  34.  
  35.     // Handle holen
  36.     DC := GetDC(Form.Handle);
  37.  
  38.     // RenderContext erstellen und aktivieren
  39.     RC := CreateRenderingContext(DC, [opDoubleBuffered], 32, 24, 0, 0, 0, 0);
  40.     ActivateRenderingContext(DC, RC);
  41.  
  42.     // Aktivieren von Texturen, Tiefen-Tests, etc.
  43.     glEnable(GL_TEXTURE_2D);
  44.     glEnable(GL_DEPTH_TEST);
  45.     glDepthFunc(GL_LESS);
  46.     glEnable(GL_CULL_FACE);
  47.     glCullFace(GL_BACK);
  48.  
  49.     // Löschfarbe auf Schwarz setzen
  50.     glClearColor(0, 0, 0, 0);
  51.  
  52.     // Initialisierung abgeschlossen
  53.     Initialised := True;
  54.   end;
  55. end;
  56.  


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jul 29, 2006 18:15 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Du musst natürlich auch Texturen neuladen, Displaylisten neuerstellen und etc...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jul 29, 2006 18:32 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Zitat:
Du musst vorher Opengl schließen, dann auf Vollbild wechseln, dann OpenGl wieder neu initialisieren. Das liegt daran, dass Delphi intern das Fensterhandle zerstört und neu erstellt.

Man kann auch über SetWindowLong(...) den Rahmen umstellen ohne das Fensterhandle neu zu erstellen. fsstayontop kann man mittels ShowWindow(...) erreichen. Die genauen Parameter stehen in der Hilfe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 30, 2006 09:02 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
danke, das funzt perfekt, danke ;)


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


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] 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 | 15 Queries | GZIP : On ]