Autor Beitrag
Jacdelad
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win XP Pro
Borland Developer Studio 2006 Architect
BeitragVerfasst: Mi 27.12.06 20:25 
Hallo Leute,

ich hab vor nicht allzu langer Zeit mit Delphi angefangen, obwohl ich eigentlich in XProfan programmiere. Lange Rede kurzer Sinn: Ich habe in Delphi einen Parser in Form einer DLL für XProfan geschrieben. Der kann aber noch mehr als nur Formeln berechnen; eine der Hauptkomponenten ist ein Teil, der Formeln mit 2 Variablen darstellen kann=3D-Graphen. Dazu habe ich bis jetzt den ganzen Canvas-Quatsch genommen, der aber recht langsam ist (die Vorteile von OpenGL liegen auf der Hand: statt jedes Polygon immer neu zu zeichnen einfach die Szene drehen). Nun aber zu meiner eigentlichen Frage:

Ich hab mir DelphiGL besorgt (delphigl.com). Leider konnte ich im dortigen Forum noch keine Anfragen stellen...
Ich übergebe an eine Funktion der DLL (stdcall; XProfan kann nur mit stdcall umgehen) das Handle eines Fensters. Nun will ich die OpenGL-Schnittstelle aktivieren, lasse also den DC mittels GetDC ermitteln und will dann "RC:=CreateRenderingContext(dc,[opDoubleBuffered],32,24,0,0,0,0);" ausführen. Soweit so gut, kommt auch kein Fehler. RC erhält immer den Wert 65536, stimmt das? Naja, und als ich dann die Befehle aus den ersten beiden Tutorials übernommen hab kommen zwar immer noch keine Fehlermeldungen, aber ausgegeben wird auch nix. Kann mir jemand irgendwie weiterhelfen?

Jac

_________________
Es gibt 10 Arten von Menschen: Die einen, die Binärcode verstehen und die, die es nicht tun.
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Do 28.12.06 09:28 
Wäre es nicht besser die Frage auf delphigl.com zu stellen? Einige (unter anderem ich) sind zwar auch hier unterwegs aber die geballte ladung Wissen wirst du nur auf delphigl.com finden. Wie auch immer.

Als Erstes gleich mal eines vorweg um missverständnisse vorzubeugen. Du kannst eine gerenderte Szene nachträglich nicht mehr drehen. Du stellst vorher eine Ansicht ein und zeichnest dann alle Flächen und die Grafikkarte zeichnet diese in dessen speicher. Um eine neue Ansicht benutzen zu können musst du die Szene wieder komplett neu aufbauen. Ähnlich wie bei einer Canvas allerdings mit Hardwareunterstützung. Wodurch das ganze wieder schneller wird.

Und Polygone in OpenGL solltest du nach Möglichkeit nicht verwenden. Die sind nicht so gut. Da gibt es bessere Möglichkeiten. Aber wenn es nur eine Hand voll sind ist das auch egal.

Und sonst kann ich zu dem Problem nur sagen, dass DLLs eher unüblich sind und es deswegen zu komischen Seiteneffekten kommen kann. Speziell wenn man noch nicht genau weißt was man da eigentlich tut. Theoretisch sollte es dabei keine Probleme geben aber theoretisch ist alles einfach. Ich hoffe du verstehst worauf ich hinaus will. ;-)

Sonst würde ich dir mal wärmstens ans Herz legen, dass du dich mal durch die Tutorials auf DelphiGL.com durcharbeitest. Ich denke da vor allem an den Quickstart und die erste bzw zweite Lektion.

PS: Hast du auch SwapBuffers aufgerufen?

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
Jacdelad Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win XP Pro
Borland Developer Studio 2006 Architect
BeitragVerfasst: Do 28.12.06 13:55 
Im DelpgihGL-Forum konnte ich noch keine Anfrage stellen, weil ich dort noch nicht freigeschaltet war und die Seite jetzt grad offline ist (jedenfalls kann ich nicht drauf zugreifen).

Die Tutorials hab ich mir runtergeladen, aber bei mir scheitert der Nchbau. Das mit den DLLs ist sicher korrekt, aber ich sehe keine andere Möglichkeit um mit Xprofan zu kommunizieren. Ich dachte nur, dass vielleicht jemand gleich einen offensichtlichen Fehler entdeckt.

_________________
Es gibt 10 Arten von Menschen: Die einen, die Binärcode verstehen und die, die es nicht tun.
Jacdelad Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win XP Pro
Borland Developer Studio 2006 Architect
BeitragVerfasst: Sa 30.12.06 19:23 
Ich hab das Problem jetzt gelöst und kann auch wieder auf das DelphiGL-Forum zugreifen. Danke trotzdem!

Jac

_________________
Es gibt 10 Arten von Menschen: Die einen, die Binärcode verstehen und die, die es nicht tun.