Commit 3b9e1eab by Nicolas Capens

Fix D3D8, D3D9, and GL builds.

Bug swiftshader:63 Bug swiftshader:31 Change-Id: I59d08cbc8379e2c30984b9ec0ed4d49317633ce8 Reviewed-on: https://swiftshader-review.googlesource.com/10048Tested-by: 's avatarNicolas Capens <capn@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent fc2b84d5
......@@ -30,27 +30,27 @@ namespace D3D8
public:
Direct3D8(int version, const HINSTANCE instance);
virtual ~Direct3D8();
~Direct3D8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3D8 methods
long __stdcall CheckDepthStencilMatch(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapterFormat, D3DFORMAT renderTargetFormat, D3DFORMAT depthStencilFormat);
long __stdcall CheckDeviceFormat(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapaterFormat, unsigned long usage, D3DRESOURCETYPE type, D3DFORMAT checkFormat);
long __stdcall CheckDeviceMultiSampleType(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT surfaceFormat, int windowed, D3DMULTISAMPLE_TYPE multiSampleType);
long __stdcall CheckDeviceType(unsigned int adapter, D3DDEVTYPE checkType, D3DFORMAT displayFormat, D3DFORMAT backBufferFormat, int windowed);
long __stdcall CreateDevice(unsigned int adapter, D3DDEVTYPE deviceType, HWND focusWindow, unsigned long behaviorFlags, D3DPRESENT_PARAMETERS *presentParameters, IDirect3DDevice8 **returnedDeviceInterface);
long __stdcall EnumAdapterModes(unsigned int adapter, unsigned int index, D3DDISPLAYMODE *mode);
unsigned int __stdcall GetAdapterCount();
long __stdcall GetAdapterDisplayMode(unsigned int adapter, D3DDISPLAYMODE *mode);
long __stdcall GetAdapterIdentifier(unsigned int adapter, unsigned long flags, D3DADAPTER_IDENTIFIER8 *identifier);
unsigned int __stdcall GetAdapterModeCount(unsigned int adapter);
HMONITOR __stdcall GetAdapterMonitor(unsigned int adapter);
long __stdcall GetDeviceCaps(unsigned int adapter, D3DDEVTYPE deviceType, D3DCAPS8 *caps);
long __stdcall RegisterSoftwareDevice(void *initializeFunction);
long __stdcall CheckDepthStencilMatch(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapterFormat, D3DFORMAT renderTargetFormat, D3DFORMAT depthStencilFormat) override;
long __stdcall CheckDeviceFormat(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapaterFormat, unsigned long usage, D3DRESOURCETYPE type, D3DFORMAT checkFormat) override;
long __stdcall CheckDeviceMultiSampleType(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT surfaceFormat, int windowed, D3DMULTISAMPLE_TYPE multiSampleType) override;
long __stdcall CheckDeviceType(unsigned int adapter, D3DDEVTYPE checkType, D3DFORMAT displayFormat, D3DFORMAT backBufferFormat, int windowed) override;
long __stdcall CreateDevice(unsigned int adapter, D3DDEVTYPE deviceType, HWND focusWindow, unsigned long behaviorFlags, D3DPRESENT_PARAMETERS *presentParameters, IDirect3DDevice8 **returnedDeviceInterface) override;
long __stdcall EnumAdapterModes(unsigned int adapter, unsigned int index, D3DDISPLAYMODE *mode) override;
unsigned int __stdcall GetAdapterCount() override;
long __stdcall GetAdapterDisplayMode(unsigned int adapter, D3DDISPLAYMODE *mode) override;
long __stdcall GetAdapterIdentifier(unsigned int adapter, unsigned long flags, D3DADAPTER_IDENTIFIER8 *identifier) override;
unsigned int __stdcall GetAdapterModeCount(unsigned int adapter) override;
HMONITOR __stdcall GetAdapterMonitor(unsigned int adapter) override;
long __stdcall GetDeviceCaps(unsigned int adapter, D3DDEVTYPE deviceType, D3DCAPS8 *caps) override;
long __stdcall RegisterSoftwareDevice(void *initializeFunction) override;
private:
void loadSystemD3D8();
......
......@@ -135,7 +135,7 @@ namespace D3D8
return LOD;
}
long Direct3DBaseTexture8::SetLOD(long newLOD)
unsigned long Direct3DBaseTexture8::SetLOD(unsigned long newLOD)
{
TRACE("");
......
......@@ -31,27 +31,27 @@ namespace D3D8
public:
Direct3DBaseTexture8(Direct3DDevice8 *device, D3DRESOURCETYPE type, unsigned long levels, unsigned long usage);
virtual ~Direct3DBaseTexture8();
~Direct3DBaseTexture8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource8 methods
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
void __stdcall PreLoad();
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetDevice(IDirect3DDevice8 **device);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
void __stdcall PreLoad() override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetDevice(IDirect3DDevice8 **device) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DBaseTexture8 methods
unsigned long __stdcall GetLevelCount();
unsigned long __stdcall GetLOD();
long __stdcall SetLOD(long newLOD);
unsigned long __stdcall GetLevelCount() override;
unsigned long __stdcall GetLOD() override;
unsigned long __stdcall SetLOD(unsigned long newLOD) override;
// Intenal methods
sw::Resource *getResource() const;
......
......@@ -30,34 +30,34 @@ namespace D3D8
public:
Direct3DCubeTexture8(Direct3DDevice8 *device, unsigned int edgeLength, unsigned int levels, unsigned long usage, D3DFORMAT format, D3DPOOL pool);
virtual ~Direct3DCubeTexture8();
~Direct3DCubeTexture8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource8 methods
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
void __stdcall PreLoad();
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetDevice(IDirect3DDevice8 **device);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
void __stdcall PreLoad() override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetDevice(IDirect3DDevice8 **device) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DBaseTexture methods
unsigned long __stdcall GetLevelCount();
unsigned long __stdcall GetLOD();
unsigned long __stdcall SetLOD(unsigned long newLOD);
unsigned long __stdcall GetLevelCount() override;
unsigned long __stdcall GetLOD() override;
unsigned long __stdcall SetLOD(unsigned long newLOD) override;
// IDirect3DCubeTexture8 methods
long __stdcall AddDirtyRect(D3DCUBEMAP_FACES face, const RECT *dirtyRect);
long __stdcall GetCubeMapSurface(D3DCUBEMAP_FACES face, unsigned int level , IDirect3DSurface8 **cubeMapSurface);
long __stdcall GetLevelDesc(unsigned int level, D3DSURFACE_DESC *description);
long __stdcall LockRect(D3DCUBEMAP_FACES face, unsigned int level, D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long flags);
long __stdcall UnlockRect(D3DCUBEMAP_FACES face, unsigned int level);
long __stdcall AddDirtyRect(D3DCUBEMAP_FACES face, const RECT *dirtyRect) override;
long __stdcall GetCubeMapSurface(D3DCUBEMAP_FACES face, unsigned int level , IDirect3DSurface8 **cubeMapSurface) override;
long __stdcall GetLevelDesc(unsigned int level, D3DSURFACE_DESC *description) override;
long __stdcall LockRect(D3DCUBEMAP_FACES face, unsigned int level, D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long flags) override;
long __stdcall UnlockRect(D3DCUBEMAP_FACES face, unsigned int level) override;
// Internal methods
Direct3DSurface8 *getInternalCubeMapSurface(D3DCUBEMAP_FACES face, unsigned int level);
......
......@@ -2133,11 +2133,6 @@ namespace D3D8
sw::FrameBuffer::setCursorPosition(point.x, point.y);
}
void Direct3DDevice8::SetCursorPosition(unsigned int x, unsigned int y, unsigned long flags)
{
SetCursorPosition((int)x, (int)y, flags);
}
long Direct3DDevice8::SetCursorProperties(unsigned int x0, unsigned int y0, IDirect3DSurface8 *cursorBitmap)
{
TRACE("");
......@@ -2154,7 +2149,7 @@ namespace D3D8
cursorBitmap->LockRect(&lock, 0, 0);
delete cursor;
cursor = new sw::Surface(0, desc.Width, desc.Height, 1, sw::FORMAT_A8R8G8B8, false, false);
cursor = sw::Surface::create(0, desc.Width, desc.Height, 1, sw::FORMAT_A8R8G8B8, false, false);
void *buffer = cursor->lockExternal(0, 0, 0, sw::LOCK_DISCARD, sw::PUBLIC);
memcpy(buffer, lock.pBits, desc.Width * desc.Height * sizeof(unsigned int));
......
......@@ -31,27 +31,27 @@ namespace D3D8
public:
Direct3DIndexBuffer8(Direct3DDevice8 *device, unsigned int length, unsigned long usage, D3DFORMAT format, D3DPOOL pool);
virtual ~Direct3DIndexBuffer8();
~Direct3DIndexBuffer8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource8 methods
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
void __stdcall PreLoad();
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetDevice(IDirect3DDevice8 **device);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
void __stdcall PreLoad() override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetDevice(IDirect3DDevice8 **device) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DIndexBuffer8 methods
long __stdcall GetDesc(D3DINDEXBUFFER_DESC *description);
long __stdcall Lock(unsigned int offset, unsigned int size, unsigned char **data, unsigned long flags);
long __stdcall Unlock();
long __stdcall GetDesc(D3DINDEXBUFFER_DESC *description) override;
long __stdcall Lock(unsigned int offset, unsigned int size, unsigned char **data, unsigned long flags) override;
long __stdcall Unlock() override;
// Internal methods
sw::Resource *getResource() const;
......
......@@ -28,14 +28,13 @@ namespace D3D8
public:
Direct3DPixelShader8(Direct3DDevice8 *device, const unsigned long *shaderToken);
virtual ~Direct3DPixelShader8();
~Direct3DPixelShader8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DPixelShader8 methods
void __stdcall GetFunction(void *data, unsigned int *size);
// Internal methods
......
......@@ -30,22 +30,22 @@ namespace D3D8
public:
Direct3DResource8(Direct3DDevice8 *device, D3DRESOURCETYPE type, unsigned int size);
virtual ~Direct3DResource8();
~Direct3DResource8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource8 methods
long __stdcall GetDevice(IDirect3DDevice8 **device);
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
long __stdcall FreePrivateData(const GUID &guid);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
void __stdcall PreLoad();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall GetDevice(IDirect3DDevice8 **device) override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
long __stdcall FreePrivateData(const GUID &guid) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
void __stdcall PreLoad() override;
D3DRESOURCETYPE __stdcall GetType() override;
// Internal methods
static unsigned int getMemoryUsage();
......
......@@ -33,14 +33,13 @@ namespace D3D8
public:
Direct3DStateBlock8(Direct3DDevice8 *device, D3DSTATEBLOCKTYPE type);
virtual ~Direct3DStateBlock8();
~Direct3DStateBlock8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DStateBlock8 methods
long __stdcall Apply();
long __stdcall Capture();
long __stdcall GetDevice(IDirect3DDevice8 **device);
......
......@@ -70,6 +70,16 @@ namespace D3D8
resource->Release();
}
void *Direct3DSurface8::lockInternal(int x, int y, int z, sw::Lock lock, sw::Accessor client)
{
return Surface::lockInternal(x, y, z, lock, client);
}
void Direct3DSurface8::unlockInternal()
{
Surface::unlockInternal();
}
long Direct3DSurface8::QueryInterface(const IID &iid, void **object)
{
TRACE("");
......
......@@ -31,22 +31,26 @@ namespace D3D8
public:
Direct3DSurface8(Direct3DDevice8 *device, Unknown *container, int width, int height, D3DFORMAT format, D3DPOOL pool, D3DMULTISAMPLE_TYPE multiSample, bool lockable, unsigned long usage);
virtual ~Direct3DSurface8();
~Direct3DSurface8() override;
// Surface methods
void *lockInternal(int x, int y, int z, sw::Lock lock, sw::Accessor client) override;
void unlockInternal() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DSurface8 methods
long __stdcall GetDevice(IDirect3DDevice8 **device);
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetContainer(const IID &iid, void **container);
long __stdcall GetDesc(D3DSURFACE_DESC *desc);
long __stdcall LockRect(D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long Flags);
long __stdcall UnlockRect();
long __stdcall GetDevice(IDirect3DDevice8 **device) override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetContainer(const IID &iid, void **container) override;
long __stdcall GetDesc(D3DSURFACE_DESC *desc) override;
long __stdcall LockRect(D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long Flags) override;
long __stdcall UnlockRect() override;
// Internal methods
static sw::Format translateFormat(D3DFORMAT format);
......
......@@ -30,16 +30,16 @@ namespace D3D8
public:
Direct3DSwapChain8(Direct3DDevice8 *device, D3DPRESENT_PARAMETERS *presentParameters);
virtual ~Direct3DSwapChain8();
~Direct3DSwapChain8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DSwapChain8 methods
long __stdcall Present(const RECT *sourceRect, const RECT *destRect, HWND destWindowOverride, const RGNDATA *dirtyRegion);
long __stdcall GetBackBuffer(unsigned int index, D3DBACKBUFFER_TYPE type, IDirect3DSurface8 **backBuffer);
long __stdcall Present(const RECT *sourceRect, const RECT *destRect, HWND destWindowOverride, const RGNDATA *dirtyRegion) override;
long __stdcall GetBackBuffer(unsigned int index, D3DBACKBUFFER_TYPE type, IDirect3DSurface8 **backBuffer) override;
// Internal methods
void reset(D3DPRESENT_PARAMETERS *presentParameters);
......
......@@ -30,34 +30,34 @@ namespace D3D8
public:
Direct3DTexture8(Direct3DDevice8 *device, unsigned int width, unsigned int height, unsigned int levels, unsigned long usage, D3DFORMAT format, D3DPOOL pool);
virtual ~Direct3DTexture8();
~Direct3DTexture8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource8 methods
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
void __stdcall PreLoad();
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetDevice(IDirect3DDevice8 **device);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
void __stdcall PreLoad() override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetDevice(IDirect3DDevice8 **device) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DBaseTexture methods
unsigned long __stdcall GetLevelCount();
unsigned long __stdcall GetLOD();
unsigned long __stdcall SetLOD(unsigned long newLOD);
unsigned long __stdcall GetLevelCount() override;
unsigned long __stdcall GetLOD() override;
unsigned long __stdcall SetLOD(unsigned long newLOD) override;
// IDirect3DTexture8 methods
long __stdcall GetLevelDesc(unsigned int level, D3DSURFACE_DESC *description);
long __stdcall LockRect(unsigned int level, D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long flags);
long __stdcall GetSurfaceLevel(unsigned int level, IDirect3DSurface8 **surface);
long __stdcall UnlockRect(unsigned int level);
long __stdcall AddDirtyRect(const RECT *dirtyRect);
long __stdcall GetLevelDesc(unsigned int level, D3DSURFACE_DESC *description) override;
long __stdcall LockRect(unsigned int level, D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long flags) override;
long __stdcall GetSurfaceLevel(unsigned int level, IDirect3DSurface8 **surface) override;
long __stdcall UnlockRect(unsigned int level) override;
long __stdcall AddDirtyRect(const RECT *dirtyRect) override;
// Internal methods
Direct3DSurface8 *getInternalSurfaceLevel(unsigned int level);
......
......@@ -31,27 +31,27 @@ namespace D3D8
public:
Direct3DVertexBuffer8(Direct3DDevice8 *device, unsigned int length, unsigned long usage, long FVF, D3DPOOL pool);
virtual ~Direct3DVertexBuffer8();
~Direct3DVertexBuffer8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource8 methods
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
void __stdcall PreLoad();
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetDevice(IDirect3DDevice8 **device);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
void __stdcall PreLoad() override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetDevice(IDirect3DDevice8 **device) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DVertexBuffer8 methods
long __stdcall Lock(unsigned int offset, unsigned int size, unsigned char **data, unsigned long flags);
long __stdcall Unlock();
long __stdcall GetDesc(D3DVERTEXBUFFER_DESC *description);
long __stdcall Lock(unsigned int offset, unsigned int size, unsigned char **data, unsigned long flags) override;
long __stdcall Unlock() override;
long __stdcall GetDesc(D3DVERTEXBUFFER_DESC *description) override;
// Internal methods
int getLength() const;
......
......@@ -28,12 +28,12 @@ namespace D3D8
public:
Direct3DVertexDeclaration8(Direct3DDevice8 *device, const unsigned long *vertexElements);
virtual ~Direct3DVertexDeclaration8();
~Direct3DVertexDeclaration8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// Internal methods
const unsigned long *getDeclaration() const;
......
......@@ -29,12 +29,12 @@ namespace D3D8
public:
Direct3DVertexShader8(Direct3DDevice8 *device, const unsigned long *declaration, const unsigned long *shaderToken);
virtual ~Direct3DVertexShader8();
~Direct3DVertexShader8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// Internal methods
const sw::VertexShader *getVertexShader() const;
......
......@@ -33,6 +33,16 @@ namespace D3D8
resource->Release();
}
void *Direct3DVolume8::lockInternal(int x, int y, int z, sw::Lock lock, sw::Accessor client)
{
return Surface::lockInternal(x, y, z, lock, client);
}
void Direct3DVolume8::unlockInternal()
{
Surface::unlockInternal();
}
long __stdcall Direct3DVolume8::QueryInterface(const IID &iid, void **object)
{
TRACE("");
......
......@@ -32,22 +32,26 @@ namespace D3D8
public:
Direct3DVolume8(Direct3DDevice8 *device, Direct3DVolumeTexture8 *container, int width, int height, int depth, D3DFORMAT format, D3DPOOL pool, bool locakble, unsigned long usage);
virtual ~Direct3DVolume8();
~Direct3DVolume8() override;
// Surface methods
void *lockInternal(int x, int y, int z, sw::Lock lock, sw::Accessor client) override;
void unlockInternal() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DVolume8 methods
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetContainer(const IID &iid, void **container);
long __stdcall GetDesc(D3DVOLUME_DESC *description);
long __stdcall GetDevice(IDirect3DDevice8 **device);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
long __stdcall LockBox(D3DLOCKED_BOX *lockedVolume, const D3DBOX *box, unsigned long flags);
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall UnlockBox();
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetContainer(const IID &iid, void **container) override;
long __stdcall GetDesc(D3DVOLUME_DESC *description) override;
long __stdcall GetDevice(IDirect3DDevice8 **device) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
long __stdcall LockBox(D3DLOCKED_BOX *lockedVolume, const D3DBOX *box, unsigned long flags) override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall UnlockBox() override;
private:
static sw::Format translateFormat(D3DFORMAT format);
......
......@@ -30,34 +30,34 @@ namespace D3D8
public:
Direct3DVolumeTexture8(Direct3DDevice8 *device, unsigned int width, unsigned int height, unsigned int depth, unsigned int levels, unsigned long usage, D3DFORMAT format, D3DPOOL pool);
virtual ~Direct3DVolumeTexture8();
~Direct3DVolumeTexture8() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource8 methods
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
void __stdcall PreLoad();
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetDevice(IDirect3DDevice8 **device);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
void __stdcall PreLoad() override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetDevice(IDirect3DDevice8 **device) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DBaseTexture methods
unsigned long __stdcall GetLevelCount();
unsigned long __stdcall GetLOD();
unsigned long __stdcall SetLOD(unsigned long newLOD);
unsigned long __stdcall GetLevelCount() override;
unsigned long __stdcall GetLOD() override;
unsigned long __stdcall SetLOD(unsigned long newLOD) override;
// IDirect3DVolumeTexture8 methods
long __stdcall GetLevelDesc(unsigned int level, D3DVOLUME_DESC *description);
long __stdcall GetVolumeLevel(unsigned int level, IDirect3DVolume8 **volume);
long __stdcall LockBox(unsigned int level, D3DLOCKED_BOX *lockedVolume, const D3DBOX *box, unsigned long flags);
long __stdcall UnlockBox(unsigned int level);
long __stdcall AddDirtyBox(const D3DBOX *dirtyBox);
long __stdcall GetLevelDesc(unsigned int level, D3DVOLUME_DESC *description) override;
long __stdcall GetVolumeLevel(unsigned int level, IDirect3DVolume8 **volume) override;
long __stdcall LockBox(unsigned int level, D3DLOCKED_BOX *lockedVolume, const D3DBOX *box, unsigned long flags) override;
long __stdcall UnlockBox(unsigned int level) override;
long __stdcall AddDirtyBox(const D3DBOX *dirtyBox) override;
// Internal methods
Direct3DVolume8 *getInternalVolumeLevel(unsigned int level);
......
......@@ -29,28 +29,28 @@ namespace D3D9
public:
Direct3D9(int version, const HINSTANCE instance);
virtual ~Direct3D9();
~Direct3D9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3D9 methods
long __stdcall RegisterSoftwareDevice(void *initializeFunction);
unsigned int __stdcall GetAdapterCount();
long __stdcall GetAdapterIdentifier(unsigned int adapter, unsigned long flags, D3DADAPTER_IDENTIFIER9 *identifier);
unsigned int __stdcall GetAdapterModeCount(unsigned int adapter, D3DFORMAT format);
long __stdcall EnumAdapterModes(unsigned int adapter, D3DFORMAT format, unsigned int index, D3DDISPLAYMODE *mode);
long __stdcall GetAdapterDisplayMode(unsigned int adapter, D3DDISPLAYMODE *mode);
long __stdcall CheckDeviceType(unsigned int adapter, D3DDEVTYPE checkType, D3DFORMAT displayFormat, D3DFORMAT backBufferFormat, int windowed);
long __stdcall CheckDeviceFormat(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapterFormat, unsigned long usage, D3DRESOURCETYPE type, D3DFORMAT checkFormat);
long __stdcall CheckDeviceMultiSampleType(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT surfaceFormat, int windowed, D3DMULTISAMPLE_TYPE multiSampleType, unsigned long *qualityLevels);
long __stdcall CheckDepthStencilMatch(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapterFormat, D3DFORMAT renderTargetFormat, D3DFORMAT depthStencilFormat);
long __stdcall CheckDeviceFormatConversion(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT sourceFormat, D3DFORMAT targetFormat);
long __stdcall GetDeviceCaps(unsigned int adapter, D3DDEVTYPE deviceType, D3DCAPS9 *caps);
HMONITOR __stdcall GetAdapterMonitor(unsigned int adapter);
long __stdcall CreateDevice(unsigned int adapter, D3DDEVTYPE deviceType, HWND focusWindow, unsigned long behaviorFlags, D3DPRESENT_PARAMETERS *presentParameters, IDirect3DDevice9 **returnedDeviceInterface);
long __stdcall RegisterSoftwareDevice(void *initializeFunction) override;
unsigned int __stdcall GetAdapterCount() override;
long __stdcall GetAdapterIdentifier(unsigned int adapter, unsigned long flags, D3DADAPTER_IDENTIFIER9 *identifier) override;
unsigned int __stdcall GetAdapterModeCount(unsigned int adapter, D3DFORMAT format) override;
long __stdcall EnumAdapterModes(unsigned int adapter, D3DFORMAT format, unsigned int index, D3DDISPLAYMODE *mode) override;
long __stdcall GetAdapterDisplayMode(unsigned int adapter, D3DDISPLAYMODE *mode) override;
long __stdcall CheckDeviceType(unsigned int adapter, D3DDEVTYPE checkType, D3DFORMAT displayFormat, D3DFORMAT backBufferFormat, int windowed) override;
long __stdcall CheckDeviceFormat(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapterFormat, unsigned long usage, D3DRESOURCETYPE type, D3DFORMAT checkFormat) override;
long __stdcall CheckDeviceMultiSampleType(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT surfaceFormat, int windowed, D3DMULTISAMPLE_TYPE multiSampleType, unsigned long *qualityLevels) override;
long __stdcall CheckDepthStencilMatch(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapterFormat, D3DFORMAT renderTargetFormat, D3DFORMAT depthStencilFormat) override;
long __stdcall CheckDeviceFormatConversion(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT sourceFormat, D3DFORMAT targetFormat) override;
long __stdcall GetDeviceCaps(unsigned int adapter, D3DDEVTYPE deviceType, D3DCAPS9 *caps) override;
HMONITOR __stdcall GetAdapterMonitor(unsigned int adapter) override;
long __stdcall CreateDevice(unsigned int adapter, D3DDEVTYPE deviceType, HWND focusWindow, unsigned long behaviorFlags, D3DPRESENT_PARAMETERS *presentParameters, IDirect3DDevice9 **returnedDeviceInterface) override;
protected:
// Creation parameters
......
......@@ -29,35 +29,35 @@ namespace D3D9
public:
Direct3D9Ex(int version, const HINSTANCE instance);
virtual ~Direct3D9Ex();
~Direct3D9Ex() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3D9 methods
long __stdcall RegisterSoftwareDevice(void *initializeFunction);
unsigned int __stdcall GetAdapterCount();
long __stdcall GetAdapterIdentifier(unsigned int adapter, unsigned long flags, D3DADAPTER_IDENTIFIER9 *identifier);
unsigned int __stdcall GetAdapterModeCount(unsigned int adapter, D3DFORMAT format);
long __stdcall EnumAdapterModes(unsigned int adapter, D3DFORMAT format, unsigned int index, D3DDISPLAYMODE *mode);
long __stdcall GetAdapterDisplayMode(unsigned int adapter, D3DDISPLAYMODE *mode);
long __stdcall CheckDeviceType(unsigned int adapter, D3DDEVTYPE checkType, D3DFORMAT displayFormat, D3DFORMAT backBufferFormat, int windowed);
long __stdcall CheckDeviceFormat(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapterFormat, unsigned long usage, D3DRESOURCETYPE type, D3DFORMAT checkFormat);
long __stdcall CheckDeviceMultiSampleType(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT surfaceFormat, int windowed, D3DMULTISAMPLE_TYPE multiSampleType, unsigned long *qualityLevels);
long __stdcall CheckDepthStencilMatch(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapterFormat, D3DFORMAT renderTargetFormat, D3DFORMAT depthStencilFormat);
long __stdcall CheckDeviceFormatConversion(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT sourceFormat, D3DFORMAT targetFormat);
long __stdcall GetDeviceCaps(unsigned int adapter, D3DDEVTYPE deviceType, D3DCAPS9 *caps);
HMONITOR __stdcall GetAdapterMonitor(unsigned int adapter);
long __stdcall CreateDevice(unsigned int adapter, D3DDEVTYPE deviceType, HWND focusWindow, unsigned long behaviorFlags, D3DPRESENT_PARAMETERS *presentParameters, IDirect3DDevice9 **returnedDeviceInterface);
long __stdcall RegisterSoftwareDevice(void *initializeFunction) override;
unsigned int __stdcall GetAdapterCount() override;
long __stdcall GetAdapterIdentifier(unsigned int adapter, unsigned long flags, D3DADAPTER_IDENTIFIER9 *identifier) override;
unsigned int __stdcall GetAdapterModeCount(unsigned int adapter, D3DFORMAT format) override;
long __stdcall EnumAdapterModes(unsigned int adapter, D3DFORMAT format, unsigned int index, D3DDISPLAYMODE *mode) override;
long __stdcall GetAdapterDisplayMode(unsigned int adapter, D3DDISPLAYMODE *mode) override;
long __stdcall CheckDeviceType(unsigned int adapter, D3DDEVTYPE checkType, D3DFORMAT displayFormat, D3DFORMAT backBufferFormat, int windowed) override;
long __stdcall CheckDeviceFormat(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapterFormat, unsigned long usage, D3DRESOURCETYPE type, D3DFORMAT checkFormat) override;
long __stdcall CheckDeviceMultiSampleType(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT surfaceFormat, int windowed, D3DMULTISAMPLE_TYPE multiSampleType, unsigned long *qualityLevels) override;
long __stdcall CheckDepthStencilMatch(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT adapterFormat, D3DFORMAT renderTargetFormat, D3DFORMAT depthStencilFormat) override;
long __stdcall CheckDeviceFormatConversion(unsigned int adapter, D3DDEVTYPE deviceType, D3DFORMAT sourceFormat, D3DFORMAT targetFormat) override;
long __stdcall GetDeviceCaps(unsigned int adapter, D3DDEVTYPE deviceType, D3DCAPS9 *caps) override;
HMONITOR __stdcall GetAdapterMonitor(unsigned int adapter) override;
long __stdcall CreateDevice(unsigned int adapter, D3DDEVTYPE deviceType, HWND focusWindow, unsigned long behaviorFlags, D3DPRESENT_PARAMETERS *presentParameters, IDirect3DDevice9 **returnedDeviceInterface) override;
// IDirect3D9Ex methods
unsigned int __stdcall GetAdapterModeCountEx(unsigned int adapter, const D3DDISPLAYMODEFILTER *filter);
long __stdcall EnumAdapterModesEx(unsigned int adapter, const D3DDISPLAYMODEFILTER *filter, unsigned int index, D3DDISPLAYMODEEX *mode);
long __stdcall GetAdapterDisplayModeEx(unsigned int adapter, D3DDISPLAYMODEEX *mode, D3DDISPLAYROTATION *rotation);
long __stdcall CreateDeviceEx(unsigned int adapter, D3DDEVTYPE deviceType, HWND focusWindow, DWORD behaviorFlags, D3DPRESENT_PARAMETERS *presentParameters, D3DDISPLAYMODEEX *fullscreenDisplayMode, IDirect3DDevice9Ex **returnedDeviceInterface);
long __stdcall GetAdapterLUID(unsigned int adapter, LUID *luid);
unsigned int __stdcall GetAdapterModeCountEx(unsigned int adapter, const D3DDISPLAYMODEFILTER *filter) override;
long __stdcall EnumAdapterModesEx(unsigned int adapter, const D3DDISPLAYMODEFILTER *filter, unsigned int index, D3DDISPLAYMODEEX *mode) override;
long __stdcall GetAdapterDisplayModeEx(unsigned int adapter, D3DDISPLAYMODEEX *mode, D3DDISPLAYROTATION *rotation) override;
long __stdcall CreateDeviceEx(unsigned int adapter, D3DDEVTYPE deviceType, HWND focusWindow, DWORD behaviorFlags, D3DPRESENT_PARAMETERS *presentParameters, D3DDISPLAYMODEEX *fullscreenDisplayMode, IDirect3DDevice9Ex **returnedDeviceInterface) override;
long __stdcall GetAdapterLUID(unsigned int adapter, LUID *luid) override;
private:
void loadSystemD3D9ex();
......
......@@ -31,30 +31,30 @@ namespace D3D9
public:
Direct3DBaseTexture9(Direct3DDevice9 *device, D3DRESOURCETYPE type, D3DFORMAT format, D3DPOOL pool, unsigned long levels, unsigned long usage);
virtual ~Direct3DBaseTexture9();
~Direct3DBaseTexture9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource9 methods
long __stdcall GetDevice(IDirect3DDevice9 **device);
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
long __stdcall FreePrivateData(const GUID &guid);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
void __stdcall PreLoad();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
long __stdcall FreePrivateData(const GUID &guid) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
void __stdcall PreLoad() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DBaseTexture9 methods
unsigned long __stdcall SetLOD(unsigned long newLOD);
unsigned long __stdcall GetLOD();
unsigned long __stdcall GetLevelCount();
long __stdcall SetAutoGenFilterType(D3DTEXTUREFILTERTYPE filterType);
D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType();
void __stdcall GenerateMipSubLevels();
unsigned long __stdcall SetLOD(unsigned long newLOD) override;
unsigned long __stdcall GetLOD() override;
unsigned long __stdcall GetLevelCount() override;
long __stdcall SetAutoGenFilterType(D3DTEXTUREFILTERTYPE filterType) override;
D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType() override;
void __stdcall GenerateMipSubLevels() override;
// Intenal methods
sw::Resource *getResource() const;
......
......@@ -30,37 +30,37 @@ namespace D3D9
public:
Direct3DCubeTexture9(Direct3DDevice9 *device, unsigned int edgeLength, unsigned int levels, unsigned long usage, D3DFORMAT format, D3DPOOL pool);
virtual ~Direct3DCubeTexture9();
~Direct3DCubeTexture9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource9 methods
long __stdcall GetDevice(IDirect3DDevice9 **device);
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
long __stdcall FreePrivateData(const GUID &guid);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
void __stdcall PreLoad();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
long __stdcall FreePrivateData(const GUID &guid) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
void __stdcall PreLoad() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DBaseTexture9 methods
unsigned long __stdcall SetLOD(unsigned long newLOD);
unsigned long __stdcall GetLOD();
unsigned long __stdcall GetLevelCount();
long __stdcall SetAutoGenFilterType(D3DTEXTUREFILTERTYPE filterType);
D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType();
void __stdcall GenerateMipSubLevels();
unsigned long __stdcall SetLOD(unsigned long newLOD) override;
unsigned long __stdcall GetLOD() override;
unsigned long __stdcall GetLevelCount() override;
long __stdcall SetAutoGenFilterType(D3DTEXTUREFILTERTYPE filterType) override;
D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType() override;
void __stdcall GenerateMipSubLevels() override;
// IDirect3DCubeTexture9 methods
long __stdcall GetLevelDesc(unsigned int level, D3DSURFACE_DESC *description);
long __stdcall GetCubeMapSurface(D3DCUBEMAP_FACES face, unsigned int level, IDirect3DSurface9 **cubeMapSurface);
long __stdcall LockRect(D3DCUBEMAP_FACES face, unsigned int level, D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long flags);
long __stdcall UnlockRect(D3DCUBEMAP_FACES face, unsigned int level);
long __stdcall AddDirtyRect(D3DCUBEMAP_FACES face, const RECT *dirtyRect);
long __stdcall GetLevelDesc(unsigned int level, D3DSURFACE_DESC *description) override;
long __stdcall GetCubeMapSurface(D3DCUBEMAP_FACES face, unsigned int level, IDirect3DSurface9 **cubeMapSurface) override;
long __stdcall LockRect(D3DCUBEMAP_FACES face, unsigned int level, D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long flags) override;
long __stdcall UnlockRect(D3DCUBEMAP_FACES face, unsigned int level) override;
long __stdcall AddDirtyRect(D3DCUBEMAP_FACES face, const RECT *dirtyRect) override;
// Internal methods
Direct3DSurface9 *getInternalCubeMapSurface(D3DCUBEMAP_FACES face, unsigned int level);
......
......@@ -2659,7 +2659,7 @@ namespace D3D9
void *bitmap = cursorSurface->lockExternal(0, 0, 0, sw::LOCK_READONLY, sw::PUBLIC);
delete cursor;
cursor = new sw::Surface(0, width, height, 1, sw::FORMAT_A8R8G8B8, false, false);
cursor = sw::Surface::create(0, width, height, 1, sw::FORMAT_A8R8G8B8, false, false);
void *buffer = cursor->lockExternal(0, 0, 0, sw::LOCK_DISCARD, sw::PUBLIC);
memcpy(buffer, bitmap, width * height * sizeof(unsigned int));
......
......@@ -31,27 +31,27 @@ namespace D3D9
public:
Direct3DIndexBuffer9(Direct3DDevice9 *device, unsigned int length, unsigned long usage, D3DFORMAT format, D3DPOOL pool);
virtual ~Direct3DIndexBuffer9();
~Direct3DIndexBuffer9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource9 methods
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
void __stdcall PreLoad();
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetDevice(IDirect3DDevice9 **device);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
void __stdcall PreLoad() override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DIndexBuffer9 methods
long __stdcall GetDesc(D3DINDEXBUFFER_DESC *description);
long __stdcall Lock(unsigned int offset, unsigned int size, void **data, unsigned long flags);
long __stdcall Unlock();
long __stdcall GetDesc(D3DINDEXBUFFER_DESC *description) override;
long __stdcall Lock(unsigned int offset, unsigned int size, void **data, unsigned long flags) override;
long __stdcall Unlock() override;
// Internal methods
sw::Resource *getResource() const;
......
......@@ -30,16 +30,16 @@ namespace D3D9
public:
Direct3DPixelShader9(Direct3DDevice9 *device, const unsigned long *shaderToken);
virtual ~Direct3DPixelShader9();
~Direct3DPixelShader9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DPixelShader9 methods
long __stdcall GetDevice(IDirect3DDevice9 **device);
long __stdcall GetFunction(void *data, unsigned int *size);
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
long __stdcall GetFunction(void *data, unsigned int *size) override;
// Internal methods
const sw::PixelShader *getPixelShader() const;
......
......@@ -30,19 +30,19 @@ namespace D3D9
public:
Direct3DQuery9(Direct3DDevice9 *device, D3DQUERYTYPE type);
virtual ~Direct3DQuery9();
~Direct3DQuery9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DQuery9 methods
long __stdcall GetDevice(IDirect3DDevice9 **device);
D3DQUERYTYPE __stdcall GetType();
unsigned long __stdcall GetDataSize();
long __stdcall Issue(unsigned long flags);
long __stdcall GetData(void *data, unsigned long size, unsigned long flags);
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
D3DQUERYTYPE __stdcall GetType() override;
unsigned long __stdcall GetDataSize() override;
long __stdcall Issue(unsigned long flags) override;
long __stdcall GetData(void *data, unsigned long size, unsigned long flags) override;
private:
// Creation parameters
......
......@@ -30,22 +30,22 @@ namespace D3D9
public:
Direct3DResource9(Direct3DDevice9 *device, D3DRESOURCETYPE type, D3DPOOL pool, unsigned int size);
virtual ~Direct3DResource9();
~Direct3DResource9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource9 methods
long __stdcall GetDevice(IDirect3DDevice9 **device);
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
long __stdcall FreePrivateData(const GUID &guid);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
void __stdcall PreLoad();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
long __stdcall FreePrivateData(const GUID &guid) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
void __stdcall PreLoad() override;
D3DRESOURCETYPE __stdcall GetType() override;
// Internal methods
static unsigned int getMemoryUsage();
......
......@@ -37,17 +37,17 @@ namespace D3D9
public:
Direct3DStateBlock9(Direct3DDevice9 *device, D3DSTATEBLOCKTYPE type);
virtual ~Direct3DStateBlock9();
~Direct3DStateBlock9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DStateBlock9 methods
long __stdcall Apply();
long __stdcall Capture();
long __stdcall GetDevice(IDirect3DDevice9 **device);
long __stdcall Apply() override;
long __stdcall Capture() override;
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
// Internal methods
void lightEnable(unsigned long index, int enable);
......
......@@ -85,6 +85,16 @@ namespace D3D9
{
}
void *Direct3DSurface9::lockInternal(int x, int y, int z, sw::Lock lock, sw::Accessor client)
{
return Surface::lockInternal(x, y, z, lock, client);
}
void Direct3DSurface9::unlockInternal()
{
Surface::unlockInternal();
}
long Direct3DSurface9::QueryInterface(const IID &iid, void **object)
{
CriticalSection cs(device);
......
......@@ -30,30 +30,34 @@ namespace D3D9
public:
Direct3DSurface9(Direct3DDevice9 *device, Unknown *container, int width, int height, D3DFORMAT format, D3DPOOL pool, D3DMULTISAMPLE_TYPE multiSample, unsigned int quality, bool lockableOverride, unsigned long usage);
virtual ~Direct3DSurface9();
~Direct3DSurface9() override;
// Surface methods
void *lockInternal(int x, int y, int z, sw::Lock lock, sw::Accessor client) override;
void unlockInternal() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource9 methods
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
void __stdcall PreLoad();
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetDevice(IDirect3DDevice9 **device);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
void __stdcall PreLoad() override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DSurface9 methods
long __stdcall GetDC(HDC *deviceContext);
long __stdcall ReleaseDC(HDC deviceContext);
long __stdcall LockRect(D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long Flags);
long __stdcall UnlockRect();
long __stdcall GetContainer(const IID &iid, void **container);
long __stdcall GetDesc(D3DSURFACE_DESC *desc);
long __stdcall GetDC(HDC *deviceContext) override;
long __stdcall ReleaseDC(HDC deviceContext) override;
long __stdcall LockRect(D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long Flags) override;
long __stdcall UnlockRect() override;
long __stdcall GetContainer(const IID &iid, void **container) override;
long __stdcall GetDesc(D3DSURFACE_DESC *desc) override;
// Internal methods
static sw::Format translateFormat(D3DFORMAT format);
......
......@@ -32,21 +32,21 @@ namespace D3D9
public:
Direct3DSwapChain9(Direct3DDevice9 *device, D3DPRESENT_PARAMETERS *presentParameters);
virtual ~Direct3DSwapChain9();
~Direct3DSwapChain9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DSwapChain9 methods
long __stdcall Present(const RECT *sourceRect, const RECT *destRect, HWND destWindowOverride, const RGNDATA *dirtyRegion, unsigned long flags);
long __stdcall GetFrontBufferData(IDirect3DSurface9 *destSurface);
long __stdcall GetBackBuffer(unsigned int index, D3DBACKBUFFER_TYPE type, IDirect3DSurface9 **backBuffer);
long __stdcall GetRasterStatus(D3DRASTER_STATUS *rasterStatus);
long __stdcall GetDisplayMode(D3DDISPLAYMODE *displayMode);
long __stdcall GetDevice(IDirect3DDevice9 **device);
long __stdcall GetPresentParameters(D3DPRESENT_PARAMETERS *presentParameters);
long __stdcall Present(const RECT *sourceRect, const RECT *destRect, HWND destWindowOverride, const RGNDATA *dirtyRegion, unsigned long flags) override;
long __stdcall GetFrontBufferData(IDirect3DSurface9 *destSurface) override;
long __stdcall GetBackBuffer(unsigned int index, D3DBACKBUFFER_TYPE type, IDirect3DSurface9 **backBuffer) override;
long __stdcall GetRasterStatus(D3DRASTER_STATUS *rasterStatus) override;
long __stdcall GetDisplayMode(D3DDISPLAYMODE *displayMode) override;
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
long __stdcall GetPresentParameters(D3DPRESENT_PARAMETERS *presentParameters) override;
// Internal methods
void reset(D3DPRESENT_PARAMETERS *presentParameters);
......
......@@ -30,37 +30,37 @@ namespace D3D9
public:
Direct3DTexture9(Direct3DDevice9 *device, unsigned int width, unsigned int height, unsigned int levels, unsigned long usage, D3DFORMAT format, D3DPOOL pool);
virtual ~Direct3DTexture9();
~Direct3DTexture9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource9 methods
long __stdcall GetDevice(IDirect3DDevice9 **device);
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
long __stdcall FreePrivateData(const GUID &guid);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
void __stdcall PreLoad();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
long __stdcall FreePrivateData(const GUID &guid) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
void __stdcall PreLoad() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DBaseTexture9 methods
unsigned long __stdcall SetLOD(unsigned long newLOD);
unsigned long __stdcall GetLOD();
unsigned long __stdcall GetLevelCount();
long __stdcall SetAutoGenFilterType(D3DTEXTUREFILTERTYPE filterType);
D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType();
void __stdcall GenerateMipSubLevels();
unsigned long __stdcall SetLOD(unsigned long newLOD) override;
unsigned long __stdcall GetLOD() override;
unsigned long __stdcall GetLevelCount() override;
long __stdcall SetAutoGenFilterType(D3DTEXTUREFILTERTYPE filterType) override;
D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType() override;
void __stdcall GenerateMipSubLevels() override;
// IDirect3DTexture9 methods
long __stdcall GetLevelDesc(unsigned int level, D3DSURFACE_DESC *description);
long __stdcall GetSurfaceLevel(unsigned int level, IDirect3DSurface9 **surface);
long __stdcall LockRect(unsigned int level, D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long flags);
long __stdcall UnlockRect(unsigned int level);
long __stdcall AddDirtyRect(const RECT *dirtyRect);
long __stdcall GetLevelDesc(unsigned int level, D3DSURFACE_DESC *description) override;
long __stdcall GetSurfaceLevel(unsigned int level, IDirect3DSurface9 **surface) override;
long __stdcall LockRect(unsigned int level, D3DLOCKED_RECT *lockedRect, const RECT *rect, unsigned long flags) override;
long __stdcall UnlockRect(unsigned int level) override;
long __stdcall AddDirtyRect(const RECT *dirtyRect) override;
// Internal methods
Direct3DSurface9 *getInternalSurfaceLevel(unsigned int level);
......
......@@ -31,27 +31,27 @@ namespace D3D9
public:
Direct3DVertexBuffer9(Direct3DDevice9 *device, unsigned int length, unsigned long usage, long FVF, D3DPOOL pool);
virtual ~Direct3DVertexBuffer9();
~Direct3DVertexBuffer9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource9 methods
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
void __stdcall PreLoad();
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetDevice(IDirect3DDevice9 **device);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
void __stdcall PreLoad() override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DVertexBuffer9 methods
long __stdcall Lock(unsigned int offset, unsigned int size, void **data, unsigned long flags);
long __stdcall Unlock();
long __stdcall GetDesc(D3DVERTEXBUFFER_DESC *description);
long __stdcall Lock(unsigned int offset, unsigned int size, void **data, unsigned long flags) override;
long __stdcall Unlock() override;
long __stdcall GetDesc(D3DVERTEXBUFFER_DESC *description) override;
// Internal methods
int getLength() const;
......
......@@ -29,16 +29,16 @@ namespace D3D9
Direct3DVertexDeclaration9(Direct3DDevice9 *device, const D3DVERTEXELEMENT9 *vertexElements);
Direct3DVertexDeclaration9(Direct3DDevice9 *device, unsigned long FVF);
virtual ~Direct3DVertexDeclaration9();
~Direct3DVertexDeclaration9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DVertexDeclaration9 methods
long __stdcall GetDevice(IDirect3DDevice9 **device);
long __stdcall GetDeclaration(D3DVERTEXELEMENT9 *declaration, unsigned int *numElements);
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
long __stdcall GetDeclaration(D3DVERTEXELEMENT9 *declaration, unsigned int *numElements) override;
// Internal methods
unsigned long getFVF() const;
......
......@@ -30,16 +30,16 @@ namespace D3D9
public:
Direct3DVertexShader9(Direct3DDevice9 *device, const unsigned long *shaderToken);
virtual ~Direct3DVertexShader9();
~Direct3DVertexShader9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DVertexShader9 methods
long __stdcall GetDevice(IDirect3DDevice9 **device);
long __stdcall GetFunction(void *data, unsigned int *size);
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
long __stdcall GetFunction(void *data, unsigned int *size) override;
// Internal methods
const sw::VertexShader *getVertexShader() const;
......
......@@ -41,6 +41,16 @@ namespace D3D9
resource->unbind();
}
void *Direct3DVolume9::lockInternal(int x, int y, int z, sw::Lock lock, sw::Accessor client)
{
return Surface::lockInternal(x, y, z, lock, client);
}
void Direct3DVolume9::unlockInternal()
{
Surface::unlockInternal();
}
long __stdcall Direct3DVolume9::QueryInterface(const IID &iid, void **object)
{
CriticalSection cs(device);
......
......@@ -32,22 +32,26 @@ namespace D3D9
public:
Direct3DVolume9(Direct3DDevice9 *device, Direct3DVolumeTexture9 *container, int width, int height, int depth, D3DFORMAT format, D3DPOOL pool, unsigned long usage);
virtual ~Direct3DVolume9();
~Direct3DVolume9() override;
// Surface methods
void *lockInternal(int x, int y, int z, sw::Lock lock, sw::Accessor client) override;
void unlockInternal() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DVolume9 methods
long __stdcall FreePrivateData(const GUID &guid);
long __stdcall GetContainer(const IID &iid, void **container);
long __stdcall GetDesc(D3DVOLUME_DESC *description);
long __stdcall GetDevice(IDirect3DDevice9 **device);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
long __stdcall LockBox(D3DLOCKED_BOX *lockedVolume, const D3DBOX *box, unsigned long flags);
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall UnlockBox();
long __stdcall FreePrivateData(const GUID &guid) override;
long __stdcall GetContainer(const IID &iid, void **container) override;
long __stdcall GetDesc(D3DVOLUME_DESC *description) override;
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
long __stdcall LockBox(D3DLOCKED_BOX *lockedVolume, const D3DBOX *box, unsigned long flags) override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall UnlockBox() override;
private:
static sw::Format translateFormat(D3DFORMAT format);
......
......@@ -30,37 +30,37 @@ namespace D3D9
public:
Direct3DVolumeTexture9(Direct3DDevice9 *device, unsigned int width, unsigned int height, unsigned int depth, unsigned int levels, unsigned long usage, D3DFORMAT format, D3DPOOL pool);
virtual ~Direct3DVolumeTexture9();
~Direct3DVolumeTexture9() override;
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// IDirect3DResource9 methods
long __stdcall GetDevice(IDirect3DDevice9 **device);
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags);
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size);
long __stdcall FreePrivateData(const GUID &guid);
unsigned long __stdcall SetPriority(unsigned long newPriority);
unsigned long __stdcall GetPriority();
void __stdcall PreLoad();
D3DRESOURCETYPE __stdcall GetType();
long __stdcall GetDevice(IDirect3DDevice9 **device) override;
long __stdcall SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags) override;
long __stdcall GetPrivateData(const GUID &guid, void *data, unsigned long *size) override;
long __stdcall FreePrivateData(const GUID &guid) override;
unsigned long __stdcall SetPriority(unsigned long newPriority) override;
unsigned long __stdcall GetPriority() override;
void __stdcall PreLoad() override;
D3DRESOURCETYPE __stdcall GetType() override;
// IDirect3DBaseTexture9 methods
unsigned long __stdcall SetLOD(unsigned long newLOD);
unsigned long __stdcall GetLOD();
unsigned long __stdcall GetLevelCount();
long __stdcall SetAutoGenFilterType(D3DTEXTUREFILTERTYPE filterType);
D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType();
void __stdcall GenerateMipSubLevels();
unsigned long __stdcall SetLOD(unsigned long newLOD) override;
unsigned long __stdcall GetLOD() override;
unsigned long __stdcall GetLevelCount() override;
long __stdcall SetAutoGenFilterType(D3DTEXTUREFILTERTYPE filterType) override;
D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType() override;
void __stdcall GenerateMipSubLevels() override;
// IDirect3DVolumeTexture9 methods
long __stdcall GetLevelDesc(unsigned int level, D3DVOLUME_DESC *description);
long __stdcall GetVolumeLevel(unsigned int level, IDirect3DVolume9 **volume);
long __stdcall LockBox(unsigned int level, D3DLOCKED_BOX *lockedVolume, const D3DBOX *box, unsigned long flags);
long __stdcall UnlockBox(unsigned int level);
long __stdcall AddDirtyBox(const D3DBOX *dirtyBox);
long __stdcall GetLevelDesc(unsigned int level, D3DVOLUME_DESC *description) override;
long __stdcall GetVolumeLevel(unsigned int level, IDirect3DVolume9 **volume) override;
long __stdcall LockBox(unsigned int level, D3DLOCKED_BOX *lockedVolume, const D3DBOX *box, unsigned long flags) override;
long __stdcall UnlockBox(unsigned int level) override;
long __stdcall AddDirtyBox(const D3DBOX *dirtyBox) override;
// Internal methods
Direct3DVolume9 *getInternalVolumeLevel(unsigned int level);
......
......@@ -27,9 +27,9 @@ namespace D3D9
virtual ~Unknown();
// IUnknown methods
long __stdcall QueryInterface(const IID &iid, void **object);
unsigned long __stdcall AddRef();
unsigned long __stdcall Release();
long __stdcall QueryInterface(const IID &iid, void **object) override;
unsigned long __stdcall AddRef() override;
unsigned long __stdcall Release() override;
// Internal methods
virtual void bind();
......
......@@ -71,6 +71,16 @@ namespace gl
unlockExternal();
}
void *Image::lockInternal(int x, int y, int z, sw::Lock lock, sw::Accessor client)
{
return Surface::lockInternal(x, y, z, lock, client);
}
void Image::unlockInternal()
{
Surface::unlockInternal();
}
int Image::getWidth()
{
return width;
......
......@@ -39,6 +39,9 @@ namespace gl
unsigned int getPitch() const;
void unlock();
void *lockInternal(int x, int y, int z, sw::Lock lock, sw::Accessor client) override;
void unlockInternal() override;
int getWidth();
int getHeight();
GLenum getFormat();
......@@ -53,7 +56,7 @@ namespace gl
static sw::Format selectInternalFormat(GLenum format, GLenum type);
private:
virtual ~Image();
~Image() override;
void loadAlphaImageData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, int inputPitch, const void *input, void *buffer) const;
void loadAlphaFloatImageData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, int inputPitch, const void *input, void *buffer) const;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment