Einmal SetGraphicsDriver für alle Plattformen(?) -- Mauslag
Übersicht

Gray FoxBetreff: Einmal SetGraphicsDriver für alle Plattformen(?) -- Mauslag |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
als alter PHPler und VB.NETer habe ich bisher keine große Berührung mit dem Thema Grafikprogrammierung gehabt, weshalb ich gezwungen bin, eure wertvolle Zeit in Anspruch zu nehmen ![]() Ich habe zwei Bausstellen. Ich möchte micht erstmal auf das klassische 2D konzentrieren. Wenn ich hierbei für die drei Plattformen entwickeln möchte, reicht es dann, wenn ich mit SetGraphicsDriver GLMax2DDriver() arbeite? Wenn ich statt GLMax2DDriver() GLGraphicsDriver() verwende, stürzt mein Programm mit der Fehlermeldung: Unhandled Exception:Attempt to access field or method of Null object ab. Ich ging davon aus, dass beide Modi auf OpenGL basieren, wo liegt nun der Unterschied? Ich möchte zusätzlich einen selbsterstellten Mauscursor verwenden, aber leider reagiert dieser Cursor recht schwammig (=Mauslag). Vor allem, wenn man den Originalcursor nicht ausblendet, sieht man dieses Problem recht gut. Ist das ein Bug oder ein Fehler in meiner Programmierlogik? Mein Grundgerüst sieht folgendermaßen aus: BlitzMax: [AUSKLAPPEN] SuperStrict Sieht etwas unaufgeräumt aus. Ist alles noch sehr betamässig ![]() BlitzMax: [AUSKLAPPEN] Method mouseMove(X:Int=-1, Y:Int=-1) |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
GLMax2DDriver nutzt den GLGraphicsDriver, um die Max2D-Funktionen mit Hilfe von OpenGL zu implementieren.
->GLGraphicsDriver bietet keine direkte Max2D-Unterstützung. Daher funktionieren dann entsprechende Befehle nicht. Zum zweiten Problem: Wo hast du dort Mausabfragen? ("MouseX"/"MouseY") Ansonsten gibt es immer eine kleine Verzögerung, welche aber nicht großartig auffallen sollte. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Gray Fox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mpmxyz hat Folgendes geschrieben: GLMax2DDriver nutzt den GLGraphicsDriver, um die Max2D-Funktionen mit Hilfe von OpenGL zu implementieren.
->GLGraphicsDriver bietet keine direkte Max2D-Unterstützung. Daher funktionieren dann entsprechende Befehle nicht. Also gehe ich richtig in der Annahme, dass die Max2D-Befehle (wie DrawText) nur dazu gedacht sind, die komplexeren OpenGL-Befehle zu vereinfachen, quasi als Wrapperfunktion dienen? Zitat: Zum zweiten Problem: Wo hast du dort Mausabfragen? ("MouseX"/"MouseY") Ansonsten gibt es immer eine kleine Verzögerung, welche aber nicht großartig auffallen sollte. mfG mpmxyz MouseX / MouseY werden über eine Methode des System-Types abgefragt (Einfaches return MouseX() / MouseY()) Nach einiger Recherche kam raus, dass diese Verzögerung teilweise auf einen Bug in Blitzmax zurückzuführen ist bzw. zum großen Teil die Schuld des Grafikartentreiber ist. Mit der Beschränkung der Framerate und Flip 0 konnte ich dieses Problem (etwas) eindämmen. Zur Not wird es eine Option geben, um den Standardpointer verwenden zu können. |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Max2D kann sowohl Direct3D als auch OpenGL nutzen. (D3D9Max2DDriver)
Es existiert dazu, dass man einerseits die wichtigsten Zeichenfunktionen einfach nutzen kann, andererseits aber sich nicht dabei um die zugrundeliegende Grafikbibliothek kümmern zu müssen. (Du hast es also relativ gut getroffen. ![]() mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Gray Fox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, dass es auch eine Unterstützung für DX gibt, habe ich gesehen, auch explizit für D3D7, was wohl mit Gründen der Abwärtskompatibilität begründet ist.
Ich muss echt sagen, dass ich BlitzBasic, insbesondere BlitzMax, lange Zeit unterschätzt habe. Nur schade, dass es bei Types keine Möglichkeit gibt Felder bzw. Methoden als Private oder Protected zu deklarieren. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group