Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 08:57

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



PROGRAMMIEREN

Discussion on PROGRAMMIEREN within the General Coding forum part of the Coders Den category.

Reply
 
Old 03/02/2009, 20:40   #16
 
felixli93's Avatar
 
elite*gold: 0
Join Date: Aug 2008
Posts: 820
Received Thanks: 909
deswegen ist autoit ja auch für kleinere scripts besser geeignet, und c++ für große anwendungen etwas besser
felixli93 is offline  
Old 03/02/2009, 20:47   #17
 
elite*gold: 0
Join Date: Jun 2008
Posts: 260
Received Thanks: 302
Quote:
Originally Posted by __wadim View Post
in welchem maße? würd mich ma interessieren

so ein gewaltiger unterschied ist es nun auch wieder nicht..
Genau weiß ich es nicht, aber ich vermute mal einfach allgemein im gesamten Ablauf (ist denke ich mal mit dem menschlichen nicht spürbar)
atze19 is offline  
Old 03/03/2009, 00:56   #18
 
link's Avatar
 
elite*gold: 1
Join Date: Jul 2005
Posts: 553
Received Thanks: 454
Quote:
Originally Posted by __wadim
in welchem maße? würd mich ma interessieren

so ein gewaltiger unterschied ist es nun auch wieder nicht..
Quote:
Originally Posted by felixli93
deswegen ist autoit ja auch für kleinere scripts besser geeignet, und c++ für große anwendungen etwas besser
Quote:
Originally Posted by atze19
Genau weiß ich es nicht, aber ich vermute mal einfach allgemein im gesamten Ablauf (ist denke ich mal mit dem menschlichen nicht spürbar)

Lasst uns alle gemeinsam einen großen Esoterikerverband bilden, der die Fakten der Welt neu formt!

Außerdem brauchen wir kein Geld: Das kann eine Kommune werden, in der jeder jedem hilft. Da gibt es dann einen, der dann quasi Brot backen tut und einen anderen, der dann praktisch für die Sicherheit der Leute sorgen tut.
link is offline  
Old 03/03/2009, 11:56   #19
 
verT!c4L's Avatar
 
elite*gold: 0
Join Date: Aug 2005
Posts: 1,245
Received Thanks: 60
Quote:
Originally Posted by __wadim View Post
in welchem maße? würd mich ma interessieren

so ein gewaltiger unterschied ist es nun auch wieder nicht..
Naja, sobald es sich um Algorithmen handelt dürfte wohl C++
die bessere Wahl sein.
Ein Primzahlen-Generator dürfte bei AutoIt derbe langsam sein...
verT!c4L is offline  
Old 03/03/2009, 14:16   #20
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
In Autoit kannst du keine DLLs schreiben, also kannst du auch keine D3D Hooks machen oder sicher auf Game Interne Funktionen zu greifen, außerdem ist Autoit schnarch lahm im Vergleich mit Hochsprachen wie C++, simple Aufgaben wie zb ein Array Sortieralgoritmus werden mit Autoit ein Akt, zum einen auf Grund der Art der Array Unterstützung die ziemlich sperrig ist und zum anderen weil Autoit deutlich langsamer auf Variablen zugreift, da es ja eine Typen unabhängige Sprache ist und natürlich hat man bei Autoit den Nachteil das man nicht genau Kontrollieren kann wie der Speicher Verbrauch des Programms am Ende aussieht.
Wenn jemand Interesse am genauen unterschied der Leistungsfähigkeit hat, dann Implementiert einfach mal den QuickSort Algoritmus in Autoit und C++ und Sortiert damit ein Array aus 1.000.000 Zufallszahlen und messt mit zwei GetTickCount() calls vor und nach dem Funktions Aufruf wie lange es denn braucht.

Edit: in Autoit wird vermutlich schon das Generieren des Zufalls Arrays ewig dauern :-)
Bot_interesierter is offline  
Old 03/03/2009, 14:21   #21

 
Adroxxx's Avatar
 
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
D3D Hooks gehen mit AutoIt
Adroxxx is offline  
Old 03/03/2009, 17:33   #22
 
Atheuz's Avatar
 
elite*gold: 81
Join Date: Jul 2005
Posts: 1,921
Received Thanks: 2,239
Quote:
Originally Posted by Adroxxx View Post
D3D Hooks gehen mit AutoIt
Witz komm raus?
Atheuz is offline  
Old 03/03/2009, 17:53   #23
 
verT!c4L's Avatar
 
elite*gold: 0
Join Date: Aug 2005
Posts: 1,245
Received Thanks: 60
Nein das geht wirklich
verT!c4L is offline  
Old 03/03/2009, 18:35   #24
 
elite*gold: 0
Join Date: May 2008
Posts: 489
Received Thanks: 210
Mag ja gehen, aber nicht mit einer Dll.

Davon mal abgesehen wie bereits erwähnt sehr langsam. Das ist immer noch nur eine Scriptsprache die mag ja für manche Sachen ganz lustig sein, aber ich denke gerade Leute die mit echter Programmierung nichts am Hut haben sollten das lassen. Die haben dann nämlich keine Ahnung was dort im Hintergrund geschieht geschweige denn was sie da überhaupt zusammenkleistern. Wenn man schon eine Programmiersprache kann und sich mit einer Skriptsprache etwas erleichtern will oder kleine Arbeiten durchführt - meinetwegen. Aber immer diese Empfehlungen "Nimm doch AutoIT!!" ... schlechte Entwicklung, ganz schlechte.

Bewerbt euch mal bei irgendeiner Software - Entwicklungs Firma und schreibt in die Bewerbung dass ihr Primär eure Anwendungen mit AutoIT schreibt. Die wandert gleich in den Müll.

Sachen die AutoIT (scheinbar) nicht kann:
Dynamic Link Libraries erstellen (logisch, wie auch?)
OOP (n/c)

Die Liste geht sicher noch weiter aber ich habe nun wirklich keine Lust hier zu recherchieren.
schlurmann is offline  
Old 03/03/2009, 19:01   #25

 
Adroxxx's Avatar
 
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
Natürlich kommt AutoIt nicht an C++ oder Java o.Ä. ran. Trotzdem kann man oft kleinigkeiten mit AutoIt schneller Erledigen.

Wobei ich eigentlich immer C++ bevorzuge.

@ D3D hook: brauchst dir nur den xmbb von azunai angucken, der hat ingame menü Wobei ich auch bezweifle das man da so viel Kontrolle drüber hat wie z.B. in C++ ... naja kp nie mit autoit was gemacht xD
Adroxxx is offline  
Old 03/03/2009, 20:16   #26
 
Atheuz's Avatar
 
elite*gold: 81
Join Date: Jul 2005
Posts: 1,921
Received Thanks: 2,239
Quote:
Originally Posted by Adroxxx View Post
Natürlich kommt AutoIt nicht an C++ oder Java o.Ä. ran. Trotzdem kann man oft kleinigkeiten mit AutoIt schneller Erledigen.

Wobei ich eigentlich immer C++ bevorzuge.

@ D3D hook: brauchst dir nur den xmbb von azunai angucken, der hat ingame menü Wobei ich auch bezweifle das man da so viel Kontrolle drüber hat wie z.B. in C++ ... naja kp nie mit autoit was gemacht xD
Code:
#include "MemoryDLL\MemoryDLL.au3"
#include<Timers.au3>
DllOpen("d3d9.dll")
DllOpen("D3DX9_39.dll")
; Definitions from:
; --> http://source.winehq.org/source/include/d3d8types.h
; --> http://source.winehq.org/source/include/d3d9.h
; --> freebasic: d3d9.bi, d3d9types.bi, d3d9caps.bi
; --> http://www.math.uni-leipzig.de/pool/tuts/S...raphics/dg.html
; --> MSDN (IMG:http://www.autoitscript.com/forum/style_emoticons/autoit/tongue.gif)

Func MAKE_HRESULT($sev,$fac,$code)
    Return BitOR(BitShift($sev,-31) , BitOR(BitShift($fac,-16),  $code))
EndFunc
Func MAKE_D3DSTATUS($code)
    Return MAKE_HRESULT(0,0x876,$code)
EndFunc
Func MAKE_D3DHRESULT($code)
    Return MAKE_HRESULT(1,0x876,$code)
EndFunc

Global COnst $D3D_SDK_VERSION = 32

Global Const $D3DCREATE_FPU_PRESERVE = 0x02
Global Const $D3DCREATE_MULTITHREADED = 0x04
Global Const $D3DCREATE_PUREDEVICE = 0x10
Global Const $D3DCREATE_SOFTWARE_VERTEXPROCESSING = 0x20
Global Const $D3DCREATE_HARDWARE_VERTEXPROCESSING = 0x40
Global Const $D3DCREATE_MIXED_VERTEXPROCESSING = 0x80

Global Const $D3DSPD_IUNKNOWN = 1
Global Const $D3DSGR_NO_CALIBRATION = 0
Global Const $D3DSGR_CALIBRATE = 1
Global Const $D3D_OK = 0
Global Const $D3DOK_NOAUTOGEN   = MAKE_D3DSTATUS(2159)
Global Const $D3DERR_WRONGTEXTUREFORMAT = MAKE_D3DHRESULT(2072)
Global Const $D3DERR_UNSUPPORTEDCOLOROPERATION  = MAKE_D3DHRESULT(2073)
Global Const $D3DERR_UNSUPPORTEDCOLORARG    = MAKE_D3DHRESULT(2074)
Global Const $D3DERR_UNSUPPORTEDALPHAOPERATION  = MAKE_D3DHRESULT(2075)
Global Const $D3DERR_UNSUPPORTEDALPHAARG    = MAKE_D3DHRESULT(2076)
Global Const $D3DERR_TOOMANYOPERATIONS  = MAKE_D3DHRESULT(2077)
Global Const $D3DERR_CONFLICTINGTEXTUREFILTER   = MAKE_D3DHRESULT(2078)
Global Const $D3DERR_UNSUPPORTEDFACTORVALUE = MAKE_D3DHRESULT(2079)
Global Const $D3DERR_CONFLICTINGRENDERSTATE = MAKE_D3DHRESULT(2081)
Global Const $D3DERR_UNSUPPORTEDTEXTUREFILTER   = MAKE_D3DHRESULT(2082)
Global Const $D3DERR_CONFLICTINGTEXTUREPALETTE  = MAKE_D3DHRESULT(2086)
Global Const $D3DERR_DRIVERINTERNALERROR    = MAKE_D3DHRESULT(2087)
Global Const $D3DERR_NOTFOUND   = MAKE_D3DHRESULT(2150)
Global Const $D3DERR_MOREDATA   = MAKE_D3DHRESULT(2151)
Global Const $D3DERR_DEVICELOST = MAKE_D3DHRESULT(2152)
Global Const $D3DERR_DEVICENOTRESET = MAKE_D3DHRESULT(2153)
Global Const $D3DERR_NOTAVAILABLE   = MAKE_D3DHRESULT(2154)
Global Const $D3DERR_OUTOFVIDEOMEMORY   = MAKE_D3DHRESULT(380)
Global Const $D3DERR_INVALIDDEVICE  = MAKE_D3DHRESULT(2155)
Global Const $D3DERR_INVALIDCALL    = MAKE_D3DHRESULT(2156)
Global Const $D3DERR_DRIVERINVALIDCALL  = MAKE_D3DHRESULT(2157)
Global Const $D3DERR_WASSTILLDRAWING    = MAKE_D3DHRESULT(540)
Global Const $D3DADAPTER_DEFAULT = 0
Global Const $D3DCURSOR_IMMEDIATE_UPDATE = 1
Global Const $D3DENUM_HOST_ADAPTER = 1
Global Const $D3DENUM_NO_WHQL_LEVEL = 2
Global Const $D3DPRESENT_BACK_BUFFERS_MAX = 3
Global Const $VALID_D3DENUM_FLAGS = 3
Global Const $D3DMAXNUMPRIMITIVES = 0xFFFF
Global Const $D3DMAXNUMVERTICES = 0xFFFF
Global Const $D3DCURRENT_DISPLAY_MODE = 0xEFFFFF

Global COnst $D3DDEVTYPE_HAL      = 1
Global COnst $D3DDEVTYPE_REF       = 2
Global COnst $D3DDEVTYPE_SW        = 3

Global Const $D3DADPATER_DEFAULT = 0


Global Const $D3DRECT = "long x1; long y1; long x2; long y2;"

Global Const $D3DPRESENT_PARAMETERS = _
    "UINT                    BackBufferWidth;" & _ ;
    "UINT                    BackBufferHeight;" & _ ;
    "dword               BackBufferFormat;" & _ ; D3DFORMAT
    "UINT                    BackBufferCount;" & _ ;
    "dword     MultiSampleType;" & _ ; D3DMULTISAMPLE_TYPE
    "DWORD                   MultiSampleQuality;" & _ ;
    "dword           SwapEffect;" & _ ; D3DSWAPEFFECT
    "HWND                    hDeviceWindow;" & _ ;
    "int                    Windowed;" & _ ; BOOL
    "int                    EnableAutoDepthStencil;" & _ ; BOOL
    "dword               AutoDepthStencilFormat;" & _ ; D3DFORMAT
    "DWORD                   Flags;" & _ ;
    "UINT                    FullScreenRefreshRateInHz;" & _ ;
    "UINT                    PresentationInterval;"

; The IUnknown-Interface
Global Const $IUnknown_vTable = "ptr QueryInterface; ptr AddRef; ptr Release;"
Global Const $IUnknown = "ptr IUnknown;"

#Region IDirect3D9Ex and IDirect3D9 Interfaces
#cs D3D9-EX-Interface
DECLARE_INTERFACE_(IDirect3D9Ex,IDirect3D9)
    /*** IUnknown methods ***/
    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IDirect3D9 methods ***/
    STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
    STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
    STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
    STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE;
    STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode) PURE;
    STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE* pMode) PURE;
    STDMETHOD(CheckDeviceType)(THIS_ UINT iAdapter, D3DDEVTYPE DevType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed) PURE;
    STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE;
    STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels) PURE;
    STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
    STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SourceFormat, D3DFORMAT TargetFormat) PURE;
    STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps) PURE;
    STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
    STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
    /*** IDirect3D9Ex methods ***/
    STDMETHOD_(UINT, GetAdapterModeCountEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter) PURE;
    STDMETHOD(EnumAdapterModesEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter, UINT Mode, D3DDISPLAYMODEEX* pMode) PURE;
    STDMETHOD(GetAdapterDisplayModeEx)(THIS_ UINT Adapter, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation);
    STDMETHOD(CreateDeviceEx)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, D3DDISPLAYMODEEX* pFullscreenDisplayMode, struct IDirect3DDevice9Ex **ppReturnedDeviceInterface) PURE;
    STDMETHOD(GetAdapterLUID)(THIS_ UINT Adatper, LUID *pLUID) PURE;
};
#ce

Global Const $IDirect3D9_vTable = $IUnknown_vTable & "ptr RegisterSoftwareDevice; ptr GetAdapterCount; ptr GetAdapterIdentifier; ptr GetAdapterModeCount; " & _
        "ptr EnumAdapterModes; ptr GetAdapterDisplayMode; ptr CheckDeviceType; ptr CheckDeviceFormat; ptr CheckDeviceMultiSampleType; ptr CheckDepthStencilMatch; " & _
        "ptr CheckDeviceFormatConversion; ptr GetDeviceCaps; ptr GetAdapterMonitor; ptr CreateDevice;"
Global Const $IDirect3D9Ex_vTable = $IDirect3D9_vTable & "ptr GetAdapterModeCountEx; ptr EnumAdapterModesEx; ptr GetAdapterDisplayModeEx; ptr CreateDeviceEx; GetAdapterLUID;"
Global Const $IDirect3D9 = "ptr IDirect3D9;"
Global Const $IDirect3D9Ex = "ptr IDirect3D9Ex;"
#EndRegion

#Region IDirect3DDevice9 interface
#cs
/*****************************************************************************
 * IDirect3DDevice9 interface
 */
#define INTERFACE IDirect3DDevice9
DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IDirect3DDevice9 methods ***/
    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
    STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
    STDMETHOD(EvictManagedResources)(THIS) PURE;
    STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE;
    STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9* pCaps) PURE;
    STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, D3DDISPLAYMODE* pMode) PURE;
    STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
    STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) PURE;
    STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y, DWORD Flags) PURE;
    STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE;
    STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE;
    STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
    STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
    STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE;
    STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
    STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
    STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE;
    STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
    STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
    STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
    STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) PURE;
    STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) PURE;
    STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
    STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
    STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
    STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE;
    STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
    STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
    STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
    STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE;
    STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE;
    STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
    STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
    STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
    STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE;
    STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
    STDMETHOD(BeginScene)(THIS) PURE;
    STDMETHOD(EndScene)(THIS) PURE;
    STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE;
    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE;
    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE;
    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE;
    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
    STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
    STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
    STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE;
    STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
    STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE;
    STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE;
    STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE;
    STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE;
    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
    STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
    STDMETHOD(BeginStateBlock)(THIS) PURE;
    STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
    STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
    STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
    STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
    STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) PURE;
    STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) PURE;
    STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
    STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
    STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
    STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE;
    STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
    STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
    STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
    STDMETHOD(SetScissorRect)(THIS_ CONST RECT* pRect) PURE;
    STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
    STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL bSoftware) PURE;
    STDMETHOD_(BOOL, GetSoftwareVertexProcessing)(THIS) PURE;
    STDMETHOD(SetNPatchMode)(THIS_ float nSegments) PURE;
    STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
    STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
    STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE;
    STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
    STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
    STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
    STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE;
    STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
    STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
    STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
    STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT  BoolCount) PURE;
    STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
    STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
    STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
    STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE;
    STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
    STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
    STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE;
    STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
    STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
    STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
    STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT  BoolCount) PURE;
    STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
    STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
    STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
    STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
    STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
#ce

Global Const $IDirect3DDevice9_vTable = $IUnknown_vTable & _
        "ptr TestCooperativeLevel;" & _
        "ptr GetAvailableTextureMem;" & _
        "ptr EvictManagedResources;" & _
        "ptr GetDirect3D;" & _
        "ptr GetDeviceCaps;" & _
        "ptr GetDisplayMode;" & _
        "ptr GetCreationParameters;" & _
        "ptr SetCursorProperties;" & _
        "ptr SetCursorPosition;" & _
        "ptr ShowCursor;" & _
        "ptr CreateAdditionalSwapChain;" & _
        "ptr GetSwapChain;" & _
        "ptr GetNumberOfSwapChains;" & _
        "ptr Reset;" & _
        "ptr Present;" & _
        "ptr GetBackBuffer;" & _
        "ptr GetRasterStatus;" & _
        "ptr SetDialogBoxMode;" & _
        "ptr SetGammaRamp;" & _
        "ptr GetGammaRamp;" & _
        "ptr CreateTexture;" & _
        "ptr CreateVolumeTexture;" & _
        "ptr CreateCubeTexture;" & _
        "ptr CreateVertexBuffer;" & _
        "ptr CreateIndexBuffer;" & _
        "ptr CreateRenderTarget;" & _
        "ptr CreateDepthStencilSurface;" & _
        "ptr UpdateSurface;" & _
        "ptr UpdateTexture;" & _
        "ptr GetRenderTargetData;" & _
        "ptr GetFrontBufferData;" & _
        "ptr StretchRect;" & _
        "ptr ColorFill;" & _
        "ptr CreateOffscreenPlainSurface;" & _
        "ptr SetRenderTarget;" & _
        "ptr GetRenderTarget;" & _
        "ptr SetDepthStencilSurface;" & _
        "ptr GetDepthStencilSurface;" & _
        "ptr BeginScene;" & _
        "ptr EndScene;" & _
        "ptr Clear;" & _
        "ptr SetTransform;" & _
        "ptr GetTransform;" & _
        "ptr MultiplyTransform;" & _
        "ptr SetViewport;" & _
        "ptr GetViewport;" & _
        "ptr SetMaterial;" & _
        "ptr GetMaterial;" & _
        "ptr SetLight;" & _
        "ptr GetLight;" & _
        "ptr LightEnable;" & _
        "ptr GetLightEnable;" & _
        "ptr SetClipPlane;" & _
        "ptr GetClipPlane;" & _
        "ptr SetRenderState;" & _
        "ptr GetRenderState;" & _
        "ptr CreateStateBlock;" & _
        "ptr BeginStateBlock;" & _
        "ptr EndStateBlock;" & _
        "ptr SetClipStatus;" & _
        "ptr GetClipStatus;" & _
        "ptr GetTexture;" & _
        "ptr SetTexture;" & _
        "ptr GetTextureStageState;" & _
        "ptr SetTextureStageState;" & _
        "ptr GetSamplerState;" & _
        "ptr SetSamplerState;" & _
        "ptr ValidateDevice;" & _
        "ptr SetPaletteEntries;" & _
        "ptr GetPaletteEntries;" & _
        "ptr SetCurrentTexturePalette;" & _
        "ptr GetCurrentTexturePalette;" & _
        "ptr SetScissorRect;" & _
        "ptr GetScissorRect;" & _
        "ptr SetSoftwareVertexProcessing;" & _
        "ptr GetSoftwareVertexProcessing;" & _
        "ptr SetNPatchMode;" & _
        "ptr GetNPatchMode;" & _
        "ptr DrawPrimitive;" & _
        "ptr DrawIndexedPrimitive;" & _
        "ptr DrawPrimitiveUP;" & _
        "ptr DrawIndexedPrimitiveUP;" & _
        "ptr ProcessVertices;" & _
        "ptr CreateVertexDeclaration;" & _
        "ptr SetVertexDeclaration;" & _
        "ptr GetVertexDeclaration;" & _
        "ptr SetFVF;" & _
        "ptr GetFVF;" & _
        "ptr CreateVertexShader;" & _
        "ptr SetVertexShader;" & _
        "ptr GetVertexShader;" & _
        "ptr SetVertexShaderConstantF;" & _
        "ptr GetVertexShaderConstantF;" & _
        "ptr SetVertexShaderConstantI;" & _
        "ptr GetVertexShaderConstantI;" & _
        "ptr SetVertexShaderConstantB;" & _
        "ptr GetVertexShaderConstantB;" & _
        "ptr SetStreamSource;" & _
        "ptr GetStreamSource;" & _
        "ptr SetStreamSourceFreq;" & _
        "ptr GetStreamSourceFreq;" & _
        "ptr SetIndices;" & _
        "ptr GetIndices;" & _
        "ptr CreatePixelShader;" & _
        "ptr SetPixelShader;" & _
        "ptr GetPixelShader;" & _
        "ptr SetPixelShaderConstantF;" & _
        "ptr GetPixelShaderConstantF;" & _
        "ptr SetPixelShaderConstantI;" & _
        "ptr GetPixelShaderConstantI;" & _
        "ptr SetPixelShaderConstantB;" & _
        "ptr GetPixelShaderConstantB;" & _
        "ptr DrawRectPatch;" & _
        "ptr DrawTriPatch;" & _
        "ptr DeletePatch;" & _
        "ptr CreateQuery;"
