UEZ

FreeBasic Graphical Examples build 2017-01-22

21 posts in this topic




Very nice effects !

You play with graphics with a disconcerting skilfulness.

It's a pleasure for the eyes ! ;)


AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites

I was curious why the executables are that big and whether free version of Visual Studio can be set to produce smaller exes. So I rewrote your code in C(++) and compiled it. I ended up with 5.5kb executables after removing CRT dependencies (by using Taylor series to approximate sin and cos) Pythagoras.zip

I hate default settings ...shit.

1 person likes this

♡♡♡

.

eMyvnE

Share this post


Link to post
Share on other sites
19 hours ago, wakillon said:

Very nice effects !

You play with graphics with a disconcerting skilfulness.

It's a pleasure for the eyes ! ;)

Thank you. :)

 

53 minutes ago, trancexx said:

I was curious why the executables are that big and whether free version of Visual Studio can be set to produce smaller exes. So I rewrote your code in C(++) and compiled it. I ended up with 5.5kb executables after removing CRT dependencies (by using Taylor series to approximate sin and cos) Pythagoras.zip

I hate default settings ...shit.

Well done. Can you please post your C++ code? I want to see how you did that in C++.

Apropos dependencies: why didn't you use the inline ASM functions for Sin/Cos instead of approx. using Taylor series?

\sin x=\sum _{n=0}^{\infty }{\frac {(-1)^{n}}{(2n+1)!}}x^{2n+1}=x-{\frac {x^{3}}{3!}}+{\frac {x^{5}}{5!}}-\cdots \quad {\text{ for all }}x\!

\cos x=\sum _{n=0}^{\infty }{\frac {(-1)^{n}}{(2n)!}}x^{2n}=1-{\frac {x^{2}}{2!}}+{\frac {x^{4}}{4!}}-\cdots \quad {\text{ for all }}x\!

 


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

7 hours ago, UEZ said:

Well done. Can you please post your C++ code? I want to see how you did that in C++.

Apropos dependencies: why didn't you use the inline ASM functions for Sin/Cos instead of approx. using Taylor series?

\sin x=\sum _{n=0}^{\infty }{\frac {(-1)^{n}}{(2n+1)!}}x^{2n+1}=x-{\frac {x^{3}}{3!}}+{\frac {x^{5}}{5!}}-\cdots \quad {\text{ for all }}x\!

\cos x=\sum _{n=0}^{\infty }{\frac {(-1)^{n}}{(2n)!}}x^{2n}=1-{\frac {x^{2}}{2!}}+{\frac {x^{4}}{4!}}-\cdots \quad {\text{ for all }}x\!

 

Inline ASM when I have real compiler to work with? No thanks.

As for sin and cos approximations, this could be the code (in AutoIt):

Func cos_($x)
    If $x < 0 Then $x = -$x
    While $x >= 3.14159265359
        $x -= 6.28318530718
    WEnd
    Return 1.0 - ($x * $x / 2) * (1 - ($x * $x / 12) * (1 - ($x * $x / 30) * (1 - $x * $x / 56)))
EndFunc

Func sin_($x)
    Return cos_($x - 1.570796326795)
EndFunc

Source of the exe is pretty much your AutoIt code. I just copy/passed it and cleaned a bit:

#include <windows.h>
#pragma comment( linker, "/entry:MwWinMain" )



__forceinline float cos_(float x) {
	if (x < 0.0f)
		x = -x;
	while (3.14159265359f < x)
		x -= 6.28318530718f;
	return 1.0f - (x*x / 2.0f)*(1.0f - (x*x / 12.0f) * (1.0f - (x*x / 30.0f) * (1.0f - x*x / 56.0f)));
}

__forceinline float sin_(float x) { return cos_(x - 1.570796326795f); }


__forceinline WCHAR* int_to_wstr(int val)
{
	static WCHAR buf[32] = { 0 };
	int i = 30;
	for (; val && i; --i, val /= 10)
		buf[i] = L"0123456789"[val % 10];
	
	return &buf[i + 1];
}


// Global Variables:
HWND hWnd;
WCHAR szTitle[50] = L"GDI Animated Pythagoras Tree v2.5 / FPS:   ";                  // The title bar text
WCHAR* szWindowClass = L"UEZ_thingy";            // the main window class name
UINT_PTR IDT_TIMER1 = 100;
UINT_PTR IDT_TIMER2 = 1000;
HDC $hDC;
HDC $hGfxDC;
int $iW = 1200, $iH = 700;
HBITMAP $hBitmapGDI;
HGDIOBJ $hObjOld, $hPen, $hBrush, $hPen_Old, $hBrush_Old;
int $iFPS = 0;

// Forward declarations of functions included in this code module:
__forceinline ATOM                MyRegisterClass();
__forceinline bool                InitInstance();
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);


int APIENTRY MwWinMain()
{
	MyRegisterClass();
	if (!InitInstance()) return FALSE;

	MSG msg;
	// Main message loop:
	while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	ExitProcess((int)msg.wParam);
}


__forceinline ATOM MyRegisterClass()
{
	WNDCLASSEXW wcex;

	wcex.cbSize = sizeof(WNDCLASSEX);
	wcex.style = CS_HREDRAW | CS_VREDRAW;
	wcex.lpfnWndProc = WndProc;
	wcex.cbClsExtra = 0;
	wcex.cbWndExtra = 0;
	wcex.hInstance = nullptr;
	wcex.hIcon = nullptr;
	wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
	wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);// (HBRUSH)(GetStockObject(WHITE_BRUSH));
	wcex.lpszMenuName = nullptr;
	wcex.lpszClassName = szWindowClass;
	wcex.hIconSm = nullptr;

	return RegisterClassExW(&wcex);
}

__forceinline bool InitInstance()
{
	hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT, $iW, $iH, nullptr, nullptr, nullptr, nullptr);

	if (!hWnd) return false;

	$hDC = GetDC(hWnd);
	$hBitmapGDI = CreateCompatibleBitmap($hDC, $iW, $iH);
	$hGfxDC = CreateCompatibleDC($hDC);
	$hObjOld = SelectObject($hGfxDC, $hBitmapGDI);
	$hPen = GetStockObject(DC_PEN);
	$hBrush = GetStockObject(DC_BRUSH);
	$hPen_Old = SelectObject($hGfxDC, $hPen);
	$hBrush_Old = SelectObject($hGfxDC, $hBrush);
	SetStretchBltMode($hDC, WHITEONBLACK);

	ShowWindow(hWnd, 1);
	UpdateWindow(hWnd);

	SetTimer(hWnd,             // handle to main window 
		IDT_TIMER1,           // timer identifier 
		10,                  //interval 
		nullptr);           // no timer callback

	SetTimer(hWnd,             // handle to main window 
		IDT_TIMER2,           // timer identifier 
		1000,                //interval 
		nullptr);           // no timer callback

	return true;
}


void PythagorasRec(HDC $hDC, int $iX1, int $iY1, int $iX2, int $iY2, int $iRecDepth)
{
	auto $iBGR1 = ((255 - ($iRecDepth + 10) * 10) << 8) + $iRecDepth * 20;

	static float $i = 0;
	int $dx = $iX2 - $iX1;
	int $dy = $iY1 - $iY2;
	int  $iX3 = $iX2 - $dy;
	int $iY3 = $iY2 - $dx;
	int  $iX4 = $iX1 - $dy;
	int $iY4 = $iY1 - $dx;

	int  $iX5 = $iX4 + ($dx - $dy) / (2.5f - cos_(($iX4 + $i) / 400) / 1.5f);

	int  $iY5 = $iY4 - ($dx + $dy) / (2.25f + sin_(($iX5 + $iY4 - $i) / 500));

	$i += 0.06666f;

	BeginPath($hDC);
	MoveToEx($hDC, $iX1, $iY1, nullptr);
	LineTo($hDC, $iX2, $iY2);
	LineTo($hDC, $iX3, $iY3);
	LineTo($hDC, $iX4, $iY4);
	LineTo($hDC, $iX1, $iY1);
	EndPath($hDC);

	// DllCall($hDLL_gdi32, "dword", "SetDCPenColor", "handle", $hDC, "dword", $iBGR1)
	SetDCBrushColor($hDC, $iBGR1 | 0x305090);
	FillPath($hDC);
	//; DllCall($hDLL_gdi32, "bool", "StrokeAndFillPath", "handle", $hDC)
	
	if ($iRecDepth > 0)
	{
		PythagorasRec($hDC, $iX4, $iY4, $iX5, $iY5, $iRecDepth - 1);
		PythagorasRec($hDC, $iX5, $iY5, $iX3, $iY3, $iRecDepth - 1);
	}
}

//
//  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_PAINT    - Paint the main window
//  WM_DESTROY  - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
	case WM_TIMER:
		if (wParam == IDT_TIMER1)
		{
			BitBlt($hGfxDC, 0, 0, $iW, $iH, $hGfxDC, 0, 0, WHITENESS);
			PythagorasRec($hGfxDC, 550, 700, 650, 700, 8);
			BitBlt($hDC, 0, 0, $iW, $iH, $hGfxDC, 0, 0, SRCCOPY);
			++$iFPS;
			return 0;
		}
		else if (wParam == IDT_TIMER2)
		{
			WCHAR* sFPS = int_to_wstr($iFPS);
			$iFPS = 0;
			szTitle[41] = *sFPS;
			szTitle[42] = *++sFPS;
			SetWindowText(hWnd, szTitle);
			return 0;
		}
		break;

	case WM_DESTROY:
		KillTimer(hWnd, IDT_TIMER1);
		KillTimer(hWnd, IDT_TIMER2);
		SelectObject($hGfxDC, $hPen_Old);
		DeleteObject($hPen);
		SelectObject($hGfxDC, $hBrush_Old);
		DeleteObject($hBrush);
		SelectObject($hGfxDC, $hObjOld);
		ReleaseDC(hWnd, $hDC);
		DeleteDC($hGfxDC);
		DeleteObject($hBitmapGDI);
		PostQuitMessage(0);
		return 0;

	case WM_PAINT:
	{
		PAINTSTRUCT ps;
		HDC hdc = BeginPaint(hWnd, &ps);
		//// TODO: Add any drawing code that uses hdc here...
		EndPaint(hWnd, &ps);
	}
	break;

	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}

 

Edited by trancexx

♡♡♡

.

eMyvnE

Share this post


Link to post
Share on other sites

@trancexx thanks. At the first look C++ code looks more difficult but it isn't at least compared with Pythagoras code.

The C++ code made me curious and I will install the monster Visual Studio once again.

Thanks for sharing.

Btw, I add your Sin_/Cos_ function to FB just to compare the speed. I expected that the ASM inline is faster but isn't. Might be because the API calls amortize the speed difference.

1 person likes this

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
18 hours ago, UEZ said:

I expected that the ASM inline is faster but isn't. Might be because the API calls amortize the speed difference.

ASM (handcoded) is (a little bit) faster, but what you meant are the "native" FPU-Code FSIN(), FCOS() and FSINCOS(), where are way slower than an (as mentioned and showed by trancexx) approximation.

Calling the/an API-function is once more slower...

One of the reasons, why trancexx used 

__forceinline

which causes the compiler to inline this function into code. That means, no jumps/calls into a function! Makes the code some bytes bigger, but faster:thumbsup:

19 hours ago, UEZ said:

The C++ code made me curious and I will install the monster Visual Studio once again.

I deinstalled VS yesterday....i am waiting for a compiler which is able to use "real" SIMD when switch on the SSE-Flag. I examined the EXE with IDApro. Yes, the compiler produces short and (in most cases) fast(?!) code using (half-hearted) processor-features which were introduced about 20 years ago...

The only code i saw from a compiler using SIMD (as intended) was from the newest INTEL C++/FORTRAN-Compiler XE (v17.0). And to get this performance it is necessary to program in a "vectorizing" style ( and/or excessive use of _intrinsics_(), which force the compiler to fast(?!) code) .

Or use OpenMP, CILK and other features/libraries. But all this is fu*** sh** to push their (INTEL´s) CPU´s. If the program/algorithm is good to parallelize, OpenCL/CUDA on a price-adjusted GPU is up to 50 to 100 times faster than the code running on a CPU.

Enough whining, we have AutoIt after all...:P

1 person likes this

Share this post


Link to post
Share on other sites

@trancexx: I installed VS 2015 Pro. How can I get run your source code?

I opened a Win32Project and pasted your code into the editor but when I try to run it I get ems.


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

1 hour ago, UEZ said:

@trancexx: I installed VS 2015 Pro. How can I get run your source code?

I opened a Win32Project and pasted your code into the editor but when I try to run it I get ems.

All default?

If yes then add #include <stdafx.h> at the top of that code, switch to "Release" "x86" then click "Debug" and select "Start Without Debugging"

