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

Aktuelle Zeit: Fr Mär 29, 2024 00:16

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 22, 2006 10:41 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Hier mal wieder ein paar Infos.

Wie man hier lesen kann hab ich das GL_Data aka XD_Data schon wesentlich weit vorran getrieben.
Des weiterem ist die aktuelle FireBlade Version implementiert und 3 Tuts wurden in die Demosektion übernommen.
Heute habe ich die neue XD_LuaClass ins repo gestellt. Diese Klasse erleichtert das nutzten von Lua, in dem man seine Klassen von der TXD_LuaClass ableitet und alle properties in Published werden Lua bekannt gemacht. Hier zu dient zum einem ein Manager und die RTTI Informationen. Momentan ist es noch ein bischen problematisch, da FreePascal keine records für property unterstützt und man somit den umweg über eine set und get funktion gehen muss. Funktionen werden auch bekannt gemacht, dies funktioniert genau so wie von der Komponenten Programmierung, mit OnEvents, gewohnt. Ich überlege momentan wie ich den benötigten Code für das bekannt machen einer Funktion verringern kann aber die einzige Möglichkeit die ich gefunden hab wird den einsatz von asm mit sich ziehen(nicht gut). Ich plane die Woche das XD_Data format in die erste release zu bringen. Der XML Modus und alle Baum bezogenen Operationen funktionieren schon und nun muss nur das laden von Binärdaten in ein Baum gemacht werden.

_________________
"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 Aug 29, 2006 13:19 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
So ich habe gerade die neue LuaClass ins Repo geladen und weil es so wichtig ist will ich hier ein paar Worte zu verlieren.

LuaClass ist das Herzstück von XD_ScriptSystem und erleichtert das nutzen von Lua und eigenen Projekten.
LuaClass ist wie der name schon sagt eine Pascal Klasse und eine mächtige noch dazu.
Sie wurde von TXD_RTTI und bietet somit alle Klasseninformationen(Run Time Type Information) die es gibt an.
Wer sich nun fragt was das ist, hier ne kurzfassung.

RTTI ermöglicht alle Daten die in Published Teil von einer Klasse stehen zur laufzeit aus zu lesen.
Also Name,Typ,Inhalt,... und hierbei wird in methoden und variablen unterschieden.
In Delphi nutzt der Objekt Inspektor RTTI um an die Variablen und Events zu kommen und zu manipulieren.
Code:
  1. property name:typ read variable/funktion write variable/funktion default wert;


LuaClass kann nun also die published informationen verwenden und das tolle ist, es passiert automatisch.
LuaClass versteht ein Grundtypen satz single,int,cardinal,string,byte,method,... und diese werden mit namen in lua bekannt gegeben.
Um es noch ein bischen gemütlicher zu machen hab ich noch eine funktion RegisterClass hinzu gefügt.
Diese funktion Registriert die eigene Klasse die von der LuaClass abgeleitet wurde im ScriptSystem und man kann dann folgendes in Lua machen.

Code:
  1. ScriptSystem.RegisterClass('TBla',TBla);
  2. Lua_dostring(ScriptSystem.LuaState,'b=TBla.create(); print(b.name); b.name="dalaran"; print(b.name)');


RegisterClass erstellt in Lua eine Globale Tabelle mit dem angegeben namen.
In dieser Tabelle ist eine funktion unter gebracht namens create und wenn man diese aufruft wird eine Instanz der Klasse erstellt und zurück gegeben. LuaClass bietet von hause aus ein property name und dieses kann man lesen und beschreiben, wie im Code oben.

Wenn man nun also eine Klasse Player hat und teile davon in Lua bekannt machen will , dann ist das mit LuaClass sehr leicht.
Auf grund der Kompatibilität zwischen Delphi und FPC hab ich leider die typen array,object,record,interface und variant weg lassen müssen.

Ich will nun das Modul Dokumetieren, wer also interesse hat kann sich dann auch genauer im X-Dream Wiki belesen.
Wer es sogar nutzten will, der braucht nicht die ganze Engine sondern nur folgende Units aus der Engine nehmen.
XD_ScriptSystem.pas,luahelper.pas,XD_RTTI.pas und lua.pas.
Ich nutzte nicht die aller neuste Lua Version sondern (5.0.2).

