DGL https://delphigl.com/forum/ |
|
@glPasGUI https://delphigl.com/forum/viewtopic.php?f=14&t=7636 |
Seite 1 von 7 |
Autor: | Lord Horazont [ Do Jul 03, 2008 15:33 ] |
Betreff des Beitrags: | @glPasGUI |
Hallo Traude, Ich habe mir gerade mal das Paket runtergeladen und angeschaut. An sich ist es schon ganz hübsch, nur dass der Bug mit den Diagonalen in den Flächen leider immernoch da ist. Dazu sind mir auch noch einige Bugs im vergrößern von Fenstern aufgefallen. Wenn man an den rechten oder unteren Rand anfasst, hat man immer das diagonal vergrößern, am oberen oder linken rand verschiebt man. Direkt im Zuge dazu fällt mir auf, dass da noch ein Clipping an den Fensterrändern fehlt. Ich hoffe, das war jetzt nicht zu harsch. Hattest du nicht eigentlich schon eine Lösung für die Diagonalen-Sache? Gruß Lord Horazont |
Autor: | Traude [ Do Jul 03, 2008 17:38 ] |
Betreff des Beitrags: | |
Nein, Du bist nicht zu harsch, Du hilfst mir damit. Es soll ja überall funktionieren. Das mit dem Fenster: es handelt sich nicht wirklich um ein ein Windows-Fenster. Ich fordere nur ein Fenster mit dem Stil WS_POPUP von Windows an, das ist in Wirklichkeit nur ein graues Viereck, das weder verschoben noch in der Größe verändert werden kann. Ich mache die ganze Fensterfunktionalität selbst. Da kann es schon sein, dass nicht alles genauso ist wie bei Windows. Ich ersuche um Nachsicht. OK, das Clipping notiere ich mir. Was den Fehler mit den Diagonalen betrifft: Ja ich hatte eine Lösung. Aber ich konnte sie nicht überprüfen, denn bei mir tritt der Fehler nicht auf. Daher hatte ich auf Dich gehofft. ![]() Was mich vielleicht etwas weiter bringt: 1) Ist es bei Dir bei allen Widgets zu sehen, oder nur bei bestimmten? 2) Hast Du es bei den Rechtecken belassen? Ich meine, hast Du vielleicht die Shapes umgestellt? Wenn nein, dann zeichnet er simple Quads, ganz normal mit dem Orthomodus. 3) Tritt es bei beiden Fenstern auf, oder nur bei einem? 4) Tritt es die ganze Zeit auf oder nur am Anfang/Ende? Zusätzlich hätte ich eine Bitte. Es gibt in der Unit "GUI.Pas" ziemlich weit unten die folgende Methode: Code:
Füge die beiden oben gekennzeichneten Zeilen hinzu und kompiliere es nochmal. Das bewirkt, dass das Fenster jetzt bei jedem Paint den Viewport löscht und alle seine Widgets auf "ungültig" setzt, damit sie alle neu gezeichnet werden. Dann sag mir bitte ob der Fehler noch auftritt. |
Autor: | Lord Horazont [ Do Jul 03, 2008 18:10 ] |
Betreff des Beitrags: | |
Einige Fragen kann ich jetzt beantworten, für die anderen musst du dich bis morgen gedulden, ich bin gerade ncht an meinem heimischen Rechner. 1) Ist definitiv bei allen, bei einigen ist es aber nicht sooo gut sichtbar, wegen der Farbe. 2) Ich habe nichts geändert, nur die GUIConfig.txt und dann kompiliert. 3) Es betrifft beide Fenster 4) Es gibt keinen sichtbaren zeitlichen Unterschied. Es besteht natürlcih die möglichkeit, dass im ersten gerenderten Frame noch alles in ordnung ist, aber das kann man ja nicht (wirklich) nachprüfen. Den Code kann ich wie angedeutet im Moment nicht ausprobieren, werde ich morgen aber Nachholen. Gruß Lord Horazont |
Autor: | Traude [ Do Jul 03, 2008 18:45 ] |
Betreff des Beitrags: | |
Vielen Dank. Ich war jetzt im Netz und habe ein bisschen diesbezüglich gegoogelt. Dabei bin ich auf Antialiasing gestoßen, und ich glaube mich erinnern zu können, dass Du das damals schon erwähnt hattest. Könntest Du vielleicht auch das Antialiasing ausschalten? *ganz lieb guck* Das Antialiasing wird in der Unit "GraphicSupport.pas", Prozedur "gsSetParams" gesetzt: Code:
Traude |
Autor: | Lord Horazont [ Do Jul 03, 2008 19:05 ] |
Betreff des Beitrags: | |
Auf ein Problem mit GL_POLYGON_SMOOTH habe ich dich ja damals schon hingewiesen, ich werde es mal ausprobieren dann. Antialiasing realisiert man normalerweise über Multisampling, welches man schon mit dem Kontext anfordern sollte. Im Wiki steht ja auch was über das problem mit polygon smooth. Gruß Lord Horazont |
Autor: | Traude [ Fr Jul 04, 2008 09:56 ] |
Betreff des Beitrags: | |
OK, ich habe mich jetzt mit dem Problem näher beschäftigt. Es scheint wirklich das Antialiasing zu sein, denn es gibt einen Thread http://www.delphigl.com/forum/viewtopic.php?t=2711&highlight=multisampling, wo ein ScreenShot gezeigt wird, der verteufelt dem Fehler gleicht, wie er bei Dir auftritt. Wenn das wirklich stimmt, ist das für mich eine große Erleichterung. Mir ist viel lieber, es betrifft Antialiasing - für das es verschiedenene Problemlösungen gibt - als es betrifft das "DrawOnDemand", denn da hätt ich jetzt keine Problemlösung parat. Also hab ich bei mir das "Smoothing" ausgeschaltet. Dann gibts einiges am Erscheinungsbild z.B. der Symbol-Buttons zu bekritten. Daran muss ich noch arbeiten. Zweiter Schritt: Nachsehen, was Multisampling eigentlich bedeutet und wie man es einschaltet. Ich hab mir die Spec für die Erweiterung "GL_ARB_multisample" runtergeladen, und einen Thread (wo Du auch dabei warst) entdeckt, wie man das macht. Von daher kenn ich mich mal aus, was ich zu tun habe. Leider gibts einen Haken bei der Sache: Meine Grafkkarte hat diese Extension gar nicht. Trotzdem habe ich keine Bildfehler. Das heißt, meine Grafikkarte managed das irgendwie ohne die Extension. Jetzt bedeutet das, dass ich den Code aus dem obigen Thread trotzdem einbauen muss, ihn aber nicht testen kann. @Flash: Ich hab über die Extension "GL_ARB_multisample" nur in Bezug auf SDL etwas im Wiki gefunden. Die sollte ich jetzt mal hineinschreiben, nehme ich an. |
Autor: | Flash [ Fr Jul 04, 2008 14:55 ] |
Betreff des Beitrags: | |
Genau ![]() ![]() |
Autor: | Lord Horazont [ Fr Jul 04, 2008 15:15 ] |
Betreff des Beitrags: | |
Jau, es liegt am "Antialiasing". Ich habe gerade die drei zeilen (und nur die) auskommentiert und es funzt. Was das Multisampling betrifft: Ich weiss nicht, kannst du Spiele oder Anwendungen mit 2x oder 4x Antialiasing betreiben (2x oder 4x deshalb, weil man bei Polygon smooth das nicht einstellen kann und es damit "echtes" Antialiasing sein muss)? Dann wäre das unabhängig von der Erweiterung. Gruß Lord Horazont |
Autor: | Traude [ Fr Jul 04, 2008 15:27 ] |
Betreff des Beitrags: | |
Ich hab eine NVidia-Karte. Bei den Grafikkarten-Einstellungen könnte man 2X und 4X einstellen, es ist aber im Augenblick auf "Application-controlled" eingestellt. OK danke jedenfalls. Ich werd mich mal ans werken machen und auch - versprochen - das Wiki updaten. Wenn ich fertig bin, darf ich Dich dann wieder in Anspruch nehmen? Ein Antialiasing möchte ich nämlich schon einbauen. Und da ich es selber nicht testen kann ..... |
Autor: | Lord Horazont [ Fr Jul 04, 2008 15:33 ] |
Betreff des Beitrags: | |
Wenn du von mir redest, ja, ich hab zeit ![]() Gruß Lord Horazont |
Autor: | Pluto [ Sa Jul 05, 2008 21:47 ] |
Betreff des Beitrags: | |
Ich habe mir dein Soruce mal angeschaut, sieht gut aus. Kompilieren werde ich ihn wohl unter Lazarus nicht so einfach können. Aber bei Gelegenheit werde ich es versuchen. Was ich gerade spanend finde ist die TreeView und dort die "Scroll Balken" *G*. Verwendest du da das gleiche Prinzip was du mir beschrieben hast bei meinem Editor-Scroll Problem ? |
Autor: | Traude [ So Jul 06, 2008 11:19 ] |
Betreff des Beitrags: | |
Ja, grade bei den ScrollBars habe ich mich ziemlich an die Delphi-VCL angelehnt, und die lehnt sich wieder an Windows an und in Wirklichkeit ist alles das Gleiche. ![]() Ich habe es selbst noch nicht mit Lazarus probiert - denn ich habe Lazarus nicht mal auf meiner Platte - aber mit Delphi geht es auch und ich verwende die VCL überhaupt gar nicht. Ich verwende auch keine Canvas. Ich versuche überhaupt sowohl Delphi-spezifische Dinge wie auch Free Pascal-spezifische Dinge zu vermeiden. Auf diese Weise kompiliere ich es in Delphi und kann es anschließend UNVERÄNDERT mit der FPC-Text-IDE kompilieren. Ich erreiche das, indem ich ausschließlich Object Pascal und unabhängige Bibliotheken (damit meine ich: unabhängig von Delphi UND unabhängig von Free Pascal) verwende. Es spricht eigentlich nichts dagegen, es auch einmal mit Lazarus zu versuchen. Du müsstest Dir nur die nötigen Bibliotheken besorgen. |
Autor: | Pluto [ So Jul 06, 2008 11:47 ] | ||
Betreff des Beitrags: | |||
leider lässt sich dein Soruce-Code nicht unter Lazarus Kompilieren. und unter FPC auch nicht. ich habe großere Probleme mit der OSSupport egal was ich dort außkomenteire es lässt sich nicht kompelieren. Die meistens WM_ nachrichten gibt es unter Lazarus nicht, die habe ich durch LM ersetzt. OpenClipBoard wird nicht gefunden. Ich musste außerdem die unit Windows rauß nehmen. Kurzt um: Es lässt sich NICHT unter Lazarus(Linux) Kompilieren. Ich habe dir mal die Unit OSSupport dran gehangen. Die habe ich angepasst, aber ich habe es wieder aufgeben. Wenn ich sehe das ich zuviel rauß nehmen muss, weiß ich das es wahrscheinlich nicht gehen wird, sobald es sich kompilieren lässt ![]()
|
Autor: | Lossy eX [ So Jul 06, 2008 13:10 ] |
Betreff des Beitrags: | |
Bin auch mal dazu gekommen es zu testen. Bei mir (XP SP2) lässt es sich zwar compilieren aber nicht starten. Beim Starten bekomme ich eine Zugriffsverletzung an Adresse 0x00000000. Das Ganze passiert in der Methode gsMaxTextureSize, weil der Pointer von glGetIntegerv nicht geladen wurde. Das passiert in der dglOpenGL erst in ActivateRenderingContext bzw. in ReadExtension. Außerdem hab ich gesehen, dass du den DC löscht. Ich weiß nicht ob das so gut ist. Denn eigentlich hängt der RC an einem DC. Ich habe es bisher noch nie ausprobiert. Beim einfachen Durchssehen habe ich aber etwas gefunden was du meiner Meinung nach in jedem Fall ändern solltest. Und zwar die Konfiguration der Gui. So schön das auch in einem Datei alles sein mag aber das sollte in jedem Fall nur optional sein. Aktuell ist es so, dass es einen Fehler gibt, wenn die Datei nicht existiert. Da würde ich eher so etwas sehen wie "Admin.LoadConfig" und "Admin.FontPath" etc. Also ich denke die Config sollte auch per Quellcode setzbar sein und nicht nur zwingend über eine automatisch geladenen Datei. Bzw innerhalb der Config Datei stehen auch absolute Pfade. Das verhindert sehr zuverlässig, dass man das Programm verschieben kann. Bzw selbst nach einer Installation müsste der Installer diese Datei erstellen oder anpassen oder das Programm beim Starten selber. In dem TAdministrator machst du im übrigen auch was was mehr Probleme als Vorteile bringen könnte. Und zwar setzt du dort das aktuelle Verzeichnis des Betriebssystem. (ChDir) In meinen Augen gehört das absolut nicht in eine GUI. ![]() Mehr kann ich aber dazu jetzt noch nicht sagen, da es bei mir komischerweise auch nicht so wirklich läuft. |
Autor: | Lord Horazont [ So Jul 06, 2008 13:37 ] |
Betreff des Beitrags: | |
Traude hat ja auch gesagt, dass der Linux Support noch nicht gegeben ist. Um ein anderes Betriebssystem zu unterstützen muss ja die Unit OSSupport komplett ausgetauscht werden. Es gibt aber bisher noch keine für Linux. Gruß Lord Horazont |
Seite 1 von 7 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |