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

Aktuelle Zeit: Mo Jul 14, 2025 07:14

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 93 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5 ... 7  Nächste
Autor Nachricht
 Betreff des Beitrags: @glPasGUI
BeitragVerfasst: Do Jul 03, 2008 15:33 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
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

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 03, 2008 17:38 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
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. :wink:

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:
  1. Procedure TGUIWindow.TREEPaint;
  2. Begin
  3.    If osRenderContextActivate(fHandle,fRenderContext)
  4.       Then Begin
  5.  
  6.          InvalidTree:= TRUE;                   // <=====
  7.          fGrUtMan.ClearViewPort(Width,Height); // <=====
  8.  
  9.          fGrUtMan.PaintBegin;
  10.          If Visible
  11.             Then Inherited TREEPAINT
  12.             Else fGrutMan.ClearViewPort(Width,Height);
  13.          fGrUtMan.PaintEnd(fHandle);
  14.       End;
  15.       osRenderContextDeactivate;
  16. End;


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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 03, 2008 18:10 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
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

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 03, 2008 18:45 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
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:
  1. glEnable(GL_POINT_SMOOTH);      // Antaliasing
  2. glEnable(GL_LINE_SMOOTH);       //  -  "  -
  3. glEnable(GL_POLYGON_SMOOTH);    //  -  "  -


Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 03, 2008 19:05 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
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

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 04, 2008 09:56 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 04, 2008 14:55 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Genau ;) 8)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 04, 2008 15:15 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
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

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 04, 2008 15:27 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
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 .....


Zuletzt geändert von Traude am Fr Jul 04, 2008 15:35, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 04, 2008 15:33 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Wenn du von mir redest, ja, ich hab zeit :wink:

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jul 05, 2008 21:47 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
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 ?

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 06, 2008 11:19 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
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. 8)

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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 06, 2008 11:47 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
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 :(


Dateianhänge:
OSSupport.pas [24.17 KiB]
420-mal heruntergeladen

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 06, 2008 13:10 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
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. ;) Denn wenn man sich darauf verlässt, dass das Verzeichnis so bleibt (was ja normal der Fall ist), dann dürfte man eine böse Überraschung erleben.

Mehr kann ich aber dazu jetzt noch nicht sagen, da es bei mir komischerweise auch nicht so wirklich läuft.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 06, 2008 13:37 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
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

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 93 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5 ... 7  Nächste
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

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