Global Const $IDirect3DDevice9 = "ptr IDirect3DDevice9;"
#EndRegion




;Prog@ndy
Func _CreateIDirect3D9($SDKVersion=$D3D_SDK_VERSION)
    Local $D3D9_Pointer = DllCall("d3d9.dll","ptr","Direct3DCreate9","uint",$SDKVersion)
    Select
        Case @error
            Return SetError(1,0,0)
        Case $D3D9_Pointer[0] = 0
            Return SetError(2,0,0)
    EndSelect
    Local $RetArr[3]
    $RetArr[0] = $D3D9_Pointer[0]
    $RetArr[1] = DllStructCreate($IDirect3D9,$RetArr[0])
    $RetArr[2] = DllStructCreate($IDirect3D9_vTable,DllStructGetData($RetArr[1],1))
    Return $RetArr
EndFunc
;Prog@ndy
Func _IDirect3D9_Release(ByRef $D3D9Arr)
    If UBound($D3D9Arr) <> 3 Then Return SetError(1,0,-1)
    Local $Func_Release = DllStructGetData($D3D9Arr[2],"Release")
    Local $ret = MemoryFuncCall("lresult",$Func_Release,"ptr",$D3D9Arr[0])
    Return $ret[0]
EndFunc
;Prog@ndy
Func _IDirect3D9_CreateDevice(ByRef $D3D9Arr,$Adapter,$DeviceType,$hFocusWindow,$BehaviorFlags,$pPresentationParameters)
    If UBound($D3D9Arr) <> 3 Then Return SetError(1,0,-1)
    Local $Func_CreateDevice = DllStructGetData($D3D9Arr[2],"CreateDevice")
    Local $ret = MemoryFuncCall("lresult",$Func_CreateDevice,"ptr",$D3D9Arr[0],"uint",$Adapter,"dword",$DeviceType,"hwnd",$hFocusWindow,"dword",$BehaviorFlags, "ptr", $pPresentationParameters,"ptr*",0)
    Return SetError($ret[0],0,$ret[7])
EndFunc
;Prog@ndy
Func _IDirect3DDevice9_FromPointer($D3D9Device_ptr)
    if $D3D9Device_ptr = 0 Then Return SetError(1,0,0)
    Local $RetArr[3]
    $RetArr[0] = $D3D9Device_ptr
    $RetArr[1] = DllStructCreate($IDirect3DDevice9,$RetArr[0])
    $RetArr[2] = DllStructCreate($IDirect3DDevice9_vTable,DllStructGetData($RetArr[1],1))
    Return $RetArr
EndFunc
;Prog@ndy
Func _IDirect3DDevice9_Release(ByRef $D3D9Arr)
    If UBound($D3D9Arr) <> 3 Then Return SetError(1,0,-1)
    Local $Func_Release = DllStructGetData($D3D9Arr[2],"Release")
    Local $ret = MemoryFuncCall("lresult",$Func_Release,"ptr",$D3D9Arr[0])
    Return $ret[0]
EndFunc
;Prog@ndy
Func _IDirect3DDevice9_BeginScene(ByRef $D3D9Arr)
    If UBound($D3D9Arr) <> 3 Then Return SetError(1,0,-1)
    Local $DeviceFunc_BeginScene = DllStructGetData($D3D9Arr[2],"BeginScene")
    Local $BeginScene = MemoryFuncCall("lresult",$DeviceFunc_BeginScene,"ptr",$D3D9Arr[0])
    Return $BeginScene[0]
EndFunc
;Prog@ndy
Func _IDirect3DDevice9_Present(ByRef $D3D9Arr,$pSourceRect,$pDestRect,$hDestWindowOverride,$pDirtyRegion)
    If UBound($D3D9Arr) <> 3 Then Return SetError(1,0,-1)
    Local $DeviceFunc_Present = DllStructGetData($D3D9Arr[2],"Present")
    Local $Present = MemoryFuncCall("lresult",$DeviceFunc_Present,"ptr",$D3D9Arr[0],"ptr",$pSourceRect,"ptr",$pDestRect,"hwnd",$hDestWindowOverride,"ptr",$pDirtyRegion)
    Return $Present[0]
EndFunc
;Prog@ndy
Func _IDirect3DDevice9_EndScene(ByRef $D3D9Arr)
    If UBound($D3D9Arr) <> 3 Then Return SetError(1,0,-1)
    Local $DeviceFunc_EndScene = DllStructGetData($D3D9Arr[2],"EndScene")
    Local $EndScene = MemoryFuncCall("lresult",$DeviceFunc_EndScene,"ptr",$D3D9Arr[0])
    Return $EndScene[0]
EndFunc
;Prog@ndy
Func _IDirect3DDevice9_Clear(ByRef $D3D9Arr,$Count,$pRects,$Flags,$Color,$Z,$Stencil)
    If UBound($D3D9Arr) <> 3 Then Return SetError(1,0,-1)
    Local $DeviceFunc_Clear = DllStructGetData($D3D9Arr[2],"Clear")
    Local $Clear = MemoryFuncCall("lresult",$DeviceFunc_Clear,"ptr",$D3D9Arr[0],"dword",$Count,"ptr",$pRects,"DWORD",$Flags,"dword",$Color,"float",$Z,"dword",$Stencil)
    Return $Clear[0]
EndFunc

Global $FocusWindow = GUICreate("test",400,400)
    GUISetState(@SW_SHOW)

Global $structD3DPRESENT_PARAMETERS = DllStructCreate($D3DPRESENT_PARAMETERS)
    DllStructSetData($structD3DPRESENT_PARAMETERS,"SwapEffect",3)
    DllStructSetData($structD3DPRESENT_PARAMETERS,"BackBufferWidth",400)
    DllStructSetData($structD3DPRESENT_PARAMETERS,"BackBufferWidth",400)
    DllStructSetData($structD3DPRESENT_PARAMETERS,"hDeviceWindow",$FocusWindow)
    DllStructSetData($structD3DPRESENT_PARAMETERS,"Windowed",1)
    Global $pD3DPRESENT_PARAMETERS = DllStructGetPtr($structD3DPRESENT_PARAMETERS)

$MY_IDirect3D9 = _CreateIDirect3D9()

; Get Device Interface
$BehaviorFlags = $D3DCREATE_SOFTWARE_VERTEXPROCESSING
;~ $BehaviorFlags = $D3DCREATE_MIXED_VERTEXPROCESSING
;~ $BehaviorFlags = $D3DCREATE_HARDWARE_VERTEXPROCESSING
$ret = _IDirect3D9_CreateDevice($MY_IDirect3D9,$D3DADPATER_DEFAULT,$D3DDEVTYPE_HAL,$FocusWindow,$BehaviorFlags, $pD3DPRESENT_PARAMETERS)
If @error Then Exit MsgBox(0, "",@error=$D3DERR_INVALIDCALL)
$MY_D3D9Device = _IDirect3DDevice9_FromPointer($ret)

; Create Rect struct for drawing
Global $structD3DRECT = DllStructCreate($D3DRECT)

; start scene drawing
_Timer_SetTimer($FocusWindow,250,"_Timer_RedrawScene")
While GUIGetMsg()<>-3
WEnd
; stop it
_Timer_KillAllTimers($FocusWindow)

; Release Device
;~ $Func_ReleaseDevice = DllStructGetData($D3D9Device_FuncPtrs,3)
;~ $ret = MemoryFuncCall("dword",$Func_ReleaseDevice,"ptr",$D3D9Device_ptr)
$ret = _IDirect3DDevice9_Release($MY_D3D9Device)
MsgBox(0, 'Release Device', $ret=0)

; Release D3D9
;~ $Func_Release = DllStructGetData($D3D9_FuncPointers,"Release")
;~ $ret = MemoryFuncCall("dword",$Func_Release,"ptr",$D3D9_Pointer)
$ret = _IDirect3D9_Release($MY_IDirect3D9)
MsgBox(0, 'Release D3D9', $ret=0)

