ich habe mir vor kurzem eure Templates für VCL runtergeladen. Nur da wird immer die OpenGL12.dcu und die Geometry.dcu gebraucht. Wo bekomm ich die am besten her?
<a href='http://www.phobeus.de/hosting/dgl/forum/in...ct=ST&f=9&t=319' target='_blank'>http://www.phobeus.de/hosting/dgl/forum/in...ct=ST&f=9&t=319</a> dürfte einige der auftretenden fragen klären
Danke, der Compilier erkennt das ganze schon, nur beim Starten des Programmes kommt die Meldung:
"Es konnte kein Passendes PixelFormat gefunden werden." mit klick auf OK
"PixelFormat konnte nicht gesetzt werden." mit klick auf OK
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wennn kein passendes Pixelformat erstellt werden kann, dann liegt das daran dass der von dir angeforderte Bildschirmmodus (bzw. das Pixelformat) von deiner Grafikkarte nicht unterstützt wird.Probiers mal mit ner niedrigeren Auflösung bzw. Farbtiefe oder Wiederholfrequenz und teste nochmal.
P.S. : Welche Grafikkarte steckt denn im Rechner?Achte auch drauf das die neusten Treiber installiert sind!
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Das Erstellen bzw. Setzen des passenden Pixelformates wird in Mike Lischkes OpenGl12.pas über die Funktion CreateRenderingContext() erledigt.Dieser Funktion übergibts du die Parameter des Pixelformates. Versuchs mal mit nem konservativem Pixelformat und ner recht kleinen Fenstergröße :
Eventuell hat deine SIS-Graka auch Probleme wenn die Farbtiefe deines Pixelformates von der deines Desktops abweicht, versuch also hier bei der Tiefe des Farbpuffers die selbe Einstellung wie auf deinem Desktop zu übergeben.
Achte auch darauf, das (wie oben im Code gezeigt) dein Devicecontext vom Handle deines Fensters und nicht vom Handle des Canvas deines Fensters erstellt wird.Der Fehler wird leider oft gemacht!
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Zitat:
Hmm, in der OpenGl12.pas ist zwar der Parameter drin, aber dort stehen aber keine Zahlen sondern nur Variablen, welche auch nicht in den vorherigen Zeilen definiert sind.
Wie ich schon gesagt habe, übergibst du diese Parameter doch der Funktion, die dann das passende Pixelformat erstellt, und dann den Renderkontext erstellt.
Zitat:
Gibt es zu OpenGL Alternativen, vielleicht nur 2D? Weil des is mir irgendwie viel zu komplex.
Ja, es gibt Alternativen : GDI Die Zeichenfunktionen von Windows.Recht einfach zu nutzen, aber sehr sehr langsam. DirectDraw Der 2D-Teil der DirectX-Komponentensuite.Ist allerdings auch nicht viel leichter zu nutzen als OpenGL (eher im Gegenteil), und unter DirectX 8 eh nicht mehr hardwarebeschleunigt (was sich aber in DX9 AFAIK ändern soll). SDL Simple Direct Medialayer (<a href='http://www.libsdl.org' target='_blank'>http://www.libsdl.org</a>), das u.a. einfachen Zugriff auf 2D-Funktionen und Eingabegeräte bietet.Damit hab ich allerdings noch nie gearbeitet, weshalb ich dazu nix genaueres sagen kann.
Zur 2D-Darstellung in entsprechender Geschwindigkeit und unter Nutzung der 3D-Beschleunigerfähigkeiten moderner Grafikkarten ist OpenGL also immernoch am besten geeignet (das neue MAC-OS nutzt OpenGL u.a. zur Darstellung seiner Oberfläche), und auch weitaus unkomplizierter zu nutzen als DirectDraw.Arbeite dich also mal mittels der Tuts in OpenGL ein, und schau dir dann mal Forenthreads bzw. Tuts zum Ortho-Modus an.Dieser dient nämlich zum Zeichnen in 2D.
jetzt hast du erstmal nen Rendercontext erstellt. DC und RC solltest du natürlich global deklarieren.DC ist vom Typ HDC und RC vom Typ HGLRC.
Erstell nun nen Timer (50ms), und schreibe folgendes in den OnTimer-Event :
Code:
glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
SwapBuffers(DC);
Jetzt sollte nach dem Start deines Programmes deine Form komplett schwarz werden...wenn dies der Fall ist, dann hast du dein OpenGL12-VCL-Template und kannst damit dann frei rumexperimentieren.
Wenn du auch hier Probleme mit dem Erstellen des Kontextes oder dem Setzen des Pixelformates bekommst, dann ersetz mal die 32 in CreateRenderingContext durch 24 bzw. 16, denn vielleicht hat dein SIS-650 Grafikchip Probleme mit der Farbtiefe.
Mitglieder in diesem Forum: 0 Mitglieder und 15 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.