- some cosmetic fixes
- fix a bug on IDirect3DVolume8Impl_AddDirtyBox
diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c
index 2f97c1b..4096cdd 100644
--- a/dlls/d3d8/surface.c
+++ b/dlls/d3d8/surface.c
@@ -1,7 +1,8 @@
/*
* IDirect3DSurface8 implementation
*
- * Copyright 2002 Jason Edmeades
+ * Copyright 2002-2003 Jason Edmeades
+ * Raphael Junqueira
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,6 +21,8 @@
#include "config.h"
+#define NONAMELESSUNION
+#define NONAMELESSSTRUCT
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
@@ -76,21 +79,25 @@
IDirect3DDevice8Impl_AddRef(*ppDevice);
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DSurface8Impl_SetPrivateData(LPDIRECT3DSURFACE8 iface, REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) {
ICOM_THIS(IDirect3DSurface8Impl,iface);
FIXME("(%p) : stub\n", This);
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DSurface8Impl_GetPrivateData(LPDIRECT3DSURFACE8 iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
ICOM_THIS(IDirect3DSurface8Impl,iface);
FIXME("(%p) : stub\n", This);
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DSurface8Impl_FreePrivateData(LPDIRECT3DSURFACE8 iface, REFGUID refguid) {
ICOM_THIS(IDirect3DSurface8Impl,iface);
FIXME("(%p) : stub\n", This);
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DSurface8Impl_GetContainer(LPDIRECT3DSURFACE8 iface, REFIID riid, void** ppContainer) {
ICOM_THIS(IDirect3DSurface8Impl,iface);
HRESULT res;
@@ -106,6 +113,7 @@
TRACE("(%p) : returning %p\n", This, *ppContainer);
return res;
}
+
HRESULT WINAPI IDirect3DSurface8Impl_GetDesc(LPDIRECT3DSURFACE8 iface, D3DSURFACE_DESC *pDesc) {
ICOM_THIS(IDirect3DSurface8Impl,iface);
@@ -113,6 +121,7 @@
memcpy(pDesc, &This->myDesc, sizeof(D3DSURFACE_DESC));
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DSurface8Impl_LockRect(LPDIRECT3DSURFACE8 iface, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) {
HRESULT hr;
ICOM_THIS(IDirect3DSurface8Impl,iface);
@@ -254,6 +263,7 @@
This->locked = TRUE;
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DSurface8Impl_UnlockRect(LPDIRECT3DSURFACE8 iface) {
ICOM_THIS(IDirect3DSurface8Impl,iface);
@@ -374,6 +384,7 @@
return D3D_OK;
}
+
ICOM_VTABLE(IDirect3DSurface8) Direct3DSurface8_Vtbl =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
@@ -390,6 +401,7 @@
IDirect3DSurface8Impl_UnlockRect,
};
+
HRESULT WINAPI IDirect3DSurface8Impl_LoadTexture(LPDIRECT3DSURFACE8 iface, GLenum gl_target, GLenum gl_level) {
ICOM_THIS(IDirect3DSurface8Impl,iface);
diff --git a/dlls/d3d8/volume.c b/dlls/d3d8/volume.c
index d7de814..f98db6e 100644
--- a/dlls/d3d8/volume.c
+++ b/dlls/d3d8/volume.c
@@ -1,7 +1,8 @@
/*
* IDirect3DVolume8 implementation
*
- * Copyright 2002 Jason Edmeades
+ * Copyright 2002-2003 Jason Edmeades
+ * Raphael Junqueira
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,6 +21,8 @@
#include "config.h"
+#define NONAMELESSUNION
+#define NONAMELESSSTRUCT
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
@@ -31,8 +34,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(d3d);
/* IDirect3DVolume IUnknown parts follow: */
-HRESULT WINAPI IDirect3DVolume8Impl_QueryInterface(LPDIRECT3DVOLUME8 iface,REFIID riid,LPVOID *ppobj)
-{
+HRESULT WINAPI IDirect3DVolume8Impl_QueryInterface(LPDIRECT3DVOLUME8 iface, REFIID riid, LPVOID* ppobj) {
ICOM_THIS(IDirect3DVolume8Impl,iface);
if (IsEqualGUID(riid, &IID_IUnknown)
@@ -42,7 +44,7 @@
return D3D_OK;
}
- WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
+ WARN("(%p)->(%s,%p) not found\n", This, debugstr_guid(riid), ppobj);
return E_NOINTERFACE;
}
@@ -75,16 +77,19 @@
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DVolume8Impl_SetPrivateData(LPDIRECT3DVOLUME8 iface, REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) {
ICOM_THIS(IDirect3DVolume8Impl,iface);
FIXME("(%p) : stub\n", This);
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DVolume8Impl_GetPrivateData(LPDIRECT3DVOLUME8 iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
ICOM_THIS(IDirect3DVolume8Impl,iface);
FIXME("(%p) : stub\n", This);
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DVolume8Impl_FreePrivateData(LPDIRECT3DVOLUME8 iface, REFGUID refguid) {
ICOM_THIS(IDirect3DVolume8Impl,iface);
FIXME("(%p) : stub\n", This);
@@ -98,12 +103,14 @@
IUnknown_AddRef(This->Container);
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DVolume8Impl_GetDesc(LPDIRECT3DVOLUME8 iface, D3DVOLUME_DESC* pDesc) {
ICOM_THIS(IDirect3DVolume8Impl,iface);
TRACE("(%p) : copying into %p\n", This, pDesc);
memcpy(pDesc, &This->myDesc, sizeof(D3DVOLUME_DESC));
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DVolume8Impl_LockBox(LPDIRECT3DVOLUME8 iface, D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) {
ICOM_THIS(IDirect3DVolume8Impl,iface);
FIXME("(%p) : pBox=%p stub\n", This, pBox);
@@ -162,6 +169,7 @@
TRACE("returning memory@%p rpitch(%d) spitch(%d)\n", pLockedVolume->pBits, pLockedVolume->RowPitch, pLockedVolume->SlicePitch);
return D3D_OK;
}
+
HRESULT WINAPI IDirect3DVolume8Impl_UnlockBox(LPDIRECT3DVOLUME8 iface) {
ICOM_THIS(IDirect3DVolume8Impl,iface);
if (FALSE == This->locked) {
@@ -191,6 +199,7 @@
IDirect3DVolume8Impl_UnlockBox
};
+
HRESULT WINAPI IDirect3DVolume8Impl_CleanDirtyBox(LPDIRECT3DVOLUME8 iface) {
ICOM_THIS(IDirect3DVolume8Impl,iface);
This->Dirty = FALSE;
@@ -210,11 +219,20 @@
HRESULT WINAPI IDirect3DVolume8Impl_AddDirtyBox(LPDIRECT3DVOLUME8 iface, CONST D3DBOX* pDirtyBox) {
ICOM_THIS(IDirect3DVolume8Impl,iface);
This->Dirty = TRUE;
- This->lockedBox.Left = min(This->lockedBox.Left, pDirtyBox->Left);
- This->lockedBox.Top = min(This->lockedBox.Top, pDirtyBox->Top);
- This->lockedBox.Front = min(This->lockedBox.Front, pDirtyBox->Front);
- This->lockedBox.Right = max(This->lockedBox.Right, pDirtyBox->Right);
- This->lockedBox.Bottom = max(This->lockedBox.Bottom, pDirtyBox->Bottom);
- This->lockedBox.Back = max(This->lockedBox.Back, pDirtyBox->Back);
+ if (NULL != pDirtyBox) {
+ This->lockedBox.Left = min(This->lockedBox.Left, pDirtyBox->Left);
+ This->lockedBox.Top = min(This->lockedBox.Top, pDirtyBox->Top);
+ This->lockedBox.Front = min(This->lockedBox.Front, pDirtyBox->Front);
+ This->lockedBox.Right = max(This->lockedBox.Right, pDirtyBox->Right);
+ This->lockedBox.Bottom = max(This->lockedBox.Bottom, pDirtyBox->Bottom);
+ This->lockedBox.Back = max(This->lockedBox.Back, pDirtyBox->Back);
+ } else {
+ This->lockedBox.Left = 0;
+ This->lockedBox.Top = 0;
+ This->lockedBox.Front = 0;
+ This->lockedBox.Right = This->myDesc.Width;
+ This->lockedBox.Bottom = This->myDesc.Height;
+ This->lockedBox.Back = This->myDesc.Depth;
+ }
return D3D_OK;
}