GDI+ Snowfall build 2016-01-17

   (0 reviews)
Sign in to follow this  
Followers 0

1 Screenshot

About This File

Simple snowfall using GDI+ & ASM.

Thanks to Eukalyptus for the ASM codes. :thumbsup:

 

If the script runs too slow reduce the amount of flakes in line 48.

 

For more information please visit the forum thread.

 

Happy snowing.


What's New in Version build 2016-01-17

Released

Added scroller for some warm words and enabled command line options.

You can switch now between local MP3 stream and internet stream. Further you can also set the scrolling text.

Command line options:

-local "<path to local file>"

-url "<URL to a MP3 file>"

-text "<your individual text>"

Max. text length are 500 chars.

Don't forget the double quotes after the parameters!

 

Now "We wish you a merry christmas" is the default MP3 internet stream. -> Thx goes to Chimp! :thumbsup:

Adding chimney smoke was not possible because it takes too much CPU usage and the FPS will dramatically decrease. :no:





User Feedback

You may only provide a review once you have downloaded the file.

There are no reviews to display.

  • Similar Content

    • UEZ
      Speed-up AutoIt using FreeBasic
      By UEZ
      Here some of my GDI+ examples which I boosted by coding a DLL created with FreeBasic.
       
      Plasma Variante 5:
      ;coded by UEZ build 2016-06-06 #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" #AutoIt3Wrapper_UseX64=n #include <GDIPlus.au3> #include <GuiConstantsEx.au3> #include <WindowsConstants.au3> _GDIPlus_Startup() Global $hGUI, $iFPS = 0, $iShowFPS = 0, $bExit, $pBitmap, $hHBitmap Global Const $iW = 600, $iH = 400, $sTitle = "GDI+ Plasma v5 boosted" Global Const $fPi = ACos(-1) AutoItSetOption("GUIOnEventMode", 1) GDIPlus_Plasmav5() AutoItSetOption("GUIOnEventMode", 0) _GDIPlus_Shutdown() Func GDIPlus_Plasmav5() $bExit = False $hGUI = GUICreate($sTitle, $iW, $iH) GUISetState(@SW_SHOW, $hGUI) ;create canvas elements Local Const $hDC = _WinAPI_GetDC($hGUI) Local Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC) Local Const $hHBitmap = _WinAPI_BitmapCreateDIB($iW, $iH, $pBitmap) ; much faster than _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH) 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_FPS = _GDIPlus_BrushCreateSolid(0xFFFFFFFF), _ $hFormat_FPS = _GDIPlus_StringFormatCreate(), _ $hFamily_FPS = _GDIPlus_FontFamilyCreate("Arial"), _ $hFont_FPS = _GDIPlus_FontCreate($hFamily_FPS, 8), _ $tLayout_FPS = _GDIPlus_RectFCreate(0, 0, 60, 16) $iFPS = 0 GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit_About") Local $iSizeW = 4, $iSizeH = 4, $fTime = 0.0 Local $sDLL = @ScriptDir & "\GDI+ Plasma v5 Booster.dll" If Not FileExists($sDLL) Then _BoosterDLL(True) Local $hDLL = DllOpen($sDLL) AdlibRegister("CalcFPS", 1000) Do DllCall($hDLL, "none", "Boost", "ptr", $hCanvas, "int", $iSizeW, "int", $iSizeH, "int", $iW, "int", $iH, "float", $fTime) $fTime += 0.0075 _GDIPlus_GraphicsDrawStringEx($hCanvas, "FPS: " & $iShowFPS, $hFont_FPS, $tLayout_FPS, $hFormat_FPS, $hBrush_FPS) _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) $iFPS += 1 If $bExit Then ExitLoop Until Not Sleep(10) AdlibUnRegister("CalcFPS") ;release resources _GDIPlus_FontDispose($hFont_FPS) _GDIPlus_FontFamilyDispose($hFamily_FPS) _GDIPlus_StringFormatDispose($hFormat_FPS) _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) DllClose($hDLL) EndFunc ;==>GDIPlus_Plasmav5 Func _Exit_About() $bExit = True EndFunc ;==>_Exit_About Func CalcFPS() ;display FPS $iShowFPS = $iFPS ;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iShowFPS = ' & $iShowFPS & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console $iFPS = 0 EndFunc ;==>CalcFPS Func _WinAPI_BitmapCreateDIB($iWidth, $iHeight, ByRef $pHBitmap) Local $tBMI = DllStructCreate($tagBITMAPINFO) $tBMI.biSize = DllStructGetSize($tBMI) - 4 $tBMI.biWidth = $iWidth $tBMI.biHeight = -$iHeight $tBMI.biPlanes = 1 $tBMI.biBitCount = 32 Local $aResult = DllCall("gdi32.dll", "ptr", "CreateDIBSection", "hwnd", 0, "struct*", $tBMI, "uint", 0, "ptr*", 0, "ptr", 0, "uint", 0) $pHBitmap = $aResult[4] Return $aResult[0] EndFunc ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2015-09-19 Func _BoosterDLL($bSaveBinary = False, $sSavePath = @ScriptDir) Local $BoosterDLL $BoosterDLL &= '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' $BoosterDLL &= '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' $BoosterDLL &= 'HwVggAYAigDBwBsC88PpFkBIyAfnwZMApsKT+/6ABgACxeeBQQ6FwHUH67XCBybzBWrEB4sVAhDSDxyFokADQk+EDA+EkplHlOh0oEiTOXR8gR8LgSAAAxbgNhIPt1QMJBTBVOAIZjnQDwi3FWogAXRoizVKjIAGZkAEFLuha2axAAYYi0NhCCFYCCEhB+E7AR0BLNaD7AyDoMMEgftQQXrWwiKQ88Po6SAc6WQhIBfhK+AN5EIW4QAx0usIhWY54Ap1kevOa8AsIRoU4GkgBBnAaiQs6KfAaiJZYOARicJAg+wEwfoQIGEQgA+/yGaFwLgBZAgPRcFiYg1mhdICuCFlD0TQiRODTMQUBDvkJ1VXIQwMoWImi3wkIEANLGEnUqchBr8N4ku/BHjBIHRUD78d4ky/FQFjeNN0QYX/dAUAD7/piS+LbCQgJIXtdArhAA+/UPuJfQAACijAAwsB4QApyIPAAYkHAaAUBynag8IBiQAWg8QMW15fXeLDIAQGxweCG4AwgClaCuEAxwECIQIoJAIoYyMCAAjGxwbDTOMH6JSY/QAqTwEqdgCAGaIogxlcJDwBGZsBGbFKkA+EgGMCyZBwkXUXoYbBk4F106A2i0wkYDCFyXQNwYyARjCJIG0BAgABNIXSggKqHAAENIECAYABOCGp7SQFOCIFoDEJgn2AAYCUAChbwhAA6Nv8rYAXW+Zh7her8BeI7xeqeP0XE+cXD2EXuKFUtiuAAyYYD6EXxQIcZhjtoQU4qAWgGAunBOUY5bN06AvhGUvgGeOh4RmLRBVsIXLSdDJACjARgHkaoVhgFosEhcZIwAABCMOJ9uV9AWsjQgLjIYsdcGBcxwU3IQiBDsBg9oALgZcEo8thBQAC9QICixVCB8ACkkQignQdQsgUJFEQiP8VTPU+dSyhAQK4xwVchk3RCJEAo/EInOlX4Vv1CPIayAHhXJdxBOIJojeI8wTrsvtIx5MKkQDzXKGIQJAO4giBYDZmkIPABKMhAeT/0pYBdeuQLHBN9R8gGIsdMDXABfv/hHQhwBYM/xSd8gCQ6wF19NAOgCRggAZVsBDCjDHb6wKJgMONQwGLFIVRApHgBPDryfdZoXDCUJn2VccFAQGRFOuU8QlA/yUAwgAQcQD8qwANcQD4dADwdADsdACq5HQA4HQAxHQAuHIAlmYUAPIriEMS6O9wSoSD+LFwGA+EgtMbsYEp6JIOkAlVAsnRTOkgAqGEBAG4AwHycyGAKyIsA3ww8QFk0AOJw+uyftAAmtACo7EEYoAAAZaJAAGEBqMhBegc8AJBICWJ2FvDkDQE/xwV0PEbcib6G4PsHDUgAiBxBDFwIBA4lMAAg8QcD7bA99jjER3zUiyhmMAbYDYDJAMAYXEAPU7mQLt04A/30KOc0AEgfeJJK9ALEyN0EiMEgD0QM0BcJBT/FVjRW8UI/xVccQDH/xV4xXEAxgQ7/xWE8wKwAgIYMAAcMesx3zEI/oH+QgYYifD3GNCJNVEIygaQuLAgGb9Evk8wAuvgA/Ee8p0oxwWAYwAAEAkEAMCLRQTAjVUExwWE8AD0NFGSQhVEYaAEOEEAjMGgAYtFCKMswAByDhCJRfChQQaJRfSY/xWQUwlwAyhQYCzEFaDzAP8VVHE6UBrLUQbyC5gTMuiVMEn4kQPxFVFeFYP4A3QQ85JEABbCDCBE8bCweLQe+iDgdQjyIOBeeAL6u/EyKIM9lNAJAnEFdAoMxwXCANEC+AJ0EWCD+AF0O5Ay8gNbwdADuyjQABBQtlAAQHTnZpCLAyGJ/2bQcnpBAXXt2QLxIigXNn2wKMUhJDAJ66dm2JAxwAu18AEE+XXyAJP4AfEKocijEggbBKEtwQWNgH1AFTRAFYPAIkARsOhUC/IDIIm+XHAQwUdxA8EB8AcgsAEc6DtAAPyn4ikwizVCGGG69g+O2TEIPQIcMc3bjVcEkIsACjnBdw6LegQAA08IOcgPgrIBgRLDAYPCDDnz' $BoosterDLL &= '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' $BoosterDLL &= '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' $BoosterDLL &= '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' $BoosterDLL &= '3TshADwyPEY8UDxaADxpPG08gTyLADyUPLI8yzz1ADz6PCc9UT2FAD2MPZU9nD0UAD5MPs4+3z7qAD74PgM/LD8yAD9CP0w/Yj9sAD+BP4c/oT/BAD/iP/Q/ACAAAAB0AQAAGTA8ADBGME4wWDBsADCFMN4wKDE/ADFGMVIxWTH1ADEIMg8yHDIjADK1MsgyzzLcADLjMoYzlzOeADOxM8IzyDPdADPsM/QzCTQVADQbNCU0LjRQADRZNHI0gTSUADSbNLY0xjTSADTsNAE1EjUiADUqNTI1OjVCADVKNVI1WjViADV1NZs1rDXnADX/NRk2WDZ2ADaLNpw2pDasAWAk3jbjNgg3GAA3KTcuNzM3OwA3QDdIN1E3WwA3YTdqN3s35gA38zcSOBg4LQA4lTiwOM04+AA4BjlHOXU5ggA5pznEOdE55gA57Tn7OQ06IQA6MTpLOmw6fgA6gzqIOp86rAA6ujq/Osw64QA67jr0OiE7OQA7PztPO1U7ZgA7bDtzO4U7jwA7uTvQO+o79AA7FTwnPDM8TwA8WDx8PJw8tBA8yjze0BUAPQYAPQ89FT1IPU4EPWEwFqQ9qT2yAD25PcI95T0DAD4JPg8+ND46AD5hPmc+dz6ZAD6xPr4+yD7jBD7t8Bf+PhE/G4A/Mz85P/0/QCYQMAAAeGAAETAfADAlMCwwiTChADC1MLow1TDhADDvMPYwBjEhADEvMTUxPDGGADGTMZ8xtTHEATAn3TEbMjEyPwAyRTJUMmMykgAyMzNSM5IzxAAz/jMGNA40FhA0HjQm0Bc2ND4ANFQ0pTS0NMkANO009jQSNRqANTQ1ODVENQAHUEAAAAxgAIjwBwAwUAAAHPGN8AcwMABcMmAyZDJoMlBsMnAyQAHQ4jAAoAwwGDAcsQLg8wCABDAIMAwwEBEB/w8ADwAPAA8ADwAPAA8ADwAPDwAPAA8ACAA=' $BoosterDLL = _WinAPI_Base64Decode($BoosterDLL) If @error Then Return SetError(1, 0, 0) Local $tSource = DllStructCreate('byte[' & BinaryLen($BoosterDLL) & ']') DllStructSetData($tSource, 1, $BoosterDLL) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress, 18944) If @error Then Return SetError(3, 0, 0) $tSource = 0 Local Const $bString = Binary(DllStructGetData($tDecompress, 1)) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\GDI+ Plasma v5 Booster.dll", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_BoosterDLL Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64Decode Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize) $tOutput = DllStructCreate("byte[" & $iBufferSize & "]") If @error Then Return SetError(1, 0, 0) Local $aRet = DllCall("ntdll.dll", "uint", "RtlDecompressBuffer", "ushort", 0x0002, "struct*", $tOutput, "ulong", $iBufferSize, "struct*", $tInput, "ulong", DllStructGetSize($tInput), "ulong*", 0) If @error Then Return SetError(2, 0, 0) If $aRet[0] Then Return SetError(3, $aRet[0], 0) Return $aRet[6] EndFunc ;==>_WinAPI_LZNTDecompress  
       
      3D Object Rotation v1.3.0:
      ;coded by UEZ build 2016-06-04 #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> #Region GDIPlusEx Constants Global Const $_sGDIPEX_IIDBMP = "{EB22CE37-EE56-458B-AD13-3FC836E8CE49}" Global Const $_sGDIPEX_IIDBUF = "{1CB99E61-15BA-4B1F-8C7E-25D00AE60F2D}" Global Const $_tagGDIPEX_BUFFER = "Draw int(int;int;uint); Gfx handle(); pBits ptr(); Width int(); Height int(); Stride int();" Global Const $_tagGDIPEX_BITMAP = "Bmp handle(); Gfx handle(); Scan0 ptr(); Width int(); Height int(); Stride int(); Draw int(struct*;int;int); DrawRect int(struct*;int;int;uint;uint);" Global $_aGDIPEX_ASMSTRUCT[1] Global $_oGDIPEX_D2DFACTORY OnAutoItExitRegister("__GDIPlusEx_OnExit") Global Const $_hGDIPEX_GDIPDLL = _GDIPlus_Startup(Default, True) Global Const $_hGDIPEX_D2DDLL = DllOpen("d2d1.dll") Global Const $_hGDIPEX_MOD_GDI32 = _WinAPI_GetModuleHandle("gdi32.dll") Global Const $_hGDIPEX_MOD_GDIPLUS = _WinAPI_GetModuleHandle("gdiplus.dll") Global Const $_hGDIPEX_MOD_KERNEL32 = _WinAPI_GetModuleHandle("kernel32.dll") Global Const $_hGDIPEX_MOD_USER32 = _WinAPI_GetModuleHandle("User32.dll") Global Const $_pGDIPEX_LIB_SELOBJ = _WinAPI_GetProcAddress($_hGDIPEX_MOD_GDI32, "SelectObject") Global Const $_pGDIPEX_LIB_DELOBJ = _WinAPI_GetProcAddress($_hGDIPEX_MOD_GDI32, "DeleteObject") Global Const $_pGDIPEX_LIB_DELDC = _WinAPI_GetProcAddress($_hGDIPEX_MOD_GDI32, "DeleteDC") Global Const $_pGDIPEX_LIB_RELDC = _WinAPI_GetProcAddress($_hGDIPEX_MOD_USER32, "ReleaseDC") Global Const $_pGDIPEX_LIB_BITBLT = _WinAPI_GetProcAddress($_hGDIPEX_MOD_GDI32, "BitBlt") Global Const $_pGDIPEX_LIB_GLOBALFREE = _WinAPI_GetProcAddress($_hGDIPEX_MOD_KERNEL32, "GlobalFree") Global Const $_pGDIPEX_LIB_GFXDEL = _WinAPI_GetProcAddress($_hGDIPEX_MOD_GDIPLUS, "GdipDeleteGraphics") Global Const $_pGDIPEX_LIB_BMPDEL = _WinAPI_GetProcAddress($_hGDIPEX_MOD_GDIPLUS, "GdipDisposeImage") Global Const $_pGDIPEX_ASM_OBJ_QUERYIF = __GDIPlusEx_ASMCreate("0x538B4424088B5C2410890383400401B8000000005BC20C00", "0x49890883410801B800000000C3") Global Const $_pGDIPEX_ASM_OBJ_ADDREF = __GDIPlusEx_ASMCreate("0x8B442404834004018B4004C20400", "0x834108018B4108C3") Global Const $_pGDIPEX_ASM_OBJ_RELBUF = __GDIPlusEx_ASMCreate("0x538B5C2408836B0401837B040075448B43388B531C52FFD08B433C8B53288B4B305152FFD08B43408B532052FFD08B43448B532852FFD08B433C8B532C8B4B245152FFD08B433453FFD0B8000000005BC204008B43045BC20400", "0x534889CB836B0801837B080075504883EC20488B4360488B4B28FFD0488B4368488B4B40488B5350FFD0488B4370488B4B30FFD0488B4378488B4B40FFD0488B8380000000488B4B48488B5338FFD0488B43584889D9FFD04883C4205BC38B43085BC3") Global Const $_pGDIPEX_ASM_OBJ_RELBMP = __GDIPlusEx_ASMCreate("0x538B5C2408836B0401837B0400752A8B432C8B532052FFD08B43308B532452FFD08B43288B531C52FFD08B432853FFD0B8000000005BC204008B43045BC20400", "0x534889CB836B0801837B080075314883EC20488B4348488B4B30FFD0488B4350488B4B38FFD0488B4340488B4B28FFD0488B43404889D9FFD04883C4205BC38B43085BC3") Global Const $_pGDIPEX_ASM_OBJ_BUFDRAW = __GDIPlusEx_ASMCreate("0x5356578B5C24108B7424148B7C2418B8FFFFFFFF817B0847504542752E8B4C241C5183EC08C7042400000000C7442404000000008B5328528B5310528B530C5257568B5324528B434CFFD05F5E5BC21000", "0x534889CB4989D24D89C348C7C0FFFFFFFF81790C47504542754B4883EC484C894C244048C74424380000000048C744243000000000488B43404889442428488B431448894424204D31C9448B4B104D89D84C89D2488B4B38488B8388000000FFD04883C4485BC3") Global Const $_pGDIPEX_ASM_OBJ_BUFGFX = __GDIPlusEx_ASMCreate("0x8B5424048B421CC20400", "0x488B4128C3") Global Const $_pGDIPEX_ASM_OBJ_BUFBITS = __GDIPlusEx_ASMCreate("0x8B5424048B4218C20400", "0x488B4120C3") Global Const $_pGDIPEX_ASM_OBJ_BUFWIDTH = __GDIPlusEx_ASMCreate("0x8B5424048B420CC20400", "0x8B4110C3") Global Const $_pGDIPEX_ASM_OBJ_BUFHEIGHT = __GDIPlusEx_ASMCreate("0x8B5424048B4210C20400", "0x8B4114C3") Global Const $_pGDIPEX_ASM_OBJ_BUFSTRIDE = __GDIPlusEx_ASMCreate("0x8B5424048B4214C20400", "0x8B4118C3") Global Const $_pGDIPEX_ASM_OBJ_BMPBMP = __GDIPlusEx_ASMCreate("0x8B5424048B4224C20400", "0x488B4138C3") Global Const $_pGDIPEX_ASM_OBJ_BMPGFX = __GDIPlusEx_ASMCreate("0x8B5424048B4220C20400", "0x488B4130C3") Global Const $_pGDIPEX_ASM_OBJ_BMPSCAN0 = __GDIPlusEx_ASMCreate("0x8B5424048B4218C20400", "0x488B4120C3") Global Const $_pGDIPEX_ASM_OBJ_BMPWIDTH = __GDIPlusEx_ASMCreate("0x8B5424048B420CC20400", "0x8B4110C3") Global Const $_pGDIPEX_ASM_OBJ_BMPHEIGHT = __GDIPlusEx_ASMCreate("0x8B5424048B4210C20400", "0x8B4114C3") Global Const $_pGDIPEX_ASM_OBJ_BMPSTRIDE = __GDIPlusEx_ASMCreate("0x8B5424048B4214C20400", "0x8B4118C3") Global Const $_pGDIPEX_ASM_BMPDRAW = __GDIPlusEx_ASMCreate("0x5756538B7424108B7C2414817F0847504542740E817F08475045417405E98E010000F30F7E4E0CF30F7E442418660FFEC8660FEFFF660F6FF0F30F7E6F0C660FEACD660FEEC7660FFAC8660F6FD0660FFAD6B801000000660F6EF8660F70FFE0660F66F9660FD7C783F8000F853801000083EC20660FD60C24660F7EC1660F73D804660F7EC38B47148944240C0FAFC38D04888B571801C289542408660F7ED1660F73DA04660F7ED38B4614894424140FAFC38D04888B561801C289542410B800000047660F6EF8660F70FF00B801000000F30F2AF0660FEFED8B5C24048B7C24088B44240C014424088B7424108B442414014424108B0C248A46033C000F8483000000660F6E063CFF7477660F6E0F660F60C5660F60CDF20F70C093F20F70C993660F60C5660F60CD660FFEC7660FFECF0F5CC70F5CCFF30F10D6F30F5CD0F30F59CAF30F10E0F30F58E1F30F53DC660F70D1000F59CA660F70D000660F70DB000F59C20F58C10F59C3F30F10C40F58C7660FFAC7660F6BC0F20F70C039660F67C0660F7E0783C60483C70483E9010F8F63FFFFFF83EB010F8F3FFFFFFF83C420B800000000EB0CB8FEFFFFFFEB05B8FFFFFFFF5B5E5FC21000", "0x575653415441554883EC20F30F7F3424F30F7F7C24104889CE4889D7817F0C47504542740E817F0C475045417405E99D010000F30F7E4E1066410F6EC166410F6ED0660F73F804F30F10C2660FFEC8660FEFFF660F6FF0F30F7E6F10660FEACD660FEEC7660FFAC8660F6FD0660FFAD6B801000000660F6EF8660F70FFE0660F66F9660FD7C783F8000F853801000066410F7EC8660F73D90466410F7EC94831C0660F7EC1660F73D804660F7EC38B47184989C30FAFC3678D0488488B7F204801C74989FA660F7ED1660F73DA04660F7ED38B46184989C50FAFC3678D0488488B76204801C64989F4B800000047660F6EF8660F70FF00B801000000F30F2AF0660FEFED4489CB4C89D74D01DA4C89E64D01EC4489C18A46033C000F8483000000660F6E063CFF7477660F6E0F660F60C5660F60CDF20F70C093F20F70C993660F60C5660F60CD660FFEC7660FFECF0F5CC70F5CCFF30F10D6F30F5CD0F30F59CAF30F10E0F30F58E1F30F53DC660F70D1000F59CA660F70D000660F70DB000F59C20F58C10F59C3F30F10C40F58C7660FFAC7660F6BC0F20F70C039660F67C0660F7E074883C6044883C70483E9010F8F61FFFFFF83EB010F8F49FFFFFF48C7C000000000EB1048C7C0FEFFFFFFEB0748C7C0FFFFFFFFF30F6F7C2410F30F6F34244883C420415D415C5B5E5FC3") Global Const $_pGDIPEX_ASM_BMPDRAWRECT = __GDIPlusEx_ASMCreate("0x575653558B7424148B7C2418817F0847504542740E817F08475045417405E9DA010000F30F6F44241CF30F7E560CF30F7E5F0C0F5BC00F5BD20F5BDB0F12C80F28F00F28EA0F5EE90F57FF0F58C80F5DCB0F5FC70F5CC80FC2F906660FD7C7A90F0000000F858C0100000F28D00F5CC60F58C8F30F5BC0660F5BC9F30F5BD283EC20660FD60424660FD64C2408660F7ED1660F73DA04660F7ED38B4714894424140FAFC38D04888B571889D501C2895424108B4424140FAF471001C58B46148944241C8B761889742418B800000047660F6EF8660F70FF00B801000000F30F2AF08B0C24F30F2AC1F30F10C8F30F59CDF30F2CD1C1E20289548D00F30F58C683C1013B4C24087CE0660F70EDE18B5C24048B7C24108B44241401442410F30F2AC3F30F59C5F30F2CC08B7424180FAF44241C01C68B0C248B548D008A4416033C000F8488000000660F6E04163CFF747B660F6E0F660FEFD2660F60C2660F60CAF20F70C093F20F70C993660F60C2660F60CA660FFEC7660FFECF0F5CC70F5CCFF30F10D6F30F5CD0F30F59CAF30F10D0F30F58D1F30F53E2660F70D9000F59CB660F70D8000F59C3660F70E4000F58C10F59C4F30F10C20F58C7660FFAC7660F6BC0F20F70C039660F67C0660F7E0783C70483C1013B4C24080F8C58FFFFFF83C3013B5C240C0F8C25FFFFFF83C420B800000000EB0CB8FEFFFFFFEB05B8FFFFFFFF5D5B5E5FC21800", "0x660F6E4C2428660F6E442430660F62C85756535541544155415641574883EC30F30F7F3424F30F7F7C2410F3440F7F4424204889D74889CE817F0C47504542740E817F0C475045417405E9FA01000066410F6EC066410F6ED1660F73FA04660FEBC2660F73F908660FEBC1F30F7E5610F30F7E5F100F5BC00F5BD20F5BDB0F12C80F28F00F28EA0F5EE90F57FF0F58C80F5DCB0F5FC70F5CC80FC2F906660FD7C7A90F0000000F85940100000F28D00F5CC60F58C8F30F5BC0660F5BC9F30F5BD266490F7EC04D89C149C1E92066490F7ECA4D89D349C1EB20660F7ED1660F73DA04660F7ED34831C08B47184989C50FAFC3678D04884C8B67204C89E54901C44C89E80FAF47144801C58B46184989C74C8B7620B800000047660F6EF8660F70FF00B801000000F30F2AF04831C94489C1F30F2AC1F30F10C8F30F59CDF30F2CD1C1E20289548D00F30F58C683C1014439D17CE14831D2660F70EDE14489CB4C89E74D01ECF30F2AC3F30F59C5F3480F2CC04C89F6410FAFC74801C64489C18B548D008A4416033C000F848C000000660F6E04163CFF747F660F6E0F660FEFD2660F60C2660F60CAF20F70C093F20F70C993660F60C2660F60CA660FFEC7660FFECF0F5CC70F5CCFF30F10D6F30F5CD0F30F59CAF3440F10C0F3440F58C1F3410F53E0660F70D900660F70D0000F59CB0F59C2660F70E4000F58C10F59C4F3410F10C00F58C7660FFAC7660F6BC0F20F70C039660F67C0660F7E074883C70483C1014439D10F8C54FFFFFF83C3014439DB0F8C28FFFFFF48C7C000000000EB1048C7C0FEFFFFFFEB0748C7C0FFFFFFFFF3440F6F442420F30F6F7C2410F30F6F34244883C430415F415E415D415C5D5B5E5FC3") Global Const $_pGDIPEX_ASM_BMPCLR = __GDIPlusEx_ASMCreate("0x8B542404660F6E442408660F70C0008B4A100FAF4A148B5218660F7F0283C21083E9107FF4C20800", "0x660F6EC2660F70C0008B51140FAF5118488B4920660F7F014883C11083EA107FF3C3") #EndRegion GDIPlusEx Constants Global $hGUI, $iFPS = 0, $iShowFPS = 0, $bExit Global Const $iW = 800, $iH = 400, $iWh = $iW / 2, $iHh = $iH / 2, $sTitle = "GDI+ 3D Object Rotation v1.3.0 alpha / aka Rutt Etra Izer FX" Global Const $fPi = ACos(-1), $fRad = $fPi / 180, $fDeg = 180 / $fPi AutoItSetOption("GUIOnEventMode", 1) Global Const $sDLL = @ScriptDir & "\Rutt_Etra_Izer_FX_Booster.dll" If Not FileExists($sDLL) Then _Booster_DLL(True) Global $hDLL = DllOpen($sDLL) GDIPlus_Rutt_Etra_Izer_FX() DllClose($hDLL) AutoItSetOption("GUIOnEventMode", 0) Exit Func GDIPlus_Rutt_Etra_Izer_FX() $bExit = False $hGUI = GUICreate($sTitle, $iW, $iH) GUISetState(@SW_SHOW, $hGUI) ;create canvas elements Local $oCanvas = _GDIPlusEx_BufferCreate($hGUI) _GDIPlus_GraphicsSetSmoothingMode($oCanvas.Gfx, $GDIP_SMOOTHINGMODE_HIGHQUALITY) _GDIPlus_GraphicsSetPixelOffsetMode($oCanvas.Gfx, $GDIP_PIXELOFFSETMODE_HIGHQUALITY) Local Const $hBrush_Clr = _GDIPlus_BrushCreateSolid(0xF0000000), _ $hBrush_FPS = _GDIPlus_BrushCreateSolid(0xF0808080), _ $hPen = _GDIPlus_PenCreate(0xFF0000FF), _ $hFormat_FPS = _GDIPlus_StringFormatCreate(), _ $hFamily_FPS = _GDIPlus_FontFamilyCreate("Arial"), _ $hFont_FPS = _GDIPlus_FontCreate($hFamily_FPS, 8), _ $tLayout_FPS = _GDIPlus_RectFCreate(0, 0, 60, 16) Local Const $hPath = _GDIPlus_PathCreate() Local Const $hImage = _GDIPlus_BitmapCreateFromMemory(_Ninja()) Local $aDim = _GDIPlus_ImageGetDimension($hImage) Local $i, $fX = 0, $fY = 67.5 * $fRad, $fZ = 0, $c, $iX, $iY, $bAutoIt = False, _ $iStep = 3, $fScale = 1.5, $fPerpCor = 1500, $fZPower = 0.25 Local Const $iCountX = Int($aDim[0] / $iStep), $iCountY = Int($aDim[1] / $iStep) Local $tData = Create_Rutt_Etra_Izer_Struct($hImage, $iStep, $fZPower, 1), $c $iFPS = 0 GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit_About") AdlibRegister("CalcFPS", 1000) Local $fTimer Do DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $oCanvas.Gfx, "handle", $hBrush_Clr, "float", 0, "float", 0, _ "float", $iW, "float", $iH) Switch $bAutoIt Case True For $c = 1 To $iCountX * $iCountY + $iCountX + $iCountY + 1 Translate3Dto2D($tData, $c, $fX, $fY, $fZ, $iW / 2, $iH / 2, $fScale, $fPerpCor) If $c > 1 Then DllCall($__g_hGDIPDll, "int", "GdipDrawLine", "handle", $oCanvas.Gfx, "handle", $tData.Pen(($c)), _ "float", $tData.fX(($c - 1)), "float", $tData.fY(($c - 1)), _ "float", $tData.fX(($c)), "float", $tData.fY(($c))) EndIf Next Case Else DllCall($hDLL, "none", "Boost", "ptr", $oCanvas.Gfx, "struct*", $tData, "uint", $iCountX, "uint", $iCountY, _ "float", $fX, "float", $fY, "float", $fZ, "float", $iW / 2, "float", $iH / 2, "float", $fScale, "float", $fPerpCor) EndSwitch _GDIPlus_GraphicsDrawStringEx($oCanvas.Gfx, "FPS: " & $iShowFPS, $hFont_FPS, $tLayout_FPS, $hFormat_FPS, $hBrush_FPS) ;draw background message text _GDIPlusEx_BufferDraw($oCanvas) $iFPS += 1 ;~ $fZ += 0.015 If Mod(Int($fY * 100), Int($fPi * 100)) Then ;when rotation is at 180° (Pi) Then stop rotation for some seconds $fY += -0.005 $fTimer = TimerInit() Else If TimerDiff($fTimer) > 5000 Then $fY += -0.005 EndIf ;~ $fX += -0.0333 If $bExit Then ExitLoop Until Not Sleep(10) AdlibUnRegister("CalcFPS") ;release resources _GDIPlus_FontDispose($hFont_FPS) _GDIPlus_FontFamilyDispose($hFamily_FPS) _GDIPlus_StringFormatDispose($hFormat_FPS) _GDIPlus_BrushDispose($hBrush_Clr) _GDIPlus_BrushDispose($hBrush_FPS) _GDIPlus_PenDispose($hPen) _GDIPlus_PathDispose($hPath) _GDIPlus_ImageDispose($hImage) $oBuffer = Null For $c = 1 To $iCountX * $iCountY + $iCountX + $iCountY ;~ ConsoleWrite($tData.Pen(($c)) & @CRLF) _GDIPlus_PenDispose($tData.Pen(($c))) Next GUIDelete($hGUI) EndFunc ;==>GDIPlus_Rutt_Etra_Izer_FX Func Translate3Dto2D($tStruct, $iPos, $fRotX, $fRotY, $fRotZ, $fCenterX = 0, $fCenterY = 0, $fScale = 1, $fZDeepCorrection = 1000) Local Const $fCosRotX = Cos($fRotX), $fSinRotX = Sin($fRotX), _ $fCosRotY = Cos($fRotY), $fSinRotY = Sin($fRotY), _ $fCosRotZ = Cos($fRotZ), $fSinRotZ = Sin($fRotZ), _ $f1 = $fCosRotY * $tStruct.x(($iPos)), _ $f2 = $fSinRotX * $tStruct.y(($iPos)), _ $f3 = $fCosRotX * $tStruct.z(($iPos)), _ $f4 = $fCosRotX * $tStruct.y(($iPos)), _ $f5 = $fSinRotX * $tStruct.z(($iPos)), _ $f6 = $f1 - $fSinRotY * ($f2 + $f3), _ $fXPos = ($fCosRotZ * $f6 - $fSinRotZ * ($f4 - $f5)) * $fScale, _ $fYPos = ($fSinRotZ * $f6 + $fCosRotZ * ($f4 - $f5)) * $fScale, _ $fZPos = ($fSinRotY * $tStruct.x(($iPos)) + $fCosRotY * ($f2 + $f3)) * $fScale, _ $fZPerspCorrection = 1 / ($fZPos / $fZDeepCorrection + 1) $tStruct.fX(($iPos)) = $fXPos * $fZPerspCorrection + $fCenterX $tStruct.fY(($iPos)) = $fYPos * $fZPerspCorrection + $fCenterY $tStruct.fZ(($iPos)) = $fZPos EndFunc ;==>Translate3Dto2D Func _Exit_About() $bExit = True EndFunc ;==>_Exit_About Func CalcFPS() ;display FPS $iShowFPS = $iFPS $iFPS = 0 EndFunc ;==>CalcFPS Func Create_Rutt_Etra_Izer_Struct($hImage, $iStep = 10, $fZPower = 0.15, $fPenSize = 1) $iStep = $iStep < 2 ? 2 : Int($iStep) Local $aDim = _GDIPlus_ImageGetDimension($hImage) Local Const $hIA = _GDIPlus_ImageAttributesCreate() Local $tColorMatrix = _GDIPlus_ColorMatrixCreateGrayScale() _GDIPlus_ImageAttributesSetColorMatrix($hIA, 0, True, $tColorMatrix) Local Const $hImage_Grey = _GDIPlus_BitmapCreateFromScan0($aDim[0], $aDim[1]) Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hImage_Grey) _GDIPlus_GraphicsDrawImageRectRect($hGfx, $hImage, 0, 0, $aDim[0], $aDim[1], 0, 0, $aDim[0], $aDim[1], $hIA) Local Const $iCountX = Int($aDim[0] / $iStep), $iCountY = Int($aDim[1] / $iStep) Local $tBitmapData1 = _GDIPlus_BitmapLockBits($hImage, 0, 0, $aDim[0], $aDim[1], $GDIP_ILMREAD, $GDIP_PXF32ARGB) Local $tBitmapData2 = _GDIPlus_BitmapLockBits($hImage_Grey, 0, 0, $aDim[0], $aDim[1], $GDIP_ILMREAD, $GDIP_PXF32ARGB) Local Const $iScan01 = DllStructGetData($tBitmapData1, "Scan0") Local Const $iScan02 = DllStructGetData($tBitmapData2, "Scan0") Local $tPixel1 = DllStructCreate("int [" & $aDim[0] * $aDim[1] & "];", $iScan01) Local $tPixel2 = DllStructCreate("int [" & $aDim[0] * $aDim[1] & "];", $iScan02) Local $iX, $iY, $iRowOffset, $iPixel2, $iPixel11, $iPixel12, $c = 1, $hBrush Local $iDim = $iCountX * $iCountY + $iCountX + $iCountY + 1 Local Const $tagData = "struct;float x[" & $iDim & "];float y[" & $iDim & "];float z[" & $iDim & "];float fX[" & $iDim & "];float fY[" & $iDim _ & "];float fZ[" & $iDim & "];uint pen[" & $iDim & "];endstruct" Local $tData = DllStructCreate($tagData) For $iY = 0 To $aDim[1] Step $iStep $iRowOffset = $iY * $aDim[0] + 1 For $iX = 0 To $aDim[0] Step $iStep $iPixel2 = DllStructGetData($tPixel2, 1, $iRowOffset + $iX) $tData.x(($c)) = $iX - $aDim[0] / 2 $tData.y(($c)) = $iY - $aDim[1] / 2 $tData.z(($c)) = 0x80 * $fZPower - BitAND($iPixel2, 0xFF) * $fZPower If $iX Then $iPixel11 = DllStructGetData($tPixel1, 1, $iRowOffset + $iX - 1) - 0x20000000 $iPixel12 = DllStructGetData($tPixel1, 1, $iRowOffset + $iX) $hBrush = _GDIPlus_LineBrushCreate(0, 0, $iStep, 1, $iPixel11, $iPixel12) $tData.Pen(($c - 1)) = _GDIPlus_PenCreate2($hBrush, $fPenSize) ;~ ConsoleWrite($c - 1 & ": " & $tData.Pen(($c - 1)) & @CRLF) ;~ _GDIPlus_PenSetLineJoin($aData[$d].Pen(($c - 1)), 2) ;~ _GDIPlus_PenSetMiterLimit($aData[$d].Pen(($c - 1)), 10) _GDIPlus_PenSetLineCap($tData.Pen(($c - 1)), 0x02, 0x02, 0) _GDIPlus_BrushDispose($hBrush) EndIf $c += 1 Next Next _GDIPlus_BitmapUnlockBits($hImage, $tBitmapData1) _GDIPlus_BitmapUnlockBits($hImage_Grey, $tBitmapData2) _GDIPlus_ImageAttributesDispose($hIA) _GDIPlus_GraphicsDispose($hGfx) _GDIPlus_ImageDispose($hImage_Grey) Return $tData EndFunc ;==>Create_Rutt_Etra_Izer_Struct ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2015-09-19 Func _Ninja($bSaveBinary = False, $sSavePath = @ScriptDir) Local $Ninja $Ninja &= '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' $Ninja &= '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' $Ninja &= '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' $Ninja &= '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' $Ninja &= 'KN6+2LHGFoWvF0YyTm9123rAHzm22+Njmz/2n//EAB4RAQEBAAMAAwEBAAAAAAAAAAEAERAhMSAwQWFR/9oACAECAQE/EPh0TtrwG6vIT9Lf8zn5ZwvDeMkz6SdMhNMcbbbxsSWMQw4Xft2TbM4YmOM+tm2w228DOMstvL34bd87Gvg4Nnb9lljOxpDtt0thM5Y6wNkRchwOUGBSnQkrq/qRHV0aWY8sYIlk6bF4hl2PYcOd28vVsY8ncTYj5HD/AGIkskhhJAhhLZ68vY/sxu7wyTqTjuFttthflp6khDfycWWZKtXdrxlhZG9Wzd85ZdcbbCIx6JHpLtvDxllqyAunn2nDx9v/xAApEAEAAgICAQQCAgIDAQAAAAABABEhMUFRYXGBkaGxwRDRIDDh8PFA/9oACAEBAAE/EP8AMLi5VD3DURG94IrHCWTXGMKbu6jBQuMAS4pTHtMrD/UNsTUJSNpwg7C4oaSvX+FofYytIL2TOUTmonM98Svj6S6fZEzUqpiVKgniL5/tM9ibtZyz6Zn7olFb7EqCi+WXVheQpwVKIaegLibuo8FlslRzLYD6Mr/YVzGoC3E6I8CC/W/1A1a6oSWzu2q5c2xLbEahVFV3cUFKLr5jJqVWoI00JruGa4GHEEWmsriPApccsqSE8wdovh2IZQFlhb/RL4QjoZXFvJLHYzVKbRzbJ94J0L6QutcBB1CoutiVgwREV8srHsCAbAO4FAUbazB02PmWl+iXCFmKxECa9hG8q11HlwC1PxfBFiLBcw/knmUVaUcGt1c2Ot5v8XHwZwUp7y9hkFHET/WRRYuwPvmX/FZTL1viCqSmqqHrZTBi1Rpk5Ma+IqVfIEC+NHpD+5LJgufs2RqoEAKpX5IZtcGqnqfUvQqxbATdhZi2PATWl7GWq3P7lhiteIl2jUDcbBZybqvi2GHG+iiKlKeYc1L4xLtLZfBK1oTZ3Apfs5MQQM18FwJJbXSSzFdAlt+fxG3SmUqiAADHEDdDVccwljkO8Hr3KUoYp8ywVSuxPEMgvmBLFVIHJauwI/cEMp7o3+IjYTSjxo1VRNeYf5xn2uOQ5LS08MRGi5ps9RPuVR40qm/KkNsqsCvdhgEBeX6D/rpzFtlAUGuGLHIYVSqioNggxPamVWkEKYGC8f7K4393qHKVVS0/0cyevP5jUsOOxpu9HUGyAoFArpvUF7RYl/Uw0gprSnrLbiAopvcYDy4mcm2kYFBCCgkujMt015ljyt2GJibDhamMJZjNgw3aXjHUAyDEaGQaiUm9nxqGc7OzUFkDbY3+oi7BN3lhN2D0Poh0Y2YHru40Wguhr/v1HFrSzgXdajsxSWENBjUKiZbLv1O69IsiUzuvS3H3EFSMWOJn9N2v8wFrxL3XmXCtEMKAihuSuB/xGKE91X/wDLmhtBVHtAdIvYquMIbgGYrG5UhLwL9dPMygPIaQwV7wM5eMadHp9ZcylAcvpAhZBccOcwsC/wDviJ2BnmAR39Qgo7x4hglphrnzFXfySqYN7uVtdU4W9QLqShJWS6ZqEZ1lcUVnPjES7oYHBevX/mIrKaEX5Xp0QEXdrch/z/cJA7SqqY4y7VEasTGVHtzMdT3eDHFdS/5FNMFbVPT/ALhLgua6p5gjVBlkGr3cQbisXxfrEepX8W7nMErSR6mjPRePhzKV8xTFxTf034jStgG/JngM3BgsqLc2URDgW5UaD3JU2BR2WFoAKerjksvDQ79Ibu49IHnAhJtfTMFhRSVSbnKpmK6GrWLaSfuITxjVvNXu17QJBefLcfv4TBiqgSH1UUghbVcAS6v4pb9Dj/CmUKoeamasfNzaP2jFONW6lf61VAsoBQ1XmNDOo2lB84qYSgnBpMJw8cRhfkWRpoE8BiNwSMGkSak9mUSh/l3ZXuXAVglAc1MQQFF4sB6guKjfEwU7a5eJQGepQs0vbzLkXEKvkfMWGa8DaesyYLDeYkBKRu2o61jfGdQgrZM0x7dx' $Ninja &= 'gSMAJS/+1BWFVV0sbvz/AFMOAvvyPoy3zCmx1YwVB6CANAYOqOo82VUpN8/wCtEZKAS7UoHOr9GWhLhQKhYQp5hRqKGAnpNUV5hLSO8YjmwjfVtX/obKwsXH7Mk08wysdYIS0HmAHAs8X9RaD7EKcsvpNMufWJvRFXYo7xGaCHDmvmLKA7GGO1DOkaio6SVCOF4jhtiE7tLYo17Z+pTAeSi9HBACCMWuzLd+JqI97PfqACKUu3KTMMgvPUvHYwJ+It+EI6dkwGLJ3hUd3sVbp79Dge45YCoQO14PSCGtzVu++Jbx/AKx8Ik8ZhQgqrWJW65FIVKL/M8JKDG3pETFHwf1BEQC1RPaAZQvFwazh9LmbaywwG5vURExfiJX+KhE7nABrxLwC3ndy9BJYq7gnbFa+41SG4yfuVU700nxKWH0H6lIj7wIrMnGCQWBRYjxHGWzw8xMij0JSkLcMTLFeGT+42avvzEr+MKp0SrX0Ap79XqBXAAGNduIqG2WU3jrzM5Z2JeojFhMCmQiuwA7HfqeIgQKDUZa/HpKxOoTS+f/ACCNQpymKJ07ItEZcC17Xf8AIlTfjUWx5d6IGLifBDClK/6zCl78tphUdwsZlXvL+4zZCruKDfzNaPVkcoqwuB7OIJa7TfvuWAc1q+GOFK9Cy+3ED0mN+/ZEbYF4dygSxtfH+BGJV2+sIbKXn9RPegIZ8dxlr9r36YmM2ry7jXmXhWIJWIKoa9455O4Ate1JUCKDSQcQ70WQ530t+4yKLoNiu58MgCem5hFF5GhEA78Bh85/9j7s6zUr+HN2rgUNNFWDtP6lmt6qoK9CVQi5Wtt4xAkCbAh8wQVU2ND3xHtawGX4AxMWl9FKuX/KWo13AbF0uhzHSmA5BX3UqOFR2rAKr8UAfLmEIetqqXl6lNNWTB7W237gbhfQ/UQxYivIwlFa2+Y6KL3HS/QY0thtSt8/qF8YwREJXpfpYdhiltup4Qf5N4iWIthT8HEwHZZmAPm9wsrTRwQ1s1xCdGR65i5exVo+kRCFSrq4sZYshHpkh3Sppq/TlAi5MwhVTIlGACJYn5qPogniNoyhb6S6tOaPMCjVDMuVVaSrrzUciOf5KkLaYFQAPiRBAGaBZttxSD+4GsWvzfEuNCbWYTN5bBDvf800YuVhoB3aIkyQd45hGGFhnzBdbBRXRxDAjfY8koQ8TgYIUxTWre4IxbTx3AygMFYegvHPmVpyLSwvK3Dq0t5uomZjOK8zgG/iUlB+0hCog8EVBXnY5Nhov7rEcqt3t/AW1Kc+1w3AHEnwhkLWWVzxGFlrvgiFkGsMfM9A4zMejZivtrcOpVkYOwwH9K+47mikEOEZIteWOkAF4B/qG6XgYfP6gVQKeJXgKVhxVQyhbNtksOcopTqBGv4G5BykzVLDlWU0A1fOCZL4uF21a4REiIcP7I/LO7KlwIAZjvPQZZw54jQXlbDErloOohaDBWxvOuYDvEBCH5fxBmI+WviMWlfMRUTj6oMGAhoJlD85hFXWL4jOKXogKvI9B8xFIOUvHlnYmxX334ieamRMkaECc7/cuQrlpj5jtAGklAAOij5gih33v43FLHW/6lcCu04IFgDwj6v6izHRdmfCaZRUHbzoezCqTlUkmNci6bHiIFa0NWE3jRGdqN1Hl1CtKKOTeqJUpJcgSAOrChmuYFzdCFe/MOLh30rPH4l0JX5ZXRG+5eFSbKxCaCY4HiP5IxxOZpHby9IIUFB8zqelRuWCes4R4alarrO5axhY3/FJnS4IwzQt1doQgFYwXEigOrpCoCmjZKJ54V44Y1VLShvBo+o5xOrMefliiGA6CaG+9xyt4yJly3UbDuaF6dX6xVvZtFwEMgL4PqK7jApofv5ghNTjMOjm9QuEKWV+c+8Q1cbVNvo5GHZwLypGTHj34uBKhoQH7gS4eiXDBOw25RhAhbnOZVMtH4iTYftgrQeOIoPrnPr9YMApVZnyv6igsHFoXmvHmaCB' $Ninja &= '1RPjURT92H6lkdv09U5Zm2AuUUN4IugUSw11qO4obNLOHonUpnzqq81dRCUEp8LqiHkA3pYYMW4gGkLUZqEptgR0WUBeSUIODJ1FUFdaMzC9veYA2FI3TBFtfaMEjJVkYAVSnDmcxwr27tVvHvBchpOy7e4qiBLX7vEt4yxVMHUrQNVDgipWRhNCkaUOy+PWKU9tgoODD9wBTWgzngnM261TLbLu6naG5U9atsjd2XLwKt+yA4higQ3k4l+gmjCHVwOy0VfcQUTDMS69tS5qzymIqvNi6S5iUZq+PiG6VUFRmchbEdnEQAOvMcQluuYFiqjDg9+fEVKoe2CEKpRstqvl9oC6LQtep4jFtYM4yQxEpGwabQ/cSZSC8WkAqJ8BAAQCJVHEoKH5LGYWWrF/91Lq0hsf+UvZslDC0FTk214i5558Y9JybZMy07ACk1Ggl5NdxFFNF9RwW5IaNV3bKBUvqNBXb3DSatqCQfJVZf1EKIK7WKi9KeX5lAiNcdeZlspKzHjTKKIIu23vESIga0cES4QNKsR+8RoL1BMYySlCCDrTx1CKULsFqpYGjdyaY95SZON3KFhWrHB7s3mis03+IIKNHKrlC0XgYCtEBOTm4Amg84gq+FfiBQ3TzMsHUBo5EaZWO9QzGW6yjlT1UqLSjL1iEuq7i5pOhMzbXFLt+JcoLWUKPqw1NCeWgbzy64hR+IloUONv/sqOMs8OP7mZ0DRyav7gD7SvyB7yQoEgor2+lQUR7piflgstbBowrSMiNzWZyiwk7zBwE+QsXhZXYg/cDKKsGn5iqqyLP7Rtt1/5saLnGQ/DLQ2YlAmlrfDHDAcG3WdzPgo7DDCwEBySxh2MQ9SjWYFqgzT6V+4JcAxn8EBs0UDSMtMHF/1F55LeQgLEA65hrRlNBj1ZdQAFqjQGI1Kr3ZTgfuZS2Ybb7zGFe3FsdpyK/iZQeopPRm6ZvG/8+0cdO1wy6PEmmMQbx2P7im8L5uCsk9swMFv6YIgOXyQoOPrimUWacxpeh+IjwtU6hIybC1z6f93CcxQ6/W5VoR0F61MGN2zkMqoV93OZ0ELdX+Z25TU/Ednh6FYgTLuXC8rvuU7A8QFWc8VqIrEap9ziVx03UFVjrklCXG6AyhXlCxjfF4uZGZ1QSNbByWDXr3HrNyU09kOwQO1tf1KbyOXHtqKKVtQzK2h4YoGQqFRQT2iUQB3iI7I+a/P+ouaOKzfmYxiryH8RnLS+RhlH0SGAD3kv5YufP4/gahlr0d9zBFdrr6hiEbrRGhZpaWRJipPVNm8sUczLpdXmBTAX1cOwzwzeDYTKlhnnIr63A3otgf7l6Bvar9R/UnAfbcdsvav/ADOoKWKC+T5giywckCb/AI4/xTtTyEFQR6vySkrfefc2bD0PiKT3iD8wz18T+4UVl1hbMhG8cS4z7VKSAdgbYWeSAlZOpUyJzlwRrEw7xMKx2KPfuLf+ZBcK2KdQEDG4AKx6jIwW5pRD55ZxfP8AD/qJld0Qlc1qA5F6IIAC3+pwwhQcf6icQuijpExvPhtSgCujmUYsNXDmIvl/g0/4f//Z' Local $bString = _WinAPI_Base64Decode($Ninja) If @error Then Return SetError(1, 0, 0) $bString = Binary($bString) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\Ninja.jpg", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_Ninja Func _Booster_DLL($bSaveBinary = False, $sSavePath = @ScriptDir) Local $Booster_DLL $Booster_DLL &= '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' $Booster_DLL &= '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' $Booster_DLL &= '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' $Booster_DLL &= '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' $Booster_DLL &= 'FoPrYDEBAIPCKDnIdekxwvaiCmaQidYCAedztDHbBxYEIRgjDsTASMSFwGIBD0XY4QLjh1PqG+Ep7AgDBpMCBnQqJUAkDE4ktoMDEouAQCT30MHoH8AlSeYJ6/IjAY2/oQBXGFYx/2ByJzKLdCRoGHQJ4Sv4QDikEybF4wnp4iGLmICgAEAeWNqJXKKuQgRDQwTGBIHDohDadQvruongUYPuQCIUi0pgziB1B4tCDEAEHIVA9n/oi3oMYAxbyF6Bx8IF+F/kE4ACHDH/Qw/iaSJxwgwAEeW5UVA9YXqNTCQgDHIVgelhAYMJDAAt4QACA3frKcGJAAJYWcAH/yXggHZV4QDc5ADY5ADI5ACw1eQArOQApOQAkOIAoHcAkFWJ5V3pF+EDJsrBrcAUABAwM/tDi+EB0OABYQEfAB8AHwCDHwAfAPA/AACAMAB4AABUcAwxDAEAADwAAE7mQLuxGb9E/z8DDwAPAA8ADwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAP8PAA8ADwAPAA8ADwAPAA8ABw8ADwABAGxpYmdjAGotMTYuZGxsAABfSnZfUmVnAGlzdGVyQ2xhEHNzZXN0AoBjAIAQgGAAEOAnQEEAaW5ndy13NjQAIHJ1bnRpbWUAIGZhaWx1cmUAOgoAQWRkcmUAc3MgJXAgaGEAcyBubyBpbWEAZ2Utc2VjdGkAb24AICBWaXIAdHVhbFF1ZXICeYIDZWQgZm9yACAlZCBieXRlwHMgYXQgYVYEsQdhNgNQcm90cARVA3cAaXRoIGNvZGUgIDB4JXhxAlVuAGtub3duIHBzAGV1ZG8gcmVsSG9jYXEHIHCgA28AY29sIHZlcnPhAQElZC4KsgU/AzUDAGJpdCBzaXplAbUCR0NDOiAoaQA2ODYtcG9zaQB4LXNqbGotcgBldjAsIEJ1aRRsdAAMIMARR1ctFlfAESAHatAKKSA0EC45LjP7A3dpbhwzMv8D/wPxAzUuMvwuMP8D/wP/A/8D/wP/A///A/8D/wP/A/8D/wP/A/8D//8D/wP/A/8D/wP/A/8D/wP//wP/A/8D/wP/A/8D/wP/A///A/8D/wP/A/8D/wP/A/8D//8D/wP/A/8D/wP/A/8D/wP//wP/A/8D/wP/P/8D/wP/P///A/8D/wP/A/8D/wP/A/oDxbQAai1yZXYwLCAAQnVpbHQgYnkAIE1pbkdXLVcANjQgcHJvamUAY3QpIDQuOS4AMwAAAEdDQzoAIChpNjg2LXAAb3NpeC1zamxB9P13aW4zMuUPNfAuMi4wwA8/AD8APwAPPwA/AD8ACQCtzFFXweEAMrAAAAHgAGUAKijgASxgADBgABAVCAAATeAAAABSdQB0dF9FdHJhXwBJemVyX0JvbwBzdGVyLmRsbP4AYgH/DR8AHwAfAB8AHwB/HwAfAB8AHwAfAB8AEwBQAsCIAcUAABzBAFQAWGgCdGACJGACxLVoAthgApBgAhEA6OQCsvjgABDCYEhgADpgAKpYYABsYACCYACYYACqtmAAxmAA2mAA7GAAgvxgABbDAAAmYACqQmAAWmAAdGAAhmAAqp5gALxgAMRgANhgAILmYAACxAAAFGAAVQEAJOAAMmAAQGAATlVgAFpgAGJgAGpgAHRVYAB+YACGYACQYACaVWAAomAAqmAAsmAAvFVgAMZgANBgANxgAOb9YADw5Ap/GX8Zfxl/GX8ZAX8ZsABHZGlwRAByYXdMaW5lAAAA1ABEZWxldABlQ3JpdGljYQRsU5BaaW9uAO8YAEVu4DxtAQCwAQBHZXRDb25zb6BsZU1vZBAEthgBAFNjcmVlbkJ1AGZmZXJJbmZvA/AN0gF1cnJlbnQAUHJvY2VzcwBCxT8BSWQAyVgBVCBocmVhZEABAAICAlABTGFyZ2VzAUUGV2luZG93UyBpemUAA9MBc3QARXJyb3IAABUD8QBgCXVsZUhhboBkbGVBAABFMQEhYQZBZGRy4QcAZhER' $Booster_DLL &= 'AVN0ZCMCAAB7BfIAeeBLbVRpbWVAQXNGaWxlkQAAApeRAVRpY2tDb4R1bhBN6wJJbgARDGFswAetESYDTGUEYXZuAQCTA1F1AGVyeVBlcmZvQHJtYW5jZcIEZaByAAEEU7wUDRgBi2MOUxRncQFVbmgCC8BkRXhjZXDBBXAKAXEEdARTbGVlcAAAggRUZXJtaRBuYXRlpRYAiQQIVGxzQAxWYWx1MGUAlgRPBEQEALYABFZpcnR1YWzFsAN0wAsAALkVAQIMQAAANwBfX+BdbwBuZXhpdACRAEBfYW1zZ1/CAAAAtgBfY29udHIAb2xmcAAAXgGMX2mAEnAFbQBisAAAb2IAAMwBX2yAb2NrAHMCXxQEIEgDX3VuMgEfBABhYm9ydAAlBDOwC/IEKwQwFLABAAAENgQTAUkEZnB1wHRzAE0EZkAm0DcYBGZ3sBaQAIcEbQG0Ao8EbWVtc2VZ0AKpBGAAMAFhAB69QARzdHJsZbAYwAGRAG5jbXAA4QQAdmZwcmludGaLQDEwTWdQMWx1c+Jr/hTwAD8APwA/AD8APwA3AABLRVJORUwzMv9CB3F2MAE/AD8APwA/ADUAwG1zdmNydBUGDwAbDwAAABAQAAQA4CcA/BCQMABPAg8ADwAPAA8A/w8ADwAPAA8ADwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAD8PAA8ADwAPAA8ADgDgAAQQHDAADGQAEBj+0D8fDwAPAA8ADwAPAA8A/w8ADwAPAA8ADwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAB8PAA8ADwAPAAUAJ7MAABAAANAAAAAAHTAiME8wYjAAZzCHMJAw1zAA+jAFMRMxIDEANjFcMYExlDEAwjHMMdgx4jEAAjIUMhsyITIASDJPMloygTIAiDK5MhU0VzQAYjRoNHw0hTQAlTSeNHE3dzcAojmxObw52TkA6zkCOic6NzoAQDplOm46dzoAhDqrOtc6/DoAFDuDO4w7oTsA3TshPDI8RjwAUDxaPGk8bTwAgTyLPJQ8sjwAyzz1PPo8Jz0AUT2FPYw9lT0AnD0UPkw+zj4A3z7qPvg+Az8ALD8yP0I/TD8AYj9sP4E/hz8AoT/BP+I/9D8AACAAAHQBAAAAGTA8MEYwTjAAWDBsMIUw3jAAKDE/MUYxUjEAWTH1MQgyDzIAHDIjMrUyyDIAzzLcMuMyhjMAlzOeM7EzwjMAyDPdM+wz9DMACTQVNBs0JTQALjRQNFk0cjQAgTSUNJs0tjQAxjTSNOw0ATUAEjUiNSo1MjUAOjVCNUo1UjUAWjViNXU1mzUArDXnNf81GTYAWDZ2Nos2nDYApDasNrs23jYA4zYINxg3KTcALjczNzs3QDcASDdRN1s3YTcAajd7N+Y38zcAEjgYOC04lTgAsDjNOPg4BjkARzl1OYI5pzkAxDnROeY57TkA+zkNOiE6MToASzpsOn46gzoAiDqfOqw6ujoAvzrMOuE67joA9DohOzk7PzsATztVO2Y7bDsAczuFO487uTsA0DvqO/Q7FTwAJzwzPE88WDwAfDycPLQ8yjwC3oCuAD0GPQ89gBU9SD1OPWHAWACkPak9sj25PQDCPeU9Az4JPgAPPjQ+Oj5hPgBnPnc+mT6xPoC+Psg+4z7twF8A/j4RPxs/Mz8QOT/9PwCPMAAAAlyAAREwHzAlMAAsMIkwoTC1MAC6MNUw4TDvMAD2MAYxITEvMQA1MTwxhjGTMSCfMbUxxMCS3TEAGzIxMj8yRTIAVDJjMpIy7jIA9jL+MgYzDjMAFjMeMyYzRDMASDNUMwBAAADKDMAWEMAYAFDAAYABOijAGDDBAwCuwQMMMCgYMBzBA+DDAwQw8AgwDDBCDD8APwA/AAM/ABYA' $Booster_DLL = _WinAPI_Base64Decode($Booster_DLL) If @error Then Return SetError(1, 0, 0) Local $tSource = DllStructCreate('byte[' & BinaryLen($Booster_DLL) & ']') DllStructSetData($tSource, 1, $Booster_DLL) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress, 17408) If @error Then Return SetError(3, 0, 0) $tSource = 0 Local Const $bString = Binary(DllStructGetData($tDecompress, 1)) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\Rutt_Etra_Izer_FX_Booster.dll", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_Booster_DLL Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64Decode Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize) $tOutput = DllStructCreate("byte[" & $iBufferSize & "]") If @error Then Return SetError(1, 0, 0) Local $aRet = DllCall("ntdll.dll", "uint", "RtlDecompressBuffer", "ushort", 0x0002, "struct*", $tOutput, "ulong", $iBufferSize, "struct*", $tInput, "ulong", DllStructGetSize($tInput), "ulong*", 0) If @error Then Return SetError(2, 0, 0) If $aRet[0] Then Return SetError(3, $aRet[0], 0) Return $aRet[6] EndFunc ;==>_WinAPI_LZNTDecompress #Region GDIPlusEx functions Func _GDIPlusEx_BitmapCreate($iWidth, $iHeight, $iColor = 0) $iWidth = Int($iWidth) $iHeight = Int($iHeight) If $iWidth < 1 Or $iHeight < 1 Then Return SetError(2, 1, False) Local $tBmp = __GDIPlusEx_BitmapCreate($iWidth, $iHeight, $iColor) If @error Or Not IsDllStruct($tBmp) Then Return SetError(9, 2, False) Local $oBitmap = __GDIPlusEx_BitmapCreateObject($tBmp) If Not IsObj($oBitmap) Then __GDIPlusEx_BitmapDispose($tBmp) Return SetError(9, 3, False) EndIf Return $oBitmap EndFunc ;==>_GDIPlusEx_BitmapCreate Func _GDIPlusEx_BufferCreate($hWnd, $iWidth = 0, $iHeight = 0) $iWidth = Int($iWidth) $iHeight = Int($iHeight) If $iWidth < 1 Or $iHeight < 1 Then Local $aSize = WinGetClientSize($hWnd) If $iWidth < 1 Then $iWidth = $aSize[0] If $iHeight < 1 Then $iHeight = $aSize[1] EndIf Local $hDC = _WinAPI_GetDC($hWnd) If @error Then Return SetError(10, 9, False) Local $hCDC = _WinAPI_CreateCompatibleDC($hDC) Local $tBmpInfo = DllStructCreate("struct; uint Size; uint Width; int Height; short Planes; short BitCount; uint Compression; uint SizeImage; int XPelsPerMeter; int YPelsPerMeter; uint ClrUsed; uint ClrImportant; endstruct;") DllStructSetData($tBmpInfo, "Size", DllStructGetSize($tBmpInfo)) DllStructSetData($tBmpInfo, "Width", $iWidth) DllStructSetData($tBmpInfo, "Height", -($iHeight + 4)) DllStructSetData($tBmpInfo, "Planes", 1) DllStructSetData($tBmpInfo, "BitCount", 32) Local $aResult = DllCall("gdi32.dll", "handle", "CreateDIBSection", "handle", 0, "struct*", $tBmpInfo, "uint", 0, "ptr*", 0, "handle", 0, "uint", 0) If @error Or Not $aResult[0] Or Not $aResult[4] Then _WinAPI_DeleteDC($hCDC) _WinAPI_ReleaseDC($hWnd, $hDC) Return SetError(10, 9, False) EndIf Local $hDib = $aResult[0] Local $pBits = $aResult[4] $aResult = DllCall("kernel32.dll", "handle", "GlobalAlloc", "uint", 0, "ulong_ptr", 256) If @error Or Not $aResult[0] Then Return SetError(10, 9, False) Local $pBuffer = $aResult[0] Local $tBuffer = DllStructCreate("struct; ptr Vtbl; int RefCnt; uint IsGDIPEX; uint Width; uint Height; uint Stride; ptr pBits; handle Gfx; handle Dib; handle DC; handle CDC; handle Wnd; handle Obj; ptr pGlobalFree; ptr pGfxDel; ptr pSelObj; ptr pDelObj; ptr pDelDC; ptr pRelDC; ptr pBitBlt; ptr pQueryInterface; ptr pAddRef; ptr pRelease; ptr pDraw; ptr pGetGfx; ptr pGetBits; ptr pGetW; ptr pGetH; ptr pGetStride; endstruct;", $pBuffer) DllStructSetData($tBuffer, "pBits", $pBits) DllStructSetData($tBuffer, "Dib", $hDib) DllStructSetData($tBuffer, "OBJ", _WinAPI_SelectObject($hCDC, $hDib)) DllStructSetData($tBuffer, "Gfx", _GDIPlus_GraphicsCreateFromHDC($hCDC)) DllStructSetData($tBuffer, "Width", $iWidth) DllStructSetData($tBuffer, "Height", $iHeight) DllStructSetData($tBuffer, "Stride", $iWidth * 4) DllStructSetData($tBuffer, "DC", $hDC) DllStructSetData($tBuffer, "CDC", $hCDC) DllStructSetData($tBuffer, "Wnd", $hWnd) DllStructSetData($tBuffer, "IsGDIPEX", 0x42455047) DllStructSetData($tBuffer, "pGlobalFree", $_pGDIPEX_LIB_GLOBALFREE) DllStructSetData($tBuffer, "pGfxDel", $_pGDIPEX_LIB_GFXDEL) DllStructSetData($tBuffer, "pSelObj", $_pGDIPEX_LIB_SELOBJ) DllStructSetData($tBuffer, "pDelObj", $_pGDIPEX_LIB_DELOBJ) DllStructSetData($tBuffer, "pDelDC", $_pGDIPEX_LIB_DELDC) DllStructSetData($tBuffer, "pRelDC", $_pGDIPEX_LIB_RELDC) DllStructSetData($tBuffer, "pBitBlt", $_pGDIPEX_LIB_BITBLT) DllStructSetData($tBuffer, "pQueryInterface", $_pGDIPEX_ASM_OBJ_QUERYIF) DllStructSetData($tBuffer, "pAddRef", $_pGDIPEX_ASM_OBJ_ADDREF) DllStructSetData($tBuffer, "pRelease", $_pGDIPEX_ASM_OBJ_RELBUF) DllStructSetData($tBuffer, "pDraw", $_pGDIPEX_ASM_OBJ_BUFDRAW) DllStructSetData($tBuffer, "pGetGfx", $_pGDIPEX_ASM_OBJ_BUFGFX) DllStructSetData($tBuffer, "pGetBits", $_pGDIPEX_ASM_OBJ_BUFBITS) DllStructSetData($tBuffer, "pGetW", $_pGDIPEX_ASM_OBJ_BUFWIDTH) DllStructSetData($tBuffer, "pGetH", $_pGDIPEX_ASM_OBJ_BUFHEIGHT) DllStructSetData($tBuffer, "pGetStride", $_pGDIPEX_ASM_OBJ_BUFSTRIDE) DllStructSetData($tBuffer, "Vtbl", DllStructGetPtr($tBuffer, "pQueryInterface")) DllStructSetData($tBuffer, "RefCnt", 1) Local $oBuffer = ObjCreateInterface($pBuffer, $_sGDIPEX_IIDBUF, $_tagGDIPEX_BUFFER) If Not IsObj($oBuffer) Then _GDIPlus_GraphicsDispose(DllStructGetData($tBuffer, "Gfx")) _WinAPI_SelectObject(DllStructGetData($tBuffer, "CDC"), DllStructGetData($tBuffer, "OBJ")) _WinAPI_DeleteObject(DllStructGetData($tBuffer, "Dib")) _WinAPI_DeleteDC(DllStructGetData($tBuffer, "CDC")) _WinAPI_ReleaseDC(DllStructGetData($tBuffer, "Wnd"), DllStructGetData($tBuffer, "DC")) DllCall("kernel32.dll", "ptr", "GlobalFree", "struct*", $pBuffer) Return SetError(10, 9, False) EndIf Return $oBuffer EndFunc ;==>_GDIPlusEx_BufferCreate Func _GDIPlusEx_BufferDraw($oBuffer, $iX = 0, $iY = 0, $iROP = 0x00CC0020) If Not IsObj($oBuffer) Then Return SetError(2, 1, False) Local $iStatus = $oBuffer.Draw($iX, $iY, $iROP) If Not $iStatus Then Return SetError(9, 2, False) Return True EndFunc ;==>_GDIPlusEx_BufferDraw Func __GDIPlusEx_ASMCreate(ByRef Const $bBC32, ByRef Const $bBC64) Local $iSize Switch @AutoItX64 Case True $iSize = BinaryLen($bBC64) Case Else $iSize = BinaryLen($bBC32) EndSwitch Local $aResult = DllCall("kernel32.dll", "ptr", "VirtualAlloc", "ptr", 0, "ulong_ptr", $iSize + 16, "dword", 0x00001000, "dword", 0x00000040) If @error Or Not $aResult[0] Then Return SetError(1, 0, False) Local $pStruct = Number($aResult[0]) If Mod($pStruct, 16) Then $pStruct = $pStruct + 16 - Mod($pStruct, 16) Local $tStruct = DllStructCreate("byte[" & $iSize & "];", $pStruct) Switch @AutoItX64 Case True DllStructSetData($tStruct, 1, $bBC64) Case Else DllStructSetData($tStruct, 1, $bBC32) EndSwitch DllCall("kernel32.dll", "bool", "VirtualProtect", "struct*", $pStruct, "ulong_ptr", $iSize, "dword", 16, "dword*", 0) Local $iIdx = $_aGDIPEX_ASMSTRUCT[0] + 1 If $iIdx >= UBound($_aGDIPEX_ASMSTRUCT) Then ReDim $_aGDIPEX_ASMSTRUCT[$iIdx + 1] $_aGDIPEX_ASMSTRUCT[0] = $iIdx $_aGDIPEX_ASMSTRUCT[$iIdx] = $pStruct Return $pStruct EndFunc ;==>__GDIPlusEx_ASMCreate Func __GDIPlusEx_BitmapCreate($iW, $iH, $iColor = 0) $iW = Int($iW) $iH = Int($iH) Local $iStride = $iW * 4 If Mod($iStride, 16) Then $iStride += 16 - Mod($iStride, 16) Local $aResult = DllCall("kernel32.dll", "handle", "GlobalAlloc", "uint", 0x40, "ulong_ptr", $iStride * ($iH + 4) * 4 + 32) If @error Or Not $aResult[0] Then Return SetError(9, 1, False) Local $pScan0 = Number($aResult[0]) $aResult = DllCall("kernel32.dll", "handle", "GlobalAlloc", "uint", 0x40, "ulong_ptr", 256) If @error Or Not $aResult[0] Then DllCall("kernel32.dll", "ptr", "GlobalFree", "struct*", $pScan0) Return SetError(9, 2, False) EndIf Local $tBitmap = DllStructCreate("struct; ptr Vtbl; int RefCnt; uint IsGDIPEX; uint Width; uint Height; uint Stride; ptr pScan0; ptr pScan0ORIG; endstruct;", $aResult[0]) DllStructSetData($tBitmap, "Width", $iW) DllStructSetData($tBitmap, "Height", $iH) DllStructSetData($tBitmap, "Stride", $iStride) DllStructSetData($tBitmap, "pScan0ORIG", $pScan0) If Mod($pScan0, 16) Then $pScan0 += 16 - Mod($pScan0, 16) DllStructSetData($tBitmap, "pScan0", $pScan0) DllStructSetData($tBitmap, "IsGDIPEX", 0x41455047) If $iColor Then DllCallAddress("none", $_pGDIPEX_ASM_BMPCLR, "struct*", $tBitmap, "uint", $iColor) Return $tBitmap EndFunc ;==>__GDIPlusEx_BitmapCreate Func __GDIPlusEx_BitmapCreateObject($tBmp) If @error Or Not IsDllStruct($tBmp) Then Return SetError(2, 1, False) Local $tBitmap = DllStructCreate("struct; ptr Vtbl; int RefCnt; uint IsGDIPEX; uint Width; uint Height; uint Stride; ptr pScan0; ptr pScan0ORIG; handle Gfx; handle Bmp; ptr pGlobalFree; ptr pGfxDel; ptr pBmpDel; ptr pQueryInterface; ptr pAddRef; ptr pRelease; ptr pGetBmp; ptr pGetGfx; ptr pGetScan0; ptr pGetW; ptr pGetH; ptr pGetStride; ptr pDraw; ptr pDrawRect; endstruct;", DllStructGetPtr($tBmp)) Local $hBmp = _GDIPlus_BitmapCreateFromScan0(DllStructGetData($tBmp, "Width"), DllStructGetData($tBmp, "Height"), $GDIP_PXF32ARGB, DllStructGetData($tBmp, "Stride"), DllStructGetData($tBmp, "pScan0")) Local $hGfx = _GDIPlus_ImageGetGraphicsContext($hBmp) DllStructSetData($tBitmap, "Bmp", $hBmp) DllStructSetData($tBitmap, "Gfx", $hGfx) DllStructSetData($tBitmap, "pGlobalFree", $_pGDIPEX_LIB_GLOBALFREE) DllStructSetData($tBitmap, "pGfxDel", $_pGDIPEX_LIB_GFXDEL) DllStructSetData($tBitmap, "pBmpDel", $_pGDIPEX_LIB_BMPDEL) DllStructSetData($tBitmap, "pQueryInterface", $_pGDIPEX_ASM_OBJ_QUERYIF) DllStructSetData($tBitmap, "pAddRef", $_pGDIPEX_ASM_OBJ_ADDREF) DllStructSetData($tBitmap, "pRelease", $_pGDIPEX_ASM_OBJ_RELBMP) DllStructSetData($tBitmap, "pGetBmp", $_pGDIPEX_ASM_OBJ_BMPBMP) DllStructSetData($tBitmap, "pGetGfx", $_pGDIPEX_ASM_OBJ_BMPGFX) DllStructSetData($tBitmap, "pGetScan0", $_pGDIPEX_ASM_OBJ_BMPSCAN0) DllStructSetData($tBitmap, "pGetW", $_pGDIPEX_ASM_OBJ_BMPWIDTH) DllStructSetData($tBitmap, "pGetH", $_pGDIPEX_ASM_OBJ_BMPHEIGHT) DllStructSetData($tBitmap, "pGetStride", $_pGDIPEX_ASM_OBJ_BMPSTRIDE) DllStructSetData($tBitmap, "pDraw", $_pGDIPEX_ASM_BMPDRAW) DllStructSetData($tBitmap, "pDrawRect", $_pGDIPEX_ASM_BMPDRAWRECT) DllStructSetData($tBitmap, "Vtbl", DllStructGetPtr($tBitmap, "pQueryInterface")) DllStructSetData($tBitmap, "RefCnt", 1) Local $oBitmap = ObjCreateInterface(DllStructGetPtr($tBmp), $_sGDIPEX_IIDBMP, $_tagGDIPEX_BITMAP) If Not IsObj($oBitmap) Then _GDIPlus_GraphicsDispose($hGfx) _GDIPlus_BitmapDispose($hBmp) Return SetError(9, 3, False) EndIf Return $oBitmap EndFunc ;==>__GDIPlusEx_BitmapCreateObject Func __GDIPlusEx_BitmapDispose(ByRef $tBitmap) If Not IsDllStruct($tBitmap) Then Return SetError(2, 1, False) DllCall("kernel32.dll", "ptr", "GlobalFree", "struct*", DllStructGetData($tBitmap, "pScan0ORIG")) DllCall("kernel32.dll", "ptr", "GlobalFree", "struct*", DllStructGetPtr($tBitmap)) $tBitmap = 0 Return True EndFunc ;==>__GDIPlusEx_BitmapDispose Func __GDIPlusEx_OnExit() If Not IsArray($_aGDIPEX_ASMSTRUCT) Or UBound($_aGDIPEX_ASMSTRUCT) < 1 Or UBound($_aGDIPEX_ASMSTRUCT, 0) <> 1 Then Return If $_aGDIPEX_ASMSTRUCT[0] >= UBound($_aGDIPEX_ASMSTRUCT) Then $_aGDIPEX_ASMSTRUCT[0] = UBound($_aGDIPEX_ASMSTRUCT) - 1 For $i = 1 To $_aGDIPEX_ASMSTRUCT[0] DllCall("kernel32.dll", "bool", "VirtualFree", "ptr", $_aGDIPEX_ASMSTRUCT[$i], "ulong_ptr", 0, "dword", 0x00008000) Next $_oGDIPEX_D2DFACTORY = 0 _GDIPlus_Shutdown() EndFunc ;==>__GDIPlusEx_OnExit #EndRegion GDIPlusEx functions  
       
      3D Starfield Scrolling v1:
      ;coded by UEZ Build 2016-06-06 #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <Timers.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) Opt("MustDeclareVars", 1) _GDIPlus_Startup() Global Const $iW = @DesktopWidth Global Const $iW2 = $iW / 2 Global Const $iH = @DesktopHeight Global Const $iH2 = $iH / 2 Global Const $hFullScreen = WinGetHandle("Program Manager") Global Const $aFullScreen = WinGetPos($hFullScreen) Global Const $main_screen_x = Abs($aFullScreen[0]) Global Const $hGUI = GUICreate("GDI+ Simple 3D Starfield Scrolling by UEZ boosted by FreeBasic", $aFullScreen[2], $aFullScreen[3], $aFullScreen[0], $aFullScreen[1], $WS_POPUP, $WS_EX_TOPMOST) GUISetBkColor(0x000000, $hGUI) GUISetState() Global $pBitmap Global Const $hBitmap = _WinAPI_BitmapCreateDIB($iW, $iH, $pBitmap) Global Const $hDC = _WinAPI_GetWindowDC($hGUI) Global Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC) Global Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hBitmap) Global Const $hGraphic = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer) ;~ _GDIPlus_GraphicsSetSmoothingMode($hGraphic, $GDIP_SMOOTHINGMODE_HIGHQUALITY) _GDIPlus_GraphicsSetPixelOffsetMode($hGraphic, $GDIP_PIXELOFFSETMODE_HIGHQUALITY) Global Const $hPen = _GDIPlus_PenCreate(0, 1) Global Const $hBrush = _GDIPlus_BrushCreateSolid(0xFF000000) Global Const $hBrush_Text = _GDIPlus_BrushCreateSolid(0xA0FFFFFF) Global Const $hFormat = _GDIPlus_StringFormatCreate() Global Const $hFamily = _GDIPlus_FontFamilyCreate("Arial") Global Const $hFont = _GDIPlus_FontCreate($hFamily, 9) Global Const $tLayout = _GDIPlus_RectFCreate($iW - 128, 0, 0, 0) Global Const $maxStars = 10000 Global Const $speed = 110.0 ;the higher the value the slow the speed Global Const $c = Int(Sqrt($iW^2 + $iH^2) / $iH) Global $sDLL = @ScriptDir & "\3D Starfield Scrolling v1 Booster.dll" If Not FileExists($sDLL) Then _BoosterDLL(True) Global $hDLL = DllOpen($sDLL) Global $j = 1, $tStars = DllStructCreate("float x[" & $maxStars & "]; float y[" & $maxStars & "];int c[" & $maxStars & "]") For $j = 1 To $maxStars NewStars($j) Next Global Const $om = MouseGetCursor() Global $idle_o, $idle_n, $fps = 0, $newx, $newy, $i Global $fps2 = 0 GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") GUISetCursor(16, 1, $hGUI) OnAutoItExitRegister("_Exit") AdlibRegister("FPS", 1000) While Sleep(10) Draw_Stars() WEnd Func FPS() $fps = $fps2 $fps2 = 0 EndFunc ;==>FPS Func Draw_Stars() $idle_n = _Timer_GetIdleTime() If $idle_n < $idle_o Then _Exit() $idle_o = $idle_n _GDIPlus_GraphicsFillRect($hGraphic, 0, 0, $iW, $iH, $hBrush) DllCall($hDLL, "none", "Boost", "ptr", $hGraphic, "struct*", $tStars, "float", $speed, "float", $iW2, "float", $iH2, _ "int", $iW, "int", $iH, "int", $maxStars, "int", $c) _GDIPlus_GraphicsDrawStringEx($hGraphic, $maxStars & " stars @ " & $fps & " fps", $hFont, $tLayout, $hFormat, $hBrush_Text) DllCall("gdi32.dll", "bool", "BitBlt", "ptr", $hDC, "int", $main_screen_x, "int", 0, "int", $iW, "int", $iH, "ptr", $hDC_backbuffer, "int", 0, "int", 0, "dword", $SRCCOPY) $fps2 += 1 EndFunc ;==>Draw_Stars Func NewStars($j, $sx = 0, $sy = 0, $ex = $iW, $ey = $iH) $tStars.x(($j)) = Random($sx, $ex, 1) - $iW2 $tStars.y(($j)) = Random($sy, $ey, 1) - $iH2 $tStars.c(($j)) = 0 EndFunc ;==>NewStars Func _Exit() AdlibUnRegister("FPS") GUISetCursor($om, 1, $hGUI) _GDIPlus_FontDispose($hFont) _GDIPlus_FontFamilyDispose($hFamily) _GDIPlus_StringFormatDispose($hFormat) _GDIPlus_PenDispose($hPen) _GDIPlus_BrushDispose($hBrush) _GDIPlus_BrushDispose($hBrush_Text) _GDIPlus_GraphicsDispose($hGraphic) _WinAPI_SelectObject($hDC_backbuffer, $DC_obj) _WinAPI_DeleteDC($hDC_backbuffer) _WinAPI_DeleteObject($hBitmap) _WinAPI_ReleaseDC($hGUI, $hDC) _GDIPlus_Shutdown() GUIDelete($hGUI) DllClose($hDLL) Exit EndFunc ;==>_Exit Func _WinAPI_BitmapCreateDIB($iWidth, $iHeight, ByRef $pHBitmap) Local $tBMI = DllStructCreate($tagBITMAPINFO) $tBMI.biSize = DllStructGetSize($tBMI) - 4 $tBMI.biWidth = $iWidth $tBMI.biHeight = -$iHeight $tBMI.biPlanes = 1 $tBMI.biBitCount = 32 Local $aResult = DllCall("gdi32.dll", "ptr", "CreateDIBSection", "hwnd", 0, "struct*", $tBMI, "uint", 0, "ptr*", 0, "ptr", 0, "uint", 0) $pHBitmap = $aResult[4] Return $aResult[0] EndFunc ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2015-09-19 Func _BoosterDLL($bSaveBinary = False, $sSavePath = @ScriptDir) Local $BoosterDLL $BoosterDLL &= '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' $BoosterDLL &= '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' $BoosterDLL &= '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' $BoosterDLL &= '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' $BoosterDLL &= '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' $BoosterDLL &= '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' $BoosterDLL &= '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' $BoosterDLL &= 'jjqWOp46pkA6rjq2Or5wLOQAOug69DoAQAAEAAwgJiQwKDAAwlAiNwBIMEzQEYAAgtDzAAwwGDAc8QAC4PMABDAIMAww/hARAQ8ADwAPAA8ADwAAAA==' $BoosterDLL = _WinAPI_Base64Decode($BoosterDLL) If @error Then Return SetError(1, 0, 0) Local $tSource = DllStructCreate('byte[' & BinaryLen($BoosterDLL) & ']') DllStructSetData($tSource, 1, $BoosterDLL) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress, 19968) If @error Then Return SetError(3, 0, 0) $tSource = 0 Local Const $bString = Binary(DllStructGetData($tDecompress, 1)) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\3D Starfield Scrolling v1 Booster.dll", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_BoosterDLL Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64Decode Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize) $tOutput = DllStructCreate("byte[" & $iBufferSize & "]") If @error Then Return SetError(1, 0, 0) Local $aRet = DllCall("ntdll.dll", "uint", "RtlDecompressBuffer", "ushort", 0x0002, "struct*", $tOutput, "ulong", $iBufferSize, "struct*", $tInput, "ulong", DllStructGetSize($tInput), "ulong*", 0) If @error Then Return SetError(2, 0, 0) If $aRet[0] Then Return SetError(3, $aRet[0], 0) Return $aRet[6] EndFunc ;==>_WinAPI_LZNTDecompress  
       
      3D Starfield Scrolling v3 boosted.au3:
      ;coded by UEZ build 2016-06-10 #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> Global Const $hFullScreen = WinGetHandle("Program Manager") Global Const $aFullScreen = WinGetPos($hFullScreen) Global Const $iMainScreenX = Abs($aFullScreen[0]) Global $hGUI_3DStars, $iFPS = 0, $iCFPS, $iW, $iWh, $iH, $iHh, $hPen_Stars, $bExit_3DStars Global Const $fWarpZ = 5.5, $iStars = 21000, $fZDeep = 0.05 Global $fCycle = 0 ;for color Global $tStars = DllStructCreate("float x[" & $iStars & "];float y[" & $iStars & "];float z[" & $iStars & "];float px[" & $iStars & "];float py[" & $iStars & "]") Global $fCenterX = $iWh, $fCenterY = $iHh Global Const $sTitle = "3D Star Scrolling (" & $iStars & " stars) / FPS: " AutoItSetOption("GUIOnEventMode", 1) Global $sDLL = @ScriptDir & "\3D Starfield Scrolling v3 Booster.dll" If Not FileExists($sDLL) Then _StarsBoosterDLL(True) Global $hDLL = DllOpen($sDLL) StarScroller3D() DllClose($hDLL) AutoItSetOption("GUIOnEventMode", 0) ConsoleWrite("The end." & @CRLF) Func StarScroller3D() _GDIPlus_Startup() $bExit_3DStars = False $iW = @DesktopWidth $iH = @DesktopHeight $iWh = $iW / 2 $iHh = $iH / 2 Local $pBitmap Local $i, $xx, $yy, $fWidth, $iColor, $c, $iCount, $fPosX, $fPosY, $z = 0, $ii = -99 For $i = 0 To $iStars - 1 Reset_Star($i, 1.5) Next $hGUI_3DStars = GUICreate($sTitle & 0, $aFullScreen[2], $aFullScreen[3], $aFullScreen[0], $aFullScreen[1], $WS_POPUP, $WS_EX_TOPMOST) GUISetCursor(16, 1, $hGUI_3DStars) GUISetBkColor(0) GUISetState(@SW_SHOW, $hGUI_3DStars) Local Const $hHBitmap = _WinAPI_BitmapCreateDIB($iW, $iH, $pBitmap) Local Const $hDC = _WinAPI_GetDC($hGUI_3DStars) Local Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC) Local Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap) Local Const $hGfxCtxt = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer) Local Const $hBrush_Text = _GDIPlus_BrushCreateSolid(0xA0FFFFFF) Local Const $hFormat = _GDIPlus_StringFormatCreate() Local Const $hFamily = _GDIPlus_FontFamilyCreate("Arial") Local Const $hFont = _GDIPlus_FontCreate($hFamily, 9) Local Const $tLayout = _GDIPlus_RectFCreate($iW - 128, 0, 0, 0) _GDIPlus_GraphicsSetSmoothingMode($hGfxCtxt, $GDIP_SMOOTHINGMODE_HIGHQUALITY) _GDIPlus_GraphicsSetPixelOffsetMode($hGfxCtxt, $GDIP_PIXELOFFSETMODE_HIGHQUALITY) $hPen_Stars = _GDIPlus_PenCreate(0) $iFPS = 0 GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit_3DStars") AdlibRegister("CalcFPS", 1000) Do _GDIPlus_GraphicsClear($hGfxCtxt, 0xFF000000) ;~ _WinAPI_BitBlt($hDC_backbuffer, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $BLACKNESS) $ii += 0.0075 $fCenterX = $iWh + (220 * Cos($ii * 2)) $fCenterY = $iHh + (200 * Sin($ii * 3)) $iCount = DllCall($hDLL, "uint", "Boost", "ptr", $hGfxCtxt, "struct*", $tStars, "int", $iStars, _ "float", $fCenterX, "float", $fCenterY, "float", $fCycle, "float", $fZDeep, "float", $fWarpZ, "int", $iW, "int", $iH)[0] $fCycle += 0.05 ;star color cycle _GDIPlus_GraphicsDrawStringEx($hGfxCtxt, $iCount & " stars @ " & $iCFPS & " fps", $hFont, $tLayout, $hFormat, $hBrush_Text) _WinAPI_BitBlt($hDC, $iMainScreenX, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) If $bExit_3DStars Then ExitLoop $iFPS += 1 Until Not Sleep(10) AdlibUnRegister("CalcFPS") _WinAPI_SelectObject($hDC_backbuffer, $DC_obj) _WinAPI_DeleteDC($hDC_backbuffer) _WinAPI_DeleteObject($hHBitmap) _WinAPI_ReleaseDC($hGUI_3DStars, $hDC) _GDIPlus_GraphicsDispose($hGfxCtxt) _GDIPlus_PenDispose($hPen_Stars) _GDIPlus_FontDispose($hFont) _GDIPlus_FontFamilyDispose($hFamily) _GDIPlus_StringFormatDispose($hFormat) _GDIPlus_BrushDispose($hBrush_Text) GUIDelete($hGUI_3DStars) _GDIPlus_Shutdown() EndFunc ;==>StarScroller3D Func _Exit_3DStars() $bExit_3DStars = True EndFunc ;==>_Exit_3DStars Func CalcFPS() $iCFPS = $iFPS $iFPS = 0 EndFunc ;==>CalcFPS Func Reset_Star($a, $fFactor = 5) $tStars.x(($a)) = (Random(0.01, $fFactor) * $iW - $iWh) * $fWarpZ $tStars.y(($a)) = (Random(0.01, $fFactor) * $iH - $iHh) * $fWarpZ $tStars.z(($a)) = $fWarpZ $tStars.px(($a)) = 0 $tStars.py(($a)) = 0 EndFunc ;==>Reset_Star Func _WinAPI_BitmapCreateDIB($iWidth, $iHeight, ByRef $pHBitmap) Local $tBMI = DllStructCreate($tagBITMAPINFO) $tBMI.biSize = DllStructGetSize($tBMI) - 4 $tBMI.biWidth = $iWidth $tBMI.biHeight = -$iHeight $tBMI.biPlanes = 1 $tBMI.biBitCount = 32 Local $aResult = DllCall("gdi32.dll", "ptr", "CreateDIBSection", "hwnd", 0, "struct*", $tBMI, "uint", 0, "ptr*", 0, "ptr", 0, "uint", 0) $pHBitmap = $aResult[4] Return $aResult[0] EndFunc ;==>_WinAPI_BitmapCreateDIB ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2015-09-19 Func _StarsBoosterDLL($bSaveBinary = False, $sSavePath = @ScriptDir) Local $StarsBoosterDLL $StarsBoosterDLL &= 'W7kATVqQAAMAAACCBAAw//8AALgAOC0BAEAEOBkAgAAMDh8Aug4AtAnNIbgAAUzNIVRoaXMAIHByb2dyYW0AIGNhbm5vdCAAYmUgcnVuIGkAbiBET1MgbW+AZGUuDQ0KJASGAFBFAABMAQkAEIw4W1cFV+AADoAjCwECGQAuAAxCTAEkAAAQFAAHENUGmBACCwIDtwEEvwMA8wANAAxyrgIeBDQEAwEGQQQNALAAAF4BB8CFgAEHGHLwAACcAZBBFAAE4AAAGJALVAbBAh0WAC50ZXh0eYADHCwESIF1B2ICAGAAAFBgLmRhdGEXBIOCfQFqMosTQABASMAucgMUDAmDlwAKCoABNI4TQC5iczJzgQXUTwIwlOtwwLwuZcMTwkjASsIdPs0TcDBALmkEKMFQwVIIgw+PwAnALkNSVMECKYE7ANDEE0jQCXRsLcInIAOCwwlK0AlyZfhsb2PEZgFawU4CScoJPkKgsT8APwA/ADQAU4Mg7BjHBCRBeejgAB0AAInDiQQkAOgmIQAAhdujQMivABCjxIAAdAQNx2Jgg8QYMcAUW8PAALiBblvDkARXViAIEItUJCQghdJ1cqFAShCFEMAPjhXAA4PoAcAx24s1yMGACOECoOsPjXYAYA3oQAlA/9aD7AS6YQiJQNjwD7EVzIAMhSDAdeGh0AABg/iwAg+E42ADgAUfARMGdwATAg6DxBBbXgBfwgwAifaNvBInIhL6ASIDdeRkAqHhcDH2i1gEixI9gQ7rF+ANOdgPLIQMAATlDtfgDonwRUAOHUQO3jHbhA4BOA+EISAFogFgGITxC8AJRwMXQAOF2w+EksuhAlBQQQR0HOAeICjHRCQEgVSJVAQkCOABIIkUJP9A0IPsDIMFgR4BB0AWYyXiFpAxwOk3aP///+YXoWEsQS6jASAdhcCJxnRBoQshLkECkEACicOD6wAEOd53D4sThQjSdPOAAf/SOd4AdvGJNCToOBzN4BoFoQUhCccFQQkhATAxwMcF4RZhAYcFS+Eciye7oQHpBsAQZiSQh+Ig6SqAAZCNCHQmAKEZENAAEB3gJQjBAAIJ4QXo6huhgAbs/v//pTLhAQI22wECYAYEYwZAexDozsAAAwMH4SLpxkAE5h0AVVeJzVZTiccAidOD7ByF0omAFThAABB1SQRHEHRk6Fsgf4lsJAYIgQoBBok8JOg3A+AIICqJxoP7A3SATYXbdEnHBeEGgYAW/4PEHInw4BokXcPiF+gb4AeNQ8L/QQiJXCQEwAfANyB3vOhT/WAF7AwBID5AMfbrv5CNjLQmwgvnBOhgKMQMDYkCG+UGIuMPRPDrGoPJAyxjBiE3dSODkPsBdaKNF9r8AggM6UniLUEEcOg2GjeHHIJg4ARSQWYjCQ+FthxhRAwJMQMEzQKq4Cr10AJjxA7JoS9kA8JUYAMm56FBAR3pq6ADjbYDMQP1NOwcxwVQbgfDI2E9ADZ0GotMJIAoi0QkIOg98AIHEBdAJPUTVCQM6McD4AywAgzr15BVibLlEEWhSNAZ4Bw8ISExsDL/FZgAOaA3hcDSulEDdBbhCA6QAXAuiP8VnMIBCInCIC4mCSAD0QP/0oAAsBTl4CRJ0AXJw/QG8AWQHnEHAOkLBrALgB/0C+kOS/AA+AHyCATHRfwJIjJF/IIwfQwBdYAMagBqAOg98BIAg8QIi0X8iewmXfE5+gL/NTBkEOgCmLBt2UUM2GUIANnJ3snYRQjZCF382RMDCADrDVPYBvQGSFMGB/hjAPSjYwASgcdF7GMA6GMAruRjAMFuYADcYwDYYwCu1GMAAXNgAMxjAMhjAG7EYwBBd2AAvMQEASCLAEUMiUX4i0UQQA+vReSJw+AAARDYiUX0AAHR4IkAww+vXeSJ2IsAXQwBw4ld8IuAXRBr2wOJ2KoCouygAsHgArwC6PYIE7IKkANLicACuOnSEYAli0XgEAOLXfgGAUAEogBN8AHB2QAD2DHZXdCLTYjg' $StarsBoosterDLL &= 'weHAAfQBy6QAEEXwAcjAATDZXQLMlQPwAcPdBQgBABfYM9ldyItdCODB43AC7AHY2RAA2B0QcAHf4PYgxEAPhSowHNlFABTYRdDZXcTZAEUY2EXM2V3ACNlFxFcCQQ+UwIDR6BnA20UocAEI3tlQQQEBWA+VAMPR6xnbIdjZDEXAwwKCAUFYD5QxhAHbRSywAQ8DD4QCtBAPagD/deDfBCwkECPYRRzZ/sjYDRThCgUYUABQIwDZPCSLBCQl/5DzAAAN8YhQ2aECGATZ/HMAEC7fPCSIj0XcsACBfdzAthgAdgcAH4EAg33cDABzwQCDFdzB4xAAi0XcweAIAcMgA13cgcNBjoldANiNXbxTagL/gHXI/3XY6AHxbAOhACAAwP91xP91wLz/dQjo2sAYoAApcwBF1HUU8HIUZSAJ2BbZG0gW/3XQjwFGHOgBw/91zI+SA8sDXSBSEQ+VshWhtAFN7AHZYRYBRBMBwRTB0ekZyQnI0VUf6AHLcRUDGAJiFeoJYBWUZzYxIBORBDA2MWAA3DUgQAHAAOHYVE0kdQj4cAgY5AICteICLOMCLOsCZAz0OQ5RMAz/dSQ3DuwwDjU7MSBnDuggAiMBkBPgiwBFuDlF4A+GIoEQYItF1IlF/GBCmltRPyj3h/E+5PAnQ6zoW4DKcSIMsRgegjEPkUL4S8AC9UEPtkUUgA+2XRDB4wjAEBi2XQxwH4IACMHjzBgJsDUmBxAAY1rwA7CLRQjHspuFAP//BQbG8AXgAYsYwesYQIjYiEX8inQEBHeFW/gL+wIQ/wL/AvgCCIf/Av8C9AKKGIhdqQIKdvEBU4EEXQyLC0KJYAAIg8MEQEiDwMAEiwiJC3EC2V5gkJD/JWzAYnEAaJV0AGRyAGYUAKEEgIQog8ABQH+joQB0AcLDIW1EJAjYUMkFckWgZaAwbujmEhAbiTug0oEBJOBogAFBcui9Q4ABcG7DkIMtUQQBmHQHw/MXwATo+DDWC4FtgQJ8wQMEJChvJdAEUHAB6AsA0IsVxrTQBcBsFKH00AkQoZCDwECJIAbojXQFM/YjUHUEo7EIgAAIo+KkgwAMo2zAk+Bo8IIQ7ByhcAKpdAL/NtAxeJGhTmAE8xDZ7gCD7BTZRCQY34Dp3dh6B6Eo0CsQdBRpBXEADWYZgAAFX/NuPKPRAEdwA+UPIEzYDSjgDoMAxA+6QBTDjbQmAAAAjQS8JwFg2e6D7BQA2UQkGN/p3dgAegehKEAAEHSYKNnuAiABXNnJAWQAdzdpwP1D/QAABcOewwAl//8I/wCjAUCJBCTHCEQkBAGQ3ywk2IANLFAAEIPEAMYKdgW+iwCEicLB6mAYAdDrvAAsAd4cBQBXIAJvE90FKGAAABB1CYPEHMMAkI10JgDd2OgAOREAAIlEJAyi2wAD2A0wAlIcBbaBBD3ZHCT/FSwAgYzdFQFAACDCBAABPwBTg+w4i1wkSADdRCRA3VwkEICF23UloWyvACJA+AEPjDoBAEH4EAIPjqoBJfgDuxEBXQ+FIwAL2ejZCuAAGhCCSwYPhKVBgRD7Ag+EzAERjoKkgRz7BA+EawIEEAUPhQIBGnwkJiAPt0QkJoEcxwWBAUggIQAQukSASQi0DGaAYiTZbCQIJN98gKNsJCaLQkwAhsiJDUAAD7kA/GkAEOsDg8IABGnADWYZAAUAX/NuPDnRiQIgdezHBTAAEABqIYFrOFvCDIpND4qiIgA8D4UcgAK7gAFAAOipBQAAAXWLolSAAUQkFIDIFAGVDDHQgF8AQRDfbCRiEAEQD4U0gNzQLMC+G5MrwG6CeZAhgUjbwY9lTxMAZEDrBsCDyz+BBvpBRcBA6On3/v/O/8AHAjSCFRAcQAZAkkAQMdAPthWBJQ+At8DB4AgJ0MkoQIP7AQ+FZ5M5gEdAEJQ5ALLosQ4AU7yTAAGEErsDwDfpncEhTwCWxLPAn4WTfDaAkn6SToCRdSyHKMcFQSNgAAAFALiBAwWr0FEG' $StarsBoosterDLL &= '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' $StarsBoosterDLL &= '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' $StarsBoosterDLL &= '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' $StarsBoosterDLL &= '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' $StarsBoosterDLL &= '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' $StarsBoosterDLL &= 'NoI2pTbDNskANs829Db6NiEANyc3NzdZN3EAN343iDejN60AN7g3vjfRN9sAN/M3+Te9ONEQON845ZAXSTlhADl1OXo5lTmhADmvObY5xjnhAfAX9Tn8OUY6UwA6Xzp1OoQ6mAA6nTrbOvE6/wA6BTsUOyM7UgA7rju2O747xkA7zjvWO95wLAQAPAg8FDwAQAAEAAxgEiwwMDAAglDiNgBIMEwwsHWDQODzAAwwGDAc8QCK4PMABDAVDDAQEQE/DwAPAA8ADwAPAAQA' $StarsBoosterDLL = _WinAPI_Base64Decode($StarsBoosterDLL) If @error Then Return SetError(1, 0, 0) Local $tSource = DllStructCreate('byte[' & BinaryLen($StarsBoosterDLL) & ']') DllStructSetData($tSource, 1, $StarsBoosterDLL) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress, 20480) If @error Then Return SetError(3, 0, 0) $tSource = 0 Local Const $bString = Binary(DllStructGetData($tDecompress, 1)) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\3D Starfield Scrolling v3 Booster.dll", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_StarsBoosterDLL Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64Decode Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize) $tOutput = DllStructCreate("byte[" & $iBufferSize & "]") If @error Then Return SetError(1, 0, 0) Local $aRet = DllCall("ntdll.dll", "uint", "RtlDecompressBuffer", "ushort", 0x0002, "struct*", $tOutput, "ulong", $iBufferSize, "struct*", $tInput, "ulong", DllStructGetSize($tInput), "ulong*", 0) If @error Then Return SetError(2, 0, 0) If $aRet[0] Then Return SetError(3, $aRet[0], 0) Return $aRet[6] EndFunc ;==>_WinAPI_LZNTDecompress  
       
      FreeBasic source codes:
      3D Object Rotation v1.3.0:
      'coded by UEZ build 2016-06-10 beta #Include Once "win\gdiplus.bi" Using GDIPLUS Extern "Windows-MS" Sub Boost(ByVal hCanvas as GpGraphics Ptr, ByVal tData As Any Ptr, _ iCountX As ULong, iCountY As ULong, _ fX As Single, fY As Single, fZ As Single, fW As Single, fH As Single, fScale As Single = 1.0, fZDeepCorrection As Single = 1000.0) Export Dim As ULong c, iUBound, iSingle Dim As Single Ptr pX, pY, pZ, pfX, pfY, pFZ Dim As UInteger Ptr pPen Dim As Single fCosRotX, fSinRotX, fCosRotY, fSinRotY, fCosRotZ, fSinRotZ, f1, f2, f3, f4, f5, f6, fXPos, fYPos, fZPos, fZPerspCorrection iUBound = iCountX * iCountY + iCountX + iCountY + 1 iSingle = SizeOf(Single) For c = 0 To iUbound - 1 'get pointers to each struct element pX = tData '+ 0 * iUBound + 0 * iSingle pY = tData + 1 * iUBound * iSingle pZ = tData + 2 * iUBound * iSingle pfX = tData + 3 * iUBound * iSingle pfY = tData + 4 * iUBound * iSingle pfZ = tData + 5 * iUBound * iSingle pPen = tData + 6 * iUBound * iSingle 'calculate 3D rotation fCosRotX = Cos(fX) fSinRotX = Sin(fX) fCosRotY = Cos(fY) fSinRotY = Sin(fY) fCosRotZ = Cos(fZ) fSinRotZ = Sin(fZ) f1 = fCosRotY * pX[c] f2 = fSinRotX * pY[c] f3 = fCosRotX * pZ[c] f4 = fCosRotX * pY[c] f5 = fSinRotX * pZ[c] f6 = f1 - fSinRotY * (f2 + f3) fXPos = (fCosRotZ * f6 - fSinRotZ * (f4 - f5)) * fScale fYPos = (fSinRotZ * f6 + fCosRotZ * (f4 - f5)) * fScale fZPos = (fSinRotY * pX[c] + fCosRotY * (f2 + f3)) * fScale fZPerspCorrection = 1 / (fZPos / fZDeepCorrection + 1) pfX[c] = fXPos * fZPerspCorrection + fW pfY[c] = fYPos * fZPerspCorrection + fH pfZ[c] = fZPos 'draw lines If c > 0 Then GdipDrawLine(hCanvas, pPen[c], pfX[c - 1], pfY[c - 1], pfX[c], pfY[c]) EndIf Next End Sub End Extern  
      Plasma Variante 5:
      'coded by UEZ build 2016-06-10 beta #Include Once "win\gdiplus.bi" #Include Once "crt\math.bi" Using GDIPLUS Extern "Windows-MS" Function Dist(a As Single, b As Single, c As Single, d As Single) As Single Return Sqrt((a - c) * (a - c) + (b - d) * (b - d)) End Function Sub Boost(ByVal hCanvas as GpGraphics Ptr, iSizeW As Long, iSizeH As Long, iW As Long, iH As Long, fTime As Single) Export Dim As Long iX, iY, iARGB Dim As Single cx, cy, v, f1, fDist Const Pi As Double = 3.1415926535897932 Dim As GpBrush Ptr hBrush For iY = 0 To iH - iSizeH Step iSizeH For iX = 0 To iW - iSizeW Step iSizeW fDist = Dist(fTime * 1.5, iX, iY, 32) cx = iX + 128 * Sin(fDist / 48) fDist = Dist(iY, 128, fTime * 2.5, 8) cy = iY + 92 * Cos(fDist / 32) v = Cos(Sqrt(cx * cx + cy * cy) / 512 + fTime) f1 = v * Pi iARGB = &hFF000000 + &h10000 * Int(Abs(Cos(f1 / 2)) * &hFF) + &h100 * Int(Abs(Sin(f1 * 2)) * &hFF) + Int(Abs(Cos(f1 / 1.5)) * &hFF) GdipCreateSolidFill(iARGB, @hBrush) GdipFillRectangle(hCanvas, hBrush, iX, iY, iSizeW, iSizeH) GdipDeleteBrush(hBrush) Next Next End Sub End Extern  
      3D Starfield Scrolling v3:
      'coded by UEZ build 2016-06-10 beta #Include Once "win\gdiplus.bi" Using GDIPLUS Extern "Windows-MS" Declare Function rnd_range (first As Single, last As Single) As Single Declare Function Boost(ByVal hCanvas as GpGraphics Ptr, ByVal tStars As Any Ptr, iStars As Long, _ fCenterX As Single, fCenterY As Single, fCycle As Single, fZDeep As Single, fWarpZ As Single, _ iW As Long, iH As Long) As ULong Function rnd_range (first As Single, last As Single) As Single Function = Rnd * (last - first) + first End Function Function Boost(ByVal hCanvas as GpGraphics Ptr, ByVal tStars As Any Ptr, iStars As Long, _ fCenterX As Single, fCenterY As Single, fCycle As Single, fZDeep As Single, fWarpZ As Single, _ iW As Long, iH As Long) As ULong Export Dim As Single Ptr pX, pY, pZ, pPX, pPY Dim As ULong iSingle, i, c, iColor, iCount Dim As Single xx, yy, fWidth, fPosX, fPosY Dim As GpPen Ptr hPen iSingle = SizeOf(Single) pX = tStars pY = tStars + iStars * iSingle pZ = tStars + 2 * iStars * iSingle pPX = tStars + 3 * iStars * iSingle pPY = tStars + 4 * iStars * iSingle iCount = 0 For i = 0 To iStars - 1 xx = pX[i] / pZ[i] yy = pY[i] / pZ[i] fWidth = 1.5 / pZ[i] If pPX[i] <> 0 Then fPosX = xx + fCenterX fPosY = yy + fCenterY If fPosX > 0 And fPosX < iW And fPosY > 0 And fPosY < iH Then c = Int(&h80 + Sin(i + fCycle) * 50) If c > 255 Then c = 255 If c < 0 Then c = 0 iColor = &hF0000000 + c * &h10000 + c * &h100 + c GdipCreatePen1(iColor, fWidth, 2, @hPen) GdipDrawEllipse(hCanvas, hPen, fPosX, fPosY, fWidth, fWidth) GdipDeletePen(hPen) iCount += 1 EndIf EndIf pZ[i] -= fZDeep pPX[i] = xx pPY[i] = yy If pZ[i] < fZDeep Or pPX[i] > iW Or pPY[i] > iH Then pX[i] = (Rnd * iW - iW / 2) * fWarpZ pY[i] = (Rnd * iH - iH / 2) * fWarpZ pZ[i] = fWarpZ pPX[i] = 0 pPY[i] = 0 EndIf Next Return iCount End Function End Extern  
      3D Starfield Scrolling v1:
      'coded by UEZ build 2016-06-10 beta #Include Once "win\gdiplus.bi" Using GDIPLUS Extern "Windows-MS" Declare Function rnd_range (first As Single, last As Single) As Single Function rnd_range (first As Single, last As Single) As Single Function = Rnd * (last - first) + first End Function Sub Boost(ByVal hCanvas as GpGraphics Ptr, ByVal tStars As Any Ptr, fSpeed As Single, iW2 As Single, iH2 As Single, iW As Long, iH As Long, _ maxStars As Long, r As Long) Export Dim As Double newx, newy Dim As Single Ptr pX, pY Dim As Integer Ptr pC Dim As Long iSingle, iColor, j Dim As GpPen Ptr hPen GdipCreatePen1(&hFFFFFFFF, 1, 2, @hPen) iSingle = SizeOf(Single) pX = tStars pY = tStars + maxStars * iSingle pC = tStars + 2 * maxStars * iSingle j = 0 Do Until j > maxStars - 1 pX[j] += pX[j] / fSpeed pY[j] += pY[j] / fSpeed pC[j] += r If pC[j] > &hFF Then pC[j] = &hFF EndIf iColor = &hFF000000 + pC[j] * &h10000 + pC[j] * &h100 + pC[j] newx = pX[j] + iW2 newy = pY[j] + iH2 GdipSetPenColor(hPen, iColor) GdipDrawRectangle(hCanvas, hPen, iW2 - pX[j], iH2 - pY[j], 1, 1) If newx < 0 Or newx > iW Or newy < 0 Or newy > iH Then pX[j] = iW2 * rnd_range(0.5, 1.5) - iW2 pY[j] = iH2 * rnd_range(0.5, 1.5) - iH2 pC[j] = 0 EndIf j += 1 Loop GdipDeletePen(hPen) End Sub End Extern  
       
      I'm absolutely new to FreeBasic, so there might be much better approches! 
       
      Have fun.
       
      Download all examples + some more: FreeBasic Examples build 2016-08-29.7z
    • scintilla4evr
      vPaint - GDI+ image editor
      By scintilla4evr
      Hello everyone!
      As always, I'm proud to present you vPaint. It's an image editor. It uses GDI+ as its drawing library.

      I want to thank to all members of this forum. Without you, this app wouldn't be ever written. Thank you for everything.
       
      Download:
      vPaint 4 image editor
    • scintilla4evr
      Motion Graphics UDF
      By scintilla4evr
      Simple UDF for creating animations in GDI+
       
      If you want to see more "experimental" features, go to GitHub.
    • scintilla4evr
      Motion Graphics UDF
      By scintilla4evr
      Hello! I've been working on this UDF for some time, but when I read Seeking "kinetic typography" capability in au3 topic, I decided to share it. This UDF brings some functions for creating animations in GDI+ without worrying about rendering or calculating.

      Features:
      Adding basic shapes (rectangle, ellipse) and text Animating object properties (like position or size) Animatable transformations (translate, rotate, scale) Double-buffering Rendering to a window or GUI control Enjoy!
      Motion Graphics UDF
    • UEZ
      _GDIPlus_BitmapApplyFilter v0.9.5 build 2016-07-14 beta
      By UEZ
      Since I disovered FreeBasic I decided to create a DLL to implement much faster image processing functionality to AutoIt.
      Following functions are implemented yet:
      _GDIPlus_BitmapApplyFilter_Cartoon1 _GDIPlus_BitmapApplyFilter_ColorAccent _GDIPlus_BitmapApplyFilter_Convolution_AnotherBlur _GDIPlus_BitmapApplyFilter_Convolution_BoxBlur _GDIPlus_BitmapApplyFilter_Convolution_EdgeDetection1 _GDIPlus_BitmapApplyFilter_Convolution_EdgeDetection2 _GDIPlus_BitmapApplyFilter_Convolution_EdgeDetection3 _GDIPlus_BitmapApplyFilter_Convolution_EdgeDetection4 _GDIPlus_BitmapApplyFilter_Convolution_EdgeDetection5 _GDIPlus_BitmapApplyFilter_Convolution_EdgeDetection6 _GDIPlus_BitmapApplyFilter_Convolution_Emboss1 _GDIPlus_BitmapApplyFilter_Convolution_Emboss45Degree _GDIPlus_BitmapApplyFilter_Convolution_EmbossTopLeftBottomRight _GDIPlus_BitmapApplyFilter_Convolution_Gaussian3x3 _GDIPlus_BitmapApplyFilter_Convolution_Gaussian5x5_1 _GDIPlus_BitmapApplyFilter_Convolution_Gaussian5x5_2 _GDIPlus_BitmapApplyFilter_Convolution_GaussianBlur _GDIPlus_BitmapApplyFilter_Convolution_IntenseEmboss _GDIPlus_BitmapApplyFilter_Convolution_Kirsch _GDIPlus_BitmapApplyFilter_Convolution_Laplace1 _GDIPlus_BitmapApplyFilter_Convolution_Laplace2 _GDIPlus_BitmapApplyFilter_Convolution_Laplace3 _GDIPlus_BitmapApplyFilter_Convolution_LaplacianOfGaussian _GDIPlus_BitmapApplyFilter_Convolution_ManualMatrix _GDIPlus_BitmapApplyFilter_Convolution_MotionBlur _GDIPlus_BitmapApplyFilter_Convolution_Outline3x3 _GDIPlus_BitmapApplyFilter_Convolution_Prewitt _GDIPlus_BitmapApplyFilter_Convolution_Sharpen1 _GDIPlus_BitmapApplyFilter_Convolution_Sharpen2 _GDIPlus_BitmapApplyFilter_Convolution_Sobel _GDIPlus_BitmapApplyFilter_Convolution_SovelVsPrewitt _GDIPlus_BitmapApplyFilter_Convolution_TriangleBlur _GDIPlus_BitmapApplyFilter_Convolution_Unsharp _GDIPlus_BitmapApplyFilter_Convolution_Unsharp5x5 _GDIPlus_BitmapApplyFilter_Dilatation _GDIPlus_BitmapApplyFilter_DistortionBlur _GDIPlus_BitmapApplyFilter_Edges _GDIPlus_BitmapApplyFilter_Erosion _GDIPlus_BitmapApplyFilter_FishEye _GDIPlus_BitmapApplyFilter_Jitter _GDIPlus_BitmapApplyFilter_Kuwahara _GDIPlus_BitmapApplyFilter_Linellism _GDIPlus_BitmapApplyFilter_Median _GDIPlus_BitmapApplyFilter_Median2 _GDIPlus_BitmapApplyFilter_OilPainting _GDIPlus_BitmapApplyFilter_PenSketch _GDIPlus_BitmapApplyFilter_PenSketch2 _GDIPlus_BitmapApplyFilter_Pixelate _GDIPlus_BitmapApplyFilter_Pointillism _GDIPlus_BitmapApplyFilter_RadialBlur _GDIPlus_BitmapApplyFilter_Raster _GDIPlus_BitmapApplyFilter_Swirl _GDIPlus_BitmapApplyFilter_SymmetricNearestNeighbour _GDIPlus_BitmapApplyFilter_TiltShift _GDIPlus_BitmapApplyFilter_TimeWarp _GDIPlus_BitmapApplyFilter_Wave _GDIPlus_BitmapApplyFilter_XRay  
      Since I am absolutely a newbie in FreeBasic, the DLL may contain errors.  Please report any bug.
       
      To do:
      add function headers with descriptions speed-up FB code -> partly done add more filters -> ongoing  
      Credits to:
      Jakub Szymanowski rdc Dewald Esterhuizen Santhosh G_  Christian Graus www.gutgames.com  
      Have fun.
       
      Download link: 

       
      You can compare the speed with AutoIt version:
      #AutoIt3Wrapper_Version=b #include <Array.au3> #include <GDIPlus.au3> Global $sFile = FileOpenDialog("Select an image", "", "Images (*.jpg;*.png;*.gif;*.bmp)") If @error Then Exit _GDIPlus_Startup() Global Const $STM_SETIMAGE = 0x0172 Global Const $hImage = _GDIPlus_ImageLoadFromFile($sFile) Global Const $iW = _GDIPlus_ImageGetWidth($hImage), $iH = _GDIPlus_ImageGetHeight($hImage) Global Const $hGUI = GUICreate("GDI+ Image Filters", $iW * 2, $iH) Global $fProg = 0, $iEnd = $iW * $iH - 1 AdlibRegister("Progress", 490) Global $t = TimerInit() Global Const $hGDIBitmap = _GDIPlus_BitmapApplyFilter_Median($hImage, 4) ConsoleWrite(Round(TimerDiff($t) / 1000, 2) & " s / " & Round(TimerDiff($t) / 60000, 2) & " min" & @CRLF) Global Const $iPic = GUICtrlCreatePic("", 0, 0, $iW - 1, $iH - 1) Global Const $iPic_o = GUICtrlCreatePic("", $iW, 0, $iW - 1, $iH - 1) _WinAPI_DeleteObject(GUICtrlSendMsg($iPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hGDIBitmap)) Global Const $hGDIBitmap2 = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) _WinAPI_DeleteObject(GUICtrlSendMsg($iPic_o, $STM_SETIMAGE, $IMAGE_BITMAP, $hGDIBitmap2)) GUISetState() AdlibUnRegister("Progress") ToolTip("") Do Until GUIGetMsg() = -3 _GDIPlus_ImageDispose($hImage) _WinAPI_DeleteObject($hGDIBitmap) _WinAPI_DeleteObject($hGDIBitmap2) _GDIPlus_Shutdown() Exit Func Progress() ToolTip(Int($fProg / $iEnd * 100) & " % / " & Round(TimerDiff($t) / 60000, 2) & " min", MouseGetPos(0) + 30, MouseGetPos(1) + 30) EndFunc #Region Symmetric Nearest Neighbour Func _GDIPlus_BitmapApplyFilter_SymmetricNearestNeighbour($hImage, $fRadius = 2, $bGDI = True) ;no alpha channel implemented yet Local Const $iW = _GDIPlus_ImageGetWidth($hImage), $iH = _GDIPlus_ImageGetHeight($hImage) Local Const $hBitmap_Dest = _GDIPlus_BitmapCreateFromScan0($iW, $iH) Local Const $tBitmapData_Dest = _GDIPlus_BitmapLockBits($hBitmap_Dest, 0, 0, $iW - 1, $iH - 1, $GDIP_ILMWRITE, $GDIP_PXF32ARGB) Local Const $iScan0_Dest = DllStructGetData($tBitmapData_Dest, "Scan0") Local Const $tPixel_Dest = DllStructCreate("int[" & $iW * $iH & "];", $iScan0_Dest) Local Const $tBitmapData = _GDIPlus_BitmapLockBits($hImage, 0, 0, $iW - 1, $iH - 1, $GDIP_ILMREAD, $GDIP_PXF32ARGB) Local Const $iScan0 = DllStructGetData($tBitmapData, "Scan0") Local Const $tPixel = DllStructCreate("int[" & $iW * $iH & "];", $iScan0) Local $iRowOffset, $iX, $iY, $c, $k, $sumR, $sumG, $sumB, $iCount, $xx, $yy, $iR, $iG, $iB, $iR1, $iG1, $iB1, $iR2, $iG2, $iB2, $x, $y For $iY = 0 To $iH - 1 $iRowOffset = $iY * $iW For $iX = 0 To $iW - 1 $sumR = 0 $sumG = 0 $sumB = 0 $iCount = 0 $c = DllStructGetData($tPixel, 1, $iRowOffset + $iX) $iR = BitShift(BitAND(0x00FF0000, $c), 16) $iG = BitShift(BitAND(0x0000FF00, $c), 8) $iB = BitAND(0x000000FF, $c) For $yy = -$fRadius To $fRadius For $xx = -$fRadius To $fRadius $k = $iX + $xx $x = $k < 0 ? 0 : $k > $iW - 1 ? $iW - 1 : $k $k = $iY + $yy $y = $k < 0 ? 0 : $k > $iH - 1 ? $iH - 1 : $k $c = DllStructGetData($tPixel, 1, $y * $iW + $x) $iR1 = BitShift(BitAND(0x00FF0000, $c), 16) $iG1 = BitShift(BitAND(0x0000FF00, $c), 8) $iB1 = BitAND(0x000000FF, $c) $k = $iX - $xx $x = $k < 0 ? 0 : $k > $iW - 1 ? $iW - 1 : $k $k = ($iY - $yy) $y = $k < 0 ? 0 : $k > $iH - 1 ? $iH - 1 : $k $c = DllStructGetData($tPixel, 1, $y * $iW + $x) $iR2 = BitShift(BitAND(0x00FF0000, $c), 16) $iG2 = BitShift(BitAND(0x0000FF00, $c), 8) $iB2 = BitAND(0x000000FF, $c) If __DeltaE($iR, $iG, $iB, $iR1, $iG1, $iB1) < __DeltaE($iR, $iG, $iB, $iR2, $iG2, $iB2) Then $sumR += $iR1 $sumG += $iG1 $sumB += $iB1 Else $sumR += $iR2 $sumG += $iG2 $sumB += $iB2 EndIf $iCount += 1 Next Next DllStructSetData($tPixel_Dest, 1, 0xFF000000 + Int($sumR / $iCount) * 0x10000 + Int($sumG / $iCount) * 0x100 + Int($sumB / $iCount), $iRowOffset + $iX) $fProg += 1 Next Next _GDIPlus_BitmapUnlockBits($hImage, $tBitmapData) _GDIPlus_BitmapUnlockBits($hBitmap_Dest, $tBitmapData_Dest) _GDIPlus_ImageSaveToFile($hBitmap_Dest, @ScriptDir & "\Filter_SNN" & $fRadius & "_" & @YEAR & @MON & @MDAY & @MIN & @SEC & ".png") If $bGDI Then Local $hGDIBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap_Dest) _GDIPlus_BitmapDispose($hBitmap_Dest) Return $hGDIBitmap EndIf Return $hBitmap_Dest EndFunc Func __DeltaE($iR1, $iG1, $iB1, $iR2, $iG2, $iB2) Return Sqrt(($iR1 - $iR2) * ($iR1 - $iR2) + ($iG1 - $iG2) * ($iG1 - $iG2) + ($iB1 - $iB2) * ($iB1 - $iB2)) EndFunc #EndRegion #Region Jitter Func _GDIPlus_BitmapApplyFilter_Jitter($hImage, $iAmount = 20, $bGDI = True) Local Const $iW = _GDIPlus_ImageGetWidth($hImage), $iH = _GDIPlus_ImageGetHeight($hImage) Local Const $hBitmap_Dest = _GDIPlus_BitmapCreateFromScan0($iW, $iH) Local Const $tBitmapData_Dest = _GDIPlus_BitmapLockBits($hBitmap_Dest, 0, 0, $iW - 1, $iH - 1, $GDIP_ILMWRITE, $GDIP_PXF32ARGB) Local Const $iScan0_Dest = DllStructGetData($tBitmapData_Dest, "Scan0") Local Const $tPixel_Dest = DllStructCreate("int[" & $iW * $iH & "];", $iScan0_Dest) Local Const $tBitmapData = _GDIPlus_BitmapLockBits($hImage, 0, 0, $iW - 1, $iH - 1, $GDIP_ILMREAD, $GDIP_PXF32ARGB) Local Const $iScan0 = DllStructGetData($tBitmapData, "Scan0") Local Const $tPixel = DllStructCreate("int[" & $iW * $iH & "];", $iScan0) Local $iX, $iY, $iRowOffset, $fNX, $fNY For $iY = 0 To $iH - 1 $iRowOffset = $iY * $iW + 1 For $iX = 0 To $iW - 1 $fNX = $iX + Int((Random() - 0.5) * $iAmount) $fNX = $fNX < 1 ? 1 : $fNX > $iW - 1 ? $iW - 1 : $fNX $fNY = ($iY + Int((Random() - 0.5) * $iAmount)) $fNY = $fNY < 1 ? 1 : $fNY > $iH - 1 ? $iH - 1 : $fNY $fNY *= $iW DllStructSetData($tPixel_Dest, 1, DllStructGetData($tPixel, 1, $fNY + $fNX), $iRowOffset + $iX) $fProg += 1 Next Next _GDIPlus_BitmapUnlockBits($hImage, $tBitmapData) _GDIPlus_BitmapUnlockBits($hBitmap_Dest, $tBitmapData_Dest) _GDIPlus_ImageSaveToFile($hBitmap_Dest, @ScriptDir & "\Filter_Jitter" & $iAmount & "_" & @YEAR & @MON & @MDAY & @MIN & @SEC & ".png") If $bGDI Then Local $hGDIBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap_Dest) _GDIPlus_BitmapDispose($hBitmap_Dest) Return $hGDIBitmap EndIf Return $hBitmap_Dest EndFunc #EndRegion #Region Median Func _GDIPlus_BitmapApplyFilter_Median($hImage, $fRadius = 3, $bGDI = True) Local Const $iW = _GDIPlus_ImageGetWidth($hImage), $iH = _GDIPlus_ImageGetHeight($hImage) Local Const $hBitmap_Dest = _GDIPlus_BitmapCreateFromScan0($iW, $iH) Local Const $tBitmapData_Dest = _GDIPlus_BitmapLockBits($hBitmap_Dest, 0, 0, $iW - 1, $iH - 1, $GDIP_ILMWRITE, $GDIP_PXF32ARGB) Local Const $iScan0_Dest = DllStructGetData($tBitmapData_Dest, "Scan0") Local Const $tPixel_Dest = DllStructCreate("int[" & $iW * $iH & "];", $iScan0_Dest) Local Const $tBitmapData = _GDIPlus_BitmapLockBits($hImage, 0, 0, $iW - 1, $iH - 1, $GDIP_ILMREAD, $GDIP_PXF32ARGB) Local Const $iScan0 = DllStructGetData($tBitmapData, "Scan0") Local Const $tPixel = DllStructCreate("int[" & $iW * $iH & "];", $iScan0) Local $iX, $iY, $iRowOffset For $iY = 0 To $iH - 1 $iRowOffset = $iY * $iW + 1 For $iX = 0 To $iW - 1 DllStructSetData($tPixel_Dest, 1, __Median_Value($iX, $iY, $fRadius, $tPixel, $iW, $iH), $iRowOffset + $iX) $fProg += 1 Next Next _GDIPlus_BitmapUnlockBits($hImage, $tBitmapData) _GDIPlus_BitmapUnlockBits($hBitmap_Dest, $tBitmapData_Dest) _GDIPlus_ImageSaveToFile($hBitmap_Dest, @ScriptDir & "\Filter_Median" & $fRadius & "_" & @YEAR & @MON & @MDAY & @MIN & @SEC & ".png") If $bGDI Then Local $hGDIBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap_Dest) _GDIPlus_BitmapDispose($hBitmap_Dest) Return $hGDIBitmap EndIf Return $hBitmap_Dest EndFunc Func __Median_Value($iPosX, $iPosY, $fRadius, $tPixel, $iW, $iH) Local $iX, $iY, $aColors[1000], $iColors = 0, $iSize = $iW * $iH - 1, $iOff, $e For $iX = $iPosX - $fRadius To $iPosX + $fRadius For $iY = $iPosY - $fRadius To $iPosY + $fRadius $iOff = 1 + $iY * $iW + $iX $aColors[$iColors] = DllStructGetData($tPixel, 1, $iOff < 1 ? 1 : $iOff > $iSize ? $iSize : $iOff) $iColors += 1 Next Next ReDim $aColors[$iColors] ;~ _ArraySort($aColors, 0) $e = $iColors - 1 __ArrayQuickSort1D($aColors, 0, $e) Local $iMid = Floor($iColors / 2), $iMedian If BitAND($iColors, 1) Then $iMedian = Int($aColors[$iMid + 1]) Else $iMedian = Int(($aColors[$iMid] + $aColors[$iMid + 1]) / 2) EndIf Return $iMedian EndFunc #EndRegion