QuickDraw Verbesserungen, Ideen - was fehlt noch?

  • - Import von Speziellen Grafiken (.iff; .svg etc.)
    - Export funktion (Aktuelle Ansicht in .jpg speichern)
    - Speichern der aktuellen Ansicht in Datei, die man dann per QuickDraw wieder öffnen kann, mit eigener Dateiendung (z.B. .qd; .quickd)

    Jetzt kommen noch ein paar, die sind aber evtl. sehr schwer zu realisieren.
    - Hinzufügen von Lichtquellen
    - Bumpmapping hinzufügen

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

    Einmal editiert, zuletzt von PrideRage (19. August 2010 um 17:18)

  • Mann sollte den Pfad zu den Quickdraw DLL´s verändern dürfen.


    Ich hab mal schnell was geschrieben^^:
    Bei den Variablen muss noch das hier hin:

    [autoit]

    Global $QuickDraw_DllPath="AutoIt QuickDraw.dll"

    [/autoit]


    Und die Funktion:

    [autoit]

    Func _QuickDraw_SetDllPath( $DllPath )
    If $QuickDrawDLL<>0 Then
    DllClose( $QuickDrawDLL )
    $QuickDrawDLL=DllOpen( $DllPath )
    If $QuickDrawDll=-1 Then
    $QuickDrawDLL=DllOpen( $QuickDraw_DllPath )
    Return 0
    EndIf
    EndIf
    $QuickDraw_DllPath=$DllPath
    Return 1
    EndFunc

    [/autoit]
  • Ja ich habs getestet. Aber bei mir kommt der Fehler nicht, mir ist nur grade aufgefallen, dass ich die Fehlermeldung "FreeImage.dll konnte nicht gefunden werden." bekomme ?(

  • Aber die QuickDraw.dll erwartet die FreeImage.dll irgendwo im %PATH%. Du kannst aber das Verzeichnis per EnvGet, EnvSet, EnvUpdate an die PATH-Variable anfügen.

  • Danke, habs verbessert:

    Spoiler anzeigen
    [autoit]

    Func _QuickDraw_SetDllPath( $DllPath )
    If $QuickDrawDLL<>0 Then
    DllClose( $QuickDrawDLL )
    $QuickDrawDLL=DllOpen( $DllPath )
    If $QuickDrawDll=-1 Then
    $QuickDrawDLL=DllOpen( $QuickDraw_DllPath )
    Return 0
    EndIf
    EndIf
    $QuickDraw_DllPath=$DllPath
    $sPath=StringSplit($DllPath, "\")
    $dllpath=""
    For $i=1 to $sPath[0]-1
    $dllpath&=$sPath[$i]&"\"
    Next
    EnvSet("PATH", $dllpath)
    EnvUpdate()
    Return 1
    EndFunc

    [/autoit]


    Die Globale Variable muss immernoch gesetzt werden.

  • Ist sie ja auch, aber wie progandy erklärte, muss die Umgebungsvariable %PATH% ja geändert werden, damit diese Funktion klappt. Naja, jetzt geht es ja^^. Sorry, dass ich dir die "Arbeit" abgenommen habe^^

  • Also wie ich sehe, gibts keine Projektdatei (Source) , stimmts.

    Dann kann ich nur Fluchen. OPEN-SOURCE 4-ever! :P

  • Alternativ kann man die FreeImage.dll mit DLLOpen auch selbst VOR der QuickDraw.dll öffnen. Das ist meiner Meinung nach sogar besser ;)

  • Mein Script läuft auf 3 Rechnern unterschiedlich. Aber mal sowas von unterschiedlich, auf mein 600Mhz mit XP ist alles OK; auf diesem Rechner mit Win7x64 wird mir nur das erste dargestellte Bild angezeigt; wobei auf dem gleichen Rechner mit XP alles glatt läuft; und auf dem frisch Recoverten Rechner von meinem brüderchen wird nichtmals ein Bild dargestellt...

    Gibt´s irgendwelche Vorraussetzungen wegen OpenGL und DirectX oder gibt es unterschiede zwischen ATI und Nvidia Karten ?(

    Im prinzip liegt der Fehler in der Funktion:
    _QuickDraw_CreateSurface($GUI, 0, 0, 300, 300)
    Und bevor ich geschlagen werde, ja ich habe den Source und die Info´s der Funktion gelesen. ABER in meinem Falle brauche ich diese Funktion umbedingt, da ein 'Render' Child-Gui in der Haupt-Gui angezeigt werden soll. Und dann sieht es natürlich schei... aus, wenn das Renderfenster immer verschwindet und erst an Ort-und-Stelle geschoben werden muss (mit _QuickDraw_Enable).

    [autoit]

    $MainGUI = GUICreate($title, 800, 600, -1, -1)
    ...
    $GUI = GUICreate("", 640, 480, 10, 10, $WS_CHILD, $WS_EX_TOPMOST, $MainGUI)
    ...
    _QuickDraw_CreateSurface($GUI, 0, 0, 300, 300)

    [/autoit]

    Also ich hoffe auf ein Update :D welches die Funktion '_QuickDraw_CreateSurface' Fixt.

    Sonst echt gute Arbeit, weiter so!
    Grüsse!

  • Ich denke die UDF zielt vorallem auf Spiele, soll sollten dann auch Sprites und Collisionen vorhanden sein, den die Dll-Aufrufe die das bewegte Bild ermöglichen sind auch CPU-lastig! Die Dll sollte das übernehmen, wenn du dazu Hilfe brauchst, kannst du dir die Propseed.dll anschauen, die hat so was schon. Backgroundscrolling wäre auch schön!

  • [EDIT]
    Ich hab mal so eine kleine Liste erstellt, da ich die letzten Tage mit QD gearbeitet habe. Besonders eine Funktion für einen Textur-Ausschnitt vermisse ich stark. Lass dich nicht von der länge der Liste abschrecken, aber ich hatt mir da so ein paar Notizen gemacht was bei mir und den Testrechnern (4*XP-SP3(x86) - 2*Win7-x64) nicht so richtig läuft.
    Aber weiter so :thumbup:

    ToDo
    • Die Maus-Funktion läuft bei mir auf 3 Testrechnern nicht richtig! (keine Positionsrückgabe)
    • Die Texte sehen teilweise seltam aus.
    • Das Darstellungsproblem bei manchen Texturengrössen bitte entfernen. (werden Farblos mit so komischen Streifen)
    • Häufig bei png´s kommen diese komischen Probleme, muß deswegen eine Grafik in verschiedenen Grössen erstellen.
    • Vollbild flimmert stark bei mir (50hz)
    • Eine GDI+ Funktion wie:[autoit]_GDIPlus_GraphicsDrawImageRectRect[/autoit]irgendwie implentieren, für einen Textur-Ausschnitt aus einer Grafik.
    • Und das gleiche für einen Kreis-Ausschnitt.
    • Noch einige GDI Funktionen:[autoit]
      _GDIPlus_ImageGetWidth, _GDIPlus_ImageGetHeight[/autoit]
    • Und vielleicht noch sowas wie: _GDIPlus_ImageGetPos
    • Die schon angesprochenen Sprites vermisse ich auch.
    • Child GUI´s ermölichen:
      [autoit]
      $MainGUI = GUICreate("Main-GUI", 800, 600, -1, -1)
      $RenderGUI = GUICreate("", 640, 480, 10, 10, $WS_CHILD, $WS_EX_TOPMOST, $MainGUI)
      _QuickDraw_CreateSurface($RenderGUI , 0, 0, 640, 480)
      GUISetState() ; !Auf verschiedenen Rechnern unterschiedliche Ergebnisse
      [/autoit]
    • Die schon von dir angesprochene Kopierfunktion für geladene Texturen oder Objekte.
    • Ladegeschwindigkeit bei den Texturen ist teilweise (z.B. jpg) unzureichend.
    • Und noch die von dir und Andy angesprochenen Grafik-Objekte realisieren.
    • Und evenuell noch iwie einen Support um einfache GUI´s darstellen zu können (ohne Malen zu müssen ^^ )

    Grüsse von Techmix!

    P.S:
    Du machst doch noch weiter, oder???? (Hoffentlich, ist nähmlich mal so richtig gut!!)

    6 Mal editiert, zuletzt von Techmix (14. September 2010 um 22:42)