VS.png

Edited by trancexx

♡♡♡

.

eMyvnE

Share this post


Link to post
Share on other sites

#10 ·  Posted (edited)

Aha, working. Now I can play with code. :thumbsup::thumbsup::thumbsup:

THANKS.

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

Oh, and to get small exes you'll need to change default settings for both compiler and linker. Otherwise you end up with plenty of BS.


♡♡♡

.

eMyvnE

Share this post


Link to post
Share on other sites

@trancexx: what have you done that the output (exe) is that small? My output is approx. 100kb.


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
1 minute ago, trancexx said:

Oh, and to get small exes you'll need to change default settings for both compiler and linker. Otherwise you end up with plenty of BS.

Can you tell me if it's not too complicated to explain. Otherwise I can live also with 100kb. ;)


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
4 minutes ago, UEZ said:

Can you tell me if it's not too complicated to explain. Otherwise I can live also with 100kb. ;)

Sure. First of all delete all resource files from solution explorer window (right click on "Resource Files" -> delete. Then do the same for header files. Then remove #include #include "stdafx.h" line. Then go to "Project" and select bottom item (it should be "Some_Name Properties...", then expand "C/C++" and click "Precompiled Headers". On the right click "Use (/Yu)" and then select "Not Using Precompiled Headers".

Then on the left expand "Linker" and choose "Manifest File". Then on the right click "Yes /blah blah" and select "No ..."

1 person likes this

♡♡♡

.

eMyvnE

Share this post


Link to post
Share on other sites

You should be on 6.5kb now. Few more tweaks and you're done.


♡♡♡

.

eMyvnE

Share this post


Link to post
Share on other sites

#16 ·  Posted (edited)

5 minutes ago, trancexx said:

You should be on 6.5kb now. Few more tweaks and you're done.

Yep, exactly 6.5kb. :)

10.000 things to learn...

 

Thanks again.

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
On 17.10.2016 at 10:33 PM, UEZ said:

10.000 things to learn...

Or ask some of the 10.000 M$-Programmers why they are able to produce such a beautiful and outstanding piece of Software but not able to place a "Build smallest/shortest output possible" Button.

I am afraid, at our next joint beer, you will tell me that you added a "Build smallest/shortest output possible"-Button into the VS (by AutoIt of course! ). I am looking forward to...the beer, not the button:P

1 person likes this

Share this post


Link to post
Share on other sites

#18 ·  Posted

@UEZ, that FreeBasic 3D SinePlot got me interested, do you use one of the FreeBasic IDEs and if so, which one?


2015 - Still no flying cars, instead blankets with sleeves.

Share this post


Link to post
Share on other sites

#19 ·  Posted

@Lakes: here a list of IDEs: https://www.freebasic-portal.de/downloads/ides-fuer-freebasic/

I personally using FbEdit.


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

#20 ·  Posted

Thanks.


