1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. UEZ

Beiträge von UEZ

  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 14. März 2017 um 08:52
    Zitat von Oscar

    Erstmal: wieder mal eine tolle GDI+-Animation von Dir! Erde, Wolken, Mond sieht toll aus und läuft bei mir mit ca. 17 FPS. :thumbup:

    Aber astronomisch nicht ganz korrekt. Zum einen besitzt der Mond eine Eigenrotation (man sieht von der Erde aus immer den gleichen Teil des Mondes) und zum anderen dreht er sich anders herum um die Erde (in die Richtung, wie sich die Erde um sich selbst dreht). Gut vom Abstand (Erde <-> Mond) wollen wir mal absehen, das lässt sich in den Größen nicht auf dem Monitor darstellen.

    Danke für dein Feedback. Den Mond noch mit einer Rotation zu animieren, würde wohl zur einer Slideshow führen, zumindest auf meiner Kiste, daher ohne die Animation. Die Richtung ist ganz einfach zu ändern -> $z -= 0.5 in der Do / Until Schleife!

    Die Animation sollte auch eher zur "Unterhaltung" dienen und nicht eine physikalisch / mathematisch korrekte Animation simulieren. Dafür fehlen die schnellen Grafikfunktionen und meine Mathe / Physik Kenntnisse.

  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 14. März 2017 um 01:15

    @autoiter Danke für dein Feedback. ^^

    Und weil's so schön war, v1.6 hochgeladen.

  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 13. März 2017 um 21:35

    Kleines Update auf v1.5 -> Cloud Layer hinzugefügt.

    Läuft ca. mit 9~10 FPS bei $iStep = 3. GDI+ ist so lahhhhhmmmmmm.......... ;(

  • Labyrinth-Generator

    • UEZ
    • 9. März 2017 um 23:26

    Well done :thumbup: , nur flimmert, wenn ich mich durch's Lab. bewege.

  • GDI+ Mandala Creator

    • UEZ
    • 9. März 2017 um 22:46

    Sieht hübsch aus - erinnert mich an mein Screensaver... :thumbup:

    Nur solltest du, wenn du ein GDI+ Objekt in einer Schleife erstellst, es wieder freigeben, ansonsten gibt's ein Memory Leak!

    Schaue dir Zeile 92 und 145 mal näher an.

  • Wann ist AutoIt nicht mehr die richtige Wahl

    • UEZ
    • 27. Februar 2017 um 22:26

    AutoIt ist eine simple Programmiersprache, die relativ leicht zu erlernen ist und quasi die komplette Windows API benutzen kann. Ferner kann man in AutoIt zusätzlich noch Inline ASM betreiben oder selbst geschriebene DLLs einbinden, sodass die Grenzen fast grenzenlos sind.

    Die Grenzen sind somit i.d.R. das Wissen des Programmierers.

  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 26. Februar 2017 um 11:52

    Die FPS im Screenshot beziehen sich auf $iStep = 1. ;)

    Was ist die Realität?...

  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 25. Februar 2017 um 02:47

    Mal wieder was in GDI+: Echtzeit Projektion und Rotation einer Earth Map (600x300) auf eine Kugel.

    Earth4_600x300.jpg ==> Rotating Earth.jpg

    Leider ist die Animation nicht besonders performant, aber sieht dafür hübsch aus. ^^

    Inspiriert durch Eukalyptus' Black Hole Code. U :rock:


    Source Code ist nicht vollständig!

    AutoIt
    ;coded by UEZ build 2017-02-25
    #pragma compile(Icon, "c:\Program Files (x86)\AutoIt3\Icons\au3.ico")
    #AutoIt3Wrapper_Run_Au3Stripper=y
    #Au3Stripper_Parameters=/so /pe /rm
    #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_stripped.au3"
    #include <GDIPlus.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    _GDIPlus_Startup()
    Global $hGUI, $iFPS = 0, $iShowFPS = 0, $bExit
    Global Const $iW = 800, $iH = 500, $iWh = $iW / 2, $iHh = $iH / 2, $sTitle = "GDI+ Rotating Earth coded by UEZ 2017"
    Global Const $fPi = ACos(-1), $fRad = $fPi / 180, $fDeg = 180 / $fPi
    AutoItSetOption("GUIOnEventMode", 1)
    GDIPlus_RotatingEarth()
    AutoItSetOption("GUIOnEventMode", 0)
    _GDIPlus_Shutdown()
    Func GDIPlus_RotatingEarth()
    	$bExit = False
    	$hGUI = GUICreate($sTitle, $iW, $iH) ;, 0, 0, $WS_POPUP)
    	GUISetState(@SW_SHOW, $hGUI)
    ;~ 	GUISetCursor(16, 1)
    	;create canvas elements
    	Local Const $hDC = _WinAPI_GetDC($hGUI)
    	Local Const $hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH)
    	Local Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC)
    	Local Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap)
    	Local Const $hCanvas = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer)
    	_GDIPlus_GraphicsSetSmoothingMode($hCanvas, $GDIP_SMOOTHINGMODE_HIGHQUALITY)
    	_GDIPlus_GraphicsSetPixelOffsetMode($hCanvas, $GDIP_PIXELOFFSETMODE_HIGHQUALITY)
    	Local Const $hBrush_Clr = _GDIPlus_BrushCreateSolid(0xFF000000), _
    				$hBrush_FPS = _GDIPlus_BrushCreateSolid(0xFFF0F0F0), _
    				$hFormat_FPS = _GDIPlus_StringFormatCreate(), _
    				$hFamily_FPS = _GDIPlus_FontFamilyCreate("Arial"), _
    				$hFont_FPS = _GDIPlus_FontCreate($hFamily_FPS, 8), _
    				$tLayout_FPS = _GDIPlus_RectFCreate(0, 0, 60, 16), _
    				$hImage_Earth = _GDIPlus_BitmapCreateFromMemory(_Earth()), _
    				$hImage_Galaxy = _GDIPlus_BitmapCreateFromMemory(_Galaxy()), _
    				$hMatrix = _GDIPlus_MatrixCreate(), $hPath = _GDIPlus_PathCreate()
    	Local $aDim = _GDIPlus_ImageGetDimension($hImage_Earth)
    	Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hImage_Earth)
    	_GDIPlus_GraphicsDrawStringEx($hGfx, "Coded by UEZ 2017 ;-)", $hFont_FPS, _GDIPlus_RectFCreate(0, $aDim[1] / 2 - 4, 120, 12), $hFormat_FPS, $hBrush_FPS)
    	_GDIPlus_ImageDispose($hGfx)
    	Local Const $hTexture_Earth = _GDIPlus_TextureCreate($hImage_Earth)
    	DllCall($__g_hGDIPDll, "int", "GdipTranslateTextureTransform", "ptr", $hTexture_Earth, "float", -200, "float", 0, "long", 0)
    	Local $iDiameter = $aDim[0] < $aDim[1] ? $aDim[0] : $aDim[1], _
    		  $iDiameter2 = $iDiameter / 2, _
    		  $fDX = ($iW - $iDiameter) / 2, $fDY = ($iH - $iDiameter) / 2
    	_GDIPlus_PathAddEllipse($hPath, $fDX - 1, $fDY - 1, $iDiameter + 2, $iDiameter + 2)
    	Local Const $hBrush = _GDIPlus_PathBrushCreateFromPath($hPath)
    	_GDIPlus_PathBrushSetCenterColor($hBrush, 0x04000008)
        _GDIPlus_PathBrushSetCenterPoint($hBrush, $fDX + $iDiameter2 + 1, $fDY + $iDiameter2 + 1)
        _GDIPlus_PathBrushSetSurroundColor($hBrush, 0xF0000000)
    	_GDIPlus_PathBrushSetGammaCorrection($hBrush, 1)
    	_GDIPlus_PathBrushSetFocusScales($hBrush, 0.5, 0.5)
    	$iFPS = 0
    	GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit_About")
    	AdlibRegister("CalcFPS", 1000)
    	Local $fScale, $fTmp, $iStep = 2 ;the higher $iStep is the faster the animation & lower the quality.
    	Do
    ;~ 		DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush_Clr, "float", 0, "float", 0, _
    ;~ 				"float", $iW, "float", $iH) ;erase canvas background
    ;~ 		_WinAPI_BitBlt($hDC_backbuffer, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $BLACKNESS)
    		_GDIPlus_GraphicsDrawImageRect($hCanvas, $hImage_Galaxy, 0, 0, $iW, $iH)
    		DllCall($__g_hGDIPDll, "int", "GdipTranslateTextureTransform", "ptr", $hTexture_Earth, "float", 0.75, "float", 0, "long", 0)
    		For $i = 1 To $iDiameter2 Step $iStep
    			$fScale = 1 + $i / $iDiameter2
    			_GDIPlus_MatrixSetElements($hMatrix, 1, 0, 0, 1, 0, 0)
    			_GDIPlus_MatrixTranslate($hMatrix, $fDX + $iDiameter2, $fDY + $iDiameter2)
    			_GDIPlus_MatrixScale($hMatrix, $fScale, $fScale)
    			_GDIPlus_MatrixTranslate($hMatrix, -$iDiameter2, -$iDiameter2)
    			_GDIPlus_GraphicsSetTransform($hCanvas, $hMatrix)
    			DllCall($__g_hGDIPDll, "int", "GdipFillEllipse", "handle", $hCanvas, "handle", $hTexture_Earth, _
    								   "float", $i, "float", $i, "float", $iDiameter - $i * 2, "float", $iDiameter - $i * 2)
    		Next
    		_GDIPlus_MatrixSetElements($hMatrix, 1, 0, 0, 1, 0, 0)
    		_GDIPlus_GraphicsSetTransform($hCanvas, $hMatrix)
    		_GDIPlus_GraphicsFillRect($hCanvas, $fDX, $fDY, $iDiameter, $iDiameter, $hBrush)
    		_GDIPlus_GraphicsDrawStringEx($hCanvas, "FPS: " & $iShowFPS, $hFont_FPS, $tLayout_FPS, $hFormat_FPS, $hBrush_FPS) ;draw background message text
    		_WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) ;blit drawn bitmap to GUI
    		$iFPS += 1
    		If $bExit Then ExitLoop
    	Until Not Sleep(10)
    	AdlibUnRegister("CalcFPS")
    	;release resources
    	_GDIPlus_BrushDispose($hBrush)
    	_GDIPlus_PathDispose($hPath)
    	_GDIPlus_MatrixDispose($hMatrix)
    	_GDIPlus_ImageDispose($hImage_Earth)
    	_GDIPlus_ImageDispose($hImage_Galaxy)
    	_GDIPlus_BrushDispose($hTexture_Earth)
    	_GDIPlus_FontDispose($hFont_FPS)
    	_GDIPlus_FontFamilyDispose($hFamily_FPS)
    	_GDIPlus_StringFormatDispose($hFormat_FPS)
    	_GDIPlus_BrushDispose($hBrush_Clr)
    	_GDIPlus_BrushDispose($hBrush_FPS)
    	_GDIPlus_GraphicsDispose($hCanvas)
    	_WinAPI_SelectObject($hDC_backbuffer, $DC_obj)
    	_WinAPI_DeleteDC($hDC_backbuffer)
    	_WinAPI_DeleteObject($hHBitmap)
    	_WinAPI_ReleaseDC($hGUI, $hDC)
    	GUIDelete($hGUI)
    EndFunc   ;==>GDIPlus_RotatingEarth
    Func _Exit_About()
    	$bExit = True
    EndFunc   ;==>_Exit_About
    Func CalcFPS() ;display FPS
    	$iShowFPS = $iFPS
    	$iFPS = 0
    EndFunc   ;==>CalcFPS
    ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2016-12-01
    ...
    Alles anzeigen

    Bitte Dateianhang herunterladen!

    Mit der Variable $iStep in Zeile 73 kann man die Geschwindigkeit anpassen. Je höher desto schneller, aber die Qualität wird auch schlechter.

    Dateien

    Rotating Earth.au3 128,94 kB – 560 Downloads Rotating Earth v1.5.au3 465,54 kB – 568 Downloads Rotating Earth v1.6.au3 501,67 kB – 526 Downloads Rotating Earth v1.7.au3 510,76 kB – 573 Downloads
  • Pic in Pic Generator

    • UEZ
    • 13. Februar 2017 um 23:04

    Die Hauptschleife produziert ein Memory Leak, d.h. du öffnest in der Schleife immer wieder neue GDI+ Handles ohne diese wieder freizugeben.

    AutoIt
    For $i = 0 To $iImageHeight - 1 Step 1 ; Y Achse pro Pixel ein Bild generieren!
    		For $j = 0 To $iImageWidth - 1 Step 1 ; X Achse pro Pixel ein Bild generieren!
    ...

    _GDIPlus_BitmapGetPixel ist relativ langsam -> schaue dir mal die _GDIPlus_BitmapLockBits Funktion an und wie man die Pixel Farbe ausliest. Innerhalb dieser Schleife solltest du auch keine Variablen deklarieren, macht keinen Sinn und kostet nur Zeit.

    Ansonsten funzt der Code. :thumbup:

  • Pic in Pic Generator

    • UEZ
    • 11. Februar 2017 um 14:59

    Und das Skript ist wo? Ansonsten macht es keinen Sinn.

  • FModMem UDF build 2019-11-24

    • UEZ
    • 31. Januar 2017 um 00:06

    Hier eine UDF zum Abspielen von folgenden Musik Formaten:

    Code
    - .MOD (protracker/fasttracker modules)
    - .S3M (screamtracker 3 modules)
    - .XM (fasttracker 2 modules)
    - .IT (impulse tracker modules)
    - .MID (MIDI files)
    - .RMI (MIDI files)
    - .SGT (DirectMusic segment files)
    - .FSB (FMOD Sample Bank files)
    - .MP3
    - .OGG
    - .WAV
    - .MP2 
    - .RAW
    Alles anzeigen


    Download: FModMem UDF build 2019-11-24

    Folgende Funktionen sind hinzugefügt:

    Code
    FMUSICMEM_FreeSong
    FMUSICMEM_GetBPM
    FMUSICMEM_GetGlobalVolume
    FMUSICMEM_GetMasterVolume
    FMUSICMEM_GetName
    FMUSICMEM_GetNumChannels
    FMUSICMEM_GetNumInstruments
    FMUSICMEM_GetNumOrders
    FMUSICMEM_GetNumPatterns
    FMUSICMEM_GetNumSamples
    FMUSICMEM_GetOrder
    FMUSICMEM_GetPaused
    FMUSICMEM_GetRow
    FMUSICMEM_GetSpeed
    FMUSICMEM_GetTime
    FMUSICMEM_GetType
    FMUSICMEM_IsFinished
    FMUSICMEM_LoadSong
    FMUSICMEM_LoadSongEx
    FMUSICMEM_OptimizeChannels
    FMUSICMEM_PlaySong
    FMUSICMEM_SetMasterVolume
    FMUSICMEM_SetOrder
    FMUSICMEM_SetPaused
    FMUSICMEM_StopAllSongs
    FMUSICMEM_StopSong
    FSOUNDMEM_Close
    FSOUNDMEM_DSP_Create
    FSOUNDMEM_DSP_Free
    FSOUNDMEM_DSP_GetActive
    FSOUNDMEM_DSP_GetFFTUnit
    FSOUNDMEM_DSP_GetSpectrum
    FSOUNDMEM_DSP_SetActive
    FSOUNDMEM_DSP_SetPriority
    FSOUNDMEM_GetAmplitude
    FSOUNDMEM_GetChannelsPlaying
    FSOUNDMEM_GetCPUUsage
    FSOUNDMEM_GetCurrentLevels
    FSOUNDMEM_GetError
    FSOUNDMEM_GetFrequency
    FSOUNDMEM_GetGetSurround
    FSOUNDMEM_GetMaxChannels
    FSOUNDMEM_GetPan
    FSOUNDMEM_GetPaused
    FSOUNDMEM_GetVolume
    FSOUNDMEM_Init
    FSOUNDMEM_SetPaused
    FSOUNDMEM_SetSpeakerMode
    FSOUNDMEM_SetSurround
    FSOUNDMEM_SetVolume
    FSOUNDMEM_SetVolumeAbsolute
    FSOUNDMEM_Stream_Close
    FSOUNDMEM_Stream_FindTagField
    FSOUNDMEM_Stream_GetLength
    FSOUNDMEM_Stream_GetLengthMs
    FSOUNDMEM_Stream_GetNumTagFields
    FSOUNDMEM_Stream_GetOpenState
    FSOUNDMEM_Stream_GetPosition
    FSOUNDMEM_Stream_GetTagField
    FSOUNDMEM_Stream_GetTime
    FSOUNDMEM_Stream_Net_GetStatus
    FSOUNDMEM_Stream_Net_SetMetadataCallback
    FSOUNDMEM_Stream_Net_SetProxy
    FSOUNDMEM_Stream_Open
    FSOUNDMEM_Stream_Play
    FSOUNDMEM_Stream_PlayEx
    FSOUNDMEM_Stream_SetLoopCount
    FSOUNDMEM_Stream_SetPosition
    FSOUNDMEM_Stream_SetTime
    FSOUNDMEM_Stream_Stop
    Alles anzeigen

    Der Aufruf der DLL erfolgt aus dem Speicher.

    Viel Spaß.

  • Assemblercode - Noch optimierbar?

    • UEZ
    • 29. Dezember 2016 um 00:09

    Intel Core i5 4300U:

    Code
    C:\Temp>SSE.exe
    ret1= 6.064393047313  ret2= -5.278994884167   summe= 3.14159265258555
    SSE Duration mSec 2593.268000
    
    
    C:\Temp>AVX.exe
    ret1= 3.465683017203  ret2= -2.761371315559  ret3= 2.598710030113  ret4= -2.517623568609  summe= 3.14159265259144
    AVX Duration mSec 2763.371000
  • Assemblercode - Noch optimierbar?

    • UEZ
    • 6. Dezember 2016 um 23:48

    Ich habe mal den FB Code als x64 laufen lassen -> Resultat siehe oben Post#31.

    Bei einem Thread die Laufzeit mehr als halbiert!

  • Assemblercode - Noch optimierbar?

    • UEZ
    • 6. Dezember 2016 um 23:29

    Top :thumbup:

    $n = 1000000000 -> Intel(R) Core(TM) i5-4300U CPU:

    Code
    Threads:   1   Time: 2922.8ms   PI: 3.141592652586 
    Threads:   2   Time: 1786.9ms   PI: 3.141592652591 
    Threads:   3   Time: 1485.4ms   PI: 3.141592652598 
    Threads:   4   Time: 1383.9ms   PI: 3.141592652593 
    Threads:   5   Time: 1476.1ms   PI: 3.141592652591 
    Threads:   6   Time: 1398.5ms   PI: 3.141592652588 
    Threads:   7   Time: 1439.3ms   PI: 3.141592652589 
    Threads:   8   Time: 1397.7ms   PI: 3.141592652586 
    Threads:   9   Time: 1385.6ms   PI: 3.141592652587 
    Threads:  10   Time: 1388.6ms   PI: 3.141592652590
  • Assemblercode - Noch optimierbar?

    • UEZ
    • 6. Dezember 2016 um 16:41

    @alpines: ich habe den Code jetzt auch 4 Threads modifiziert. Ich vermute, dass die Unterschiede von der Addition der Teilergebnisse kommen.

  • Assemblercode - Noch optimierbar?

    • UEZ
    • 6. Dezember 2016 um 16:11

    Ein Thema ist mir noch in den Sinn gekommen -> Multithreading.

    Ich habe mal mit FB verglichen, wie schnell 1 Thread zu 4 Threads sind.


    Hier das Resultat:

    x86:

    Code
    1 Thread  PI: 3.14159265258805            11998.85867815465 ms for 1000000000 iterations.
    4 Threads PI: 3.14159266258921            3342.891288688406 ms for 1000000000 iterations.


    x64:

    Code
    1 Thread  PI: 3.14159265258805            5485.781099298038 ms for 1000000000 iterations.
    4 Threads PI: 3.14159266258921            2726.45756660495 ms for 1000000000 iterations.


    Ich habe 1.000.000.000 (eine Milliarde) Durchgänge gewählt, dass man die Auslastung der CPU mitverfolgen kann -> Faktor ca. 3.6!

    Source Code:

    Spoiler anzeigen
    Code
    Type tParam
    	ende As UInteger
    	start As UInteger
    	result As Double
    End Type
    Sub Thread_Leibniz_PI(ByVal pParam As tParam Ptr)
    	Dim As Double fPI = 0.0, fSign = 1.0
    	Dim As UInteger k
    	For k As UInteger = pParam->start To pParam->ende
    		fPI += fSign / ((k Shl 1) + 1)
    		fSign = -fSign
    	Next
    	pParam->result = fPI * 4.0
    End Sub
    Function Leibniz_PI(n As UInteger) As Double
    	Dim As Double fPI = 0.0, fSign = 1.0
    	For k As UInteger = 0 To n - 1
    		fPI += fSign / ((k Shl 1) + 1)
    		fSign = -fSign
    	Next
    	Return 4 * fPI
    End Function
    Dim As UInteger iterations = 1000000000
    Dim As Double fTimer = Timer
    Print "1 Thread  PI: " & Leibniz_PI(iterations), 1000 * (Timer - fTimer) & " ms for " & iterations & " iterations."
    Dim As Any Ptr pThread1, pThread2, pThread3, pThread4
    Dim As tParam tParams(0 To 3)
    tParams(0).start = 0
    tParams(0).ende = iterations / 4
    tParams(1).start = iterations / 4 + 1
    tParams(1).ende = iterations / 2
    tParams(2).start = iterations / 2 + 1
    tParams(2).ende = iterations * 3 / 4
    tParams(3).start = iterations * 3 / 4 + 1
    tParams(3).ende = iterations - 1
    fTimer = Timer
    pThread1 = ThreadCreate(@Thread_Leibniz_PI, @tParams(0))
    pThread2 = ThreadCreate(@Thread_Leibniz_PI, @tParams(1))
    pThread3 = ThreadCreate(@Thread_Leibniz_PI, @tParams(2))
    pThread4 = ThreadCreate(@Thread_Leibniz_PI, @tParams(3))
    ThreadWait(pThread1)
    ThreadWait(pThread2)
    ThreadWait(pThread3)
    ThreadWait(pThread4)
    Print "4 Threads PI: " & tParams(0).result + tParams(1).result + tParams(2).result + tParams(3).result, 1000 * (Timer - fTimer) & " ms for " & iterations & " iterations."
    Sleep
    Alles anzeigen


    Vergleich Andy's ASM Code:

    Code
    : $pi Leibnitz = 3.14159265258555
    : Time [ms] = 2631.10135102957


    Selbst 4 Threads schlagen den ASM Code von Andy nicht! :huh:

    Oder ich den nehme gleich den ASM Code von Andy als Thread_Leibniz_PI Funktion. Dann sollte es brutal abgehen...

  • Grafik/Sound Demo (InfoBox)

    • UEZ
    • 5. Dezember 2016 um 22:13

    Old School Style :thumbup:

    Ein bissl zu bunt (für mich), aber sehr nostalgisch. :thumbup:

  • Assemblercode - Noch optimierbar?

    • UEZ
    • 2. Dezember 2016 um 23:35
    Zitat von Andy

    Wenn schon allein für diese "Pillepalle"-Anwendung mit der sehr kleinen Schleife so immense Unterschiede in der Laufzeit (vgl. UEZ´s erste Compilerversionen) feststellbar sind, was bringen dann erst Optimierungen für lange rechenintensive Schleifen!?

    Was lernen wir daraus? Shit in - Shit out. Ergo, der Compiler schafft keine Wunder.

  • VU-Meter auch für FMOD.dll?

    • UEZ
    • 2. Dezember 2016 um 23:31

    Eher so:

    AutoIt
    Func _FMUSIC_GetName($F_SongHandle)
    	Local $F_RetValue = MemoryDllCall($F_DLL, "str", "_FMUSIC_GetName@4", "ptr", $F_SongHandle)
    	If @error Then Return SetError(1, 0, 0)
    	Return $F_RetValue[0]
    EndFunc
  • File to Base64 String Code Generator v1.20 Build 2020-06-05

    • UEZ
    • 1. Dezember 2016 um 16:21
    Zitat von Cape-City

    Allerdings sind in dem Code mit dem VUMeter von dir zwei Func drin (_ASM_DecompressLZMAT und _LZMAT_CodeDecompress) welche
    in dieser Version nicht erzeugt werden (_WinAPI_LZNTDecompress).

    Genau das sind die kosmetischen Veränderungen. Das Prinzip der Funktion hat sich nicht geändert.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™