Desktop Widget

  • [Blockierte Grafik: http://www.mevedia.de/img/DW.png]

    Download: http://www.mevedia.de/DesktopWidget (DWd.dll double based - CHM Hilfe enthalten)
    Dokumentation: doc.mevedia.de/DesktopWidget


    Version: 0.3a
    IDE Version: 0.2a
    Verfügbar als: DLL double based, GameMaker Extension
    Systemvoraussetzungen: Windows 98/Me, 2000, XP, Vista, 7
    * GDI+ DLL muss vorhanden sein (im Normalfall verfügbar, notfalls von Microsoft erhältlich), noch nicht alle explizit getestet

    Ganze Spiele auf dem Desktop zu realisieren ist mühsam und für die meisten kaum möglich. Diese Bibliothek in form einer DLL und einem beigelegtem Editor ermöglicht es kinderleicht nahezu alles zu basteln.

    Anwendungsbeispiele

    • Spiele auf dem Desktop
    • "Screenmates"
    • Chat-Figuren
    • Splashscreens
    • Benachrichtungen
    • Steuerelemente
    • Assistent zur Programmeinführung
    • Sonstige Effekte oder Anwendungszwecke

    Dummy schlendert die Taskleiste entlang.


    Verwendbar mit Auto-It?
    Konzipiert wurde es anfangs für den GameMaker der mit seiner Leistung und seinen 2 Datentypen Double und String sehr begrenzt ist, weshalb bereits zu Beginn ein Schwergewicht zu optimieren steht. Momentan steht die DLL basierend auf dem Double Typ zur Verfügung, wobei es anwendungstechnisch nichts zu beachten gibt. Dennoch arbeite ich bereits an einer generellen DLL die mit Integer und Speicheradressen arbeitet. Somit auch der schon gewünschte Pre-Render-Callback mit dem selbst Zeichenoperationen direkt vorgenommen werden können. Beispiele für Auto-It folgen.

    Bei Verwendung bevor Beispiele bereit stehen ist zu beachten: dwInit(), dwLoad() und dwFree() sind die minimalst benötigten Funktionen.

    Uhr im Einsatz.

    [Blockierte Grafik: http://www.mevedia.de/img/DWC.gif]

    Bibliotheken

    Widget Library
    Alles rund um Widgets.
    Sprite Library
    Animationen auf einem Widget.
    Desktop Library
    Ermitteln der Dimension, verstecken von Symbolen etc.
    Window Library
    Fenster ermitteln, Dimensionen, bewegen, durch partiellen Titel finden uvm.
    Hook Library
    Ereignisse eines beliebigen Fensters abfangen.
    Render Library * in kürze
    Texte, Fromen direkt auf Widgets zeichnen.
    Motion Capturing Library * in kürze
    Bewegungen durch eine Webcam oder in Fenstern erkennen.
    3D Widget Library * noch fehlend
    3DS., X. Modelle animiert auf dem Desktop darstellen. Shader ebenfalls unterstützt.
    Physics Library
    Intern auf Sprites (Ragdoll) oder auf Widgets anwenden.

    Widget Format
    Komprimiert und einfach anzuwenden. Auch kann es durch einen Schlüssel gesichert werden, der beim öffnen dem Pfad angehängt wird. ("C:\... |KEY") Bereits durch einen einzigen Befehl steht das Widget zur Verfügung. Der Wechsel zwischen Animationen ist auch sehr einfach zu handhaben. Ereignisse auf einem Widget können ebenfalls empfangen werden.


    Editor IDE

    Erst seit kurzem ist die IDE verfügbar, weshalb dort noch einiges geschehen wird. Grafiken können in verschieden Formaten vorliegen, sollten aber für hohe Qualität und Transparenz im PNG oder TIF Format vorliegen. In der IDE kann ein gesammtes Widget konstruiert werden, von simplen Spielfiguren bis zur Uhr mit Steuerelementen. Ein Absturz bei häufigem Laden ist momentan nicht immer ausgeschlossen.

    Ältere Bilder

    Screenshots

    [Blockierte Grafik: http://www.mevedia.de/img/DesktopWidgetIDE_Screen1.png]

    Leistung
    Kürzlich stand bereits eine grundlegende Verbesserung des Systems an, was so bei richtiger Verwendung bereits völlig performant ist. Zudem wurden diese Tests mit GameMaker durchgeführt.

    Zu nächsten Versionen wird die Leistung nochmal deutlich erhöht, bis sich auch sehr große, viele und füllige Widgets in der CPU Belastung nicht merkbar machen. Zu Empfehlen ist aufjedenfall Optimierungen am Widget vorzunehmen, wobei nicht das reduzieren von Einzelbildern gemeint ist (was am wenigsten bedeutsam ist), sonder Attribute wie "Process Delay" und "Rener Delay".

    Bereits durch einen unsichtbaren Process Delay von 20 ms fällt die CPU Belastung meistens zu 0-1%. Sobald eine wichtige Optimierung im Render System vorgenommen wurde sind diese Feineinstellungen erst bei sehr vielen Instanzen nötig!

    Dummy im Einsatz.

    [Blockierte Grafik: http://www.mevedia.de/img/DWD.gif]


    Beispiele / Hilfe?
    Schwerpunkt ist momentan wie erwähnt GameMaker, weshalb aber auch hierfür Projektbeispiele bereitstehen. Meine Pläne damit beziehen sich auf ein bereits früheren Wunsch: eine Desktop Katze! Und auch "Maus-Folger" wären Dinge die ich in nächster Zeit damit umsetzen werde. Für Auto-It werde ich in kürze Beispiele bereitstellen.

    Ein Example
    Warum es zwischen 0-5% schwingt? Zum einen ist es der Leistungshungrige GameMaker Interpreter, zum anderen ist das Widget noch nicht optimiert wobei man sagen muss das ein 240x240 animiertes Widget schon sehr groß ist. Nach Optimierungen des Widgets und des System ist aber selbst derartiges ein Leichtgewicht.

    GameMaker - Uhr Beispiel


    Wasserzeichen?
    Da sich das Projekt momentan noch in früher Entwicklung befindet, kann ich auch eine kostenlose Vollversion Partnern zur Verfügung stellen. Zukünftig ist eventuell eine Lite und Professional Version geplant. (preislich etwa 5€) Wenn du ernshafte/seriöse Pläne mit DesktopWidget hättest kannst du mir gerne schreiben. :)


    Nächste Version
    Höchste Priorität liegt wie in jeder Version in der Leistung. Selbst auf schwachen Maschinen sollen die gleichen Ausmaße wie auf modernen Computern möglich sein. Ansonsten genannte orange markierte Punkte kommen neu hinzu.

    Hoffe es findet Interesse. :)

    lg,
    famous

    Einmal editiert, zuletzt von famous (16. August 2012 um 16:04)

    • Offizieller Beitrag

    Es fällt mir schwer, das zu bewerten.
    Im Moment sehe ich die Vorstellung eines (durchaus interessanten) Projektes ohne Bezug zu AutoIt.

    Zitat

    Beispiele für Auto-It folgen.

    Vielleicht sagst du hierzu ein paar mehr Worte.
    - Erstellst du eine UDF, basierend auf den Dll-Funktionen?
    - Ist geplant, dass die Widgets ausschließlich in AutoIt konzipiert werden können? (ohne Nutzung einer fremden IDE)

  • Wie gesagt hatte ich ein Auge auf den GameMaker geworfen, kleinere Entwicklungssoftware wie Auto-It gehört da nur zur Sammlung von Beispielen für verschiedene Sprachen.

    Aber bei Kenntnissen zur Verwendung einer DLL sollte es kein Problem darstellen diese zu verstehn. Alle Befehle sind in der Hilfe nach zu lesen, wobei wie gesagt: dwInit(), dwFree() und dwLoad() bereits ein Widget auf dem Desktop bringt.

    Falls du oder jemand anderes bereit wäre mit mir zusammen diese Beispiele zu entwerfen wäre ich sehr dankbar, da es etwas umständlich wäre dafür die Software zu kaufen.