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

Aktuelle Zeit: Fr Jul 25, 2025 16:28

Foren-Übersicht » DGL » Feedback
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Mein respekt !
BeitragVerfasst: Di Mai 18, 2004 17:44 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Mein Respekt für die Arbeteit die in diesen grossen Projekt steckt.
Die News die Tuts die Templates das ständige updaten der Header und der Demos.

Ehrlich gut.

Ich bastel gerade an ein Prog was den Code eine Projekts durchforstet und dann mit hilfe der dgl Header eine angepasste Header erstellt also alle OGL Funktionen und Konstanten rausschmeisst die nicht gebraucht werden, was ja viel platzt in der Exe spart. Habs bisher mit hand gemacht aber naja Tools sind schneller ;) Melde mich wenns ferig ist.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 18, 2004 18:09 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Bringt das tatsächlich noch einiges? Normalerweise sollte sowieso nur das gelinkt werden was auch benötigt wird.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 18, 2004 19:26 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Wenn man ein Programm startet überprüft der delphi-compiler welcher Code gebraucht wird und welcher nicht. Wird zum Beispiel ein Code nicht aufgerufen und man setzt einen Breakpoint rein so ist dieser nicht aktiv.

Konstanten waren ursprünglich nur da um Zahlen leserlicher zu schreiben, und werden im prinzip durch ihre Zahlen ersetzt. Dies trifft aber so weit ich weis nur auf die "Echten Konstanten" zu.

Also frag ich dich genauso wie Lars:

Wie viel bringt das?

MfG
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 18, 2004 20:08 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Für OpenGL bringts schon was (wenig), da die Routinen aus einer DLL geladen werden. Somit müssen deren Namen (und Funktionszeiger) auf jeden Fall in der .EXE liegen, da das Laden der Routinen erst zur Laufzeit geschieht und der Ladecode für ALLE Routinen in der Bibliothek steht..
In der BaseGraph OpenGL gibt es daher die {$define} Conditionals GL_11 bis GL_15, sowie GL_PROGRAM und GL_SHADER, um bereits beim Kompilieren die tatsächlich geladene Funktionalität einstellen zu können, womit man auch tatsächlich kleinere .exe Dateien bekommt (halt was die Strings und Zeiger ausmachen, außerdem schrumpft BaseGraph selbst ein wenig, da bestimmte Klassen dann gar nicht mehr existieren bzw. einige Funktionen fehlen).

Ich schau zwar, dass BaseGraph auch mit einer reinen OpenGL 1.1 Version läuft - die entsprechenden Kompileroptionen auszuschalten, ist aber auch mir in der Praxis zu umständlich, zumal ich den Code so geschrieben habe, dass Funktionen, die eine höhere OpenGL Versionen benötigen, bzw. die (wenigen) unterstützten Extensions, automatisch nachsehen, ob diese tatsächlich zur Verfügung stehen, bevor (in diesem Falle nicht initialiserte) Zeiger auf Routinen aufgerufen werden - bei realen Programmen umgehe ich oft aber sogar diesen Schutz (indem die entsprechenden Flags am Anfang des Programms manuell auf True gesetzt werden), da man sich auf die zurückgelieferte OpenGL Version auch nicht so wirklich verlassen kann (mein ATI Treiber liefert etwa 1.3, obwohl es sich in Wirklichkeit um 1.4 mit großen Teilen von 1.5 Funktionalität handelt - was BaseGraph ohne manuelles Eingreifen dazu veranlasst, manche Funktionen einfach abzuschalten).

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Es bringts
BeitragVerfasst: Mi Mai 19, 2004 12:10 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Es bringt was sonnst würde ich nicht es schreiben ich habs getestet.
Eine Delphi exe mit dgl knapp 81KB mit upx dann 22KB wenn ich nur die sachen aus der Header mir zusammen stelle die ich brauche dann hab weniger wieviel es waren weiss ich nicht mehr genau irgednwas zwischen 30 und 50KB und mit upx dann 16KB.

Ich denke das ist schon nützlich und man hat auch nicht mehr das problem mit unbekannten glu oder glut befehlen da die ja dann auch in die header wandern. :wink:

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 19, 2004 21:33 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Nun ja, wie gesagt, vernachlässigbar - außer vielleicht in der Demoszene machst du mit den paar kb wenig Rabatz - wenn du wirklich Speicher sparen willst, kompilierst du deine Programme mit Delphi 2 anstelle von Delphi 7 :wink: - die Lösung OpenGL Funktionalität ganz wegzuschneiden gefällt mir nicht so gut, da die Programme schlecht erweitert werden können, falls sie als Source weitergegeben werden.

Was meinst du denn für unbekannte glu Befehle (glut ist ja in dglOpenGL nicht enthalten)?

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 19, 2004 21:54 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Auch wenn das vielleicht überhaupt nicht hier her gehört:
Ich habe mal das C# D3D Beispiel aus dem SDK ausprobiert und das Fenster mit einem Dreieck ist da gerade mal 6KB groß.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 19, 2004 22:29 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
LarsMiddendorf hat geschrieben:
Ich habe mal das C# D3D Beispiel aus dem SDK ausprobiert und das Fenster mit einem Dreieck ist da gerade mal 6KB groß.

Was auch nicht weiter verwundern sollte, da es bei .NET ja gerade nicht notwendig ist, Standard-Assemblies in das fertige Projekt hineinzulinken...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 20, 2004 08:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jun 09, 2003 08:09
Beiträge: 98
Wobei 6KB für ein Dreieck schon ein bissel zu viel sind.... :)

TAK2004, hört sich sehr interessant an. Funktioniert das Prog später mit jeder Unit, oder nur speziell OpenGL 1.5?


mfg las

_________________
www.las.eu.tc


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 20, 2004 09:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich habe schon mit MASM 4KB hinbekommen und dort wurde ein Tür aller Halo Style gerendert und funktionen wie Text im Orthomodus schreiben.
In Delphi war mein record knapp 12KB und FreePascal 8KB es hängt davon ab wieviel zeit man in die optimierung steckt. Wobei FreePacal und Masm klar im vorteil sind gegenüber Delphi da inbeiden Sprachen alle nutzbaren Biliotheken noch als Source vorhanden sind also sich wirklich mit Hilfe von Tools, wie das was ich in Electron einbauen will. Damit könnten dann noch einige KB purzeln denn ich hab gesehen das wenn man windows lib lädt gleich noch teile der sysutils,registry und vielen mehr files geladen wird. Vieles wird nicht gebraucht aber einiges schon und das soll das Tool in einer unit kopieren und diese ins Projekt linken.
Das verlängert allerdings dann den Compilier Prozess.

Ich will die neuste DGL Header nutzen um auch die Funktionen der neuen OGL Version anzubieten doch werde ich keine Tools diesbezüglich anbieten da ich noch nicht die Zeit und seit kurzem auch nicht mehr die Hardware habe mich mit z.B. GLSlang oder Shadern zu befassen.

Ich weiss nicht ob ihr mal bei Projekte vorbei geguckt habt dort habe ich mich auch verewigt und dort hab ich auch dann gescgrieben das die OGL header die ich nutze eine modifizierte version ist in der noch glu und gut befehle rein sollen.

Der Sinn dieses Projektes ist ein Normales Delphi Projekt zu erstellen was weiter verwendbar ist. Natürlich sollte man wenigstens das Tool zur headergenerierung mit geben, wenn man neue Befehle nutzen will. Da die angepasste header sich ja nicht von allein ändert versteht er diesen Befehl dann auch nicht. Logisch! ;)

Wegen den 6KB D3D mal gefragt wiviele dlls DX hat, denn die exe ist so klein weil einfach alle befehle in dlls gepackt wurden wie Fenster erstellen und Co. Damit kann man dann auch die windows unit rausschmeissen ist dann zwar bei 16KB, weil Delphi und FreePascal muss man sagen ziemlich schlechten Code Haushalt führen. Ich habe ohne binden von Headern Befehle wie getmem oder assignfile und das ist ja nicht immer notwendig da kann man dann aber wiegesagt einfach upx drüber jagen und dat ist dan auch 8KB gross oder bei FreePascal wenn auch in der Testphase (bei mir gehts nicht) dem Compiler sagen alles was nicht gebraucht wird raus.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 20, 2004 11:00 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jun 09, 2003 08:09
Beiträge: 98
Was für dich ganz interessant sein dürfte ist Hugi 28:
http://www.hugi.scene.org/

Du musst andere Sys-Units verwenden, steht aber alles in Hugi 28 erklärt...
Naja dann kommen noch so Sachen wie fakecom und so drüber, ganz am schluss UPX... Zack bist du bei 4 Kb... Ich hab einen stylischen Effekt mit Textur (wird generiert) in 4kb bekommen... Naja das ist noch nicht wirklich viel wenn man sich anschaut was andere mit 4kb anstellen.

Es wird zu Offtopic... Man könnte ja mal als "Themenabend" im IRC (#DelphiGL , euIRC) über Size-Optimierung, Demoscene und so Zeugs reden

mfg las

_________________
www.las.eu.tc


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Foren-Übersicht » DGL » Feedback


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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.018s | 17 Queries | GZIP : On ]