Commit 03f7a2d8 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Get rid of the remaining "Flags".

parent b459b917
...@@ -68,14 +68,14 @@ static ULONG WINAPI IWineD3DClipperImpl_Release(IWineD3DClipper *iface) ...@@ -68,14 +68,14 @@ static ULONG WINAPI IWineD3DClipperImpl_Release(IWineD3DClipper *iface)
return ref; return ref;
} }
static HRESULT WINAPI IWineD3DClipperImpl_SetHwnd(IWineD3DClipper *iface, DWORD Flags, HWND hWnd) static HRESULT WINAPI IWineD3DClipperImpl_SetHwnd(IWineD3DClipper *iface, DWORD flags, HWND hWnd)
{ {
IWineD3DClipperImpl *This = (IWineD3DClipperImpl *)iface; IWineD3DClipperImpl *This = (IWineD3DClipperImpl *)iface;
TRACE("(%p)->(0x%08x,%p)\n", This, Flags, hWnd); TRACE("iface %p, flags %#x, window %p.\n", iface, flags, hWnd);
if( Flags ) if (flags)
{ {
FIXME("Flags = 0x%08x, not supported.\n",Flags); FIXME("flags %#x, not supported.\n", flags);
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
} }
...@@ -128,12 +128,12 @@ static HRESULT WINAPI IWineD3DClipperImpl_GetClipList(IWineD3DClipper *iface, co ...@@ -128,12 +128,12 @@ static HRESULT WINAPI IWineD3DClipperImpl_GetClipList(IWineD3DClipper *iface, co
} }
} }
static HRESULT WINAPI IWineD3DClipperImpl_SetClipList(IWineD3DClipper *iface, const RGNDATA *rgn, DWORD Flags) static HRESULT WINAPI IWineD3DClipperImpl_SetClipList(IWineD3DClipper *iface, const RGNDATA *rgn, DWORD flags)
{ {
static int warned = 0; static int warned = 0;
if (warned++ < 10 || !rgn) if (warned++ < 10 || !rgn)
FIXME("iface %p, region %p, flags %#x stub!\n", iface, rgn, Flags); FIXME("iface %p, region %p, flags %#x stub!\n", iface, rgn, flags);
return WINED3D_OK; return WINED3D_OK;
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* Copyright 2002-2005 Raphael Junqueira * Copyright 2002-2005 Raphael Junqueira
* Copyright 2005 Oliver Stieber * Copyright 2005 Oliver Stieber
* Copyright 2007-2008 Stefan Dösinger for CodeWeavers * Copyright 2007-2008 Stefan Dösinger for CodeWeavers
* Copyright 2009 Henri Verbeet for CodeWeavers * Copyright 2009-2010 Henri Verbeet for CodeWeavers
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -180,8 +180,10 @@ static ULONG WINAPI IWineD3DCubeTextureImpl_Release(IWineD3DCubeTexture *iface) ...@@ -180,8 +180,10 @@ static ULONG WINAPI IWineD3DCubeTextureImpl_Release(IWineD3DCubeTexture *iface)
/* **************************************************** /* ****************************************************
IWineD3DCubeTexture IWineD3DResource parts follow IWineD3DCubeTexture IWineD3DResource parts follow
**************************************************** */ **************************************************** */
static HRESULT WINAPI IWineD3DCubeTextureImpl_SetPrivateData(IWineD3DCubeTexture *iface, REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) { static HRESULT WINAPI IWineD3DCubeTextureImpl_SetPrivateData(IWineD3DCubeTexture *iface,
return resource_set_private_data((IWineD3DResource *)iface, refguid, pData, SizeOfData, Flags); REFGUID riid, const void *data, DWORD data_size, DWORD flags)
{
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
} }
static HRESULT WINAPI IWineD3DCubeTextureImpl_GetPrivateData(IWineD3DCubeTexture *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) { static HRESULT WINAPI IWineD3DCubeTextureImpl_GetPrivateData(IWineD3DCubeTexture *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
......
...@@ -1601,7 +1601,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreatePixelShader(IWineD3DDevice *iface ...@@ -1601,7 +1601,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreatePixelShader(IWineD3DDevice *iface
return WINED3D_OK; return WINED3D_OK;
} }
static HRESULT WINAPI IWineD3DDeviceImpl_CreatePalette(IWineD3DDevice *iface, DWORD Flags, static HRESULT WINAPI IWineD3DDeviceImpl_CreatePalette(IWineD3DDevice *iface, DWORD flags,
const PALETTEENTRY *PalEnt, void *parent, IWineD3DPalette **Palette) const PALETTEENTRY *PalEnt, void *parent, IWineD3DPalette **Palette)
{ {
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface; IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface;
...@@ -1609,7 +1609,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreatePalette(IWineD3DDevice *iface, DW ...@@ -1609,7 +1609,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreatePalette(IWineD3DDevice *iface, DW
HRESULT hr; HRESULT hr;
TRACE("iface %p, flags %#x, entries %p, palette %p, parent %p.\n", TRACE("iface %p, flags %#x, entries %p, palette %p, parent %p.\n",
iface, Flags, PalEnt, Palette, parent); iface, flags, PalEnt, Palette, parent);
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)); object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
if (!object) if (!object)
...@@ -1618,7 +1618,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreatePalette(IWineD3DDevice *iface, DW ...@@ -1618,7 +1618,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreatePalette(IWineD3DDevice *iface, DW
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
} }
hr = wined3d_palette_init(object, This, Flags, PalEnt, parent); hr = wined3d_palette_init(object, This, flags, PalEnt, parent);
if (FAILED(hr)) if (FAILED(hr))
{ {
WARN("Failed to initialize palette, hr %#x.\n", hr); WARN("Failed to initialize palette, hr %#x.\n", hr);
...@@ -2451,7 +2451,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetStreamSource(IWineD3DDevice *iface, ...@@ -2451,7 +2451,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetStreamSource(IWineD3DDevice *iface,
static HRESULT WINAPI IWineD3DDeviceImpl_SetStreamSourceFreq(IWineD3DDevice *iface, UINT StreamNumber, UINT Divider) { static HRESULT WINAPI IWineD3DDeviceImpl_SetStreamSourceFreq(IWineD3DDevice *iface, UINT StreamNumber, UINT Divider) {
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
struct wined3d_stream_state *stream; struct wined3d_stream_state *stream;
UINT oldFlags, oldFreq; UINT old_flags, oldFreq;
TRACE("iface %p, stream_idx %u, divider %#x.\n", iface, StreamNumber, Divider); TRACE("iface %p, stream_idx %u, divider %#x.\n", iface, StreamNumber, Divider);
...@@ -2473,7 +2473,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetStreamSourceFreq(IWineD3DDevice *ifa ...@@ -2473,7 +2473,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetStreamSourceFreq(IWineD3DDevice *ifa
} }
stream = &This->updateStateBlock->state.streams[StreamNumber]; stream = &This->updateStateBlock->state.streams[StreamNumber];
oldFlags = stream->flags; old_flags = stream->flags;
oldFreq = stream->frequency; oldFreq = stream->frequency;
stream->flags = Divider & (WINED3DSTREAMSOURCE_INSTANCEDATA | WINED3DSTREAMSOURCE_INDEXEDDATA); stream->flags = Divider & (WINED3DSTREAMSOURCE_INSTANCEDATA | WINED3DSTREAMSOURCE_INDEXEDDATA);
...@@ -2481,7 +2481,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetStreamSourceFreq(IWineD3DDevice *ifa ...@@ -2481,7 +2481,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetStreamSourceFreq(IWineD3DDevice *ifa
This->updateStateBlock->changed.streamFreq |= 1 << StreamNumber; This->updateStateBlock->changed.streamFreq |= 1 << StreamNumber;
if (stream->frequency != oldFreq || stream->flags != oldFlags) if (stream->frequency != oldFreq || stream->flags != old_flags)
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_STREAMSRC); IWineD3DDeviceImpl_MarkStateDirty(This, STATE_STREAMSRC);
return WINED3D_OK; return WINED3D_OK;
...@@ -3894,7 +3894,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetPixelShaderConstantF( ...@@ -3894,7 +3894,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetPixelShaderConstantF(
/* Do not call while under the GL lock. */ /* Do not call while under the GL lock. */
#define copy_and_next(dest, src, size) memcpy(dest, src, size); dest += (size) #define copy_and_next(dest, src, size) memcpy(dest, src, size); dest += (size)
static HRESULT process_vertices_strided(IWineD3DDeviceImpl *This, DWORD dwDestIndex, DWORD dwCount, static HRESULT process_vertices_strided(IWineD3DDeviceImpl *This, DWORD dwDestIndex, DWORD dwCount,
const struct wined3d_stream_info *stream_info, struct wined3d_buffer *dest, DWORD dwFlags, const struct wined3d_stream_info *stream_info, struct wined3d_buffer *dest, DWORD flags,
DWORD DestFVF) DWORD DestFVF)
{ {
const struct wined3d_gl_info *gl_info = &This->adapter->gl_info; const struct wined3d_gl_info *gl_info = &This->adapter->gl_info;
...@@ -4237,7 +4237,7 @@ static HRESULT process_vertices_strided(IWineD3DDeviceImpl *This, DWORD dwDestIn ...@@ -4237,7 +4237,7 @@ static HRESULT process_vertices_strided(IWineD3DDeviceImpl *This, DWORD dwDestIn
/* Do not call while under the GL lock. */ /* Do not call while under the GL lock. */
static HRESULT WINAPI IWineD3DDeviceImpl_ProcessVertices(IWineD3DDevice *iface, UINT SrcStartIndex, UINT DestIndex, static HRESULT WINAPI IWineD3DDeviceImpl_ProcessVertices(IWineD3DDevice *iface, UINT SrcStartIndex, UINT DestIndex,
UINT VertexCount, IWineD3DBuffer *pDestBuffer, IWineD3DVertexDeclaration *pVertexDecl, DWORD Flags, UINT VertexCount, IWineD3DBuffer *pDestBuffer, IWineD3DVertexDeclaration *pVertexDecl, DWORD flags,
DWORD DestFVF) DWORD DestFVF)
{ {
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
...@@ -4247,7 +4247,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_ProcessVertices(IWineD3DDevice *iface, ...@@ -4247,7 +4247,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_ProcessVertices(IWineD3DDevice *iface,
BOOL vbo = FALSE, streamWasUP = This->stateBlock->state.user_stream; BOOL vbo = FALSE, streamWasUP = This->stateBlock->state.user_stream;
HRESULT hr; HRESULT hr;
TRACE("(%p)->(%d,%d,%d,%p,%p,%d\n", This, SrcStartIndex, DestIndex, VertexCount, pDestBuffer, pVertexDecl, Flags); TRACE("(%p)->(%d,%d,%d,%p,%p,%d\n", This, SrcStartIndex, DestIndex, VertexCount, pDestBuffer, pVertexDecl, flags);
if(pVertexDecl) { if(pVertexDecl) {
ERR("Output vertex declaration not implemented yet\n"); ERR("Output vertex declaration not implemented yet\n");
...@@ -4293,7 +4293,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_ProcessVertices(IWineD3DDevice *iface, ...@@ -4293,7 +4293,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_ProcessVertices(IWineD3DDevice *iface,
} }
hr = process_vertices_strided(This, DestIndex, VertexCount, &stream_info, hr = process_vertices_strided(This, DestIndex, VertexCount, &stream_info,
(struct wined3d_buffer *)pDestBuffer, Flags, DestFVF); (struct wined3d_buffer *)pDestBuffer, flags, DestFVF);
context_release(context); context_release(context);
...@@ -6008,15 +6008,16 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetCursorProperties(IWineD3DDevice *ifa ...@@ -6008,15 +6008,16 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetCursorProperties(IWineD3DDevice *ifa
return WINED3D_OK; return WINED3D_OK;
} }
static void WINAPI IWineD3DDeviceImpl_SetCursorPosition(IWineD3DDevice* iface, int XScreenSpace, int YScreenSpace, DWORD Flags) { static void WINAPI IWineD3DDeviceImpl_SetCursorPosition(IWineD3DDevice *iface,
int XScreenSpace, int YScreenSpace, DWORD flags)
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface; IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface;
TRACE("(%p) : SetPos to (%u,%u)\n", This, XScreenSpace, YScreenSpace);
TRACE("iface %p, x %d, y %d, flags %#x.\n",
iface, XScreenSpace, YScreenSpace, flags);
This->xScreenSpace = XScreenSpace; This->xScreenSpace = XScreenSpace;
This->yScreenSpace = YScreenSpace; This->yScreenSpace = YScreenSpace;
return;
} }
static BOOL WINAPI IWineD3DDeviceImpl_ShowCursor(IWineD3DDevice* iface, BOOL bShow) { static BOOL WINAPI IWineD3DDeviceImpl_ShowCursor(IWineD3DDevice* iface, BOOL bShow) {
...@@ -6560,13 +6561,16 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetCreationParameters(IWineD3DDevice ...@@ -6560,13 +6561,16 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetCreationParameters(IWineD3DDevice
return WINED3D_OK; return WINED3D_OK;
} }
static void WINAPI IWineD3DDeviceImpl_SetGammaRamp(IWineD3DDevice * iface, UINT iSwapChain, DWORD Flags, CONST WINED3DGAMMARAMP* pRamp) { static void WINAPI IWineD3DDeviceImpl_SetGammaRamp(IWineD3DDevice *iface,
UINT iSwapChain, DWORD flags, const WINED3DGAMMARAMP *pRamp)
{
IWineD3DSwapChain *swapchain; IWineD3DSwapChain *swapchain;
TRACE("Relaying to swapchain\n"); TRACE("Relaying to swapchain\n");
if (IWineD3DDeviceImpl_GetSwapChain(iface, iSwapChain, &swapchain) == WINED3D_OK) { if (IWineD3DDeviceImpl_GetSwapChain(iface, iSwapChain, &swapchain) == WINED3D_OK)
IWineD3DSwapChain_SetGammaRamp(swapchain, Flags, pRamp); {
IWineD3DSwapChain_SetGammaRamp(swapchain, flags, pRamp);
IWineD3DSwapChain_Release(swapchain); IWineD3DSwapChain_Release(swapchain);
} }
} }
......
...@@ -2782,13 +2782,14 @@ static HRESULT WINAPI IWineD3DImpl_GetAdapterDisplayMode(IWineD3D *iface, UINT A ...@@ -2782,13 +2782,14 @@ static HRESULT WINAPI IWineD3DImpl_GetAdapterDisplayMode(IWineD3D *iface, UINT A
/* NOTE: due to structure differences between dx8 and dx9 D3DADAPTER_IDENTIFIER, /* NOTE: due to structure differences between dx8 and dx9 D3DADAPTER_IDENTIFIER,
and fields being inserted in the middle, a new structure is used in place */ and fields being inserted in the middle, a new structure is used in place */
static HRESULT WINAPI IWineD3DImpl_GetAdapterIdentifier(IWineD3D *iface, UINT Adapter, DWORD Flags, static HRESULT WINAPI IWineD3DImpl_GetAdapterIdentifier(IWineD3D *iface,
WINED3DADAPTER_IDENTIFIER* pIdentifier) { UINT Adapter, DWORD flags, WINED3DADAPTER_IDENTIFIER *pIdentifier)
{
IWineD3DImpl *This = (IWineD3DImpl *)iface; IWineD3DImpl *This = (IWineD3DImpl *)iface;
struct wined3d_adapter *adapter; struct wined3d_adapter *adapter;
size_t len; size_t len;
TRACE_(d3d_caps)("(%p}->(Adapter: %d, Flags: %x, pId=%p)\n", This, Adapter, Flags, pIdentifier); TRACE_(d3d_caps)("(%p}->(Adapter: %d, flags: %x, pId=%p)\n", This, Adapter, flags, pIdentifier);
if (Adapter >= IWineD3D_GetAdapterCount(iface)) { if (Adapter >= IWineD3D_GetAdapterCount(iface)) {
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
...@@ -2838,7 +2839,7 @@ static HRESULT WINAPI IWineD3DImpl_GetAdapterIdentifier(IWineD3D *iface, UINT Ad ...@@ -2838,7 +2839,7 @@ static HRESULT WINAPI IWineD3DImpl_GetAdapterIdentifier(IWineD3D *iface, UINT Ad
pIdentifier->subsystem_id = 0; pIdentifier->subsystem_id = 0;
pIdentifier->revision = 0; pIdentifier->revision = 0;
memcpy(&pIdentifier->device_identifier, &IID_D3DDEVICE_D3DUID, sizeof(pIdentifier->device_identifier)); memcpy(&pIdentifier->device_identifier, &IID_D3DDEVICE_D3DUID, sizeof(pIdentifier->device_identifier));
pIdentifier->whql_level = (Flags & WINED3DENUM_NO_WHQL_LEVEL) ? 0 : 1; pIdentifier->whql_level = (flags & WINED3DENUM_NO_WHQL_LEVEL) ? 0 : 1;
memcpy(&pIdentifier->adapter_luid, &adapter->luid, sizeof(pIdentifier->adapter_luid)); memcpy(&pIdentifier->adapter_luid, &adapter->luid, sizeof(pIdentifier->adapter_luid));
pIdentifier->video_memory = adapter->TextureRam; pIdentifier->video_memory = adapter->TextureRam;
......
...@@ -74,25 +74,29 @@ static ULONG WINAPI IWineD3DPaletteImpl_Release(IWineD3DPalette *iface) { ...@@ -74,25 +74,29 @@ static ULONG WINAPI IWineD3DPaletteImpl_Release(IWineD3DPalette *iface) {
} }
/* Not called from the vtable */ /* Not called from the vtable */
static WORD IWineD3DPaletteImpl_Size(DWORD dwFlags) static WORD IWineD3DPaletteImpl_Size(DWORD flags)
{ {
switch (dwFlags & SIZE_BITS) { switch (flags & SIZE_BITS)
{
case WINEDDPCAPS_1BIT: return 2; case WINEDDPCAPS_1BIT: return 2;
case WINEDDPCAPS_2BIT: return 4; case WINEDDPCAPS_2BIT: return 4;
case WINEDDPCAPS_4BIT: return 16; case WINEDDPCAPS_4BIT: return 16;
case WINEDDPCAPS_8BIT: return 256; case WINEDDPCAPS_8BIT: return 256;
default: default:
FIXME("Unhandled size bits %#x.\n", dwFlags & SIZE_BITS); FIXME("Unhandled size bits %#x.\n", flags & SIZE_BITS);
return 256; return 256;
} }
} }
static HRESULT WINAPI IWineD3DPaletteImpl_GetEntries(IWineD3DPalette *iface, DWORD Flags, DWORD Start, DWORD Count, PALETTEENTRY *PalEnt) { static HRESULT WINAPI IWineD3DPaletteImpl_GetEntries(IWineD3DPalette *iface,
DWORD flags, DWORD Start, DWORD Count, PALETTEENTRY *PalEnt)
{
IWineD3DPaletteImpl *This = (IWineD3DPaletteImpl *)iface; IWineD3DPaletteImpl *This = (IWineD3DPaletteImpl *)iface;
TRACE("(%p)->(%08x,%d,%d,%p)\n",This,Flags,Start,Count,PalEnt); TRACE("iface %p, flags %#x, start %u, count %u, entries %p.\n",
iface, flags, Start, Count, PalEnt);
if (Flags) return WINED3DERR_INVALIDCALL; /* unchecked */ if (flags) return WINED3DERR_INVALIDCALL; /* unchecked */
if (Start + Count > IWineD3DPaletteImpl_Size(This->flags)) if (Start + Count > IWineD3DPaletteImpl_Size(This->flags))
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
...@@ -111,12 +115,13 @@ static HRESULT WINAPI IWineD3DPaletteImpl_GetEntries(IWineD3DPalette *iface, DW ...@@ -111,12 +115,13 @@ static HRESULT WINAPI IWineD3DPaletteImpl_GetEntries(IWineD3DPalette *iface, DW
} }
static HRESULT WINAPI IWineD3DPaletteImpl_SetEntries(IWineD3DPalette *iface, static HRESULT WINAPI IWineD3DPaletteImpl_SetEntries(IWineD3DPalette *iface,
DWORD Flags, DWORD Start, DWORD Count, const PALETTEENTRY *PalEnt) DWORD flags, DWORD Start, DWORD Count, const PALETTEENTRY *PalEnt)
{ {
IWineD3DPaletteImpl *This = (IWineD3DPaletteImpl *)iface; IWineD3DPaletteImpl *This = (IWineD3DPaletteImpl *)iface;
IWineD3DResourceImpl *res; IWineD3DResourceImpl *res;
TRACE("(%p)->(%08x,%d,%d,%p)\n",This,Flags,Start,Count,PalEnt); TRACE("iface %p, flags %#x, start %u, count %u, entries %p.\n",
iface, flags, Start, Count, PalEnt);
TRACE("Palette flags: %#x.\n", This->flags); TRACE("Palette flags: %#x.\n", This->flags);
if (This->flags & WINEDDPCAPS_8BITENTRIES) if (This->flags & WINEDDPCAPS_8BITENTRIES)
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright 2005 Oliver Stieber * Copyright 2005 Oliver Stieber
* Copyright 2007-2008 Stefan Dösinger for CodeWeavers * Copyright 2007-2008 Stefan Dösinger for CodeWeavers
* Copyright 2009 Henri Verbeet for CodeWeavers. * Copyright 2009-2010 Henri Verbeet for CodeWeavers.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -284,7 +284,9 @@ static ULONG WINAPI IWineD3DQueryImpl_Release(IWineD3DQuery *iface) { ...@@ -284,7 +284,9 @@ static ULONG WINAPI IWineD3DQueryImpl_Release(IWineD3DQuery *iface) {
return ref; return ref;
} }
static HRESULT WINAPI IWineD3DOcclusionQueryImpl_GetData(IWineD3DQuery* iface, void* pData, DWORD dwSize, DWORD dwGetDataFlags) { static HRESULT WINAPI IWineD3DOcclusionQueryImpl_GetData(IWineD3DQuery *iface,
void *pData, DWORD dwSize, DWORD flags)
{
IWineD3DQueryImpl *This = (IWineD3DQueryImpl *) iface; IWineD3DQueryImpl *This = (IWineD3DQueryImpl *) iface;
struct wined3d_occlusion_query *query = This->extendedData; struct wined3d_occlusion_query *query = This->extendedData;
IWineD3DDeviceImpl *device = This->device; IWineD3DDeviceImpl *device = This->device;
...@@ -295,7 +297,7 @@ static HRESULT WINAPI IWineD3DOcclusionQueryImpl_GetData(IWineD3DQuery* iface, ...@@ -295,7 +297,7 @@ static HRESULT WINAPI IWineD3DOcclusionQueryImpl_GetData(IWineD3DQuery* iface,
GLuint samples; GLuint samples;
HRESULT res; HRESULT res;
TRACE("(%p) : type D3DQUERY_OCCLUSION, pData %p, dwSize %#x, dwGetDataFlags %#x\n", This, pData, dwSize, dwGetDataFlags); TRACE("(%p) : type D3DQUERY_OCCLUSION, pData %p, dwSize %#x, flags %#x.\n", This, pData, dwSize, flags);
if (!query->context) This->state = QUERY_CREATED; if (!query->context) This->state = QUERY_CREATED;
...@@ -359,13 +361,15 @@ static HRESULT WINAPI IWineD3DOcclusionQueryImpl_GetData(IWineD3DQuery* iface, ...@@ -359,13 +361,15 @@ static HRESULT WINAPI IWineD3DOcclusionQueryImpl_GetData(IWineD3DQuery* iface,
return res; return res;
} }
static HRESULT WINAPI IWineD3DEventQueryImpl_GetData(IWineD3DQuery* iface, void* pData, DWORD dwSize, DWORD dwGetDataFlags) { static HRESULT WINAPI IWineD3DEventQueryImpl_GetData(IWineD3DQuery *iface,
void *pData, DWORD dwSize, DWORD flags)
{
IWineD3DQueryImpl *This = (IWineD3DQueryImpl *) iface; IWineD3DQueryImpl *This = (IWineD3DQueryImpl *) iface;
struct wined3d_event_query *query = This->extendedData; struct wined3d_event_query *query = This->extendedData;
BOOL *data = pData; BOOL *data = pData;
enum wined3d_event_query_result ret; enum wined3d_event_query_result ret;
TRACE("(%p) : type D3DQUERY_EVENT, pData %p, dwSize %#x, dwGetDataFlags %#x\n", This, pData, dwSize, dwGetDataFlags); TRACE("(%p) : type D3DQUERY_EVENT, pData %p, dwSize %#x, flags %#x.\n", This, pData, dwSize, flags);
if (!pData || !dwSize) return S_OK; if (!pData || !dwSize) return S_OK;
if (!query) if (!query)
...@@ -417,11 +421,12 @@ static WINED3DQUERYTYPE WINAPI IWineD3DQueryImpl_GetType(IWineD3DQuery* iface){ ...@@ -417,11 +421,12 @@ static WINED3DQUERYTYPE WINAPI IWineD3DQueryImpl_GetType(IWineD3DQuery* iface){
return This->type; return This->type;
} }
static HRESULT WINAPI IWineD3DEventQueryImpl_Issue(IWineD3DQuery* iface, DWORD dwIssueFlags) { static HRESULT WINAPI IWineD3DEventQueryImpl_Issue(IWineD3DQuery* iface, DWORD flags)
{
IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface; IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
TRACE("(%p) : dwIssueFlags %#x, type D3DQUERY_EVENT\n", This, dwIssueFlags); TRACE("(%p) : flags %#x, type D3DQUERY_EVENT\n", This, flags);
if (dwIssueFlags & WINED3DISSUE_END) if (flags & WINED3DISSUE_END)
{ {
struct wined3d_event_query *query = This->extendedData; struct wined3d_event_query *query = This->extendedData;
...@@ -430,22 +435,22 @@ static HRESULT WINAPI IWineD3DEventQueryImpl_Issue(IWineD3DQuery* iface, DWORD ...@@ -430,22 +435,22 @@ static HRESULT WINAPI IWineD3DEventQueryImpl_Issue(IWineD3DQuery* iface, DWORD
wined3d_event_query_issue(query, This->device); wined3d_event_query_issue(query, This->device);
} }
else if(dwIssueFlags & WINED3DISSUE_BEGIN) else if (flags & WINED3DISSUE_BEGIN)
{ {
/* Started implicitly at device creation */ /* Started implicitly at device creation */
ERR("Event query issued with START flag - what to do?\n"); ERR("Event query issued with START flag - what to do?\n");
} }
if(dwIssueFlags & WINED3DISSUE_BEGIN) { if (flags & WINED3DISSUE_BEGIN)
This->state = QUERY_BUILDING; This->state = QUERY_BUILDING;
} else { else
This->state = QUERY_SIGNALLED; This->state = QUERY_SIGNALLED;
}
return WINED3D_OK; return WINED3D_OK;
} }
static HRESULT WINAPI IWineD3DOcclusionQueryImpl_Issue(IWineD3DQuery* iface, DWORD dwIssueFlags) { static HRESULT WINAPI IWineD3DOcclusionQueryImpl_Issue(IWineD3DQuery *iface, DWORD flags)
{
IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface; IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
IWineD3DDeviceImpl *device = This->device; IWineD3DDeviceImpl *device = This->device;
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
...@@ -456,7 +461,7 @@ static HRESULT WINAPI IWineD3DOcclusionQueryImpl_Issue(IWineD3DQuery* iface, D ...@@ -456,7 +461,7 @@ static HRESULT WINAPI IWineD3DOcclusionQueryImpl_Issue(IWineD3DQuery* iface, D
struct wined3d_context *context; struct wined3d_context *context;
/* This is allowed according to msdn and our tests. Reset the query and restart */ /* This is allowed according to msdn and our tests. Reset the query and restart */
if (dwIssueFlags & WINED3DISSUE_BEGIN) if (flags & WINED3DISSUE_BEGIN)
{ {
if (This->state == QUERY_BUILDING) if (This->state == QUERY_BUILDING)
{ {
...@@ -492,7 +497,8 @@ static HRESULT WINAPI IWineD3DOcclusionQueryImpl_Issue(IWineD3DQuery* iface, D ...@@ -492,7 +497,8 @@ static HRESULT WINAPI IWineD3DOcclusionQueryImpl_Issue(IWineD3DQuery* iface, D
context_release(context); context_release(context);
} }
if (dwIssueFlags & WINED3DISSUE_END) { if (flags & WINED3DISSUE_END)
{
/* Msdn says _END on a non-building occlusion query returns an error, but /* Msdn says _END on a non-building occlusion query returns an error, but
* our tests show that it returns OK. But OpenGL doesn't like it, so avoid * our tests show that it returns OK. But OpenGL doesn't like it, so avoid
* generating an error * generating an error
...@@ -520,11 +526,11 @@ static HRESULT WINAPI IWineD3DOcclusionQueryImpl_Issue(IWineD3DQuery* iface, D ...@@ -520,11 +526,11 @@ static HRESULT WINAPI IWineD3DOcclusionQueryImpl_Issue(IWineD3DQuery* iface, D
FIXME("(%p) : Occlusion queries not supported\n", This); FIXME("(%p) : Occlusion queries not supported\n", This);
} }
if(dwIssueFlags & WINED3DISSUE_BEGIN) { if (flags & WINED3DISSUE_BEGIN)
This->state = QUERY_BUILDING; This->state = QUERY_BUILDING;
} else { else
This->state = QUERY_SIGNALLED; This->state = QUERY_SIGNALLED;
}
return WINED3D_OK; /* can be WINED3DERR_INVALIDCALL. */ return WINED3D_OK; /* can be WINED3DERR_INVALIDCALL. */
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* Copyright 2003-2004 Raphael Junqueira * Copyright 2003-2004 Raphael Junqueira
* Copyright 2004 Christian Costa * Copyright 2004 Christian Costa
* Copyright 2005 Oliver Stieber * Copyright 2005 Oliver Stieber
* Copyright 2009 Henri Verbeet for CodeWeavers * Copyright 2009-2010 Henri Verbeet for CodeWeavers
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -130,22 +130,26 @@ static PrivateData* resource_find_private_data(IWineD3DResourceImpl *This, REFGU ...@@ -130,22 +130,26 @@ static PrivateData* resource_find_private_data(IWineD3DResourceImpl *This, REFGU
} }
HRESULT resource_set_private_data(IWineD3DResource *iface, REFGUID refguid, HRESULT resource_set_private_data(IWineD3DResource *iface, REFGUID refguid,
const void *pData, DWORD SizeOfData, DWORD Flags) const void *pData, DWORD SizeOfData, DWORD flags)
{ {
IWineD3DResourceImpl *This = (IWineD3DResourceImpl *)iface; IWineD3DResourceImpl *This = (IWineD3DResourceImpl *)iface;
PrivateData *data; PrivateData *data;
TRACE("(%p) : %s %p %d %d\n", This, debugstr_guid(refguid), pData, SizeOfData, Flags); TRACE("iface %p, riid %s, data %p, data_size %u, flags %#x.\n",
iface, debugstr_guid(refguid), pData, SizeOfData, flags);
resource_free_private_data(iface, refguid); resource_free_private_data(iface, refguid);
data = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*data)); data = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*data));
if (!data) return E_OUTOFMEMORY; if (!data) return E_OUTOFMEMORY;
data->tag = *refguid; data->tag = *refguid;
data->flags = Flags; data->flags = flags;
if (Flags & WINED3DSPD_IUNKNOWN) { if (flags & WINED3DSPD_IUNKNOWN)
if(SizeOfData != sizeof(IUnknown *)) { {
if (SizeOfData != sizeof(IUnknown *))
{
WARN("IUnknown data with size %d, returning WINED3DERR_INVALIDCALL\n", SizeOfData); WARN("IUnknown data with size %d, returning WINED3DERR_INVALIDCALL\n", SizeOfData);
HeapFree(GetProcessHeap(), 0, data); HeapFree(GetProcessHeap(), 0, data);
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
......
...@@ -1643,14 +1643,14 @@ static void surface_prepare_system_memory(IWineD3DSurfaceImpl *This) ...@@ -1643,14 +1643,14 @@ static void surface_prepare_system_memory(IWineD3DSurfaceImpl *This)
} }
static HRESULT WINAPI IWineD3DSurfaceImpl_Map(IWineD3DSurface *iface, static HRESULT WINAPI IWineD3DSurfaceImpl_Map(IWineD3DSurface *iface,
WINED3DLOCKED_RECT *pLockedRect, const RECT *pRect, DWORD Flags) WINED3DLOCKED_RECT *pLockedRect, const RECT *pRect, DWORD flags)
{ {
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface; IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
IWineD3DDeviceImpl *device = This->resource.device; IWineD3DDeviceImpl *device = This->resource.device;
const RECT *pass_rect = pRect; const RECT *pass_rect = pRect;
TRACE("iface %p, locked_rect %p, rect %s, flags %#x.\n", TRACE("iface %p, locked_rect %p, rect %s, flags %#x.\n",
iface, pLockedRect, wine_dbgstr_rect(pRect), Flags); iface, pLockedRect, wine_dbgstr_rect(pRect), flags);
/* This is also done in the base class, but we have to verify this before loading any data from /* This is also done in the base class, but we have to verify this before loading any data from
* gl into the sysmem copy. The PBO may be mapped, a different rectangle locked, the discard flag * gl into the sysmem copy. The PBO may be mapped, a different rectangle locked, the discard flag
...@@ -1668,7 +1668,7 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_Map(IWineD3DSurface *iface, ...@@ -1668,7 +1668,7 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_Map(IWineD3DSurface *iface,
TRACE("Warning: trying to lock unlockable surf@%p\n", This); TRACE("Warning: trying to lock unlockable surf@%p\n", This);
} }
if (Flags & WINED3DLOCK_DISCARD) if (flags & WINED3DLOCK_DISCARD)
{ {
TRACE("WINED3DLOCK_DISCARD flag passed, marking SYSMEM as up to date.\n"); TRACE("WINED3DLOCK_DISCARD flag passed, marking SYSMEM as up to date.\n");
surface_prepare_system_memory(This); surface_prepare_system_memory(This);
...@@ -1720,10 +1720,7 @@ lock_end: ...@@ -1720,10 +1720,7 @@ lock_end:
context_release(context); context_release(context);
} }
if (Flags & (WINED3DLOCK_NO_DIRTY_UPDATE | WINED3DLOCK_READONLY)) { if (!(flags & (WINED3DLOCK_NO_DIRTY_UPDATE | WINED3DLOCK_READONLY)))
/* Don't dirtify */
}
else
{ {
surface_add_dirty_rect(This, pRect); surface_add_dirty_rect(This, pRect);
...@@ -1738,7 +1735,7 @@ lock_end: ...@@ -1738,7 +1735,7 @@ lock_end:
} }
} }
return IWineD3DBaseSurfaceImpl_Map(iface, pLockedRect, pRect, Flags); return IWineD3DBaseSurfaceImpl_Map(iface, pLockedRect, pRect, flags);
} }
static void flush_to_framebuffer_drawpixels(IWineD3DSurfaceImpl *This, static void flush_to_framebuffer_drawpixels(IWineD3DSurfaceImpl *This,
...@@ -2723,11 +2720,12 @@ void flip_surface(IWineD3DSurfaceImpl *front, IWineD3DSurfaceImpl *back) { ...@@ -2723,11 +2720,12 @@ void flip_surface(IWineD3DSurfaceImpl *front, IWineD3DSurfaceImpl *back) {
} }
} }
static HRESULT WINAPI IWineD3DSurfaceImpl_Flip(IWineD3DSurface *iface, IWineD3DSurface *override, DWORD Flags) { static HRESULT WINAPI IWineD3DSurfaceImpl_Flip(IWineD3DSurface *iface, IWineD3DSurface *override, DWORD flags)
{
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface; IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
IWineD3DSwapChainImpl *swapchain = NULL; IWineD3DSwapChainImpl *swapchain = NULL;
TRACE("(%p)->(%p,%x)\n", This, override, Flags); TRACE("iface %p, override %p, flags %#x.\n", iface, override, flags);
/* Flipping is only supported on RenderTargets and overlays*/ /* Flipping is only supported on RenderTargets and overlays*/
if( !(This->resource.usage & (WINED3DUSAGE_RENDERTARGET | WINED3DUSAGE_OVERLAY)) ) { if( !(This->resource.usage & (WINED3DUSAGE_RENDERTARGET | WINED3DUSAGE_OVERLAY)) ) {
...@@ -2764,19 +2762,17 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_Flip(IWineD3DSurface *iface, IWineD3DS ...@@ -2764,19 +2762,17 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_Flip(IWineD3DSurface *iface, IWineD3DS
/* Just overwrite the swapchain presentation interval. This is ok because only ddraw apps can call Flip, /* Just overwrite the swapchain presentation interval. This is ok because only ddraw apps can call Flip,
* and only d3d8 and d3d9 apps specify the presentation interval * and only d3d8 and d3d9 apps specify the presentation interval
*/ */
if (!(Flags & (WINEDDFLIP_NOVSYNC | WINEDDFLIP_INTERVAL2 | WINEDDFLIP_INTERVAL3 | WINEDDFLIP_INTERVAL4))) if (!(flags & (WINEDDFLIP_NOVSYNC | WINEDDFLIP_INTERVAL2 | WINEDDFLIP_INTERVAL3 | WINEDDFLIP_INTERVAL4)))
{
/* Most common case first to avoid wasting time on all the other cases */ /* Most common case first to avoid wasting time on all the other cases */
swapchain->presentParms.PresentationInterval = WINED3DPRESENT_INTERVAL_ONE; swapchain->presentParms.PresentationInterval = WINED3DPRESENT_INTERVAL_ONE;
} else if(Flags & WINEDDFLIP_NOVSYNC) { else if (flags & WINEDDFLIP_NOVSYNC)
swapchain->presentParms.PresentationInterval = WINED3DPRESENT_INTERVAL_IMMEDIATE; swapchain->presentParms.PresentationInterval = WINED3DPRESENT_INTERVAL_IMMEDIATE;
} else if(Flags & WINEDDFLIP_INTERVAL2) { else if (flags & WINEDDFLIP_INTERVAL2)
swapchain->presentParms.PresentationInterval = WINED3DPRESENT_INTERVAL_TWO; swapchain->presentParms.PresentationInterval = WINED3DPRESENT_INTERVAL_TWO;
} else if(Flags & WINEDDFLIP_INTERVAL3) { else if (flags & WINEDDFLIP_INTERVAL3)
swapchain->presentParms.PresentationInterval = WINED3DPRESENT_INTERVAL_THREE; swapchain->presentParms.PresentationInterval = WINED3DPRESENT_INTERVAL_THREE;
} else { else
swapchain->presentParms.PresentationInterval = WINED3DPRESENT_INTERVAL_FOUR; swapchain->presentParms.PresentationInterval = WINED3DPRESENT_INTERVAL_FOUR;
}
/* Flipping a OpenGL surface -> Use WineD3DDevice::Present */ /* Flipping a OpenGL surface -> Use WineD3DDevice::Present */
return IWineD3DSwapChain_Present((IWineD3DSwapChain *)swapchain, return IWineD3DSwapChain_Present((IWineD3DSwapChain *)swapchain,
...@@ -3436,7 +3432,7 @@ HRESULT surface_color_fill(IWineD3DSurfaceImpl *s, const RECT *rect, const WINED ...@@ -3436,7 +3432,7 @@ HRESULT surface_color_fill(IWineD3DSurfaceImpl *s, const RECT *rect, const WINED
/* Not called from the VTable */ /* Not called from the VTable */
/* Do not call while under the GL lock. */ /* Do not call while under the GL lock. */
static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, const RECT *DestRect, static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, const RECT *DestRect,
IWineD3DSurfaceImpl *src_surface, const RECT *SrcRect, DWORD Flags, const WINEDDBLTFX *DDBltFx, IWineD3DSurfaceImpl *src_surface, const RECT *SrcRect, DWORD flags, const WINEDDBLTFX *DDBltFx,
WINED3DTEXTUREFILTERTYPE Filter) WINED3DTEXTUREFILTERTYPE Filter)
{ {
IWineD3DDeviceImpl *device = dst_surface->resource.device; IWineD3DDeviceImpl *device = dst_surface->resource.device;
...@@ -3446,7 +3442,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, ...@@ -3446,7 +3442,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface,
TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, blt_fx %p, filter %s.\n", TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, blt_fx %p, filter %s.\n",
dst_surface, wine_dbgstr_rect(DestRect), src_surface, wine_dbgstr_rect(SrcRect), dst_surface, wine_dbgstr_rect(DestRect), src_surface, wine_dbgstr_rect(SrcRect),
Flags, DDBltFx, debug_d3dtexturefiltertype(Filter)); flags, DDBltFx, debug_d3dtexturefiltertype(Filter));
/* Get the swapchain. One of the surfaces has to be a primary surface */ /* Get the swapchain. One of the surfaces has to be a primary surface */
if (dst_surface->resource.pool == WINED3DPOOL_SYSTEMMEM) if (dst_surface->resource.pool == WINED3DPOOL_SYSTEMMEM)
...@@ -3480,7 +3476,8 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, ...@@ -3480,7 +3476,8 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface,
} }
/* No destination color keying supported */ /* No destination color keying supported */
if(Flags & (WINEDDBLT_KEYDEST | WINEDDBLT_KEYDESTOVERRIDE)) { if (flags & (WINEDDBLT_KEYDEST | WINEDDBLT_KEYDESTOVERRIDE))
{
/* Can we support that with glBlendFunc if blitting to the frame buffer? */ /* Can we support that with glBlendFunc if blitting to the frame buffer? */
TRACE("Destination color key not supported in accelerated Blit, falling back to software\n"); TRACE("Destination color key not supported in accelerated Blit, falling back to software\n");
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
...@@ -3552,7 +3549,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, ...@@ -3552,7 +3549,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface,
TRACE("Yes\n"); TRACE("Yes\n");
/* These flags are unimportant for the flag check, remove them */ /* These flags are unimportant for the flag check, remove them */
if (!(Flags & ~(WINEDDBLT_DONOTWAIT | WINEDDBLT_WAIT))) if (!(flags & ~(WINEDDBLT_DONOTWAIT | WINEDDBLT_WAIT)))
{ {
WINED3DSWAPEFFECT orig_swap = dstSwapchain->presentParms.SwapEffect; WINED3DSWAPEFFECT orig_swap = dstSwapchain->presentParms.SwapEffect;
...@@ -3619,7 +3616,8 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, ...@@ -3619,7 +3616,8 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface,
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
} }
if(Flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE)) { if (flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE))
{
TRACE("Color keying not supported by frame buffer to texture blit\n"); TRACE("Color keying not supported by frame buffer to texture blit\n");
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
/* Destination color key is checked above */ /* Destination color key is checked above */
...@@ -3686,7 +3684,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, ...@@ -3686,7 +3684,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface,
TRACE("Blt from surface %p to rendertarget %p\n", src_surface, dst_surface); TRACE("Blt from surface %p to rendertarget %p\n", src_surface, dst_surface);
if (!(Flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE)) if (!(flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE))
&& fbo_blit_supported(gl_info, BLIT_OP_BLIT, && fbo_blit_supported(gl_info, BLIT_OP_BLIT,
&src_rect, src_surface->resource.usage, src_surface->resource.pool, &src_rect, src_surface->resource.usage, src_surface->resource.pool,
src_surface->resource.format, src_surface->resource.format,
...@@ -3703,7 +3701,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, ...@@ -3703,7 +3701,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface,
return WINED3D_OK; return WINED3D_OK;
} }
if (!(Flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE)) if (!(flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE))
&& arbfp_blit.blit_supported(gl_info, BLIT_OP_BLIT, && arbfp_blit.blit_supported(gl_info, BLIT_OP_BLIT,
&src_rect, src_surface->resource.usage, src_surface->resource.pool, &src_rect, src_surface->resource.usage, src_surface->resource.pool,
src_surface->resource.format, src_surface->resource.format,
...@@ -3728,18 +3726,23 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, ...@@ -3728,18 +3726,23 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface,
* The surface keeps track of the color key last used to load the opengl surface. * The surface keeps track of the color key last used to load the opengl surface.
* PreLoad will catch the change to the flags and color key and reload if necessary. * PreLoad will catch the change to the flags and color key and reload if necessary.
*/ */
if(Flags & WINEDDBLT_KEYSRC) { if (flags & WINEDDBLT_KEYSRC)
{
/* Use color key from surface */ /* Use color key from surface */
} else if(Flags & WINEDDBLT_KEYSRCOVERRIDE) { }
else if (flags & WINEDDBLT_KEYSRCOVERRIDE)
{
/* Use color key from DDBltFx */ /* Use color key from DDBltFx */
src_surface->CKeyFlags |= WINEDDSD_CKSRCBLT; src_surface->CKeyFlags |= WINEDDSD_CKSRCBLT;
src_surface->SrcBltCKey = DDBltFx->ddckSrcColorkey; src_surface->SrcBltCKey = DDBltFx->ddckSrcColorkey;
} else { }
else
{
/* Do not use color key */ /* Do not use color key */
src_surface->CKeyFlags &= ~WINEDDSD_CKSRCBLT; src_surface->CKeyFlags &= ~WINEDDSD_CKSRCBLT;
} }
surface_blt_to_drawable(device, Filter, Flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE), surface_blt_to_drawable(device, Filter, flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE),
src_surface, &src_rect, dst_surface, &dst_rect); src_surface, &src_rect, dst_surface, &dst_rect);
/* Restore the color key parameters */ /* Restore the color key parameters */
...@@ -3753,7 +3756,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, ...@@ -3753,7 +3756,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface,
else else
{ {
/* Source-Less Blit to render target */ /* Source-Less Blit to render target */
if (Flags & WINEDDBLT_COLORFILL) if (flags & WINEDDBLT_COLORFILL)
{ {
WINED3DCOLORVALUE color; WINED3DCOLORVALUE color;
...@@ -3773,12 +3776,12 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, ...@@ -3773,12 +3776,12 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface,
} }
static HRESULT IWineD3DSurfaceImpl_BltZ(IWineD3DSurfaceImpl *This, const RECT *DestRect, static HRESULT IWineD3DSurfaceImpl_BltZ(IWineD3DSurfaceImpl *This, const RECT *DestRect,
IWineD3DSurface *src_surface, const RECT *src_rect, DWORD Flags, const WINEDDBLTFX *DDBltFx) IWineD3DSurface *src_surface, const RECT *src_rect, DWORD flags, const WINEDDBLTFX *DDBltFx)
{ {
IWineD3DDeviceImpl *device = This->resource.device; IWineD3DDeviceImpl *device = This->resource.device;
float depth; float depth;
if (Flags & WINEDDBLT_DEPTHFILL) if (flags & WINEDDBLT_DEPTHFILL)
{ {
switch (This->resource.format->id) switch (This->resource.format->id)
{ {
...@@ -3809,7 +3812,7 @@ static HRESULT IWineD3DSurfaceImpl_BltZ(IWineD3DSurfaceImpl *This, const RECT *D ...@@ -3809,7 +3812,7 @@ static HRESULT IWineD3DSurfaceImpl_BltZ(IWineD3DSurfaceImpl *This, const RECT *D
} }
static HRESULT WINAPI IWineD3DSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *DestRect, static HRESULT WINAPI IWineD3DSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *DestRect,
IWineD3DSurface *src_surface, const RECT *SrcRect, DWORD Flags, IWineD3DSurface *src_surface, const RECT *SrcRect, DWORD flags,
const WINEDDBLTFX *DDBltFx, WINED3DTEXTUREFILTERTYPE Filter) const WINEDDBLTFX *DDBltFx, WINED3DTEXTUREFILTERTYPE Filter)
{ {
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface; IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
...@@ -3818,7 +3821,7 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT ...@@ -3818,7 +3821,7 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT
TRACE("iface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n", TRACE("iface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n",
iface, wine_dbgstr_rect(DestRect), src_surface, wine_dbgstr_rect(SrcRect), iface, wine_dbgstr_rect(DestRect), src_surface, wine_dbgstr_rect(SrcRect),
Flags, DDBltFx, debug_d3dtexturefiltertype(Filter)); flags, DDBltFx, debug_d3dtexturefiltertype(Filter));
TRACE("Usage is %s.\n", debug_d3dusage(This->resource.usage)); TRACE("Usage is %s.\n", debug_d3dusage(This->resource.usage));
if ((This->flags & SFLAG_LOCKED) || (src && (src->flags & SFLAG_LOCKED))) if ((This->flags & SFLAG_LOCKED) || (src && (src->flags & SFLAG_LOCKED)))
...@@ -3832,12 +3835,12 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT ...@@ -3832,12 +3835,12 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT
*/ */
if (This == device->depth_stencil || (src && src == device->depth_stencil)) if (This == device->depth_stencil || (src && src == device->depth_stencil))
{ {
if (device->inScene && !(Flags & WINEDDBLT_DEPTHFILL)) if (device->inScene && !(flags & WINEDDBLT_DEPTHFILL))
{ {
TRACE("Attempt to access the depth stencil surface in a BeginScene / EndScene pair, returning WINED3DERR_INVALIDCALL\n"); TRACE("Attempt to access the depth stencil surface in a BeginScene / EndScene pair, returning WINED3DERR_INVALIDCALL\n");
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
} }
else if (SUCCEEDED(IWineD3DSurfaceImpl_BltZ(This, DestRect, src_surface, SrcRect, Flags, DDBltFx))) else if (SUCCEEDED(IWineD3DSurfaceImpl_BltZ(This, DestRect, src_surface, SrcRect, flags, DDBltFx)))
{ {
TRACE("Z Blit override handled the blit\n"); TRACE("Z Blit override handled the blit\n");
return WINED3D_OK; return WINED3D_OK;
...@@ -3848,14 +3851,14 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT ...@@ -3848,14 +3851,14 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT
if ((This->resource.usage & WINED3DUSAGE_RENDERTARGET) if ((This->resource.usage & WINED3DUSAGE_RENDERTARGET)
|| (src && (src->resource.usage & WINED3DUSAGE_RENDERTARGET))) || (src && (src->resource.usage & WINED3DUSAGE_RENDERTARGET)))
{ {
if (SUCCEEDED(IWineD3DSurfaceImpl_BltOverride(This, DestRect, src, SrcRect, Flags, DDBltFx, Filter))) if (SUCCEEDED(IWineD3DSurfaceImpl_BltOverride(This, DestRect, src, SrcRect, flags, DDBltFx, Filter)))
return WINED3D_OK; return WINED3D_OK;
} }
/* For the rest call the X11 surface implementation. /* For the rest call the X11 surface implementation.
* For RenderTargets this should be implemented OpenGL accelerated in BltOverride, * For RenderTargets this should be implemented OpenGL accelerated in BltOverride,
* other Blts are rather rare. */ * other Blts are rather rare. */
return IWineD3DBaseSurfaceImpl_Blt(iface, DestRect, src_surface, SrcRect, Flags, DDBltFx, Filter); return IWineD3DBaseSurfaceImpl_Blt(iface, DestRect, src_surface, SrcRect, flags, DDBltFx, Filter);
} }
static HRESULT WINAPI IWineD3DSurfaceImpl_BltFast(IWineD3DSurface *iface, DWORD dstx, DWORD dsty, static HRESULT WINAPI IWineD3DSurfaceImpl_BltFast(IWineD3DSurface *iface, DWORD dstx, DWORD dsty,
...@@ -3886,7 +3889,7 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_BltFast(IWineD3DSurface *iface, DWORD ...@@ -3886,7 +3889,7 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_BltFast(IWineD3DSurface *iface, DWORD
{ {
RECT SrcRect, DstRect; RECT SrcRect, DstRect;
DWORD Flags=0; DWORD flags = 0;
surface_get_rect(src, rsrc, &SrcRect); surface_get_rect(src, rsrc, &SrcRect);
...@@ -3896,17 +3899,17 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_BltFast(IWineD3DSurface *iface, DWORD ...@@ -3896,17 +3899,17 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_BltFast(IWineD3DSurface *iface, DWORD
DstRect.bottom = dsty + SrcRect.bottom - SrcRect.top; DstRect.bottom = dsty + SrcRect.bottom - SrcRect.top;
/* Convert BltFast flags into Btl ones because it is called from SurfaceImpl_Blt as well */ /* Convert BltFast flags into Btl ones because it is called from SurfaceImpl_Blt as well */
if(trans & WINEDDBLTFAST_SRCCOLORKEY) if (trans & WINEDDBLTFAST_SRCCOLORKEY)
Flags |= WINEDDBLT_KEYSRC; flags |= WINEDDBLT_KEYSRC;
if(trans & WINEDDBLTFAST_DESTCOLORKEY) if (trans & WINEDDBLTFAST_DESTCOLORKEY)
Flags |= WINEDDBLT_KEYDEST; flags |= WINEDDBLT_KEYDEST;
if(trans & WINEDDBLTFAST_WAIT) if (trans & WINEDDBLTFAST_WAIT)
Flags |= WINEDDBLT_WAIT; flags |= WINEDDBLT_WAIT;
if(trans & WINEDDBLTFAST_DONOTWAIT) if (trans & WINEDDBLTFAST_DONOTWAIT)
Flags |= WINEDDBLT_DONOTWAIT; flags |= WINEDDBLT_DONOTWAIT;
if (SUCCEEDED(IWineD3DSurfaceImpl_BltOverride(This, if (SUCCEEDED(IWineD3DSurfaceImpl_BltOverride(This,
&DstRect, src, &SrcRect, Flags, NULL, WINED3DTEXF_POINT))) &DstRect, src, &SrcRect, flags, NULL, WINED3DTEXF_POINT)))
return WINED3D_OK; return WINED3D_OK;
} }
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* Copyright 2006-2008 Stefan Dösinger for CodeWeavers * Copyright 2006-2008 Stefan Dösinger for CodeWeavers
* Copyright 2007 Henri Verbeet * Copyright 2007 Henri Verbeet
* Copyright 2006-2007 Roderick Colenbrander * Copyright 2006-2007 Roderick Colenbrander
* Copyright 2009 Henri Verbeet for CodeWeavers * Copyright 2009-2010 Henri Verbeet for CodeWeavers
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -111,11 +111,10 @@ ULONG WINAPI IWineD3DBaseSurfaceImpl_AddRef(IWineD3DSurface *iface) { ...@@ -111,11 +111,10 @@ ULONG WINAPI IWineD3DBaseSurfaceImpl_AddRef(IWineD3DSurface *iface) {
return ref; return ref;
} }
/* **************************************************** HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPrivateData(IWineD3DSurface *iface,
IWineD3DSurface IWineD3DResource parts follow REFGUID riid, const void *data, DWORD data_size, DWORD flags)
**************************************************** */ {
HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPrivateData(IWineD3DSurface *iface, REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) { return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
return resource_set_private_data((IWineD3DResource *)iface, refguid, pData, SizeOfData, Flags);
} }
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPrivateData(IWineD3DSurface *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) { HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPrivateData(IWineD3DSurface *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
...@@ -163,11 +162,11 @@ void WINAPI IWineD3DBaseSurfaceImpl_GetDesc(IWineD3DSurface *iface, WINED3DSURFA ...@@ -163,11 +162,11 @@ void WINAPI IWineD3DBaseSurfaceImpl_GetDesc(IWineD3DSurface *iface, WINED3DSURFA
desc->height = surface->currentDesc.Height; desc->height = surface->currentDesc.Height;
} }
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *iface, DWORD Flags) HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *iface, DWORD flags)
{ {
TRACE("iface %p, flags %#x.\n", iface, Flags); TRACE("iface %p, flags %#x.\n", iface, flags);
switch (Flags) switch (flags)
{ {
case WINEDDGBS_CANBLT: case WINEDDGBS_CANBLT:
case WINEDDGBS_ISBLTDONE: case WINEDDGBS_ISBLTDONE:
...@@ -178,11 +177,14 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *iface, DWOR ...@@ -178,11 +177,14 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *iface, DWOR
} }
} }
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetFlipStatus(IWineD3DSurface *iface, DWORD Flags) { HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetFlipStatus(IWineD3DSurface *iface, DWORD flags)
{
/* XXX: DDERR_INVALIDSURFACETYPE */ /* XXX: DDERR_INVALIDSURFACETYPE */
TRACE("(%p)->(%08x)\n",iface,Flags); TRACE("iface %p, flags %#x.\n", iface, flags);
switch (Flags) {
switch (flags)
{
case WINEDDGFS_CANFLIP: case WINEDDGFS_CANFLIP:
case WINEDDGFS_ISFLIPDONE: case WINEDDGFS_ISFLIPDONE:
return WINED3D_OK; return WINED3D_OK;
...@@ -235,20 +237,23 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPalette(IWineD3DSurface *iface, IWineD ...@@ -235,20 +237,23 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPalette(IWineD3DSurface *iface, IWineD
else return WINED3D_OK; else return WINED3D_OK;
} }
HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetColorKey(IWineD3DSurface *iface, DWORD Flags, const WINEDDCOLORKEY *CKey) HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetColorKey(IWineD3DSurface *iface, DWORD flags, const WINEDDCOLORKEY *CKey)
{ {
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *) iface; IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *) iface;
TRACE("(%p)->(%08x,%p)\n", This, Flags, CKey);
if (Flags & WINEDDCKEY_COLORSPACE) TRACE("iface %p, flags %#x, color_key %p.\n", iface, flags, CKey);
if (flags & WINEDDCKEY_COLORSPACE)
{ {
FIXME(" colorkey value not supported (%08x) !\n", Flags); FIXME(" colorkey value not supported (%08x) !\n", flags);
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
} }
/* Dirtify the surface, but only if a key was changed */ /* Dirtify the surface, but only if a key was changed */
if(CKey) { if (CKey)
switch (Flags & ~WINEDDCKEY_COLORSPACE) { {
switch (flags & ~WINEDDCKEY_COLORSPACE)
{
case WINEDDCKEY_DESTBLT: case WINEDDCKEY_DESTBLT:
This->DestBltCKey = *CKey; This->DestBltCKey = *CKey;
This->CKeyFlags |= WINEDDSD_CKDESTBLT; This->CKeyFlags |= WINEDDSD_CKDESTBLT;
...@@ -270,8 +275,10 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetColorKey(IWineD3DSurface *iface, DWORD ...@@ -270,8 +275,10 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetColorKey(IWineD3DSurface *iface, DWORD
break; break;
} }
} }
else { else
switch (Flags & ~WINEDDCKEY_COLORSPACE) { {
switch (flags & ~WINEDDCKEY_COLORSPACE)
{
case WINEDDCKEY_DESTBLT: case WINEDDCKEY_DESTBLT:
This->CKeyFlags &= ~WINEDDSD_CKDESTBLT; This->CKeyFlags &= ~WINEDDSD_CKDESTBLT;
break; break;
...@@ -375,10 +382,11 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetOverlayPosition(IWineD3DSurface *iface ...@@ -375,10 +382,11 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetOverlayPosition(IWineD3DSurface *iface
return hr; return hr;
} }
HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlayZOrder(IWineD3DSurface *iface, DWORD Flags, IWineD3DSurface *Ref) { HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlayZOrder(IWineD3DSurface *iface, DWORD flags, IWineD3DSurface *Ref)
{
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *) iface; IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *) iface;
FIXME("iface %p, flags %#x, ref %p stub!\n", iface, Flags, Ref); FIXME("iface %p, flags %#x, ref %p stub!\n", iface, flags, Ref);
if(!(This->resource.usage & WINED3DUSAGE_OVERLAY)) if(!(This->resource.usage & WINED3DUSAGE_OVERLAY))
{ {
...@@ -390,11 +398,13 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlayZOrder(IWineD3DSurface *ifac ...@@ -390,11 +398,13 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlayZOrder(IWineD3DSurface *ifac
} }
HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlay(IWineD3DSurface *iface, const RECT *SrcRect, HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlay(IWineD3DSurface *iface, const RECT *SrcRect,
IWineD3DSurface *DstSurface, const RECT *DstRect, DWORD Flags, const WINEDDOVERLAYFX *FX) IWineD3DSurface *DstSurface, const RECT *DstRect, DWORD flags, const WINEDDOVERLAYFX *FX)
{ {
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *) iface; IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *) iface;
IWineD3DSurfaceImpl *Dst = (IWineD3DSurfaceImpl *) DstSurface; IWineD3DSurfaceImpl *Dst = (IWineD3DSurfaceImpl *) DstSurface;
TRACE("(%p)->(%p, %p, %p, %08x, %p)\n", This, SrcRect, Dst, DstRect, Flags, FX);
TRACE("iface %p, src_rect %s, dst_surface %p, dst_rect %s, flags %#x, fx %p.\n",
iface, wine_dbgstr_rect(SrcRect), DstSurface, wine_dbgstr_rect(DstRect), flags, FX);
if(!(This->resource.usage & WINED3DUSAGE_OVERLAY)) if(!(This->resource.usage & WINED3DUSAGE_OVERLAY))
{ {
...@@ -423,16 +433,21 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlay(IWineD3DSurface *iface, con ...@@ -423,16 +433,21 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlay(IWineD3DSurface *iface, con
This->overlay_destrect.bottom = Dst ? Dst->currentDesc.Height : 0; This->overlay_destrect.bottom = Dst ? Dst->currentDesc.Height : 0;
} }
if(This->overlay_dest && (This->overlay_dest != Dst || Flags & WINEDDOVER_HIDE)) { if (This->overlay_dest && (This->overlay_dest != Dst || flags & WINEDDOVER_HIDE))
{
list_remove(&This->overlay_entry); list_remove(&This->overlay_entry);
} }
if(Flags & WINEDDOVER_SHOW) { if (flags & WINEDDOVER_SHOW)
if(This->overlay_dest != Dst) { {
if (This->overlay_dest != Dst)
{
This->overlay_dest = Dst; This->overlay_dest = Dst;
list_add_tail(&Dst->overlays, &This->overlay_entry); list_add_tail(&Dst->overlays, &This->overlay_entry);
} }
} else if(Flags & WINEDDOVER_HIDE) { }
else if (flags & WINEDDOVER_HIDE)
{
/* tests show that the rectangles are erased on hide */ /* tests show that the rectangles are erased on hide */
This->overlay_srcrect.left = 0; This->overlay_srcrect.top = 0; This->overlay_srcrect.left = 0; This->overlay_srcrect.top = 0;
This->overlay_srcrect.right = 0; This->overlay_srcrect.bottom = 0; This->overlay_srcrect.right = 0; This->overlay_srcrect.bottom = 0;
...@@ -924,7 +939,7 @@ static HRESULT ...@@ -924,7 +939,7 @@ static HRESULT
* SrcRect: Source rectangle * SrcRect: Source rectangle
*****************************************************************************/ *****************************************************************************/
HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *DestRect, IWineD3DSurface *src_surface, HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *DestRect, IWineD3DSurface *src_surface,
const RECT *SrcRect, DWORD Flags, const WINEDDBLTFX *DDBltFx, WINED3DTEXTUREFILTERTYPE Filter) const RECT *SrcRect, DWORD flags, const WINEDDBLTFX *DDBltFx, WINED3DTEXTUREFILTERTYPE Filter)
{ {
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface; IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
IWineD3DSurfaceImpl *src = (IWineD3DSurfaceImpl *)src_surface; IWineD3DSurfaceImpl *src = (IWineD3DSurfaceImpl *)src_surface;
...@@ -939,7 +954,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -939,7 +954,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
TRACE("iface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n", TRACE("iface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n",
iface, wine_dbgstr_rect(DestRect), src_surface, wine_dbgstr_rect(SrcRect), iface, wine_dbgstr_rect(DestRect), src_surface, wine_dbgstr_rect(SrcRect),
Flags, DDBltFx, debug_d3dtexturefiltertype(Filter)); flags, DDBltFx, debug_d3dtexturefiltertype(Filter));
if ((This->flags & SFLAG_LOCKED) || (src && (src->flags & SFLAG_LOCKED))) if ((This->flags & SFLAG_LOCKED) || (src && (src->flags & SFLAG_LOCKED)))
{ {
...@@ -1030,7 +1045,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1030,7 +1045,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
if (clip_vert || clip_horiz) if (clip_vert || clip_horiz)
{ {
/* Now check if this is a special case or not... */ /* Now check if this is a special case or not... */
if ((Flags & WINEDDBLT_DDFX) if ((flags & WINEDDBLT_DDFX)
|| (clip_horiz && xdst.right - xdst.left != xsrc.right - xsrc.left) || (clip_horiz && xdst.right - xdst.left != xsrc.right - xsrc.left)
|| (clip_vert && xdst.bottom - xdst.top != xsrc.bottom - xsrc.top)) || (clip_vert && xdst.bottom - xdst.top != xsrc.bottom - xsrc.top))
{ {
...@@ -1123,7 +1138,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1123,7 +1138,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
IWineD3DSurface_Map(iface, &dlock, NULL, 0); IWineD3DSurface_Map(iface, &dlock, NULL, 0);
} }
if (!DDBltFx || !(DDBltFx->dwDDFX)) Flags &= ~WINEDDBLT_DDFX; if (!DDBltFx || !(DDBltFx->dwDDFX)) flags &= ~WINEDDBLT_DDFX;
if (sEntry->flags & dEntry->flags & WINED3DFMT_FLAG_FOURCC) if (sEntry->flags & dEntry->flags & WINED3DFMT_FLAG_FOURCC)
{ {
...@@ -1146,41 +1161,41 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1146,41 +1161,41 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
else else
dbuf = (BYTE*)dlock.pBits+(xdst.top*dlock.Pitch)+(xdst.left*bpp); dbuf = (BYTE*)dlock.pBits+(xdst.top*dlock.Pitch)+(xdst.left*bpp);
if (Flags & WINEDDBLT_WAIT) if (flags & WINEDDBLT_WAIT)
{ {
Flags &= ~WINEDDBLT_WAIT; flags &= ~WINEDDBLT_WAIT;
} }
if (Flags & WINEDDBLT_ASYNC) if (flags & WINEDDBLT_ASYNC)
{ {
static BOOL displayed = FALSE; static BOOL displayed = FALSE;
if (!displayed) if (!displayed)
FIXME("Can't handle WINEDDBLT_ASYNC flag right now.\n"); FIXME("Can't handle WINEDDBLT_ASYNC flag right now.\n");
displayed = TRUE; displayed = TRUE;
Flags &= ~WINEDDBLT_ASYNC; flags &= ~WINEDDBLT_ASYNC;
} }
if (Flags & WINEDDBLT_DONOTWAIT) if (flags & WINEDDBLT_DONOTWAIT)
{ {
/* WINEDDBLT_DONOTWAIT appeared in DX7 */ /* WINEDDBLT_DONOTWAIT appeared in DX7 */
static BOOL displayed = FALSE; static BOOL displayed = FALSE;
if (!displayed) if (!displayed)
FIXME("Can't handle WINEDDBLT_DONOTWAIT flag right now.\n"); FIXME("Can't handle WINEDDBLT_DONOTWAIT flag right now.\n");
displayed = TRUE; displayed = TRUE;
Flags &= ~WINEDDBLT_DONOTWAIT; flags &= ~WINEDDBLT_DONOTWAIT;
} }
/* First, all the 'source-less' blits */ /* First, all the 'source-less' blits */
if (Flags & WINEDDBLT_COLORFILL) if (flags & WINEDDBLT_COLORFILL)
{ {
ret = _Blt_ColorFill(dbuf, dstwidth, dstheight, bpp, ret = _Blt_ColorFill(dbuf, dstwidth, dstheight, bpp,
dlock.Pitch, DDBltFx->u5.dwFillColor); dlock.Pitch, DDBltFx->u5.dwFillColor);
Flags &= ~WINEDDBLT_COLORFILL; flags &= ~WINEDDBLT_COLORFILL;
} }
if (Flags & WINEDDBLT_DEPTHFILL) if (flags & WINEDDBLT_DEPTHFILL)
{ {
FIXME("DDBLT_DEPTHFILL needs to be implemented!\n"); FIXME("DDBLT_DEPTHFILL needs to be implemented!\n");
} }
if (Flags & WINEDDBLT_ROP) if (flags & WINEDDBLT_ROP)
{ {
/* Catch some degenerate cases here */ /* Catch some degenerate cases here */
switch(DDBltFx->dwROP) switch(DDBltFx->dwROP)
...@@ -1199,9 +1214,9 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1199,9 +1214,9 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
FIXME("Unsupported raster op: %08x Pattern: %p\n", DDBltFx->dwROP, DDBltFx->u5.lpDDSPattern); FIXME("Unsupported raster op: %08x Pattern: %p\n", DDBltFx->dwROP, DDBltFx->u5.lpDDSPattern);
goto error; goto error;
} }
Flags &= ~WINEDDBLT_ROP; flags &= ~WINEDDBLT_ROP;
} }
if (Flags & WINEDDBLT_DDROPS) if (flags & WINEDDBLT_DDROPS)
{ {
FIXME("\tDdraw Raster Ops: %08x Pattern: %p\n", DDBltFx->dwDDROP, DDBltFx->u5.lpDDSPattern); FIXME("\tDdraw Raster Ops: %08x Pattern: %p\n", DDBltFx->dwDDROP, DDBltFx->u5.lpDDSPattern);
} }
...@@ -1225,7 +1240,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1225,7 +1240,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
xinc = (srcwidth << 16) / dstwidth; xinc = (srcwidth << 16) / dstwidth;
yinc = (srcheight << 16) / dstheight; yinc = (srcheight << 16) / dstheight;
if (!Flags) if (!flags)
{ {
/* No effects, we can cheat here */ /* No effects, we can cheat here */
if (dstwidth == srcwidth) if (dstwidth == srcwidth)
...@@ -1340,27 +1355,27 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1340,27 +1355,27 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
LONG dstyinc = dlock.Pitch, dstxinc = bpp; LONG dstyinc = dlock.Pitch, dstxinc = bpp;
DWORD keylow = 0xFFFFFFFF, keyhigh = 0, keymask = 0xFFFFFFFF; DWORD keylow = 0xFFFFFFFF, keyhigh = 0, keymask = 0xFFFFFFFF;
DWORD destkeylow = 0x0, destkeyhigh = 0xFFFFFFFF, destkeymask = 0xFFFFFFFF; DWORD destkeylow = 0x0, destkeyhigh = 0xFFFFFFFF, destkeymask = 0xFFFFFFFF;
if (Flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYDEST | WINEDDBLT_KEYSRCOVERRIDE | WINEDDBLT_KEYDESTOVERRIDE)) if (flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYDEST | WINEDDBLT_KEYSRCOVERRIDE | WINEDDBLT_KEYDESTOVERRIDE))
{ {
/* The color keying flags are checked for correctness in ddraw */ /* The color keying flags are checked for correctness in ddraw */
if (Flags & WINEDDBLT_KEYSRC) if (flags & WINEDDBLT_KEYSRC)
{ {
keylow = src->SrcBltCKey.dwColorSpaceLowValue; keylow = src->SrcBltCKey.dwColorSpaceLowValue;
keyhigh = src->SrcBltCKey.dwColorSpaceHighValue; keyhigh = src->SrcBltCKey.dwColorSpaceHighValue;
} }
else if (Flags & WINEDDBLT_KEYSRCOVERRIDE) else if (flags & WINEDDBLT_KEYSRCOVERRIDE)
{ {
keylow = DDBltFx->ddckSrcColorkey.dwColorSpaceLowValue; keylow = DDBltFx->ddckSrcColorkey.dwColorSpaceLowValue;
keyhigh = DDBltFx->ddckSrcColorkey.dwColorSpaceHighValue; keyhigh = DDBltFx->ddckSrcColorkey.dwColorSpaceHighValue;
} }
if (Flags & WINEDDBLT_KEYDEST) if (flags & WINEDDBLT_KEYDEST)
{ {
/* Destination color keys are taken from the source surface ! */ /* Destination color keys are taken from the source surface ! */
destkeylow = src->DestBltCKey.dwColorSpaceLowValue; destkeylow = src->DestBltCKey.dwColorSpaceLowValue;
destkeyhigh = src->DestBltCKey.dwColorSpaceHighValue; destkeyhigh = src->DestBltCKey.dwColorSpaceHighValue;
} }
else if (Flags & WINEDDBLT_KEYDESTOVERRIDE) else if (flags & WINEDDBLT_KEYDESTOVERRIDE)
{ {
destkeylow = DDBltFx->ddckDestColorkey.dwColorSpaceLowValue; destkeylow = DDBltFx->ddckDestColorkey.dwColorSpaceLowValue;
destkeyhigh = DDBltFx->ddckDestColorkey.dwColorSpaceHighValue; destkeyhigh = DDBltFx->ddckDestColorkey.dwColorSpaceHighValue;
...@@ -1376,10 +1391,10 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1376,10 +1391,10 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
| sEntry->green_mask | sEntry->green_mask
| sEntry->blue_mask; | sEntry->blue_mask;
} }
Flags &= ~(WINEDDBLT_KEYSRC | WINEDDBLT_KEYDEST | WINEDDBLT_KEYSRCOVERRIDE | WINEDDBLT_KEYDESTOVERRIDE); flags &= ~(WINEDDBLT_KEYSRC | WINEDDBLT_KEYDEST | WINEDDBLT_KEYSRCOVERRIDE | WINEDDBLT_KEYDESTOVERRIDE);
} }
if (Flags & WINEDDBLT_DDFX) if (flags & WINEDDBLT_DDFX)
{ {
LPBYTE dTopLeft, dTopRight, dBottomLeft, dBottomRight, tmp; LPBYTE dTopLeft, dTopRight, dBottomLeft, dBottomRight, tmp;
LONG tmpxy; LONG tmpxy;
...@@ -1391,7 +1406,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1391,7 +1406,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
if (DDBltFx->dwDDFX & WINEDDBLTFX_ARITHSTRETCHY) if (DDBltFx->dwDDFX & WINEDDBLTFX_ARITHSTRETCHY)
{ {
/* I don't think we need to do anything about this flag */ /* I don't think we need to do anything about this flag */
WARN("Flags=DDBLT_DDFX nothing done for WINEDDBLTFX_ARITHSTRETCHY\n"); WARN("flags=DDBLT_DDFX nothing done for WINEDDBLTFX_ARITHSTRETCHY\n");
} }
if (DDBltFx->dwDDFX & WINEDDBLTFX_MIRRORLEFTRIGHT) if (DDBltFx->dwDDFX & WINEDDBLTFX_MIRRORLEFTRIGHT)
{ {
...@@ -1416,7 +1431,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1416,7 +1431,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
if (DDBltFx->dwDDFX & WINEDDBLTFX_NOTEARING) if (DDBltFx->dwDDFX & WINEDDBLTFX_NOTEARING)
{ {
/* I don't think we need to do anything about this flag */ /* I don't think we need to do anything about this flag */
WARN("Flags=DDBLT_DDFX nothing done for WINEDDBLTFX_NOTEARING\n"); WARN("flags=DDBLT_DDFX nothing done for WINEDDBLTFX_NOTEARING\n");
} }
if (DDBltFx->dwDDFX & WINEDDBLTFX_ROTATE180) if (DDBltFx->dwDDFX & WINEDDBLTFX_ROTATE180)
{ {
...@@ -1456,10 +1471,10 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1456,10 +1471,10 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
if (DDBltFx->dwDDFX & WINEDDBLTFX_ZBUFFERBASEDEST) if (DDBltFx->dwDDFX & WINEDDBLTFX_ZBUFFERBASEDEST)
{ {
/* I don't think we need to do anything about this flag */ /* I don't think we need to do anything about this flag */
WARN("Flags=WINEDDBLT_DDFX nothing done for WINEDDBLTFX_ZBUFFERBASEDEST\n"); WARN("flags=WINEDDBLT_DDFX nothing done for WINEDDBLTFX_ZBUFFERBASEDEST\n");
} }
dbuf = dTopLeft; dbuf = dTopLeft;
Flags &= ~(WINEDDBLT_DDFX); flags &= ~(WINEDDBLT_DDFX);
} }
#define COPY_COLORKEY_FX(type) { \ #define COPY_COLORKEY_FX(type) { \
...@@ -1513,7 +1528,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1513,7 +1528,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
} }
default: default:
FIXME("%s color-keyed blit not implemented for bpp %d!\n", FIXME("%s color-keyed blit not implemented for bpp %d!\n",
(Flags & WINEDDBLT_KEYSRC) ? "Source" : "Destination", bpp*8); (flags & WINEDDBLT_KEYSRC) ? "Source" : "Destination", bpp*8);
ret = WINED3DERR_NOTAVAILABLE; ret = WINED3DERR_NOTAVAILABLE;
goto error; goto error;
#undef COPY_COLORKEY_FX #undef COPY_COLORKEY_FX
...@@ -1522,9 +1537,9 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D ...@@ -1522,9 +1537,9 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *D
} }
error: error:
if (Flags && FIXME_ON(d3d_surface)) if (flags && FIXME_ON(d3d_surface))
{ {
FIXME("\tUnsupported flags: %08x\n", Flags); FIXME("\tUnsupported flags: %#x.\n", flags);
} }
release: release:
...@@ -1547,7 +1562,7 @@ release: ...@@ -1547,7 +1562,7 @@ release:
* dsty: * dsty:
* src_surface: Source surface to copy from * src_surface: Source surface to copy from
* rsrc: Source rectangle * rsrc: Source rectangle
* trans: Some Flags * trans: Some flags
* *
* Returns: * Returns:
* WINED3D_OK on success * WINED3D_OK on success
...@@ -1812,12 +1827,12 @@ error: ...@@ -1812,12 +1827,12 @@ error:
} }
HRESULT WINAPI IWineD3DBaseSurfaceImpl_Map(IWineD3DSurface *iface, HRESULT WINAPI IWineD3DBaseSurfaceImpl_Map(IWineD3DSurface *iface,
WINED3DLOCKED_RECT *pLockedRect, const RECT *pRect, DWORD Flags) WINED3DLOCKED_RECT *pLockedRect, const RECT *pRect, DWORD flags)
{ {
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface; IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
TRACE("(%p) : rect@%p flags(%08x), output lockedRect@%p, memory@%p\n", TRACE("iface %p, locked_rect %p, rect %s, flags %#x.\n",
This, pRect, Flags, pLockedRect, This->resource.allocatedMemory); iface, pLockedRect, wine_dbgstr_rect(pRect), flags);
pLockedRect->Pitch = IWineD3DSurface_GetPitch(iface); pLockedRect->Pitch = IWineD3DSurface_GetPitch(iface);
......
...@@ -110,7 +110,7 @@ static void WINAPI IWineGDISurfaceImpl_UnLoad(IWineD3DSurface *iface) ...@@ -110,7 +110,7 @@ static void WINAPI IWineGDISurfaceImpl_UnLoad(IWineD3DSurface *iface)
} }
static HRESULT WINAPI IWineGDISurfaceImpl_Map(IWineD3DSurface *iface, static HRESULT WINAPI IWineGDISurfaceImpl_Map(IWineD3DSurface *iface,
WINED3DLOCKED_RECT *pLockedRect, const RECT *pRect, DWORD Flags) WINED3DLOCKED_RECT *pLockedRect, const RECT *pRect, DWORD flags)
{ {
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface; IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
...@@ -131,7 +131,7 @@ static HRESULT WINAPI IWineGDISurfaceImpl_Map(IWineD3DSurface *iface, ...@@ -131,7 +131,7 @@ static HRESULT WINAPI IWineGDISurfaceImpl_Map(IWineD3DSurface *iface,
This->resource.allocatedMemory = This->dib.bitmap_data; This->resource.allocatedMemory = This->dib.bitmap_data;
} }
return IWineD3DBaseSurfaceImpl_Map(iface, pLockedRect, pRect, Flags); return IWineD3DBaseSurfaceImpl_Map(iface, pLockedRect, pRect, flags);
} }
static HRESULT WINAPI IWineGDISurfaceImpl_Unmap(IWineD3DSurface *iface) static HRESULT WINAPI IWineGDISurfaceImpl_Unmap(IWineD3DSurface *iface)
...@@ -174,10 +174,7 @@ static HRESULT WINAPI IWineGDISurfaceImpl_Unmap(IWineD3DSurface *iface) ...@@ -174,10 +174,7 @@ static HRESULT WINAPI IWineGDISurfaceImpl_Unmap(IWineD3DSurface *iface)
* WINED3D_OK on success * WINED3D_OK on success
* *
*****************************************************************************/ *****************************************************************************/
static HRESULT WINAPI static HRESULT WINAPI IWineGDISurfaceImpl_Flip(IWineD3DSurface *iface, IWineD3DSurface *override, DWORD flags)
IWineGDISurfaceImpl_Flip(IWineD3DSurface *iface,
IWineD3DSurface *override,
DWORD Flags)
{ {
IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface; IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
IWineD3DSwapChainImpl *swapchain; IWineD3DSwapChainImpl *swapchain;
......
...@@ -220,7 +220,10 @@ static void swapchain_blit(IWineD3DSwapChainImpl *This, struct wined3d_context * ...@@ -220,7 +220,10 @@ static void swapchain_blit(IWineD3DSwapChainImpl *This, struct wined3d_context *
} }
} }
static HRESULT WINAPI IWineD3DSwapChainImpl_Present(IWineD3DSwapChain *iface, CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion, DWORD dwFlags) { static HRESULT WINAPI IWineD3DSwapChainImpl_Present(IWineD3DSwapChain *iface,
const RECT *pSourceRect, const RECT *pDestRect, HWND hDestWindowOverride,
const RGNDATA *pDirtyRegion, DWORD flags)
{
IWineD3DSwapChainImpl *This = (IWineD3DSwapChainImpl *)iface; IWineD3DSwapChainImpl *This = (IWineD3DSwapChainImpl *)iface;
const struct wined3d_gl_info *gl_info; const struct wined3d_gl_info *gl_info;
struct wined3d_context *context; struct wined3d_context *context;
......
...@@ -169,11 +169,14 @@ HRESULT WINAPI IWineD3DBaseSwapChainImpl_GetPresentParameters(IWineD3DSwapChain ...@@ -169,11 +169,14 @@ HRESULT WINAPI IWineD3DBaseSwapChainImpl_GetPresentParameters(IWineD3DSwapChain
return WINED3D_OK; return WINED3D_OK;
} }
HRESULT WINAPI IWineD3DBaseSwapChainImpl_SetGammaRamp(IWineD3DSwapChain *iface, DWORD Flags, CONST WINED3DGAMMARAMP *pRamp){ HRESULT WINAPI IWineD3DBaseSwapChainImpl_SetGammaRamp(IWineD3DSwapChain *iface,
DWORD flags, const WINED3DGAMMARAMP *pRamp)
{
IWineD3DSwapChainImpl *This = (IWineD3DSwapChainImpl *)iface; IWineD3DSwapChainImpl *This = (IWineD3DSwapChainImpl *)iface;
HDC hDC; HDC hDC;
TRACE("(%p) : pRamp@%p flags(%d)\n", This, pRamp, Flags);
TRACE("iface %p, flags %#x, ramp %p.\n", iface, flags, pRamp);
hDC = GetDC(This->device_window); hDC = GetDC(This->device_window);
SetDeviceGammaRamp(hDC, (LPVOID)pRamp); SetDeviceGammaRamp(hDC, (LPVOID)pRamp);
ReleaseDC(This->device_window, hDC); ReleaseDC(This->device_window, hDC);
......
...@@ -172,7 +172,10 @@ static HRESULT WINAPI IWineGDISwapChainImpl_SetDestWindowOverride(IWineD3DSwapCh ...@@ -172,7 +172,10 @@ static HRESULT WINAPI IWineGDISwapChainImpl_SetDestWindowOverride(IWineD3DSwapCh
return WINED3D_OK; return WINED3D_OK;
} }
static HRESULT WINAPI IWineGDISwapChainImpl_Present(IWineD3DSwapChain *iface, CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion, DWORD dwFlags) { static HRESULT WINAPI IWineGDISwapChainImpl_Present(IWineD3DSwapChain *iface,
const RECT *pSourceRect, const RECT *pDestRect, HWND hDestWindowOverride,
const RGNDATA *pDirtyRegion, DWORD flags)
{
IWineD3DSwapChainImpl *This = (IWineD3DSwapChainImpl *) iface; IWineD3DSwapChainImpl *This = (IWineD3DSwapChainImpl *) iface;
IWineD3DSurfaceImpl *front, *back; IWineD3DSurfaceImpl *front, *back;
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* Copyright 2002-2005 Raphael Junqueira * Copyright 2002-2005 Raphael Junqueira
* Copyright 2005 Oliver Stieber * Copyright 2005 Oliver Stieber
* Copyright 2007-2008 Stefan Dösinger for CodeWeavers * Copyright 2007-2008 Stefan Dösinger for CodeWeavers
* Copyright 2009 Henri Verbeet for CodeWeavers * Copyright 2009-2010 Henri Verbeet for CodeWeavers
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -175,8 +175,10 @@ static ULONG WINAPI IWineD3DTextureImpl_Release(IWineD3DTexture *iface) { ...@@ -175,8 +175,10 @@ static ULONG WINAPI IWineD3DTextureImpl_Release(IWineD3DTexture *iface) {
/* **************************************************** /* ****************************************************
IWineD3DTexture IWineD3DResource parts follow IWineD3DTexture IWineD3DResource parts follow
**************************************************** */ **************************************************** */
static HRESULT WINAPI IWineD3DTextureImpl_SetPrivateData(IWineD3DTexture *iface, REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) { static HRESULT WINAPI IWineD3DTextureImpl_SetPrivateData(IWineD3DTexture *iface,
return resource_set_private_data((IWineD3DResource *)iface, refguid, pData, SizeOfData, Flags); REFGUID riid, const void *data, DWORD data_size, DWORD flags)
{
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
} }
static HRESULT WINAPI IWineD3DTextureImpl_GetPrivateData(IWineD3DTexture *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) { static HRESULT WINAPI IWineD3DTextureImpl_GetPrivateData(IWineD3DTexture *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* Copyright 2002-2005 Jason Edmeades * Copyright 2002-2005 Jason Edmeades
* Copyright 2002-2005 Raphael Junqueira * Copyright 2002-2005 Raphael Junqueira
* Copyright 2005 Oliver Stieber * Copyright 2005 Oliver Stieber
* Copyright 2009 Henri Verbeet for CodeWeavers * Copyright 2009-2010 Henri Verbeet for CodeWeavers
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -149,8 +149,10 @@ static void * WINAPI IWineD3DVolumeImpl_GetParent(IWineD3DVolume *iface) ...@@ -149,8 +149,10 @@ static void * WINAPI IWineD3DVolumeImpl_GetParent(IWineD3DVolume *iface)
return ((IWineD3DVolumeImpl *)iface)->resource.parent; return ((IWineD3DVolumeImpl *)iface)->resource.parent;
} }
static HRESULT WINAPI IWineD3DVolumeImpl_SetPrivateData(IWineD3DVolume *iface, REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) { static HRESULT WINAPI IWineD3DVolumeImpl_SetPrivateData(IWineD3DVolume *iface,
return resource_set_private_data((IWineD3DResource *)iface, refguid, pData, SizeOfData, Flags); REFGUID riid, const void *data, DWORD data_size, DWORD flags)
{
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
} }
static HRESULT WINAPI IWineD3DVolumeImpl_GetPrivateData(IWineD3DVolume *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) { static HRESULT WINAPI IWineD3DVolumeImpl_GetPrivateData(IWineD3DVolume *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
...@@ -206,7 +208,7 @@ static void WINAPI IWineD3DVolumeImpl_GetDesc(IWineD3DVolume *iface, WINED3DVOLU ...@@ -206,7 +208,7 @@ static void WINAPI IWineD3DVolumeImpl_GetDesc(IWineD3DVolume *iface, WINED3DVOLU
} }
static HRESULT WINAPI IWineD3DVolumeImpl_Map(IWineD3DVolume *iface, static HRESULT WINAPI IWineD3DVolumeImpl_Map(IWineD3DVolume *iface,
WINED3DLOCKED_BOX *pLockedVolume, const WINED3DBOX *pBox, DWORD Flags) WINED3DLOCKED_BOX *pLockedVolume, const WINED3DBOX *pBox, DWORD flags)
{ {
IWineD3DVolumeImpl *This = (IWineD3DVolumeImpl *)iface; IWineD3DVolumeImpl *This = (IWineD3DVolumeImpl *)iface;
FIXME("(%p) : pBox=%p stub\n", This, pBox); FIXME("(%p) : pBox=%p stub\n", This, pBox);
...@@ -244,10 +246,7 @@ static HRESULT WINAPI IWineD3DVolumeImpl_Map(IWineD3DVolume *iface, ...@@ -244,10 +246,7 @@ static HRESULT WINAPI IWineD3DVolumeImpl_Map(IWineD3DVolume *iface,
This->lockedBox.Back = pBox->Back; This->lockedBox.Back = pBox->Back;
} }
if (Flags & (WINED3DLOCK_NO_DIRTY_UPDATE | WINED3DLOCK_READONLY)) { if (!(flags & (WINED3DLOCK_NO_DIRTY_UPDATE | WINED3DLOCK_READONLY)))
/* Don't dirtify */
}
else
{ {
volume_add_dirty_box(iface, &This->lockedBox); volume_add_dirty_box(iface, &This->lockedBox);
This->container->baseTexture.texture_rgb.dirty = TRUE; This->container->baseTexture.texture_rgb.dirty = TRUE;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* Copyright 2002-2005 Jason Edmeades * Copyright 2002-2005 Jason Edmeades
* Copyright 2002-2005 Raphael Junqueira * Copyright 2002-2005 Raphael Junqueira
* Copyright 2005 Oliver Stieber * Copyright 2005 Oliver Stieber
* Copyright 2009 Henri Verbeet for CodeWeavers * Copyright 2009-2010 Henri Verbeet for CodeWeavers
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -143,8 +143,10 @@ static ULONG WINAPI IWineD3DVolumeTextureImpl_Release(IWineD3DVolumeTexture *ifa ...@@ -143,8 +143,10 @@ static ULONG WINAPI IWineD3DVolumeTextureImpl_Release(IWineD3DVolumeTexture *ifa
/* **************************************************** /* ****************************************************
IWineD3DVolumeTexture IWineD3DResource parts follow IWineD3DVolumeTexture IWineD3DResource parts follow
**************************************************** */ **************************************************** */
static HRESULT WINAPI IWineD3DVolumeTextureImpl_SetPrivateData(IWineD3DVolumeTexture *iface, REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) { static HRESULT WINAPI IWineD3DVolumeTextureImpl_SetPrivateData(IWineD3DVolumeTexture *iface,
return resource_set_private_data((IWineD3DResource *)iface, refguid, pData, SizeOfData, Flags); REFGUID riid, const void *data, DWORD data_size, DWORD flags)
{
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
} }
static HRESULT WINAPI IWineD3DVolumeTextureImpl_GetPrivateData(IWineD3DVolumeTexture *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) { static HRESULT WINAPI IWineD3DVolumeTextureImpl_GetPrivateData(IWineD3DVolumeTexture *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
......
...@@ -2189,7 +2189,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_QueryInterface(IWineD3DSurface *iface, ...@@ -2189,7 +2189,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_QueryInterface(IWineD3DSurface *iface,
ULONG WINAPI IWineD3DBaseSurfaceImpl_AddRef(IWineD3DSurface *iface) DECLSPEC_HIDDEN; ULONG WINAPI IWineD3DBaseSurfaceImpl_AddRef(IWineD3DSurface *iface) DECLSPEC_HIDDEN;
void * WINAPI IWineD3DBaseSurfaceImpl_GetParent(IWineD3DSurface *iface) DECLSPEC_HIDDEN; void * WINAPI IWineD3DBaseSurfaceImpl_GetParent(IWineD3DSurface *iface) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPrivateData(IWineD3DSurface *iface, HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPrivateData(IWineD3DSurface *iface,
REFGUID refguid, const void *pData, DWORD SizeOfData, DWORD Flags) DECLSPEC_HIDDEN; REFGUID refguid, const void *pData, DWORD SizeOfData, DWORD flags) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPrivateData(IWineD3DSurface *iface, HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPrivateData(IWineD3DSurface *iface,
REFGUID refguid, void *pData, DWORD *pSizeOfData) DECLSPEC_HIDDEN; REFGUID refguid, void *pData, DWORD *pSizeOfData) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_FreePrivateData(IWineD3DSurface *iface, REFGUID refguid) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_FreePrivateData(IWineD3DSurface *iface, REFGUID refguid) DECLSPEC_HIDDEN;
...@@ -2197,21 +2197,21 @@ DWORD WINAPI IWineD3DBaseSurfaceImpl_SetPriority(IWineD3DSurface *iface, DWORD P ...@@ -2197,21 +2197,21 @@ DWORD WINAPI IWineD3DBaseSurfaceImpl_SetPriority(IWineD3DSurface *iface, DWORD P
DWORD WINAPI IWineD3DBaseSurfaceImpl_GetPriority(IWineD3DSurface *iface) DECLSPEC_HIDDEN; DWORD WINAPI IWineD3DBaseSurfaceImpl_GetPriority(IWineD3DSurface *iface) DECLSPEC_HIDDEN;
WINED3DRESOURCETYPE WINAPI IWineD3DBaseSurfaceImpl_GetType(IWineD3DSurface *iface) DECLSPEC_HIDDEN; WINED3DRESOURCETYPE WINAPI IWineD3DBaseSurfaceImpl_GetType(IWineD3DSurface *iface) DECLSPEC_HIDDEN;
void WINAPI IWineD3DBaseSurfaceImpl_GetDesc(IWineD3DSurface *iface, WINED3DSURFACE_DESC *desc) DECLSPEC_HIDDEN; void WINAPI IWineD3DBaseSurfaceImpl_GetDesc(IWineD3DSurface *iface, WINED3DSURFACE_DESC *desc) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *iface, DWORD Flags) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *iface, DWORD flags) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetFlipStatus(IWineD3DSurface *iface, DWORD Flags) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetFlipStatus(IWineD3DSurface *iface, DWORD flags) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_IsLost(IWineD3DSurface *iface) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_IsLost(IWineD3DSurface *iface) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_Restore(IWineD3DSurface *iface) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_Restore(IWineD3DSurface *iface) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPalette(IWineD3DSurface *iface, IWineD3DPalette **Pal) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPalette(IWineD3DSurface *iface, IWineD3DPalette **Pal) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPalette(IWineD3DSurface *iface, IWineD3DPalette *Pal) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPalette(IWineD3DSurface *iface, IWineD3DPalette *Pal) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetColorKey(IWineD3DSurface *iface, HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetColorKey(IWineD3DSurface *iface,
DWORD Flags, const WINEDDCOLORKEY *CKey) DECLSPEC_HIDDEN; DWORD flags, const WINEDDCOLORKEY *CKey) DECLSPEC_HIDDEN;
DWORD WINAPI IWineD3DBaseSurfaceImpl_GetPitch(IWineD3DSurface *iface) DECLSPEC_HIDDEN; DWORD WINAPI IWineD3DBaseSurfaceImpl_GetPitch(IWineD3DSurface *iface) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetOverlayPosition(IWineD3DSurface *iface, LONG X, LONG Y) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetOverlayPosition(IWineD3DSurface *iface, LONG X, LONG Y) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetOverlayPosition(IWineD3DSurface *iface, LONG *X, LONG *Y) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetOverlayPosition(IWineD3DSurface *iface, LONG *X, LONG *Y) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlayZOrder(IWineD3DSurface *iface, HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlayZOrder(IWineD3DSurface *iface,
DWORD Flags, IWineD3DSurface *Ref) DECLSPEC_HIDDEN; DWORD flags, IWineD3DSurface *Ref) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlay(IWineD3DSurface *iface, const RECT *SrcRect, HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlay(IWineD3DSurface *iface, const RECT *SrcRect,
IWineD3DSurface *DstSurface, const RECT *DstRect, DWORD Flags, const WINEDDOVERLAYFX *FX) DECLSPEC_HIDDEN; IWineD3DSurface *DstSurface, const RECT *DstRect, DWORD flags, const WINEDDOVERLAYFX *FX) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetClipper(IWineD3DSurface *iface, IWineD3DClipper *clipper) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetClipper(IWineD3DSurface *iface, IWineD3DClipper *clipper) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetClipper(IWineD3DSurface *iface, IWineD3DClipper **clipper) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetClipper(IWineD3DSurface *iface, IWineD3DClipper **clipper) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetFormat(IWineD3DSurface *iface, HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetFormat(IWineD3DSurface *iface,
...@@ -2222,7 +2222,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *d ...@@ -2222,7 +2222,7 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *d
HRESULT WINAPI IWineD3DBaseSurfaceImpl_BltFast(IWineD3DSurface *iface, DWORD dstx, DWORD dsty, HRESULT WINAPI IWineD3DBaseSurfaceImpl_BltFast(IWineD3DSurface *iface, DWORD dstx, DWORD dsty,
IWineD3DSurface *Source, const RECT *rsrc, DWORD trans) DECLSPEC_HIDDEN; IWineD3DSurface *Source, const RECT *rsrc, DWORD trans) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_Map(IWineD3DSurface *iface, WINED3DLOCKED_RECT *pLockedRect, HRESULT WINAPI IWineD3DBaseSurfaceImpl_Map(IWineD3DSurface *iface, WINED3DLOCKED_RECT *pLockedRect,
const RECT *pRect, DWORD Flags) DECLSPEC_HIDDEN; const RECT *pRect, DWORD flags) DECLSPEC_HIDDEN;
const void *WINAPI IWineD3DBaseSurfaceImpl_GetData(IWineD3DSurface *iface) DECLSPEC_HIDDEN; const void *WINAPI IWineD3DBaseSurfaceImpl_GetData(IWineD3DSurface *iface) DECLSPEC_HIDDEN;
void get_drawable_size_swapchain(struct wined3d_context *context, UINT *width, UINT *height) DECLSPEC_HIDDEN; void get_drawable_size_swapchain(struct wined3d_context *context, UINT *width, UINT *height) DECLSPEC_HIDDEN;
...@@ -2634,7 +2634,7 @@ HRESULT WINAPI IWineD3DBaseSwapChainImpl_GetDevice(IWineD3DSwapChain *iface, ...@@ -2634,7 +2634,7 @@ HRESULT WINAPI IWineD3DBaseSwapChainImpl_GetDevice(IWineD3DSwapChain *iface,
HRESULT WINAPI IWineD3DBaseSwapChainImpl_GetPresentParameters(IWineD3DSwapChain *iface, HRESULT WINAPI IWineD3DBaseSwapChainImpl_GetPresentParameters(IWineD3DSwapChain *iface,
WINED3DPRESENT_PARAMETERS *pPresentationParameters) DECLSPEC_HIDDEN; WINED3DPRESENT_PARAMETERS *pPresentationParameters) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSwapChainImpl_SetGammaRamp(IWineD3DSwapChain *iface, HRESULT WINAPI IWineD3DBaseSwapChainImpl_SetGammaRamp(IWineD3DSwapChain *iface,
DWORD Flags, const WINED3DGAMMARAMP *pRamp) DECLSPEC_HIDDEN; DWORD flags, const WINED3DGAMMARAMP *pRamp) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSwapChainImpl_GetGammaRamp(IWineD3DSwapChain *iface, HRESULT WINAPI IWineD3DBaseSwapChainImpl_GetGammaRamp(IWineD3DSwapChain *iface,
WINED3DGAMMARAMP *pRamp) DECLSPEC_HIDDEN; WINED3DGAMMARAMP *pRamp) DECLSPEC_HIDDEN;
......
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