; Draw Scenes
Func _Timer_RedrawScene($hWnd, $Msg, $iIDTimer, $dwTime)
    ; Begin a new scene
    Local $BeginScene = _IDirect3DDevice9_BeginScene($MY_D3D9Device)
    ; clear backgrounf to blue
    Local $Clear = _IDirect3DDevice9_Clear($MY_D3D9Device,0,0,1,0x000000FF,0,0)
   
    ; draw a red rect
        DllStructSetData($structD3DRECT,"x1",Random(10,100,1))
        DllStructSetData($structD3DRECT,"y1",Random(10,200,1))
        DllStructSetData($structD3DRECT,"x2",DllStructgetData($structD3DRECT,"x1")+Random(40,200,1))
        DllStructSetData($structD3DRECT,"y2",DllStructgetData($structD3DRECT,"y1")+Random(40,200,1))
    Local $Clear2 = _IDirect3DDevice9_Clear($MY_D3D9Device,1,DllStructGetPtr($structD3DRECT),1,0x00FF0000,0,0)
   
    ;end the scene
    Local $EndScene = _IDirect3DDevice9_EndScene($MY_D3D9Device)
    ; draw it
    Local $Present = _IDirect3DDevice9_Present($MY_D3D9Device,0,0,0,0)
EndFunc
:|
Atheuz is offline  
Old 03/03/2009, 20:24   #27

 
Adroxxx's Avatar
 
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
Ich glaub ich hab noch irgendwo den source, aber ist wiegesagt von azunai, fallst du interesse daran hast, was ich nicht vermute xD kannst ihn ja fragen. Wiegesagt hab ich nie wirklich was mit autoit gemacht. Einzige was ich mit solchen sprachen gemacht habe war damals ein loginbot mit actools !!! imbaaa xD
Adroxxx is offline  
Old 03/03/2009, 20:33   #28
 
elite*gold: 0
Join Date: Nov 2008
Posts: 576
Received Thanks: 191
azunai benutzt im xmbb die d3d9.dll und die proxy gpcomms.dll von mikoweb:eu
__wadim is offline  
Old 03/03/2009, 22:22   #29


 
Cholik's Avatar
 
elite*gold: 4
Join Date: Aug 2008
Posts: 6,783
Received Thanks: 4,992
alles **** :E
Cholik is offline  
Reply


Similar Threads Similar Threads
Bot Programmieren^^
06/16/2010 - General Coding - 9 Replies
Server leider hab ich 0 Plan was man wissen muss oder was für ein aufwand es darstellen würde^^ Ich suche einen Bot mit dem man Pm´s verschicken kann sprich ein Script zum einem könnte ich mir vorstellen das man zuerst alle User namen sammelt sprich über den link alle user id´s durchgeht die namen von der hp in ein Liste steckt und mit der Liste eine vorgefertigte Pm verschickt ka wie groß der Aufwand ist und ka ob ich überhaupt in der richtigen rubrik bin xD sry Rechtschreibung...
programmieren
05/20/2010 - General Coding - 3 Replies
hallo zusammen hab ne frage und zwar wer von euch kann gut programmieren aber ich würde gernen einen pennergame weiterbildungs und kampf bot haben bitte melden
programmieren
05/18/2010 - WarRock - 5 Replies
hallo com sry für die vielen threads ich hab wieder ne frage und zwar wer von euch kann gut programmieren
Programmieren ?
04/17/2009 - General Coding - 10 Replies
Hallo :) Ich würde gerne mal wissen wie man ein Programm erstel wo die eingegebenen Texte per Textdatei oder E-Mail Adresse auf meinen Computer übertragen werden... Habe nicht sehr viel Erfahrung im Programmierer-Bereich.... Bitte um Hilfe :confused:
Programmieren u.a.
03/08/2009 - General Coding - 13 Replies
Hey Leute, ich bin komme mal zu Sache. Ich will Programmieren lernen. Ich bin 13 Jahre und wohne in Belgien darum habe ich keine Chance mich richtig mit 13 Jahren über Programmieren und so zu Informieren. Darum die Frage. Kann mir einer von euch die das Lesen, eine Seite/HP wo man nur darüber bescheid kriegt, was das ist ... . Wen einer natürlich selber Lehrer spielen will, immer gern, PN me oder so, Ich habe MSN, ICQ, Skype. Danke im voraus



All times are GMT +1. The time now is 09:00.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.