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

Aktuelle Zeit: Fr Jul 18, 2025 00:48

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Apr 23, 2006 15:09 
Offline
DGL Member
Benutzeravatar

Registriert: Do Aug 25, 2005 16:00
Beiträge: 189
Programmiersprache: Java, C#
Hallo.
Ich hab nen Fehler den ich mir nicht erklären kann. Ich benutze 2 RenderingContexte, als DeviceContext jeweils ein eigenes Panel. Bei einem läuft alles wunderbar, keine Probleme. Beim zweiten gibts aber Probleme. Das Panel ist schwarz! Das kann ich mir überhaupt nicht erklären, da ich als Hintergrundfarbe gelb angegeben hab. Auch kann ich nichts rendern, also kein qeißes Quad oder so was in der Art.

Zuerst dachte ich ich hätte einen Fehler in der initialisierung, aber nachdem ich die komplett neu geschrieben hab ist das Panel immer noch komplett schwarz. Ich finde einfach keinen Fehler - wäre nett wenn jemand von euch drüber schauen könnte:



Code:
  1.  
  2. procedure TForm1.ChipOpenGL;
  3. begin
  4.  //Die eigentliche Initialisierung:
  5.  Chips.DC := GetDC(Form1.Panel1.Handle);
  6.  Chips.RC := CreateRenderingContext(Chips.DC,
  7.                                     [opDoubleBuffered],
  8.                                     32,
  9.                                     24,
  10.                                     0, 0, 0,
  11.                                     0);
  12.  ActivateRenderingcontext(Chips.DC, Chips.RC);
  13.  
  14.  //Die ganzen Einstellungen:
  15.  {glEnable(GL_ALPHA_TEST);
  16.  glAlphaFunc(GL_GREATER, 0.1);}
  17.  glClearColor(1.0, 1.0, 0.0, 0.0);                    //Hintergrundfarbe
  18.  glEnable(GL_DEPTH_TEST);                             //Tiefentest aktivieren
  19.  glDepthFunc(GL_LESS);
  20.  glDisable(GL_CULL_FACE);                             //Backface Culling aktivieren
  21.  glCullFace(GL_BACK);
  22.  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
  23.  Form1.EditorResize;
  24. end;
  25.  
  26. procedure TForm1.ChipResize;
  27. begin
  28.  glViewport(0, 0, Form1.Panel1.Width, Form1.Panel1.Height);
  29.  glMatrixMode(GL_PROJECTION);
  30.  glLoadIdentity;
  31.  glOrtho(0, Form1.Panel1.Width, 0, Form1.Panel1.Height, -128, 128);
  32.  
  33.  glMatrixMode(GL_MODELVIEW);
  34.  glLoadIdentity;
  35. end;
  36.  
  37. procedure TForm1.ChipClose;
  38. begin
  39.  DeactivateRenderingContext;
  40.  DestroyRenderingContext(Chips.RC);
  41.  ReleaseDC(Form1.Panel1.Handle, Chips.DC);
  42. end;
  43.  
  44. procedure TForm1.RenderChip;
  45.  
  46. begin
  47.  glMatrixMode(GL_MODELVIEW);
  48.  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  49.  glLoadIdentity;
  50.  
  51.  
  52.  
  53.  SwapBuffers(Chips.DC);
  54. end;
  55.  


Die Variablen für RenderingContext und DeviceContext gehören zu einem Record.
Ich weiß die Namen sind etwas unglücklich gewählt. Wär nett wenn ihr trotzdem drüber schauen könntet...


cya
Deathball


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 23, 2006 15:49 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo Deathball,

und was passiert, wenn du den Befehl glClearColor direkt vor dem Befehl glClear in deiner Methode TForm1.RenderChip schreibst ?

Viele Grüße
dj3hut1


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 23, 2006 15:56 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Aus meiner Perspektive rufst du ActivateRenderingcontext(Chips.DC, Chips.RC); zu wenig auf.
Wie stellst du sicher, dass bei RenderChip der passende Context aktiv ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 23, 2006 16:08 
Offline
DGL Member
Benutzeravatar

Registriert: Do Aug 25, 2005 16:00
Beiträge: 189
Programmiersprache: Java, C#
Ok, Fehler gefunden. Hab das ActivateRenderingContext vergessen.
Danke für die Hilfe!

cya
Deathball


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


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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]