2015 - Still no flying cars, instead blankets with sleeves.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Similar Content

    • seangriffin
      By seangriffin
      Here's the beginnings of SFML (the Simple and Fast Multimedia Library) for AutoIT. 
      This library provides a wealth of features for developing games and multimedia applications.  You can read up more about SFML here -> http://www.sfml-dev.org.  It uses OpenGL as the renderer for 2D graphics such as sprites, so it's performance is quite good.
      Currently my interest is in 2D sprite engines, so my focus is on the sprite and window APIs.  This is the precursor to another separate UDF I'm working on and will release soon.  If there's any interest I'll flesh out more of this API for the community.
      CSFML is the "C" binding / API for SFML, and it's this API that I'm building this UDF against.
      REQUIREMENTS:
      AutoIt3 3.2 or higher LIST OF FUNCTIONS (so far):
      _CSFML_Startup _CSFML_Shutdown _CSFML_sfClock_create _CSFML_sfClock_getElapsedTime _CSFML_sfClock_restart _CSFML_sfVector2f_Constructor _CSFML_sfVector2f_Update _CSFML_sfVector2f_Move _CSFML_sfColor_Constructor _CSFML_sfColor_fromRGB _CSFML_sfSizeEvent_Constructor _CSFML_sfEvent_Constructor _CSFML_sfVideoMode_Constructor _CSFML_sfRenderWindow_create _CSFML_sfRenderWindow_setVerticalSyncEnabled _CSFML_sfRenderWindow_isOpen _CSFML_sfRenderWindow_pollEvent _CSFML_sfRenderWindow_clear _CSFML_sfRenderWindow_drawText _CSFML_sfRenderWindow_drawSprite _CSFML_sfRenderWindow_display _CSFML_sfRenderWindow_close _CSFML_sfTexture_createFromFile _CSFML_sfSprite_create _CSFML_sfSprite_destroy _CSFML_sfSprite_setTexture _CSFML_sfSprite_setPosition _CSFML_sfSprite_setRotation _CSFML_sfSprite_rotate _CSFML_sfSprite_setOrigin _CSFML_sfFont_createFromFile _CSFML_sfText_create _CSFML_sfText_setString _CSFML_sfText_setFont _CSFML_sfText_setCharacterSize _CSFML_sfText_setFillColor EXAMPLE:
      Currently I only have one example, which is the "Short example" described in the CSFML API documentation, plus some extra features.  Essentially a window (GUI) allowing you to move a sprite around with the keyboard (including rotation).
      DOWNLOAD:
      You can download this UDF, including the example and associated files, from the following GitHub page:
      https://github.com/seanhaydongriffin/CSFML-UDF
      Cheers,
      Sean.
    • rootx
      By rootx
      how can I fit the image when the GUI is maximized? I would like to always measure the 50% height and width of the GUI and is always in the bottom right poistion, and does not lose its quality.
      THX
       
      #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <GDIPlus.au3> #include <Array.au3> #include <WinAPI.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 615, 437, 192, 124,BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_TABSTOP)) _GDIPlus_Startup() $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir&"\img.jpg") $hGraphics = _GDIPlus_GraphicsCreateFromHWND($Form1) $resimg = _GDIPlus_ImageResize($hImage,200,300) _GDIPlus_GraphicsDrawImage($hGraphics, $resimg, 0, 0) GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT") ;GUIRegisterMsg($WM_SIZE, "WM_SIZE") GUISetState(@SW_SHOW,$Form1) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func MY_WM_PAINT($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam, $lParam _WinAPI_RedrawWindow($Form1, 0, 0, $RDW_UPDATENOW) _GDIPlus_GraphicsDrawImage($hGraphics, $resimg, 300, 0) _WinAPI_RedrawWindow($Form1, 0, 0, $RDW_VALIDATE) Return $GUI_RUNDEFMSG EndFunc ;==>MY_WM_PAINT ;Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam) ; #forceref $hWnd, $iMsg, $iwParam, $ilParam ; Local $xClient, $yClient ; $xClient = BitAND($ilParam, 0x0000FFFF) ; $yClient = BitShift($ilParam, 16) ; _WinAPI_RedrawWindow($Form1, 0, 0, $RDW_UPDATENOW) ; _GDIPlus_GraphicsDrawImage($hGraphics, $resimg, $xClient/2, $yClient/2) ; _WinAPI_RedrawWindow($Form1, 0, 0, $RDW_VALIDATE) ; ConsoleWrite($xClient & " "&$yClient&@CR) ; Return $GUI_RUNDEFMSG ;EndFunc  
    • chacoya121
      By chacoya121
      plz help explain between GDI+ and Winapi, is it desktop inside another desktop, 3 layer dimension?
      i can't get the picture
      1. u get desktop u can visual see
      2. then u create GDI+ startup another desktop screen dimension?
      3. then u have Winapi command inside GDI+, is this another desktop screen dimension? cuz GDI+ could create bitmap that is one dimension? Winapi get windowDC also another dimension?
      plz help and explain, with picture would be nice, im not good with visualize ("dumb newbie"), still learning
      newbie to programming world
      thankyou.
    • mdwerne
      By mdwerne
      I'm attempting to cobble together a replacement for the 64bit version of BGInfo that will run within WinPE 10/64. I've located a couple useful threads:
       Between the two, they get me close (see code below), but for some reason GDI+ is not working the same within WinPE as it does in Windows 10. Bottomline is that the "Text" never get's written to WallPaper.
      Here is what I have thus far. Any thoughts if any of the GDI commands might not work within WinPE? Any other way to achieve the same result (system information on the wallpaper in WinPE 10)?
      #include <GDIPlus.au3> #include <Date.au3> _GDIPlus_Startup() $image = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\WallPaper.bmp") $imagegraphics = _GDIPlus_ImageGetGraphicsContext($image) $w = _GDIPlus_ImageGetWidth($image) $h = _GDIPlus_ImageGetHeight($image) $whitebrush = _GDIPlus_BrushCreateSolid(0xFFFFFFFF) $fontfamily = _GDIPlus_FontFamilyCreate("Arial") $font = _GDIPlus_FontCreate($fontfamily, 16) $stringformat = _GDIPlus_StringFormatCreate() _GDIPlus_StringFormatSetAlign($stringformat, 2) $rect = _GDIPlus_RectFCreate(0, $h - $h + 100, $w - 25, $h) ;$rect = _GDIPlus_RectFCreate(100, 100, 200, 200) _GDIPlus_GraphicsDrawStringEx($imagegraphics, _Now() & @CRLF & @UserName & @CRLF & @ComputerName & @CRLF & @IPAddress1, $font, $rect, $stringformat, $whitebrush) _GDIPlus_ImageSaveToFile($image, @ScriptDir & "\NewWallPaper.bmp") _GDIPlus_ImageDispose($image) _GDIPlus_GraphicsDispose($imagegraphics) _GDIPlus_BrushDispose($whitebrush) _GDIPlus_FontFamilyDispose($fontfamily) _GDIPlus_FontDispose($font) _GDIPlus_StringFormatDispose($stringformat) _GDIPlus_Shutdown() _ChangeDesktopWallpaper(@ScriptDir & "\NewWallPaper.bmp", 2) Func _ChangeDesktopWallpaper($bmp, $style = 0) ;=============================================================================== ; ; Function Name: _ChangeDesktopWallPaper ; Description: Update WallPaper Settings ; Usage: _ChangeDesktopWallPaper(@WindowsDir & '\' & 'zapotec.bmp',1) ; Parameter(s): $bmp - Full Path to BitMap File (*.bmp) ; [$style] - 0 = Centered, 1 = Tiled, 2 = Stretched ; Requirement(s): None. ; Return Value(s): On Success - Returns 0 ; On Failure - -1 ; Author(s): FlyingBoz ; Thanks: Larry - DllCall Example - Tested and Working under XPHome and W2K Pro ; Excalibur - Reawakening my interest in Getting This done. ; ;=============================================================================== If Not FileExists($bmp) Then Return -1 ;The $SPI* values could be defined elsewhere via #include - if you conflict, ; remove these, or add if Not IsDeclared "SPI_SETDESKWALLPAPER" Logic Local $SPI_SETDESKWALLPAPER = 20 Local $SPIF_UPDATEINIFILE = 1 Local $SPIF_SENDCHANGE = 2 Local $REG_DESKTOP = "HKEY_CURRENT_USER\Control Panel\Desktop" If $style = 1 Then RegWrite($REG_DESKTOP, "TileWallPaper", "REG_SZ", 1) RegWrite($REG_DESKTOP, "WallpaperStyle", "REG_SZ", 0) Else RegWrite($REG_DESKTOP, "TileWallPaper", "REG_SZ", 0) RegWrite($REG_DESKTOP, "WallpaperStyle", "REG_SZ", $style) EndIf DllCall("user32.dll", "int", "SystemParametersInfo", _ "int", $SPI_SETDESKWALLPAPER, _ "int", 0, _ "str", $bmp, _ "int", BitOR($SPIF_UPDATEINIFILE, $SPIF_SENDCHANGE)) Return 0 EndFunc ;==>_ChangeDesktopWallpaper Thanks for your time,
      -Mike
    • UEZ
      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 &= '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' $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 &= '8akiEY+AJEVv+dReeTUIdmXoxjqwbMJ9bAhn2LsAdmK/Ba2MTjReOBBUJoJoIaxHoEekiYx/BVzEripAvQx8CJpHpBllOIRg9ZwdhqmXiuICO3UMtVmJvlXO1h9TPwSstK6MRa8THwJA6MZYyR6yPkoyUSKPWcR+Sqx+U7Tz2ROVYInMUwWqwDZ7YSynMesr8EY4rYllfJzMxmEt9wWemI0J/XoAmVUxK+yQI1yLDzBG5VhhdzBY4icmLaphjrLEx8aosd9Vst2nswVTTA6BxFudYvMaDlqZ+WuTyEjWI5sTHYOCp2FRwNgszmGN7h+CLmLqsFyT8isRuWsbluYbXM+4BAMP4oao1RmWQ13zyBo/sH0e0IIa3WM5aINjXXNTOQMUoCA65I+0rpamyvDQDMKkdJlkYYPS/a1rBWsIhxGAjjtF2j4QezApM+uuGEM5njzFyY6EQCaxkjrD91viGz03319Etmfc8LYqXEWATlj/AJD9Vu+oGIgBZTWQvETMauPXFOrWLnuv/SLMTWNWDHTEfOeh+igblK4KpcNLycg+j0lZMZG3xDGb34sx0r1evE/ZRqzdIoJWnaDjYgqEGRPGrTDpFcGOuyD69kmmCn2BiWtOPXpSRHWWpiUnKWDBlI9IJiYhEYS5fUpXLXytfSJiATnVxPp0yPF7WsLM4HHwbd2aMPQIhySVms8ZwUxLVAlAgHWOgBkbE/cKiPx8kUkTxmFdeuPVuYYY65OPFbcuFlP+V7McS7PXHX9VGbUAMEEPsPQ9dnjfC0zxCHjoZXoEJJ6x1jtpdjFH0Pj99aiNMsFJ9ep40br3DmatHB1s/wA2DZT90/S9mPLuqR+lSMXrrVR6n6zYa+Qb7TLY2wQ6zIzmZmRM9mNLpTB3kd+5+0y09mfrNgID+m82xC6gm4bK8uQNNdaWA3QhZ+Qgn5Yn5Ih5SgHkoZY6kL90/wCFAWPcAPyMzywPNswGbTM1zPHPGJqOz2x9XmVWmuVXI/f1M94mBNRNYUmswTGVpaCDFsYQckxuQxhOelYCBxPKsNiTKmMoHS3Os/KeM2xTESv0K8QLNIExMfL3CcTYQuJZaBGOT0l9iQc0z8lDBcpgcTYQHrMZ1EbkUiNzUEbmMY19hhJP8MGaGan+AYiDk2CLzIvKrMF9c8yQWCbzyTyCG4R+RPyJ+RGsZv45M8jzy2Ty2Qsx/sIIYwGP65M2abGbH5//xAAeEQADAAIDAQEBAAAAAAAAAAAAAREQIAIwMRIhQP/aAAgBAwEBPwHeDRNoQ+Sd6Y3lYf5lYb/kRyENF7Fx1mVn3WatacUNjYnuiEylpSiZRrP0O480p6sccsSGy6pEHhYZCaQ4seKJnL08WsJi7whCEIMpRMeIfJCavopdflCWlLre9i7f/8QAHhEAAwADAQADAQAAAAAAAAAAAAERAiAwEBIhMVD/2gAIAQIBAT8B3uv1ret9hOU/iXi+l0fixHjN3rdIfAeJNcVT8MvsRRfY8PXoxYjU0o3tSl8Z+CZljqhKsbHpS+LlS+MhPaXdD6U+bHk+E9vbEz6//8QAMRAAAQQAAwcEAgEDBQAAAAAAAAERITECECASIjAyQVFhQHGBkaGxIwMTQlJicsHR/9oACAEBAAY/AuDOVFapTRZfCorS5RSHb0D4jmQ5uFRuqUSmV6IRSjeyrU60XHYiu5CYl+DlUlOPBOyf4r8EI3yPP0crp4LouNTZ0OpBJSFZTqTChOIhkwp3GmeiwU6J2OZEH2kX2GfChKp6HefEnZzc2sI6YF+zaRVfyV7lm0h3zfNpK4UCIkiri5l/B5VXcT8n+onBhKbRf49HecLC2gnXo4+ERe4yYoXg1n+h1Xe6aOil+ucbEf8AGhndSEIvQqZ8ysgz2fhDy19h8U5Rpoor0FZ1onRuqKqLvdSvlS5/RtdErzofR4WPYlXajZ7rwK0URxo1xpl1U3flTZwUg2fQ2VtB0WxsPU2tpLr1VZRBzG8byMbqovCZ' $Ninja &= '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' $Ninja &= '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' $Ninja &= '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' $Ninja &= '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' $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 &= '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' $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 &= '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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 &= '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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  
      Download: 
      I'm absolutely new to FreeBasic, so there might be much better approches! 
       
      Have fun.