d3d9: Get rid of WINECAPSTOD3D9CAPS() macro.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Józef Kucia 2017-02-21 13:24:43 +01:00 committed by Alexandre Julliard
parent 377c2eebbf
commit 6b98526c57
3 changed files with 82 additions and 79 deletions

View File

@ -47,83 +47,7 @@ BOOL is_gdi_compat_wined3dformat(enum wined3d_format_id format) DECLSPEC_HIDDEN;
enum wined3d_format_id wined3dformat_from_d3dformat(D3DFORMAT format) DECLSPEC_HIDDEN; enum wined3d_format_id wined3dformat_from_d3dformat(D3DFORMAT format) DECLSPEC_HIDDEN;
void present_parameters_from_wined3d_swapchain_desc(D3DPRESENT_PARAMETERS *present_parameters, void present_parameters_from_wined3d_swapchain_desc(D3DPRESENT_PARAMETERS *present_parameters,
const struct wined3d_swapchain_desc *swapchain_desc) DECLSPEC_HIDDEN; const struct wined3d_swapchain_desc *swapchain_desc) DECLSPEC_HIDDEN;
void d3dcaps_from_wined3dcaps(D3DCAPS9 *caps, const WINED3DCAPS *wined3d_caps) DECLSPEC_HIDDEN;
#define WINECAPSTOD3D9CAPS(_pD3D9Caps, _pWineCaps) \
_pD3D9Caps->DeviceType = (D3DDEVTYPE) (_pWineCaps)->DeviceType; \
_pD3D9Caps->AdapterOrdinal = (_pWineCaps)->AdapterOrdinal; \
_pD3D9Caps->Caps = (_pWineCaps)->Caps; \
_pD3D9Caps->Caps2 = (_pWineCaps)->Caps2; \
_pD3D9Caps->Caps3 = (_pWineCaps)->Caps3; \
_pD3D9Caps->PresentationIntervals = (_pWineCaps)->PresentationIntervals; \
_pD3D9Caps->CursorCaps = (_pWineCaps)->CursorCaps; \
_pD3D9Caps->DevCaps = (_pWineCaps)->DevCaps; \
_pD3D9Caps->PrimitiveMiscCaps = (_pWineCaps)->PrimitiveMiscCaps; \
_pD3D9Caps->RasterCaps = (_pWineCaps)->RasterCaps; \
_pD3D9Caps->ZCmpCaps = (_pWineCaps)->ZCmpCaps; \
_pD3D9Caps->SrcBlendCaps = (_pWineCaps)->SrcBlendCaps; \
_pD3D9Caps->DestBlendCaps = (_pWineCaps)->DestBlendCaps; \
_pD3D9Caps->AlphaCmpCaps = (_pWineCaps)->AlphaCmpCaps; \
_pD3D9Caps->ShadeCaps = (_pWineCaps)->ShadeCaps; \
_pD3D9Caps->TextureCaps = (_pWineCaps)->TextureCaps; \
_pD3D9Caps->TextureFilterCaps = (_pWineCaps)->TextureFilterCaps; \
_pD3D9Caps->CubeTextureFilterCaps = (_pWineCaps)->CubeTextureFilterCaps; \
_pD3D9Caps->VolumeTextureFilterCaps = (_pWineCaps)->VolumeTextureFilterCaps; \
_pD3D9Caps->TextureAddressCaps = (_pWineCaps)->TextureAddressCaps; \
_pD3D9Caps->VolumeTextureAddressCaps = (_pWineCaps)->VolumeTextureAddressCaps; \
_pD3D9Caps->LineCaps = (_pWineCaps)->LineCaps; \
_pD3D9Caps->MaxTextureWidth = (_pWineCaps)->MaxTextureWidth; \
_pD3D9Caps->MaxTextureHeight = (_pWineCaps)->MaxTextureHeight; \
_pD3D9Caps->MaxVolumeExtent = (_pWineCaps)->MaxVolumeExtent; \
_pD3D9Caps->MaxTextureRepeat = (_pWineCaps)->MaxTextureRepeat; \
_pD3D9Caps->MaxTextureAspectRatio = (_pWineCaps)->MaxTextureAspectRatio; \
_pD3D9Caps->MaxAnisotropy = (_pWineCaps)->MaxAnisotropy; \
_pD3D9Caps->MaxVertexW = (_pWineCaps)->MaxVertexW; \
_pD3D9Caps->GuardBandLeft = (_pWineCaps)->GuardBandLeft; \
_pD3D9Caps->GuardBandTop = (_pWineCaps)->GuardBandTop; \
_pD3D9Caps->GuardBandRight = (_pWineCaps)->GuardBandRight; \
_pD3D9Caps->GuardBandBottom = (_pWineCaps)->GuardBandBottom; \
_pD3D9Caps->ExtentsAdjust = (_pWineCaps)->ExtentsAdjust; \
_pD3D9Caps->StencilCaps = (_pWineCaps)->StencilCaps; \
_pD3D9Caps->FVFCaps = (_pWineCaps)->FVFCaps; \
_pD3D9Caps->TextureOpCaps = (_pWineCaps)->TextureOpCaps; \
_pD3D9Caps->MaxTextureBlendStages = (_pWineCaps)->MaxTextureBlendStages; \
_pD3D9Caps->MaxSimultaneousTextures = (_pWineCaps)->MaxSimultaneousTextures; \
_pD3D9Caps->VertexProcessingCaps = (_pWineCaps)->VertexProcessingCaps; \
_pD3D9Caps->MaxActiveLights = (_pWineCaps)->MaxActiveLights; \
_pD3D9Caps->MaxUserClipPlanes = (_pWineCaps)->MaxUserClipPlanes; \
_pD3D9Caps->MaxVertexBlendMatrices = (_pWineCaps)->MaxVertexBlendMatrices; \
_pD3D9Caps->MaxVertexBlendMatrixIndex = (_pWineCaps)->MaxVertexBlendMatrixIndex; \
_pD3D9Caps->MaxPointSize = (_pWineCaps)->MaxPointSize; \
_pD3D9Caps->MaxPrimitiveCount = (_pWineCaps)->MaxPrimitiveCount; \
_pD3D9Caps->MaxVertexIndex = (_pWineCaps)->MaxVertexIndex; \
_pD3D9Caps->MaxStreams = (_pWineCaps)->MaxStreams; \
_pD3D9Caps->MaxStreamStride = (_pWineCaps)->MaxStreamStride; \
_pD3D9Caps->VertexShaderVersion = (_pWineCaps)->VertexShaderVersion; \
_pD3D9Caps->MaxVertexShaderConst = (_pWineCaps)->MaxVertexShaderConst; \
_pD3D9Caps->PixelShaderVersion = (_pWineCaps)->PixelShaderVersion; \
_pD3D9Caps->PixelShader1xMaxValue = (_pWineCaps)->PixelShader1xMaxValue; \
_pD3D9Caps->DevCaps2 = (_pWineCaps)->DevCaps2; \
_pD3D9Caps->MaxNpatchTessellationLevel = (_pWineCaps)->MaxNpatchTessellationLevel; \
_pD3D9Caps->MasterAdapterOrdinal = (_pWineCaps)->MasterAdapterOrdinal; \
_pD3D9Caps->AdapterOrdinalInGroup = (_pWineCaps)->AdapterOrdinalInGroup; \
_pD3D9Caps->NumberOfAdaptersInGroup = (_pWineCaps)->NumberOfAdaptersInGroup; \
_pD3D9Caps->DeclTypes = (_pWineCaps)->DeclTypes; \
_pD3D9Caps->NumSimultaneousRTs = (_pWineCaps)->NumSimultaneousRTs; \
_pD3D9Caps->StretchRectFilterCaps = (_pWineCaps)->StretchRectFilterCaps; \
_pD3D9Caps->VS20Caps.Caps = (_pWineCaps)->VS20Caps.caps; \
_pD3D9Caps->VS20Caps.DynamicFlowControlDepth = (_pWineCaps)->VS20Caps.dynamic_flow_control_depth; \
_pD3D9Caps->VS20Caps.NumTemps = (_pWineCaps)->VS20Caps.temp_count; \
_pD3D9Caps->VS20Caps.StaticFlowControlDepth = (_pWineCaps)->VS20Caps.static_flow_control_depth; \
_pD3D9Caps->PS20Caps.Caps = (_pWineCaps)->PS20Caps.caps; \
_pD3D9Caps->PS20Caps.DynamicFlowControlDepth = (_pWineCaps)->PS20Caps.dynamic_flow_control_depth; \
_pD3D9Caps->PS20Caps.NumTemps = (_pWineCaps)->PS20Caps.temp_count; \
_pD3D9Caps->PS20Caps.StaticFlowControlDepth = (_pWineCaps)->PS20Caps.static_flow_control_depth; \
_pD3D9Caps->PS20Caps.NumInstructionSlots = (_pWineCaps)->PS20Caps.instruction_slot_count; \
_pD3D9Caps->VertexTextureFilterCaps = (_pWineCaps)->VertexTextureFilterCaps; \
_pD3D9Caps->MaxVShaderInstructionsExecuted = (_pWineCaps)->MaxVShaderInstructionsExecuted; \
_pD3D9Caps->MaxPShaderInstructionsExecuted = (_pWineCaps)->MaxPShaderInstructionsExecuted; \
_pD3D9Caps->MaxVertexShader30InstructionSlots = (_pWineCaps)->MaxVertexShader30InstructionSlots; \
_pD3D9Caps->MaxPixelShader30InstructionSlots = (_pWineCaps)->MaxPixelShader30InstructionSlots;
struct d3d9 struct d3d9
{ {

View File

@ -251,6 +251,85 @@ static BOOL wined3d_swapchain_desc_from_present_parameters(struct wined3d_swapch
return TRUE; return TRUE;
} }
void d3dcaps_from_wined3dcaps(D3DCAPS9 *caps, const WINED3DCAPS *wined3d_caps)
{
caps->DeviceType = (D3DDEVTYPE)wined3d_caps->DeviceType;
caps->AdapterOrdinal = wined3d_caps->AdapterOrdinal;
caps->Caps = wined3d_caps->Caps;
caps->Caps2 = wined3d_caps->Caps2;
caps->Caps3 = wined3d_caps->Caps3;
caps->PresentationIntervals = wined3d_caps->PresentationIntervals;
caps->CursorCaps = wined3d_caps->CursorCaps;
caps->DevCaps = wined3d_caps->DevCaps;
caps->PrimitiveMiscCaps = wined3d_caps->PrimitiveMiscCaps;
caps->RasterCaps = wined3d_caps->RasterCaps;
caps->ZCmpCaps = wined3d_caps->ZCmpCaps;
caps->SrcBlendCaps = wined3d_caps->SrcBlendCaps;
caps->DestBlendCaps = wined3d_caps->DestBlendCaps;
caps->AlphaCmpCaps = wined3d_caps->AlphaCmpCaps;
caps->ShadeCaps = wined3d_caps->ShadeCaps;
caps->TextureCaps = wined3d_caps->TextureCaps;
caps->TextureFilterCaps = wined3d_caps->TextureFilterCaps;
caps->CubeTextureFilterCaps = wined3d_caps->CubeTextureFilterCaps;
caps->VolumeTextureFilterCaps = wined3d_caps->VolumeTextureFilterCaps;
caps->TextureAddressCaps = wined3d_caps->TextureAddressCaps;
caps->VolumeTextureAddressCaps = wined3d_caps->VolumeTextureAddressCaps;
caps->LineCaps = wined3d_caps->LineCaps;
caps->MaxTextureWidth = wined3d_caps->MaxTextureWidth;
caps->MaxTextureHeight = wined3d_caps->MaxTextureHeight;
caps->MaxVolumeExtent = wined3d_caps->MaxVolumeExtent;
caps->MaxTextureRepeat = wined3d_caps->MaxTextureRepeat;
caps->MaxTextureAspectRatio = wined3d_caps->MaxTextureAspectRatio;
caps->MaxAnisotropy = wined3d_caps->MaxAnisotropy;
caps->MaxVertexW = wined3d_caps->MaxVertexW;
caps->GuardBandLeft = wined3d_caps->GuardBandLeft;
caps->GuardBandTop = wined3d_caps->GuardBandTop;
caps->GuardBandRight = wined3d_caps->GuardBandRight;
caps->GuardBandBottom = wined3d_caps->GuardBandBottom;
caps->ExtentsAdjust = wined3d_caps->ExtentsAdjust;
caps->StencilCaps = wined3d_caps->StencilCaps;
caps->FVFCaps = wined3d_caps->FVFCaps;
caps->TextureOpCaps = wined3d_caps->TextureOpCaps;
caps->MaxTextureBlendStages = wined3d_caps->MaxTextureBlendStages;
caps->MaxSimultaneousTextures = wined3d_caps->MaxSimultaneousTextures;
caps->VertexProcessingCaps = wined3d_caps->VertexProcessingCaps;
caps->MaxActiveLights = wined3d_caps->MaxActiveLights;
caps->MaxUserClipPlanes = wined3d_caps->MaxUserClipPlanes;
caps->MaxVertexBlendMatrices = wined3d_caps->MaxVertexBlendMatrices;
caps->MaxVertexBlendMatrixIndex = wined3d_caps->MaxVertexBlendMatrixIndex;
caps->MaxPointSize = wined3d_caps->MaxPointSize;
caps->MaxPrimitiveCount = wined3d_caps->MaxPrimitiveCount;
caps->MaxVertexIndex = wined3d_caps->MaxVertexIndex;
caps->MaxStreams = wined3d_caps->MaxStreams;
caps->MaxStreamStride = wined3d_caps->MaxStreamStride;
caps->VertexShaderVersion = wined3d_caps->VertexShaderVersion;
caps->MaxVertexShaderConst = wined3d_caps->MaxVertexShaderConst;
caps->PixelShaderVersion = wined3d_caps->PixelShaderVersion;
caps->PixelShader1xMaxValue = wined3d_caps->PixelShader1xMaxValue;
caps->DevCaps2 = wined3d_caps->DevCaps2;
caps->MaxNpatchTessellationLevel = wined3d_caps->MaxNpatchTessellationLevel;
caps->MasterAdapterOrdinal = wined3d_caps->MasterAdapterOrdinal;
caps->AdapterOrdinalInGroup = wined3d_caps->AdapterOrdinalInGroup;
caps->NumberOfAdaptersInGroup = wined3d_caps->NumberOfAdaptersInGroup;
caps->DeclTypes = wined3d_caps->DeclTypes;
caps->NumSimultaneousRTs = wined3d_caps->NumSimultaneousRTs;
caps->StretchRectFilterCaps = wined3d_caps->StretchRectFilterCaps;
caps->VS20Caps.Caps = wined3d_caps->VS20Caps.caps;
caps->VS20Caps.DynamicFlowControlDepth = wined3d_caps->VS20Caps.dynamic_flow_control_depth;
caps->VS20Caps.NumTemps = wined3d_caps->VS20Caps.temp_count;
caps->VS20Caps.StaticFlowControlDepth = wined3d_caps->VS20Caps.static_flow_control_depth;
caps->PS20Caps.Caps = wined3d_caps->PS20Caps.caps;
caps->PS20Caps.DynamicFlowControlDepth = wined3d_caps->PS20Caps.dynamic_flow_control_depth;
caps->PS20Caps.NumTemps = wined3d_caps->PS20Caps.temp_count;
caps->PS20Caps.StaticFlowControlDepth = wined3d_caps->PS20Caps.static_flow_control_depth;
caps->PS20Caps.NumInstructionSlots = wined3d_caps->PS20Caps.instruction_slot_count;
caps->VertexTextureFilterCaps = wined3d_caps->VertexTextureFilterCaps;
caps->MaxVShaderInstructionsExecuted = wined3d_caps->MaxVShaderInstructionsExecuted;
caps->MaxPShaderInstructionsExecuted = wined3d_caps->MaxPShaderInstructionsExecuted;
caps->MaxVertexShader30InstructionSlots = wined3d_caps->MaxVertexShader30InstructionSlots;
caps->MaxPixelShader30InstructionSlots = wined3d_caps->MaxPixelShader30InstructionSlots;
}
static HRESULT WINAPI d3d9_device_QueryInterface(IDirect3DDevice9Ex *iface, REFIID riid, void **out) static HRESULT WINAPI d3d9_device_QueryInterface(IDirect3DDevice9Ex *iface, REFIID riid, void **out)
{ {
TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out); TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
@ -420,7 +499,7 @@ static HRESULT WINAPI d3d9_device_GetDeviceCaps(IDirect3DDevice9Ex *iface, D3DCA
hr = wined3d_device_get_device_caps(device->wined3d_device, &wined3d_caps); hr = wined3d_device_get_device_caps(device->wined3d_device, &wined3d_caps);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
WINECAPSTOD3D9CAPS(caps, &wined3d_caps) d3dcaps_from_wined3dcaps(caps, &wined3d_caps);
/* Some functionality is implemented in d3d9.dll, not wined3d.dll. Add the needed caps */ /* Some functionality is implemented in d3d9.dll, not wined3d.dll. Add the needed caps */
caps->DevCaps2 |= D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES; caps->DevCaps2 |= D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES;

View File

@ -440,7 +440,7 @@ static HRESULT WINAPI d3d9_GetDeviceCaps(IDirect3D9Ex *iface, UINT adapter, D3DD
hr = wined3d_get_device_caps(d3d9->wined3d, adapter, device_type, &wined3d_caps); hr = wined3d_get_device_caps(d3d9->wined3d, adapter, device_type, &wined3d_caps);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
WINECAPSTOD3D9CAPS(caps, &wined3d_caps) d3dcaps_from_wined3dcaps(caps, &wined3d_caps);
/* Some functionality is implemented in d3d9.dll, not wined3d.dll. Add the needed caps */ /* Some functionality is implemented in d3d9.dll, not wined3d.dll. Add the needed caps */
caps->DevCaps2 |= D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES; caps->DevCaps2 |= D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES;