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

Aktuelle Zeit: Di Jul 08, 2025 19:09

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Feb 21, 2004 14:16 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Feb 21, 2004 14:05
Beiträge: 17
Hi,
ich wollte ein OpenGL-Programm mit der VCL schreiben, da ich Eingaben über Editfelder brauche. Jetzt kann ich aber kein passendes Pixelformat angeben. Ich habe folgendes Beispiel aus dem Tutorial einfach eingefügt:

Code:
  1.  
  2. with pfd do
  3.     begin
  4.       nSize           := SizeOf(TPIXELFORMATDESCRIPTOR);
  5.       nVersion        := 1;
  6.       dwFlags         := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;
  7.       iPixelType      := PFD_TYPE_RGBA;
  8.       cColorBits      := 32;
  9.       cRedBits        := 0;
  10.       cRedShift       := 0;
  11.       cGreenBits      := 0;
  12.       cGreenShift     := 0;
  13.       cBlueBits       := 0;
  14.       cBlueShift      := 0;
  15.       cAlphaBits      := 0;                  
  16.       cAlphaShift     := 0;                  
  17.       cAccumBits      := 0;                  
  18.       cAccumRedBits   := 0;
  19.       cAccumGreenBits := 0;
  20.       cAccumBlueBits  := 0;
  21.       cAccumAlphaBits := 0;
  22.       cDepthBits      := 16;                
  23.       cStencilBits    := 0;                  
  24.       cAuxBuffers     := 0;                
  25.       iLayerType      := PFD_MAIN_PLANE;  
  26.       bReserved       := 0;                  
  27.       dwLayerMask     := 0;      
  28.       dwVisibleMask   := 0;
  29.       dwDamageMask    := 0;    
  30.     end;
  31.   Pixelformat := ChoosePixelFormat(Handle, @pfd);
  32.  


Leider ist dabei Pixelformat immer 0. Muss ich da irgendwas ändern, um das ganze auf dem Formular benutzen zu können?

mfg
Alphamoose


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 21, 2004 14:33 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
ich kann zwar die frage nicht direkt beantworten, doch vielleicht ziehst du dir einfach mal das vcl template und nutzt das, ist wesentlich einfach. oder du schaust dir da einfach an, wie das gelöst wurde. an quelltexten lernt man einfach am besten.

_________________
Aktuelles Projekt :
www.PicPlace.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 21, 2004 15:45 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Wahrscheinlich solltest du Canvas.Handle verwenden

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 21, 2004 15:49 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Feb 21, 2004 14:05
Beiträge: 17
Hi,
ich hab mir jetzt mal das Template runtergeladen und hab mir da das Pixelformat angeschaut, es is aber genau dasselbe wie ich benutze.
Außerdem sind da lauter Fehler drin. zuerst steht ind er uses-Klausel eine Datei namen "OpenGL12" drin, die ich net hab, wenn ich se auf "OpenGL" ändere findet er hunderte von nicht deklarierten Variablen, Typen und Funktionen. (siehe Attachement)
Aus diesem Grund bin ich von D3D auf OpenGL umgestiegen, weil bei D3D wurden lauter DLLs benötigt und es waren seltsame Fehler in den Headern :/

Ich hoffe, es kann mir jemand helfen.

mfg
Alphamoose


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 21, 2004 15:52 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Feb 21, 2004 14:05
Beiträge: 17
Hey, mit Canvas.Handle funzt es tatsächlich!

thx für die Hilfe

mfg
Alphamoose


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 21, 2004 15:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
@Template :
Ich empfehle dir unser offizielles OpenGL1.5-Template (VCL). Das läuft prima (habs selbst zusammengeschraubt) und du bist damit auf dem neusten (Header)stand.

@Pixelformat :
Du übergibts ein Handle, aber ChoosePixelFormat benötigt einen Gerätekontext (Devicecontext). An den DC deines Fensters kommst du so :
Code:
  1. DC := GetDC(Handle);

Wobei Handle natürlich das Handle deines Fensters ist (oder eines Panels z.B.). Danach übergibst du diesen DC an deine Funktion :
Code:
  1. PixelFormat := ChoosePixelFormat(DC, @pfd);


Der Fehler wird häufig gemacht, aber das Handle eines Controls ist NICHT gleich dem Gerätekontext eines Controls. Am Ende deiner Anwendung solltest du diesen DC übrigens mittels ReleaseDC(Handle, DC) wieder freigeben.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 21, 2004 16:41 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Feb 21, 2004 14:05
Beiträge: 17
Hab mir jetzt auch noch das OpenGL1.5-Template gezogen, hab aber damit genau das selbe Problem wie oben beschrieben. Nur hier steht in der uses-Klausel eine Datei "dglOpenGL", die ich nicht hab. Muss ich die irgendwo downloaden? Wird die unbdeingt benötigt? Läuft mein Programm dann auch mit älteren openGL-Versionen?
Ich kapier das mit den Headern nocht nicht so ganz...

mfg
Alphamoose


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 21, 2004 16:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Mehr Infos zur dglOpenGL.pas (+Downloadlink) gibts in diesem Thread.
Die 1.5 bedeutet, das alle OpenGL-Features bis einschliesslich GL1.5 unterstützt werden, also alle Extensions von OpenGL1.0-1.5 nutzbar sind. Das ist u.a. das Tolle an OpenGL, die Rückwärtskompatibilität. Mit dem neusten Header kannst du also die komplette OpenGL-Funktionalität nutzen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 22, 2004 12:44 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
hmmm... ich glaub wir müssen die FAQ mal wieder ein biserl überarbeiten, damit jeder wieder schnell findet, was er sucht...


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 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.008s | 14 Queries | GZIP : On ]