ChaosClone

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

BladeRunner

Moderator

Betreff: ChaosClone

BeitragMo, Feb 08, 2010 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo allerseits,
hiermit wollte ich euch mein neustes Machwerk vorstellen:
ChaosClone

ChaosClone ist ein Modul das euch nahezu universelle Lade-, Speicher-, Klon- und Kombinationswerkzeuge für beliebige benutzerdefinierte Objekte an die Hand gibt.
Die von den Speicher-Funktionen erzeugten Files sind dabei von OS zu OS transferierbar, solange es sich nicht um PPC-Mac handelt.
Es bietet eine automatische Abwicklung von TList, TMap, TBank, TImage und TPixmap - diese werden bei Bedarf mit ins SaveFile integriert.
ChaosClone kann nahezu alle Arten von Arrays speichern und laden - auch mehrdimensionale und Arrays in Arrays.
Es bietet ebenso ein flexibles Steuersystem um auszuwählen welche Daten asserviert werden sollen und welche nicht.
Dank seiner Kombinationsfähigkeiten für bestehende Objekte und Arrays ist ChaosClone auch in der Lage Prototyping zu betreiben.
Die Klon-Funktion erstellt nahezu beliebig genaue und tiefe Kopien eines Objektes.
Wo ChaosClone mal nicht automatisiert arbeiten kann (Beispiele wären Byte Ptr / Function Ptr / Arrays von Arrays da sie von Reflection nicht erfasst werden) gibt es die Möglichkeit für Types automatisiert aufzurufende Lade-/Speicher-/ und Initialisierungsmethoden zu integrieren bzw. auch aus externen Dateien Informationen einzulesen (hier ist dann auch noch eine Unterstützung für TSound mit eingebaut).

Ich habe das Modul recht ausführlich getestet und hoffe mal alle bösen Krabbler entdeckt zu haben. Auch Funktionstests unter MacOS und Linux sind erfolgreich verlaufen. Danke an dieser Stelle an das komplette ChaosInteractive-Team, im Speziellen an D2006, hamZta und Hyde für ihre tatkräftige Mithilfe.
Solltet ihr dennoch Fehler finden könnt ihr euch gern bei mir melden.

Das Modul selbst ist closed source und Donationware, d.h. wenn es euch gute Dienste leistet würde ich mich sehr freuen wenn ihr mir per PayPal eine Spende zukommen lassen würdet (ihr selbst benötigt dafür keinen PayPal-Account). Des Weiteren erbitte ich mir einen Eintrag in die Credits eurer App.

Wo krieg ich das nun her?
Nun, zum einen von Chaos-Interactive.de
Dann im hiesigen SVN-Server: https://svn.blitzforum.de/chaos.mod

Eine relativ ausführliche Doku liegt dem Modul bei. Das Modul selbst liegt vorkompiliert für Win/Mac/Linux bei.
Also einfach chaos.mod nach /blitzmax/mod/ packen, im Source mit Import chaos.clone einfügen und es sollte funktionieren.

Ich hoffe das Modul ist eine Bereicherung für eure Arbeit.
Denkt dran, wenn es euch gefällt:
user posted image
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

BladeRunner

Moderator

BeitragMi, März 03, 2010 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Update auf 1.70:
ADD: Interface leicht angepasst: LoadUDObject hat nun obj nur noch als optionales Argument.
BUGFIX: LoadUDObject versagte bei Arrays aus Primitiven, wenn sie in Types gespeichert wurden.

Derzeit ist nur Mac und Win verfügbar. Sobald ich es für Linux kompiliert habe steht es online.
Links sind im Startpost.

EDIT: Linux ist up.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Shinkiro1

ehemals "Espada"

BeitragSa, Apr 24, 2010 1:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist es hiermit möglich alle Objekte innerhalb einer TMap in eine Datei zu speichern.
Und wenn, muss ich jeden meiner Types mit {clone} versehen?
Blog :: Ein RPG in 3 Monaten erstellen
Twitter :: News zum Projekt

BladeRunner

Moderator

BeitragSa, Apr 24, 2010 6:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Prinzipiell ja, alle Einträge deiner TMap können in einer Datei gespeichert werden.
Was von den Objekten in deiner Map explizit gespeichert wird hängt davon ab wie Du deine Typefelder markierst.
Ich werde mich bemühen sobald ich etwas mehr Zeit habe ein Beispiel nachzureichen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ComNik

BeitragSa, Apr 24, 2010 9:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun eigentlich benutz ich ja Persistence.
Aber ich hab mir das Modul mal runtergeladen, und schon die Doku hat überzeugt Wink

Nur bevor ich evtl umsteige, wollte ich mal wissen, wie genau das mit den {} hinter Fields funktioniert?
(z.B Field bla:TTypeBlub {clone}')

Ich wollte jetzt keinen Extra Thread aufmachen, aber ich hab das vorher nicht gesehen.

lg und tolles Modul,
ComNik
WIP: Vorx.Engine

BladeRunner

Moderator

BeitragSa, Apr 24, 2010 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich seh schon, es wird zeit ein paar Beispiele zu veröffentlichen. Bitte habt ein bis zwei Tage Geduld, ich bin heut nur sporadisch am Rechner, ich hoffe mal ich kann heute abend ein bissel was zusammenstricken, um das Verständnis für die Anwendung zu erleichtern. RL geht halt vor, aber ihr seid auf meiner ToDo-Liste.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ComNik

BeitragSa, Apr 24, 2010 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Beispiele habe ich schon verstanden. Ich weiss auch wie ich das {clone} oder {noclone} etc.. einsetzen muss. Aber mir ging es nur allgemein um die Funktione dieser {}.

Schon die Bezeichnung würde genügen, dann könnte ich danach suchen.

[EDIT:] Muss zugeben, blöd gefragt. Mir gehts wie gesagt allgemein um die Klammern als Bestandteil von BlitzMax. (hoffentlich war das klarer :/)[/EDIT]

lg
ComNik
WIP: Vorx.Engine

BladeRunner

Moderator

BeitragSa, Apr 24, 2010 12:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kann ich rasch beantworten: Das ist sogenannte MetaData, also Daten die zur Laufzeit für alle Objektinstanzen zur Verfügung stehen. Wurde mit Reflection eingeführt und erlaubt es Objekte spezifisch anzusprechen / zu identifizieren.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ComNik

BeitragSa, Apr 24, 2010 13:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank (:
WIP: Vorx.Engine

BladeRunner

Moderator

BeitragSo, Apr 25, 2010 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Espada, ich muss dich leider noch mit der Antwort vertrösten, da ich beim erstellen des Beispieles auf einen SpeicherBug in ChaosClone gestossen bin, den ich zuerst fixen werde (was ob der Komplexität des Codes ein wenig Zeit beanspruchen kann). Du kriegst dein Beispiel dann mit der ausgebesserten Version nachgeliefert.
Ich hoffe mal dass ich heute nach der Schicht noch ein wenig zum Bugfixing kommen werde, kann allerdings noch nichts versprechen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Shinkiro1

ehemals "Espada"

BeitragMo, Apr 26, 2010 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Lass dir nur Zeit, ich habe eine andere Möglichkeit gefunden mein Problem anzugehen.
Aber ein Beispiel wär trotzdem gut weil mich das Thema interessiert. Vielen Dank trotzallem Very Happy

PS: Wenigstens kannst du so einen Bug beheben, also war der Push nicht ganz sinnlos ;D
Blog :: Ein RPG in 3 Monaten erstellen
Twitter :: News zum Projekt

BladeRunner

Moderator

BeitragMo, Apr 26, 2010 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Jop, jede Anmerkung ist hilfreich. Das Thema als solches ist halt sehr komplex, da gibt es kiloweise Spezialfälle - von daher kann ich nur froh sein wenn ich nach und nach über alle Bugs stoße. Die nächsten Tage werde ich den Code generalüberholen, und du wirst dein Beispiel noch kriegen, versprochen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ComNik

BeitragSa, Mai 08, 2010 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu nochmal,
hab mich jetzt endgültig entschieden ChaosClone zu verwenden.
Aber dieser Speicher Bug, den du erwähntest?

Memory Leak? Dann würd ich noch aufn fix warten.

Ansonsten ist das Modul echt Klasse,
vielen Dank.

lg
ComNik
WIP: Vorx.Engine

BladeRunner

Moderator

BeitragSo, Mai 09, 2010 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, ChaosClone stürzt derzeit beim speichern einer TMap ab- ich bin noch auf Fehlersuche, aber derzeit so im RL eingebunden dass der Fix noch ein wenig Zeit in Anspruch nehmen kann. Ich schaue derzeit auch jeden Tag nur 5 Minuten hier rein, man verzeihe die Latenz. Das Problem ist nicht vergessen, nur verschoben Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

mpmxyz

BeitragDo, Jul 29, 2010 12:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein schönes Modul!
Verwenden kann ich es aber nicht:
Wo sind die Threaded-Dateien?
Es wäre nett, wenn das Modul noch im Threaded-Modus kompiliert wird.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

BladeRunner

Moderator

BeitragSa, Jul 31, 2010 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi mpmxyz,
den threaded-build werde ich Dir nachreichen, sobald ich ein wenig Zeit habe. Da das Modul wild mit Reflection rumfuhrwerkt kann ich Dir jedoch kein Funktionieren garantieren. Der TMap-Bug besteht weiterhin, ich bin leider noch nicht zum fixen gekommen. Haste Vieh, haste Arbeit Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

BladeRunner

Moderator

BeitragMo, Aug 02, 2010 9:46
Antworten mit Zitat
Benutzer-Profile anzeigen
1.80 online!
Derzeit nur Win32, Mac und Linux werden folgen sobald ich die Kompilate habe.

- added: Threaded build.
- fixed: Bug which caused tmaps w/precached items to crash sometimes.

Bitte testet das Modul weiter und gebt alle Fehler weiter. Der TMapBug sollte nun Geschichte sein, allerdings ist die Materie weiter zu komplex um allein alle Fälle durchzuspielen.

Chaos-Interactive.de
https://svn.blitzforum.de/chaos.mod
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

BladeRunner

Moderator

BeitragDo, Aug 05, 2010 10:32
Antworten mit Zitat
Benutzer-Profile anzeigen
1.90 online, weiter nur für Windows. Ich muss mir mal Linux auf die Kiste werfen und mir nen gebrauchten Mac zum compilieren koofen...
- fixed bug which caused CC to crash if trying to save an initialized-only array.

Danke an mpmxyz für den Hinweis.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group