Achso und wir sind mit unserer Seite umgezogen.
von http://x-dream.neroneus.de nach http://www.linuxprofessionals.org/xdream/ .
Grund hierfür war, mehr Rechte(volle rechte auf svn,mysql und teilweise rechte für lampp), bessere Technik(ist ein von Strato gemieteter Cluster aus 2 Servern mit jeweils Intel DualCore Cpus,jeweils 1GB Ram, 80GB HDD's), bessere Administration(zwei Kumpels, einer ist Administrator bei RedHat in Indien und einer Security Admin bei Glb), kostenlos(die rechnung zahlen die beiden admins und wir haben ~1Terra Traffic free pro server), der Server hat ein wasch echtes Sicherheits Zertifikat womit das lässtige gefrage bei https verbindung entfällt und es ist ne andere Distro(vorher eine alte debian und nun fedora core 5).

_________________
"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 Sep 26, 2006 02:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich hab heute die GUIXML unit überarbeitet und nun kann man eigene GUI Komponenten programmieren und sie ohne Probleme in X-Dream verwenden. Hier ist ein Video von einer IconBar http://linuxprofessionals.org/xdream/screenshots/iconbar.avi.
Die Komponente selber ist in wenigen min entstanden und mit folgenden XML Code und Lua Script wird die Gui geladen.
Code:
  1. <?xml version="1" encoding="ISO-8859-1" ?>
  2. <GUI>
  3.     <Panel Top='150' Left='100' Width='110' Height='200'>
  4.           <Button Top='10' Left='10' Width='84' Height='29' ID='Btn1' Colorkey='false' text='Online'></Button>
  5.           <Button Top='50' Left='10' Width='84' Height='29' ID='Btn2' Colorkey='false' text='Optionen'></Button>
  6.           <Button Top='90' Left='10' Width='84' Height='29' ID='Btn3' Colorkey='false' text='Exit'></Button>
  7.     </Panel>
  8.     <IconBar Top='0' Left='0' Width='640' Height='64'
  9.            Icons='icons/browser.png'                Hints='Galaxy'
  10.            Icons='icons/config-users.png'           Hints='Account'
  11.            Icons='icons/email.png'                  Hints='Nachrichten'
  12.            Icons='icons/gnome-help.png'             Hints='Hilfe'
  13.            Icons='icons/gnome-monitor.png'          Hints='Einstellungen'
  14.            Icons='icons/system-installer.png'       Hints='Plugins'
  15.            Icons='icons/system-software-update.png' Hints='Update'></IconBar>
  16. </GUI>


Code:
  1. function MBtnDown(btn,x,y)
  2.   print(x)
  3.   return 0
  4. end;
  5.  
  6. function main()
  7.   GUI.LoadFromXMLFile('menu.xml')
  8.   b1=GUI.GetWidget('Btn1')
  9.   b1.OnMouseDown='MBtnDown';
  10.   return 0
  11. end;

_________________
"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: Fr Okt 06, 2006 11:42 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Das X-Dream Team will nun Debuggen und den vorhandenen Code modularisieren.
Hierzu brauchen wir Leute, die mal einfach alle Demos durchlaufen lassen.
Wenn Probleme auftreten, haben wir dann die möglichkeiten die Bugs zu beseitigen.

Die Modularisierung ist ein wichtiger Punkt für die X-Dream Engine.
Deswegen wollen wir auch, dass man alle Core Module und viele Engine Module ausserhalb der engine verwenden kann.
Dazu müssen wir aber wissen wo die Probleme an den Interfaces und abhängigkeiten liegen.
Wenn sich Leute bereit erklären zu helfen, kann man dann z.B. die GUI, VFS, Sound, Materials, Modelformat,... ohne den rest der Engine verwenden und sich so viel Zeit im eigenem Projekt sparen.

Wir sind momentan in Version 0.1b und daher sind änderungen am Interface noch ohne Probleme möglich.

Wir nehmen jede Hilfe an, sei es als Korrekturleser, Tester, Programmierer(egal welche Gebiete), Berater oder "Mädchen für alles".

_________________
"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  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 32 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.400s | 17 Queries | GZIP : On ]