mirror of
git://source.winehq.org/git/wine.git
synced 2024-11-01 10:44:47 +00:00
ddraw: Use nameless unions/structs.
This commit is contained in:
parent
2aab642849
commit
5eab460c8b
8 changed files with 350 additions and 353 deletions
|
@ -1156,7 +1156,7 @@ static HRESULT WINAPI ddraw7_SetDisplayMode(IDirectDraw7 *iface, DWORD width, DW
|
||||||
surface_desc->dwWidth, surface_desc->dwHeight, mode.format_id, WINED3D_MULTISAMPLE_NONE, 0)))
|
surface_desc->dwWidth, surface_desc->dwHeight, mode.format_id, WINED3D_MULTISAMPLE_NONE, 0)))
|
||||||
ERR("Failed to resize buffers, hr %#lx.\n", hr);
|
ERR("Failed to resize buffers, hr %#lx.\n", hr);
|
||||||
else
|
else
|
||||||
ddrawformat_from_wined3dformat(&ddraw->primary->surface_desc.u4.ddpfPixelFormat, mode.format_id);
|
ddrawformat_from_wined3dformat(&ddraw->primary->surface_desc.ddpfPixelFormat, mode.format_id);
|
||||||
}
|
}
|
||||||
ddraw->flags |= DDRAW_RESTORE_MODE;
|
ddraw->flags |= DDRAW_RESTORE_MODE;
|
||||||
|
|
||||||
|
@ -1675,10 +1675,10 @@ static HRESULT WINAPI ddraw7_GetDisplayMode(IDirectDraw7 *iface, DDSURFACEDESC2
|
||||||
DDSD->dwFlags = DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT | DDSD_PITCH | DDSD_REFRESHRATE;
|
DDSD->dwFlags = DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT | DDSD_PITCH | DDSD_REFRESHRATE;
|
||||||
DDSD->dwWidth = mode.width;
|
DDSD->dwWidth = mode.width;
|
||||||
DDSD->dwHeight = mode.height;
|
DDSD->dwHeight = mode.height;
|
||||||
DDSD->u2.dwRefreshRate = mode.refresh_rate;
|
DDSD->dwRefreshRate = mode.refresh_rate;
|
||||||
DDSD->u4.ddpfPixelFormat.dwSize = sizeof(DDSD->u4.ddpfPixelFormat);
|
DDSD->ddpfPixelFormat.dwSize = sizeof(DDSD->ddpfPixelFormat);
|
||||||
ddrawformat_from_wined3dformat(&DDSD->u4.ddpfPixelFormat, mode.format_id);
|
ddrawformat_from_wined3dformat(&DDSD->ddpfPixelFormat, mode.format_id);
|
||||||
DDSD->u1.lPitch = mode.width * DDSD->u4.ddpfPixelFormat.u1.dwRGBBitCount / 8;
|
DDSD->lPitch = mode.width * DDSD->ddpfPixelFormat.dwRGBBitCount / 8;
|
||||||
|
|
||||||
if(TRACE_ON(ddraw))
|
if(TRACE_ON(ddraw))
|
||||||
{
|
{
|
||||||
|
@ -2463,10 +2463,10 @@ static HRESULT WINAPI ddraw7_EnumDisplayModes(IDirectDraw7 *iface, DWORD Flags,
|
||||||
continue;
|
continue;
|
||||||
if (DDSD->dwFlags & DDSD_HEIGHT && mode.height != DDSD->dwHeight)
|
if (DDSD->dwFlags & DDSD_HEIGHT && mode.height != DDSD->dwHeight)
|
||||||
continue;
|
continue;
|
||||||
if (DDSD->dwFlags & DDSD_REFRESHRATE && mode.refresh_rate != DDSD->u2.dwRefreshRate)
|
if (DDSD->dwFlags & DDSD_REFRESHRATE && mode.refresh_rate != DDSD->dwRefreshRate)
|
||||||
continue;
|
continue;
|
||||||
if (DDSD->dwFlags & DDSD_PIXELFORMAT
|
if (DDSD->dwFlags & DDSD_PIXELFORMAT
|
||||||
&& pixelformat.u1.dwRGBBitCount != DDSD->u4.ddpfPixelFormat.u1.dwRGBBitCount)
|
&& pixelformat.dwRGBBitCount != DDSD->ddpfPixelFormat.dwRGBBitCount)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2485,23 +2485,23 @@ static HRESULT WINAPI ddraw7_EnumDisplayModes(IDirectDraw7 *iface, DWORD Flags,
|
||||||
|
|
||||||
memset(&callback_sd, 0, sizeof(callback_sd));
|
memset(&callback_sd, 0, sizeof(callback_sd));
|
||||||
callback_sd.dwSize = sizeof(callback_sd);
|
callback_sd.dwSize = sizeof(callback_sd);
|
||||||
callback_sd.u4.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
|
callback_sd.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
|
||||||
|
|
||||||
callback_sd.dwFlags = DDSD_HEIGHT|DDSD_WIDTH|DDSD_PIXELFORMAT|DDSD_PITCH|DDSD_REFRESHRATE;
|
callback_sd.dwFlags = DDSD_HEIGHT|DDSD_WIDTH|DDSD_PIXELFORMAT|DDSD_PITCH|DDSD_REFRESHRATE;
|
||||||
if (Flags & DDEDM_REFRESHRATES)
|
if (Flags & DDEDM_REFRESHRATES)
|
||||||
callback_sd.u2.dwRefreshRate = mode.refresh_rate;
|
callback_sd.dwRefreshRate = mode.refresh_rate;
|
||||||
|
|
||||||
callback_sd.dwWidth = mode.width;
|
callback_sd.dwWidth = mode.width;
|
||||||
callback_sd.dwHeight = mode.height;
|
callback_sd.dwHeight = mode.height;
|
||||||
|
|
||||||
callback_sd.u4.ddpfPixelFormat=pixelformat;
|
callback_sd.ddpfPixelFormat=pixelformat;
|
||||||
|
|
||||||
/* Calc pitch and DWORD align like MSDN says */
|
/* Calc pitch and DWORD align like MSDN says */
|
||||||
callback_sd.u1.lPitch = (callback_sd.u4.ddpfPixelFormat.u1.dwRGBBitCount / 8) * mode.width;
|
callback_sd.lPitch = (callback_sd.ddpfPixelFormat.dwRGBBitCount / 8) * mode.width;
|
||||||
callback_sd.u1.lPitch = (callback_sd.u1.lPitch + 3) & ~3;
|
callback_sd.lPitch = (callback_sd.lPitch + 3) & ~3;
|
||||||
|
|
||||||
TRACE("Enumerating %lux%lux%lu @%lu\n", callback_sd.dwWidth, callback_sd.dwHeight, callback_sd.u4.ddpfPixelFormat.u1.dwRGBBitCount,
|
TRACE("Enumerating %lux%lux%lu @%lu\n", callback_sd.dwWidth, callback_sd.dwHeight, callback_sd.ddpfPixelFormat.dwRGBBitCount,
|
||||||
callback_sd.u2.dwRefreshRate);
|
callback_sd.dwRefreshRate);
|
||||||
|
|
||||||
if(cb(&callback_sd, Context) == DDENUMRET_CANCEL)
|
if(cb(&callback_sd, Context) == DDENUMRET_CANCEL)
|
||||||
{
|
{
|
||||||
|
@ -3096,26 +3096,26 @@ Main_DirectDraw_DDPIXELFORMAT_Match(const DDPIXELFORMAT *requested,
|
||||||
|
|
||||||
if (requested->dwFlags & (DDPF_RGB|DDPF_YUV|DDPF_ZBUFFER|DDPF_ALPHA
|
if (requested->dwFlags & (DDPF_RGB|DDPF_YUV|DDPF_ZBUFFER|DDPF_ALPHA
|
||||||
|DDPF_LUMINANCE|DDPF_BUMPDUDV))
|
|DDPF_LUMINANCE|DDPF_BUMPDUDV))
|
||||||
if (requested->u1.dwRGBBitCount != provided->u1.dwRGBBitCount)
|
if (requested->dwRGBBitCount != provided->dwRGBBitCount)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (requested->dwFlags & (DDPF_RGB|DDPF_YUV|DDPF_STENCILBUFFER
|
if (requested->dwFlags & (DDPF_RGB|DDPF_YUV|DDPF_STENCILBUFFER
|
||||||
|DDPF_LUMINANCE|DDPF_BUMPDUDV))
|
|DDPF_LUMINANCE|DDPF_BUMPDUDV))
|
||||||
if (requested->u2.dwRBitMask != provided->u2.dwRBitMask)
|
if (requested->dwRBitMask != provided->dwRBitMask)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (requested->dwFlags & (DDPF_RGB|DDPF_YUV|DDPF_ZBUFFER|DDPF_BUMPDUDV))
|
if (requested->dwFlags & (DDPF_RGB|DDPF_YUV|DDPF_ZBUFFER|DDPF_BUMPDUDV))
|
||||||
if (requested->u3.dwGBitMask != provided->u3.dwGBitMask)
|
if (requested->dwGBitMask != provided->dwGBitMask)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* I could be wrong about the bumpmapping. MSDN docs are vague. */
|
/* I could be wrong about the bumpmapping. MSDN docs are vague. */
|
||||||
if (requested->dwFlags & (DDPF_RGB|DDPF_YUV|DDPF_STENCILBUFFER
|
if (requested->dwFlags & (DDPF_RGB|DDPF_YUV|DDPF_STENCILBUFFER
|
||||||
|DDPF_BUMPDUDV))
|
|DDPF_BUMPDUDV))
|
||||||
if (requested->u4.dwBBitMask != provided->u4.dwBBitMask)
|
if (requested->dwBBitMask != provided->dwBBitMask)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (requested->dwFlags & (DDPF_ALPHAPIXELS|DDPF_ZPIXELS))
|
if (requested->dwFlags & (DDPF_ALPHAPIXELS|DDPF_ZPIXELS))
|
||||||
if (requested->u5.dwRGBAlphaBitMask != provided->u5.dwRGBAlphaBitMask)
|
if (requested->dwRGBAlphaBitMask != provided->dwRGBAlphaBitMask)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -3137,19 +3137,19 @@ static BOOL ddraw_match_surface_desc(const DDSURFACEDESC2 *requested, const DDSU
|
||||||
static const struct compare_info compare[] =
|
static const struct compare_info compare[] =
|
||||||
{
|
{
|
||||||
CMP(ALPHABITDEPTH, dwAlphaBitDepth),
|
CMP(ALPHABITDEPTH, dwAlphaBitDepth),
|
||||||
CMP(BACKBUFFERCOUNT, u5.dwBackBufferCount),
|
CMP(BACKBUFFERCOUNT, dwBackBufferCount),
|
||||||
CMP(CAPS, ddsCaps),
|
CMP(CAPS, ddsCaps),
|
||||||
CMP(CKDESTBLT, ddckCKDestBlt),
|
CMP(CKDESTBLT, ddckCKDestBlt),
|
||||||
CMP(CKDESTOVERLAY, u3 /* ddckCKDestOverlay */),
|
CMP(CKDESTOVERLAY, ddckCKDestOverlay),
|
||||||
CMP(CKSRCBLT, ddckCKSrcBlt),
|
CMP(CKSRCBLT, ddckCKSrcBlt),
|
||||||
CMP(CKSRCOVERLAY, ddckCKSrcOverlay),
|
CMP(CKSRCOVERLAY, ddckCKSrcOverlay),
|
||||||
CMP(HEIGHT, dwHeight),
|
CMP(HEIGHT, dwHeight),
|
||||||
CMP(LINEARSIZE, u1 /* dwLinearSize */),
|
CMP(LINEARSIZE, dwLinearSize),
|
||||||
CMP(LPSURFACE, lpSurface),
|
CMP(LPSURFACE, lpSurface),
|
||||||
CMP(MIPMAPCOUNT, u2 /* dwMipMapCount */),
|
CMP(MIPMAPCOUNT, dwMipMapCount),
|
||||||
CMP(PITCH, u1 /* lPitch */),
|
CMP(PITCH, lPitch),
|
||||||
/* PIXELFORMAT: manual */
|
/* PIXELFORMAT: manual */
|
||||||
CMP(REFRESHRATE, u2 /* dwRefreshRate */),
|
CMP(REFRESHRATE, dwRefreshRate),
|
||||||
CMP(TEXTURESTAGE, dwTextureStage),
|
CMP(TEXTURESTAGE, dwTextureStage),
|
||||||
CMP(WIDTH, dwWidth),
|
CMP(WIDTH, dwWidth),
|
||||||
/* ZBUFFERBITDEPTH: "obsolete" */
|
/* ZBUFFERBITDEPTH: "obsolete" */
|
||||||
|
@ -3173,8 +3173,8 @@ static BOOL ddraw_match_surface_desc(const DDSURFACEDESC2 *requested, const DDSU
|
||||||
|
|
||||||
if (requested->dwFlags & DDSD_PIXELFORMAT)
|
if (requested->dwFlags & DDSD_PIXELFORMAT)
|
||||||
{
|
{
|
||||||
if (!Main_DirectDraw_DDPIXELFORMAT_Match(&requested->u4.ddpfPixelFormat,
|
if (!Main_DirectDraw_DDPIXELFORMAT_Match(&requested->ddpfPixelFormat,
|
||||||
&provided->u4.ddpfPixelFormat))
|
&provided->ddpfPixelFormat))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3242,8 +3242,8 @@ static HRESULT CALLBACK enum_surface_mode_callback(DDSURFACEDESC2 *surface_desc,
|
||||||
desc.dwFlags |= DDSD_WIDTH | DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT;
|
desc.dwFlags |= DDSD_WIDTH | DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT;
|
||||||
desc.dwWidth = surface_desc->dwWidth;
|
desc.dwWidth = surface_desc->dwWidth;
|
||||||
desc.dwHeight = surface_desc->dwHeight;
|
desc.dwHeight = surface_desc->dwHeight;
|
||||||
desc.u1.lPitch = surface_desc->u1.lPitch;
|
desc.lPitch = surface_desc->lPitch;
|
||||||
desc.u4.ddpfPixelFormat = surface_desc->u4.ddpfPixelFormat;
|
desc.ddpfPixelFormat = surface_desc->ddpfPixelFormat;
|
||||||
|
|
||||||
if (SUCCEEDED(ddraw7_CreateSurface(params->ddraw, &desc, &surface, NULL)))
|
if (SUCCEEDED(ddraw7_CreateSurface(params->ddraw, &desc, &surface, NULL)))
|
||||||
{
|
{
|
||||||
|
@ -3308,7 +3308,7 @@ static HRESULT WINAPI ddraw7_EnumSurfaces(IDirectDraw7 *iface, DWORD flags,
|
||||||
{
|
{
|
||||||
.dwSize = sizeof(desc),
|
.dwSize = sizeof(desc),
|
||||||
.dwFlags = DDSD_PIXELFORMAT,
|
.dwFlags = DDSD_PIXELFORMAT,
|
||||||
.u4.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
|
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
|
||||||
};
|
};
|
||||||
struct enum_surface_mode_params params =
|
struct enum_surface_mode_params params =
|
||||||
{
|
{
|
||||||
|
@ -3326,7 +3326,7 @@ static HRESULT WINAPI ddraw7_EnumSurfaces(IDirectDraw7 *iface, DWORD flags,
|
||||||
return hr_ddraw_from_wined3d(hr);
|
return hr_ddraw_from_wined3d(hr);
|
||||||
}
|
}
|
||||||
|
|
||||||
ddrawformat_from_wined3dformat(&desc.u4.ddpfPixelFormat, mode.format_id);
|
ddrawformat_from_wined3dformat(&desc.ddpfPixelFormat, mode.format_id);
|
||||||
hr = ddraw7_EnumDisplayModes(iface, 0, &desc, ¶ms, enum_surface_mode_callback);
|
hr = ddraw7_EnumDisplayModes(iface, 0, &desc, ¶ms, enum_surface_mode_callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,8 +24,6 @@
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#define COBJMACROS
|
#define COBJMACROS
|
||||||
#define NONAMELESSSTRUCT
|
|
||||||
#define NONAMELESSUNION
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
#include "wine/heap.h"
|
#include "wine/heap.h"
|
||||||
|
|
||||||
|
|
|
@ -1840,7 +1840,7 @@ static HRESULT WINAPI d3d_device2_GetCurrentViewport(IDirect3DDevice2 *iface, ID
|
||||||
|
|
||||||
static BOOL validate_surface_palette(struct ddraw_surface *surface)
|
static BOOL validate_surface_palette(struct ddraw_surface *surface)
|
||||||
{
|
{
|
||||||
return !format_is_paletteindexed(&surface->surface_desc.u4.ddpfPixelFormat)
|
return !format_is_paletteindexed(&surface->surface_desc.ddpfPixelFormat)
|
||||||
|| surface->palette;
|
|| surface->palette;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2712,7 +2712,7 @@ static void fixup_texture_alpha_op(struct d3d_device *device)
|
||||||
wined3d_resource_get_desc(wined3d_texture_get_resource(tex), &desc);
|
wined3d_resource_get_desc(wined3d_texture_get_resource(tex), &desc);
|
||||||
ddfmt.dwSize = sizeof(ddfmt);
|
ddfmt.dwSize = sizeof(ddfmt);
|
||||||
ddrawformat_from_wined3dformat(&ddfmt, desc.format);
|
ddrawformat_from_wined3dformat(&ddfmt, desc.format);
|
||||||
if (!ddfmt.u5.dwRGBAlphaBitMask)
|
if (!ddfmt.dwRGBAlphaBitMask)
|
||||||
tex_alpha = FALSE;
|
tex_alpha = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4375,7 +4375,7 @@ static DWORD in_plane(UINT idx, struct wined3d_vec4 p, D3DVECTOR center, D3DVALU
|
||||||
float distance, norm;
|
float distance, norm;
|
||||||
|
|
||||||
norm = sqrtf(p.x * p.x + p.y * p.y + p.z * p.z);
|
norm = sqrtf(p.x * p.x + p.y * p.y + p.z * p.z);
|
||||||
distance = (p.x * center.u1.x + p.y * center.u2.y + p.z * center.u3.z + p.w) / norm;
|
distance = (p.x * center.x + p.y * center.y + p.z * center.z + p.w) / norm;
|
||||||
|
|
||||||
if (equality)
|
if (equality)
|
||||||
{
|
{
|
||||||
|
|
|
@ -147,7 +147,7 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct d3d
|
||||||
for (i = 0; i < count; ++i)
|
for (i = 0; i < count; ++i)
|
||||||
{
|
{
|
||||||
D3DTRIANGLE *ci = (D3DTRIANGLE *)instr;
|
D3DTRIANGLE *ci = (D3DTRIANGLE *)instr;
|
||||||
TRACE(" v1: %d v2: %d v3: %d\n",ci->u1.v1, ci->u2.v2, ci->u3.v3);
|
TRACE(" v1: %d v2: %d v3: %d\n",ci->v1, ci->v2, ci->v3);
|
||||||
TRACE(" Flags : ");
|
TRACE(" Flags : ");
|
||||||
if (TRACE_ON(ddraw))
|
if (TRACE_ON(ddraw))
|
||||||
{
|
{
|
||||||
|
@ -173,11 +173,11 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct d3d
|
||||||
switch (primitive_size)
|
switch (primitive_size)
|
||||||
{
|
{
|
||||||
case 3:
|
case 3:
|
||||||
indices[(i * primitive_size) + 2] = ci->u3.v3;
|
indices[(i * primitive_size) + 2] = ci->v3;
|
||||||
/* Drop through. */
|
/* Drop through. */
|
||||||
case 2:
|
case 2:
|
||||||
indices[(i * primitive_size) + 1] = ci->u2.v2;
|
indices[(i * primitive_size) + 1] = ci->v2;
|
||||||
indices[(i * primitive_size) ] = ci->u1.v1;
|
indices[(i * primitive_size) ] = ci->v1;
|
||||||
}
|
}
|
||||||
instr += size;
|
instr += size;
|
||||||
}
|
}
|
||||||
|
@ -235,21 +235,21 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct d3d
|
||||||
D3DSTATE *ci = (D3DSTATE *)instr;
|
D3DSTATE *ci = (D3DSTATE *)instr;
|
||||||
D3DMATRIX *m;
|
D3DMATRIX *m;
|
||||||
|
|
||||||
m = ddraw_get_object(&device->handle_table, ci->u2.dwArg[0] - 1, DDRAW_HANDLE_MATRIX);
|
m = ddraw_get_object(&device->handle_table, ci->dwArg[0] - 1, DDRAW_HANDLE_MATRIX);
|
||||||
if (!m)
|
if (!m)
|
||||||
{
|
{
|
||||||
ERR("Invalid matrix handle %#lx.\n", ci->u2.dwArg[0]);
|
ERR("Invalid matrix handle %#lx.\n", ci->dwArg[0]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (ci->u1.dtstTransformStateType == D3DTRANSFORMSTATE_WORLD)
|
if (ci->dtstTransformStateType == D3DTRANSFORMSTATE_WORLD)
|
||||||
device->world = ci->u2.dwArg[0];
|
device->world = ci->dwArg[0];
|
||||||
if (ci->u1.dtstTransformStateType == D3DTRANSFORMSTATE_VIEW)
|
if (ci->dtstTransformStateType == D3DTRANSFORMSTATE_VIEW)
|
||||||
device->view = ci->u2.dwArg[0];
|
device->view = ci->dwArg[0];
|
||||||
if (ci->u1.dtstTransformStateType == D3DTRANSFORMSTATE_PROJECTION)
|
if (ci->dtstTransformStateType == D3DTRANSFORMSTATE_PROJECTION)
|
||||||
device->proj = ci->u2.dwArg[0];
|
device->proj = ci->dwArg[0];
|
||||||
IDirect3DDevice3_SetTransform(&device->IDirect3DDevice3_iface,
|
IDirect3DDevice3_SetTransform(&device->IDirect3DDevice3_iface,
|
||||||
ci->u1.dtstTransformStateType, m);
|
ci->dtstTransformStateType, m);
|
||||||
}
|
}
|
||||||
|
|
||||||
instr += size;
|
instr += size;
|
||||||
|
@ -263,7 +263,7 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct d3d
|
||||||
D3DSTATE *ci = (D3DSTATE *)instr;
|
D3DSTATE *ci = (D3DSTATE *)instr;
|
||||||
|
|
||||||
if (FAILED(IDirect3DDevice3_SetLightState(&device->IDirect3DDevice3_iface,
|
if (FAILED(IDirect3DDevice3_SetLightState(&device->IDirect3DDevice3_iface,
|
||||||
ci->u1.dlstLightStateType, ci->u2.dwArg[0])))
|
ci->dlstLightStateType, ci->dwArg[0])))
|
||||||
WARN("Failed to set light state.\n");
|
WARN("Failed to set light state.\n");
|
||||||
|
|
||||||
instr += size;
|
instr += size;
|
||||||
|
@ -277,7 +277,7 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct d3d
|
||||||
D3DSTATE *ci = (D3DSTATE *)instr;
|
D3DSTATE *ci = (D3DSTATE *)instr;
|
||||||
|
|
||||||
if (FAILED(IDirect3DDevice3_SetRenderState(&device->IDirect3DDevice3_iface,
|
if (FAILED(IDirect3DDevice3_SetRenderState(&device->IDirect3DDevice3_iface,
|
||||||
ci->u1.drstRenderStateType, ci->u2.dwArg[0])))
|
ci->drstRenderStateType, ci->dwArg[0])))
|
||||||
WARN("Failed to set render state.\n");
|
WARN("Failed to set render state.\n");
|
||||||
|
|
||||||
instr += size;
|
instr += size;
|
||||||
|
|
|
@ -447,11 +447,11 @@ void material_activate(struct d3d_material *material)
|
||||||
|
|
||||||
TRACE("Activating material %p.\n", material);
|
TRACE("Activating material %p.\n", material);
|
||||||
|
|
||||||
d3d7mat.u.diffuse = material->mat.u.diffuse;
|
d3d7mat.diffuse = material->mat.diffuse;
|
||||||
d3d7mat.u1.ambient = material->mat.u1.ambient;
|
d3d7mat.ambient = material->mat.ambient;
|
||||||
d3d7mat.u2.specular = material->mat.u2.specular;
|
d3d7mat.specular = material->mat.specular;
|
||||||
d3d7mat.u3.emissive = material->mat.u3.emissive;
|
d3d7mat.emissive = material->mat.emissive;
|
||||||
d3d7mat.u4.power = material->mat.u4.power;
|
d3d7mat.power = material->mat.power;
|
||||||
|
|
||||||
IDirect3DDevice7_SetMaterial(&material->active_device->IDirect3DDevice7_iface, &d3d7mat);
|
IDirect3DDevice7_SetMaterial(&material->active_device->IDirect3DDevice7_iface, &d3d7mat);
|
||||||
}
|
}
|
||||||
|
|
|
@ -534,7 +534,7 @@ static HRESULT ddraw_surface_set_palette(struct ddraw_surface *surface, IDirectD
|
||||||
return DDERR_INVALIDSURFACETYPE;
|
return DDERR_INVALIDSURFACETYPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!format_is_paletteindexed(&surface->surface_desc.u4.ddpfPixelFormat))
|
if (!format_is_paletteindexed(&surface->surface_desc.ddpfPixelFormat))
|
||||||
return DDERR_INVALIDPIXELFORMAT;
|
return DDERR_INVALIDPIXELFORMAT;
|
||||||
|
|
||||||
wined3d_mutex_lock();
|
wined3d_mutex_lock();
|
||||||
|
@ -842,7 +842,7 @@ static HRESULT WINAPI ddraw_surface7_GetAttachedSurface(IDirectDrawSurface7 *ifa
|
||||||
our_caps.dwCaps = caps->dwCaps;
|
our_caps.dwCaps = caps->dwCaps;
|
||||||
our_caps.dwCaps2 = 0;
|
our_caps.dwCaps2 = 0;
|
||||||
our_caps.dwCaps3 = 0;
|
our_caps.dwCaps3 = 0;
|
||||||
our_caps.u1.dwCaps4 = 0;
|
our_caps.dwCaps4 = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -850,7 +850,7 @@ static HRESULT WINAPI ddraw_surface7_GetAttachedSurface(IDirectDrawSurface7 *ifa
|
||||||
}
|
}
|
||||||
|
|
||||||
TRACE("head_surface %p, looking for caps %#lx, %#lx, %#lx, %#lx.\n", head_surface, our_caps.dwCaps,
|
TRACE("head_surface %p, looking for caps %#lx, %#lx, %#lx, %#lx.\n", head_surface, our_caps.dwCaps,
|
||||||
our_caps.dwCaps2, our_caps.dwCaps3, our_caps.u1.dwCaps4); /* FIXME: Better debugging */
|
our_caps.dwCaps2, our_caps.dwCaps3, our_caps.dwCaps4); /* FIXME: Better debugging */
|
||||||
|
|
||||||
for(i = 0; i < MAX_COMPLEX_ATTACHED; i++)
|
for(i = 0; i < MAX_COMPLEX_ATTACHED; i++)
|
||||||
{
|
{
|
||||||
|
@ -861,7 +861,7 @@ static HRESULT WINAPI ddraw_surface7_GetAttachedSurface(IDirectDrawSurface7 *ifa
|
||||||
surf->surface_desc.ddsCaps.dwCaps,
|
surf->surface_desc.ddsCaps.dwCaps,
|
||||||
surf->surface_desc.ddsCaps.dwCaps2,
|
surf->surface_desc.ddsCaps.dwCaps2,
|
||||||
surf->surface_desc.ddsCaps.dwCaps3,
|
surf->surface_desc.ddsCaps.dwCaps3,
|
||||||
surf->surface_desc.ddsCaps.u1.dwCaps4);
|
surf->surface_desc.ddsCaps.dwCaps4);
|
||||||
|
|
||||||
if (((surf->surface_desc.ddsCaps.dwCaps & our_caps.dwCaps) == our_caps.dwCaps) &&
|
if (((surf->surface_desc.ddsCaps.dwCaps & our_caps.dwCaps) == our_caps.dwCaps) &&
|
||||||
((surf->surface_desc.ddsCaps.dwCaps2 & our_caps.dwCaps2) == our_caps.dwCaps2)) {
|
((surf->surface_desc.ddsCaps.dwCaps2 & our_caps.dwCaps2) == our_caps.dwCaps2)) {
|
||||||
|
@ -890,7 +890,7 @@ static HRESULT WINAPI ddraw_surface7_GetAttachedSurface(IDirectDrawSurface7 *ifa
|
||||||
surf->surface_desc.ddsCaps.dwCaps,
|
surf->surface_desc.ddsCaps.dwCaps,
|
||||||
surf->surface_desc.ddsCaps.dwCaps2,
|
surf->surface_desc.ddsCaps.dwCaps2,
|
||||||
surf->surface_desc.ddsCaps.dwCaps3,
|
surf->surface_desc.ddsCaps.dwCaps3,
|
||||||
surf->surface_desc.ddsCaps.u1.dwCaps4);
|
surf->surface_desc.ddsCaps.dwCaps4);
|
||||||
|
|
||||||
if (((surf->surface_desc.ddsCaps.dwCaps & our_caps.dwCaps) == our_caps.dwCaps) &&
|
if (((surf->surface_desc.ddsCaps.dwCaps & our_caps.dwCaps) == our_caps.dwCaps) &&
|
||||||
((surf->surface_desc.ddsCaps.dwCaps2 & our_caps.dwCaps2) == our_caps.dwCaps2)) {
|
((surf->surface_desc.ddsCaps.dwCaps2 & our_caps.dwCaps2) == our_caps.dwCaps2)) {
|
||||||
|
@ -950,7 +950,7 @@ static HRESULT WINAPI ddraw_surface3_GetAttachedSurface(IDirectDrawSurface3 *ifa
|
||||||
caps2.dwCaps = caps->dwCaps;
|
caps2.dwCaps = caps->dwCaps;
|
||||||
caps2.dwCaps2 = 0;
|
caps2.dwCaps2 = 0;
|
||||||
caps2.dwCaps3 = 0;
|
caps2.dwCaps3 = 0;
|
||||||
caps2.u1.dwCaps4 = 0;
|
caps2.dwCaps4 = 0;
|
||||||
|
|
||||||
hr = ddraw_surface7_GetAttachedSurface(&surface->IDirectDrawSurface7_iface,
|
hr = ddraw_surface7_GetAttachedSurface(&surface->IDirectDrawSurface7_iface,
|
||||||
&caps2, &attachment7);
|
&caps2, &attachment7);
|
||||||
|
@ -981,7 +981,7 @@ static HRESULT WINAPI ddraw_surface2_GetAttachedSurface(IDirectDrawSurface2 *ifa
|
||||||
caps2.dwCaps = caps->dwCaps;
|
caps2.dwCaps = caps->dwCaps;
|
||||||
caps2.dwCaps2 = 0;
|
caps2.dwCaps2 = 0;
|
||||||
caps2.dwCaps3 = 0;
|
caps2.dwCaps3 = 0;
|
||||||
caps2.u1.dwCaps4 = 0;
|
caps2.dwCaps4 = 0;
|
||||||
|
|
||||||
hr = ddraw_surface7_GetAttachedSurface(&surface->IDirectDrawSurface7_iface,
|
hr = ddraw_surface7_GetAttachedSurface(&surface->IDirectDrawSurface7_iface,
|
||||||
&caps2, &attachment7);
|
&caps2, &attachment7);
|
||||||
|
@ -1012,7 +1012,7 @@ static HRESULT WINAPI ddraw_surface1_GetAttachedSurface(IDirectDrawSurface *ifac
|
||||||
caps2.dwCaps = caps->dwCaps;
|
caps2.dwCaps = caps->dwCaps;
|
||||||
caps2.dwCaps2 = 0;
|
caps2.dwCaps2 = 0;
|
||||||
caps2.dwCaps3 = 0;
|
caps2.dwCaps3 = 0;
|
||||||
caps2.u1.dwCaps4 = 0;
|
caps2.dwCaps4 = 0;
|
||||||
|
|
||||||
hr = ddraw_surface7_GetAttachedSurface(&surface->IDirectDrawSurface7_iface,
|
hr = ddraw_surface7_GetAttachedSurface(&surface->IDirectDrawSurface7_iface,
|
||||||
&caps2, &attachment7);
|
&caps2, &attachment7);
|
||||||
|
@ -1546,7 +1546,7 @@ static HRESULT ddraw_surface_blt(struct ddraw_surface *dst_surface, const RECT *
|
||||||
if (!(flags & DDBLT_ASYNC))
|
if (!(flags & DDBLT_ASYNC))
|
||||||
wined3d_flags |= WINED3DCLEAR_SYNCHRONOUS;
|
wined3d_flags |= WINED3DCLEAR_SYNCHRONOUS;
|
||||||
|
|
||||||
if (!wined3d_colour_from_ddraw_colour(&dst_surface->surface_desc.u4.ddpfPixelFormat,
|
if (!wined3d_colour_from_ddraw_colour(&dst_surface->surface_desc.ddpfPixelFormat,
|
||||||
dst_surface->palette, fill_colour, &colour))
|
dst_surface->palette, fill_colour, &colour))
|
||||||
return DDERR_INVALIDPARAMS;
|
return DDERR_INVALIDPARAMS;
|
||||||
|
|
||||||
|
@ -1563,7 +1563,7 @@ static HRESULT ddraw_surface_blt(struct ddraw_surface *dst_surface, const RECT *
|
||||||
if (!(flags & DDBLT_ASYNC))
|
if (!(flags & DDBLT_ASYNC))
|
||||||
wined3d_flags |= WINED3DCLEAR_SYNCHRONOUS;
|
wined3d_flags |= WINED3DCLEAR_SYNCHRONOUS;
|
||||||
|
|
||||||
if (!wined3d_colour_from_ddraw_colour(&dst_surface->surface_desc.u4.ddpfPixelFormat,
|
if (!wined3d_colour_from_ddraw_colour(&dst_surface->surface_desc.ddpfPixelFormat,
|
||||||
dst_surface->palette, fill_colour, &colour))
|
dst_surface->palette, fill_colour, &colour))
|
||||||
return DDERR_INVALIDPARAMS;
|
return DDERR_INVALIDPARAMS;
|
||||||
|
|
||||||
|
@ -1755,7 +1755,7 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface1_Blt(IDirectDrawSurface *i
|
||||||
{
|
{
|
||||||
FIXME("DDBLT_DDROPS not implemented.\n");
|
FIXME("DDBLT_DDROPS not implemented.\n");
|
||||||
if (fx)
|
if (fx)
|
||||||
FIXME(" rop %#lx, pattern %p.\n", fx->dwDDROP, fx->u5.lpDDSPattern);
|
FIXME(" rop %#lx, pattern %p.\n", fx->dwDDROP, fx->lpDDSPattern);
|
||||||
return DDERR_NORASTEROPHW;
|
return DDERR_NORASTEROPHW;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1828,9 +1828,9 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface1_Blt(IDirectDrawSurface *i
|
||||||
rop_fx = *fx;
|
rop_fx = *fx;
|
||||||
|
|
||||||
if (fx->dwROP == WHITENESS)
|
if (fx->dwROP == WHITENESS)
|
||||||
rop_fx.u5.dwFillColor = 0xffffffff;
|
rop_fx.dwFillColor = 0xffffffff;
|
||||||
else
|
else
|
||||||
rop_fx.u5.dwFillColor = 0;
|
rop_fx.dwFillColor = 0;
|
||||||
|
|
||||||
if (dst_impl->surface_desc.ddsCaps.dwCaps & DDSCAPS_ZBUFFER)
|
if (dst_impl->surface_desc.ddsCaps.dwCaps & DDSCAPS_ZBUFFER)
|
||||||
flags |= DDBLT_DEPTHFILL;
|
flags |= DDBLT_DEPTHFILL;
|
||||||
|
@ -1870,7 +1870,7 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface1_Blt(IDirectDrawSurface *i
|
||||||
if (fx)
|
if (fx)
|
||||||
{
|
{
|
||||||
wined3d_fx.fx = fx->dwDDFX;
|
wined3d_fx.fx = fx->dwDDFX;
|
||||||
fill_colour = fx->u5.dwFillColor;
|
fill_colour = fx->dwFillColor;
|
||||||
wined3d_fx.dst_color_key.color_space_low_value = fx->ddckDestColorkey.dwColorSpaceLowValue;
|
wined3d_fx.dst_color_key.color_space_low_value = fx->ddckDestColorkey.dwColorSpaceLowValue;
|
||||||
wined3d_fx.dst_color_key.color_space_high_value = fx->ddckDestColorkey.dwColorSpaceHighValue;
|
wined3d_fx.dst_color_key.color_space_high_value = fx->ddckDestColorkey.dwColorSpaceHighValue;
|
||||||
wined3d_fx.src_color_key.color_space_low_value = fx->ddckSrcColorkey.dwColorSpaceLowValue;
|
wined3d_fx.src_color_key.color_space_low_value = fx->ddckSrcColorkey.dwColorSpaceLowValue;
|
||||||
|
@ -2364,7 +2364,7 @@ static HRESULT WINAPI ddraw_surface7_GetDC(IDirectDrawSurface7 *iface, HDC *dc)
|
||||||
{
|
{
|
||||||
surface->dc = *dc;
|
surface->dc = *dc;
|
||||||
|
|
||||||
if (format_is_paletteindexed(&surface->surface_desc.u4.ddpfPixelFormat))
|
if (format_is_paletteindexed(&surface->surface_desc.ddpfPixelFormat))
|
||||||
{
|
{
|
||||||
const struct ddraw_palette *palette;
|
const struct ddraw_palette *palette;
|
||||||
|
|
||||||
|
@ -3296,7 +3296,7 @@ static HRESULT WINAPI ddraw_surface7_GetColorKey(IDirectDrawSurface7 *iface, DWO
|
||||||
wined3d_mutex_unlock();
|
wined3d_mutex_unlock();
|
||||||
return DDERR_NOCOLORKEY;
|
return DDERR_NOCOLORKEY;
|
||||||
}
|
}
|
||||||
*CKey = This->surface_desc.u3.ddckCKDestOverlay;
|
*CKey = This->surface_desc.ddckCKDestOverlay;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DDCKEY_SRCBLT:
|
case DDCKEY_SRCBLT:
|
||||||
|
@ -3513,7 +3513,7 @@ static HRESULT WINAPI ddraw_surface7_GetPixelFormat(IDirectDrawSurface7 *iface,
|
||||||
return DDERR_INVALIDPARAMS;
|
return DDERR_INVALIDPARAMS;
|
||||||
|
|
||||||
wined3d_mutex_lock();
|
wined3d_mutex_lock();
|
||||||
DD_STRUCT_COPY_BYSIZE(PixelFormat, &surface->surface_desc.u4.ddpfPixelFormat);
|
DD_STRUCT_COPY_BYSIZE(PixelFormat, &surface->surface_desc.ddpfPixelFormat);
|
||||||
wined3d_mutex_unlock();
|
wined3d_mutex_unlock();
|
||||||
|
|
||||||
return DD_OK;
|
return DD_OK;
|
||||||
|
@ -4684,7 +4684,7 @@ static void ddraw_surface_sync_color_keys(struct ddraw_surface *surface)
|
||||||
|
|
||||||
if (desc->dwFlags & DDSD_CKDESTOVERLAY)
|
if (desc->dwFlags & DDSD_CKDESTOVERLAY)
|
||||||
ddraw_surface_set_wined3d_textures_colour_key(surface, DDCKEY_DESTOVERLAY,
|
ddraw_surface_set_wined3d_textures_colour_key(surface, DDCKEY_DESTOVERLAY,
|
||||||
(struct wined3d_color_key *)&desc->u3.ddckCKDestOverlay);
|
(struct wined3d_color_key *)&desc->ddckCKDestOverlay);
|
||||||
if (desc->dwFlags & DDSD_CKDESTBLT)
|
if (desc->dwFlags & DDSD_CKDESTBLT)
|
||||||
ddraw_surface_set_wined3d_textures_colour_key(surface, DDCKEY_DESTBLT,
|
ddraw_surface_set_wined3d_textures_colour_key(surface, DDCKEY_DESTBLT,
|
||||||
(struct wined3d_color_key *)&desc->ddckCKDestBlt);
|
(struct wined3d_color_key *)&desc->ddckCKDestBlt);
|
||||||
|
@ -4747,17 +4747,17 @@ static HRESULT WINAPI ddraw_surface7_SetSurfaceDesc(IDirectDrawSurface7 *iface,
|
||||||
WARN("DDSD_WIDTH is set, but DDSD_PITCH is not, returning DDERR_INVALIDPARAMS.\n");
|
WARN("DDSD_WIDTH is set, but DDSD_PITCH is not, returning DDERR_INVALIDPARAMS.\n");
|
||||||
return DDERR_INVALIDPARAMS;
|
return DDERR_INVALIDPARAMS;
|
||||||
}
|
}
|
||||||
if (!DDSD->dwWidth || DDSD->u1.lPitch <= 0 || DDSD->u1.lPitch & 0x3)
|
if (!DDSD->dwWidth || DDSD->lPitch <= 0 || DDSD->lPitch & 0x3)
|
||||||
{
|
{
|
||||||
WARN("Pitch is %ld, width is %lu, returning DDERR_INVALIDPARAMS.\n",
|
WARN("Pitch is %ld, width is %lu, returning DDERR_INVALIDPARAMS.\n",
|
||||||
DDSD->u1.lPitch, DDSD->dwWidth);
|
DDSD->lPitch, DDSD->dwWidth);
|
||||||
return DDERR_INVALIDPARAMS;
|
return DDERR_INVALIDPARAMS;
|
||||||
}
|
}
|
||||||
if (DDSD->dwWidth != surface->surface_desc.dwWidth)
|
if (DDSD->dwWidth != surface->surface_desc.dwWidth)
|
||||||
TRACE("Surface width changed from %lu to %lu.\n", surface->surface_desc.dwWidth, DDSD->dwWidth);
|
TRACE("Surface width changed from %lu to %lu.\n", surface->surface_desc.dwWidth, DDSD->dwWidth);
|
||||||
if (DDSD->u1.lPitch != surface->surface_desc.u1.lPitch)
|
if (DDSD->lPitch != surface->surface_desc.lPitch)
|
||||||
TRACE("Surface pitch changed from %lu to %lu.\n", surface->surface_desc.u1.lPitch, DDSD->u1.lPitch);
|
TRACE("Surface pitch changed from %lu to %lu.\n", surface->surface_desc.lPitch, DDSD->lPitch);
|
||||||
pitch = DDSD->u1.lPitch;
|
pitch = DDSD->lPitch;
|
||||||
width = DDSD->dwWidth;
|
width = DDSD->dwWidth;
|
||||||
}
|
}
|
||||||
else if (DDSD->dwFlags & DDSD_PITCH)
|
else if (DDSD->dwFlags & DDSD_PITCH)
|
||||||
|
@ -4767,7 +4767,7 @@ static HRESULT WINAPI ddraw_surface7_SetSurfaceDesc(IDirectDrawSurface7 *iface,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pitch = surface->surface_desc.u1.lPitch;
|
pitch = surface->surface_desc.lPitch;
|
||||||
width = surface->surface_desc.dwWidth;
|
width = surface->surface_desc.dwWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4790,7 +4790,7 @@ static HRESULT WINAPI ddraw_surface7_SetSurfaceDesc(IDirectDrawSurface7 *iface,
|
||||||
wined3d_mutex_lock();
|
wined3d_mutex_lock();
|
||||||
if (DDSD->dwFlags & DDSD_PIXELFORMAT)
|
if (DDSD->dwFlags & DDSD_PIXELFORMAT)
|
||||||
{
|
{
|
||||||
format_id = wined3dformat_from_ddrawformat(&DDSD->u4.ddpfPixelFormat);
|
format_id = wined3dformat_from_ddrawformat(&DDSD->ddpfPixelFormat);
|
||||||
|
|
||||||
if (format_id == WINED3DFMT_UNKNOWN)
|
if (format_id == WINED3DFMT_UNKNOWN)
|
||||||
{
|
{
|
||||||
|
@ -4798,13 +4798,13 @@ static HRESULT WINAPI ddraw_surface7_SetSurfaceDesc(IDirectDrawSurface7 *iface,
|
||||||
wined3d_mutex_unlock();
|
wined3d_mutex_unlock();
|
||||||
return DDERR_INVALIDPARAMS;
|
return DDERR_INVALIDPARAMS;
|
||||||
}
|
}
|
||||||
current_format_id = wined3dformat_from_ddrawformat(&surface->surface_desc.u4.ddpfPixelFormat);
|
current_format_id = wined3dformat_from_ddrawformat(&surface->surface_desc.ddpfPixelFormat);
|
||||||
if (format_id != current_format_id)
|
if (format_id != current_format_id)
|
||||||
TRACE("Surface format changed from %#x to %#x.\n", current_format_id, format_id);
|
TRACE("Surface format changed from %#x to %#x.\n", current_format_id, format_id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
current_format_id = format_id = wined3dformat_from_ddrawformat(&surface->surface_desc.u4.ddpfPixelFormat);
|
current_format_id = format_id = wined3dformat_from_ddrawformat(&surface->surface_desc.ddpfPixelFormat);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (width == surface->surface_desc.dwWidth && height == surface->surface_desc.dwHeight
|
if (width == surface->surface_desc.dwWidth && height == surface->surface_desc.dwHeight
|
||||||
|
@ -4953,11 +4953,11 @@ static HRESULT WINAPI ddraw_surface7_SetSurfaceDesc(IDirectDrawSurface7 *iface,
|
||||||
if (DDSD->dwFlags & DDSD_WIDTH)
|
if (DDSD->dwFlags & DDSD_WIDTH)
|
||||||
surface->surface_desc.dwWidth = width;
|
surface->surface_desc.dwWidth = width;
|
||||||
if (DDSD->dwFlags & DDSD_PITCH)
|
if (DDSD->dwFlags & DDSD_PITCH)
|
||||||
surface->surface_desc.u1.lPitch = DDSD->u1.lPitch;
|
surface->surface_desc.lPitch = DDSD->lPitch;
|
||||||
if (DDSD->dwFlags & DDSD_HEIGHT)
|
if (DDSD->dwFlags & DDSD_HEIGHT)
|
||||||
surface->surface_desc.dwHeight = height;
|
surface->surface_desc.dwHeight = height;
|
||||||
if (DDSD->dwFlags & DDSD_PIXELFORMAT)
|
if (DDSD->dwFlags & DDSD_PIXELFORMAT)
|
||||||
surface->surface_desc.u4.ddpfPixelFormat = DDSD->u4.ddpfPixelFormat;
|
surface->surface_desc.ddpfPixelFormat = DDSD->ddpfPixelFormat;
|
||||||
|
|
||||||
wined3d_mutex_unlock();
|
wined3d_mutex_unlock();
|
||||||
|
|
||||||
|
@ -5084,7 +5084,7 @@ static HRESULT ddraw_surface_set_color_key(struct ddraw_surface *surface, DWORD
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DDCKEY_DESTOVERLAY:
|
case DDCKEY_DESTOVERLAY:
|
||||||
surface->surface_desc.u3.ddckCKDestOverlay = fixed_color_key;
|
surface->surface_desc.ddckCKDestOverlay = fixed_color_key;
|
||||||
surface->surface_desc.dwFlags |= DDSD_CKDESTOVERLAY;
|
surface->surface_desc.dwFlags |= DDSD_CKDESTOVERLAY;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -5512,7 +5512,7 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
|
||||||
|
|
||||||
if (((src_surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_MIPMAP)
|
if (((src_surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_MIPMAP)
|
||||||
!= (dst_surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_MIPMAP))
|
!= (dst_surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_MIPMAP))
|
||||||
|| (src_surface->surface_desc.u2.dwMipMapCount != dst_surface->surface_desc.u2.dwMipMapCount))
|
|| (src_surface->surface_desc.dwMipMapCount != dst_surface->surface_desc.dwMipMapCount))
|
||||||
{
|
{
|
||||||
ERR("Trying to load surfaces with different mip-map counts.\n");
|
ERR("Trying to load surfaces with different mip-map counts.\n");
|
||||||
}
|
}
|
||||||
|
@ -5550,7 +5550,7 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
|
||||||
|
|
||||||
if ((src_desc->dwWidth != dst_desc->dwWidth) || (src_desc->dwHeight != dst_desc->dwHeight))
|
if ((src_desc->dwWidth != dst_desc->dwWidth) || (src_desc->dwHeight != dst_desc->dwHeight))
|
||||||
{
|
{
|
||||||
/* Should also check for same pixel format, u1.lPitch, ... */
|
/* Should also check for same pixel format, lPitch, ... */
|
||||||
ERR("Error in surface sizes.\n");
|
ERR("Error in surface sizes.\n");
|
||||||
wined3d_mutex_unlock();
|
wined3d_mutex_unlock();
|
||||||
return D3DERR_TEXTURE_LOAD_FAILED;
|
return D3DERR_TEXTURE_LOAD_FAILED;
|
||||||
|
@ -5584,8 +5584,8 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
|
||||||
return D3DERR_TEXTURE_LOAD_FAILED;
|
return D3DERR_TEXTURE_LOAD_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dst_surface->surface_desc.u4.ddpfPixelFormat.dwFlags & DDPF_FOURCC)
|
if (dst_surface->surface_desc.ddpfPixelFormat.dwFlags & DDPF_FOURCC)
|
||||||
memcpy(dst_map_desc.data, src_map_desc.data, src_surface->surface_desc.u1.dwLinearSize);
|
memcpy(dst_map_desc.data, src_map_desc.data, src_surface->surface_desc.dwLinearSize);
|
||||||
else
|
else
|
||||||
memcpy(dst_map_desc.data, src_map_desc.data, src_map_desc.row_pitch * src_desc->dwHeight);
|
memcpy(dst_map_desc.data, src_map_desc.data, src_map_desc.row_pitch * src_desc->dwHeight);
|
||||||
|
|
||||||
|
@ -6171,7 +6171,7 @@ static void wined3d_resource_desc_from_ddraw(struct ddraw *ddraw,
|
||||||
const DWORD caps2 = desc->ddsCaps.dwCaps2;
|
const DWORD caps2 = desc->ddsCaps.dwCaps2;
|
||||||
|
|
||||||
wined3d_desc->resource_type = WINED3D_RTYPE_TEXTURE_2D;
|
wined3d_desc->resource_type = WINED3D_RTYPE_TEXTURE_2D;
|
||||||
wined3d_desc->format = wined3dformat_from_ddrawformat(&desc->u4.ddpfPixelFormat);
|
wined3d_desc->format = wined3dformat_from_ddrawformat(&desc->ddpfPixelFormat);
|
||||||
wined3d_desc->multisample_type = WINED3D_MULTISAMPLE_NONE;
|
wined3d_desc->multisample_type = WINED3D_MULTISAMPLE_NONE;
|
||||||
wined3d_desc->multisample_quality = 0;
|
wined3d_desc->multisample_quality = 0;
|
||||||
wined3d_desc->usage = WINED3DUSAGE_VIDMEM_ACCOUNTING;
|
wined3d_desc->usage = WINED3DUSAGE_VIDMEM_ACCOUNTING;
|
||||||
|
@ -6261,26 +6261,26 @@ static HRESULT ddraw_texture_init(struct ddraw_texture *texture, struct ddraw *d
|
||||||
/* Validate the pitch. */
|
/* Validate the pitch. */
|
||||||
if (desc->dwFlags & DDSD_LPSURFACE)
|
if (desc->dwFlags & DDSD_LPSURFACE)
|
||||||
{
|
{
|
||||||
if (format_is_compressed(&desc->u4.ddpfPixelFormat))
|
if (format_is_compressed(&desc->ddpfPixelFormat))
|
||||||
{
|
{
|
||||||
if ((desc->dwFlags & DDSD_LINEARSIZE)
|
if ((desc->dwFlags & DDSD_LINEARSIZE)
|
||||||
&& desc->u1.dwLinearSize < wined3d_calculate_format_pitch(ddraw->wined3d_adapter,
|
&& desc->dwLinearSize < wined3d_calculate_format_pitch(ddraw->wined3d_adapter,
|
||||||
wined3d_desc.format, wined3d_desc.width) * ((wined3d_desc.height + 3) / 4))
|
wined3d_desc.format, wined3d_desc.width) * ((wined3d_desc.height + 3) / 4))
|
||||||
{
|
{
|
||||||
WARN("Invalid linear size %lu specified.\n", desc->u1.dwLinearSize);
|
WARN("Invalid linear size %lu specified.\n", desc->dwLinearSize);
|
||||||
return DDERR_INVALIDPARAMS;
|
return DDERR_INVALIDPARAMS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (desc->u1.lPitch < wined3d_calculate_format_pitch(ddraw->wined3d_adapter,
|
if (desc->lPitch < wined3d_calculate_format_pitch(ddraw->wined3d_adapter,
|
||||||
wined3d_desc.format, wined3d_desc.width) || desc->u1.lPitch & 3)
|
wined3d_desc.format, wined3d_desc.width) || desc->lPitch & 3)
|
||||||
{
|
{
|
||||||
WARN("Invalid pitch %lu specified.\n", desc->u1.lPitch);
|
WARN("Invalid pitch %lu specified.\n", desc->lPitch);
|
||||||
return DDERR_INVALIDPARAMS;
|
return DDERR_INVALIDPARAMS;
|
||||||
}
|
}
|
||||||
|
|
||||||
pitch = desc->u1.lPitch;
|
pitch = desc->lPitch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6380,19 +6380,19 @@ static HRESULT ddraw_texture_init(struct ddraw_texture *texture, struct ddraw *d
|
||||||
*mip_desc = *desc;
|
*mip_desc = *desc;
|
||||||
|
|
||||||
wined3d_texture_get_pitch(wined3d_texture, j, &row_pitch, &slice_pitch);
|
wined3d_texture_get_pitch(wined3d_texture, j, &row_pitch, &slice_pitch);
|
||||||
if (format_is_compressed(&desc->u4.ddpfPixelFormat))
|
if (format_is_compressed(&desc->ddpfPixelFormat))
|
||||||
{
|
{
|
||||||
if (desc->dwFlags & DDSD_LPSURFACE)
|
if (desc->dwFlags & DDSD_LPSURFACE)
|
||||||
mip_desc->u1.dwLinearSize = ~0u;
|
mip_desc->dwLinearSize = ~0u;
|
||||||
else
|
else
|
||||||
mip_desc->u1.dwLinearSize = slice_pitch;
|
mip_desc->dwLinearSize = slice_pitch;
|
||||||
mip_desc->dwFlags |= DDSD_LINEARSIZE;
|
mip_desc->dwFlags |= DDSD_LINEARSIZE;
|
||||||
mip_desc->dwFlags &= ~DDSD_PITCH;
|
mip_desc->dwFlags &= ~DDSD_PITCH;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!(desc->dwFlags & DDSD_LPSURFACE))
|
if (!(desc->dwFlags & DDSD_LPSURFACE))
|
||||||
mip_desc->u1.lPitch = row_pitch;
|
mip_desc->lPitch = row_pitch;
|
||||||
mip_desc->dwFlags |= DDSD_PITCH;
|
mip_desc->dwFlags |= DDSD_PITCH;
|
||||||
mip_desc->dwFlags &= ~DDSD_LINEARSIZE;
|
mip_desc->dwFlags &= ~DDSD_LINEARSIZE;
|
||||||
}
|
}
|
||||||
|
@ -6401,7 +6401,7 @@ static HRESULT ddraw_texture_init(struct ddraw_texture *texture, struct ddraw *d
|
||||||
mip_desc->lpSurface = NULL;
|
mip_desc->lpSurface = NULL;
|
||||||
|
|
||||||
if (desc->ddsCaps.dwCaps & DDSCAPS_MIPMAP)
|
if (desc->ddsCaps.dwCaps & DDSCAPS_MIPMAP)
|
||||||
mip_desc->u2.dwMipMapCount = levels - j;
|
mip_desc->dwMipMapCount = levels - j;
|
||||||
|
|
||||||
if (j)
|
if (j)
|
||||||
{
|
{
|
||||||
|
@ -6559,7 +6559,7 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
|
||||||
|
|
||||||
if (desc->ddsCaps.dwCaps & DDSCAPS_FLIP)
|
if (desc->ddsCaps.dwCaps & DDSCAPS_FLIP)
|
||||||
{
|
{
|
||||||
if (!(desc->dwFlags & DDSD_BACKBUFFERCOUNT) || !desc->u5.dwBackBufferCount)
|
if (!(desc->dwFlags & DDSD_BACKBUFFERCOUNT) || !desc->dwBackBufferCount)
|
||||||
{
|
{
|
||||||
WARN("Tried to create a flippable surface without any back buffers.\n");
|
WARN("Tried to create a flippable surface without any back buffers.\n");
|
||||||
heap_free(texture);
|
heap_free(texture);
|
||||||
|
@ -6698,7 +6698,7 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
|
||||||
if (!(desc->dwFlags & DDSD_PIXELFORMAT))
|
if (!(desc->dwFlags & DDSD_PIXELFORMAT))
|
||||||
{
|
{
|
||||||
desc->dwFlags |= DDSD_PIXELFORMAT;
|
desc->dwFlags |= DDSD_PIXELFORMAT;
|
||||||
desc->u4.ddpfPixelFormat = wined3d_display_mode_format;
|
desc->ddpfPixelFormat = wined3d_display_mode_format;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No width or no height? Use the screen size. */
|
/* No width or no height? Use the screen size. */
|
||||||
|
@ -6775,7 +6775,7 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
|
||||||
if (desc->dwFlags & DDSD_MIPMAPCOUNT)
|
if (desc->dwFlags & DDSD_MIPMAPCOUNT)
|
||||||
{
|
{
|
||||||
/* Mipmap count is given, should not be 0. */
|
/* Mipmap count is given, should not be 0. */
|
||||||
if (!desc->u2.dwMipMapCount)
|
if (!desc->dwMipMapCount)
|
||||||
{
|
{
|
||||||
heap_free(texture);
|
heap_free(texture);
|
||||||
return DDERR_INVALIDPARAMS;
|
return DDERR_INVALIDPARAMS;
|
||||||
|
@ -6786,18 +6786,18 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
|
||||||
/* Undocumented feature: Create sublevels until either the
|
/* Undocumented feature: Create sublevels until either the
|
||||||
* width or the height is 1. */
|
* width or the height is 1. */
|
||||||
if (version == 7)
|
if (version == 7)
|
||||||
desc->u2.dwMipMapCount = wined3d_log2i(max(desc->dwWidth, desc->dwHeight)) + 1;
|
desc->dwMipMapCount = wined3d_log2i(max(desc->dwWidth, desc->dwHeight)) + 1;
|
||||||
else
|
else
|
||||||
desc->u2.dwMipMapCount = wined3d_log2i(min(desc->dwWidth, desc->dwHeight)) + 1;
|
desc->dwMipMapCount = wined3d_log2i(min(desc->dwWidth, desc->dwHeight)) + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
desc->u2.dwMipMapCount = 1;
|
desc->dwMipMapCount = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
desc->dwFlags |= DDSD_MIPMAPCOUNT;
|
desc->dwFlags |= DDSD_MIPMAPCOUNT;
|
||||||
levels = desc->u2.dwMipMapCount;
|
levels = desc->dwMipMapCount;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -6828,7 +6828,7 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
|
||||||
|
|
||||||
if (!(ddraw->flags & DDRAW_NO3D) && SUCCEEDED(hr = wined3d_check_device_format(ddraw->wined3d,
|
if (!(ddraw->flags & DDRAW_NO3D) && SUCCEEDED(hr = wined3d_check_device_format(ddraw->wined3d,
|
||||||
ddraw->wined3d_adapter, WINED3D_DEVICE_TYPE_HAL, mode.format_id,
|
ddraw->wined3d_adapter, WINED3D_DEVICE_TYPE_HAL, mode.format_id,
|
||||||
usage, bind_flags, WINED3D_RTYPE_TEXTURE_2D, wined3dformat_from_ddrawformat(&desc->u4.ddpfPixelFormat))))
|
usage, bind_flags, WINED3D_RTYPE_TEXTURE_2D, wined3dformat_from_ddrawformat(&desc->ddpfPixelFormat))))
|
||||||
{
|
{
|
||||||
desc->ddsCaps.dwCaps |= DDSCAPS_VIDEOMEMORY;
|
desc->ddsCaps.dwCaps |= DDSCAPS_VIDEOMEMORY;
|
||||||
}
|
}
|
||||||
|
@ -6883,7 +6883,7 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
|
||||||
return DDERR_INVALIDPARAMS;
|
return DDERR_INVALIDPARAMS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (format_is_compressed(&desc->u4.ddpfPixelFormat))
|
if (format_is_compressed(&desc->ddpfPixelFormat))
|
||||||
{
|
{
|
||||||
if (version != 4 && (desc->dwFlags & DDSD_PITCH))
|
if (version != 4 && (desc->dwFlags & DDSD_PITCH))
|
||||||
{
|
{
|
||||||
|
@ -6911,7 +6911,7 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((desc->dwFlags & DDSD_CKDESTOVERLAY)
|
if (((desc->dwFlags & DDSD_CKDESTOVERLAY)
|
||||||
&& desc->u3.ddckCKDestOverlay.dwColorSpaceLowValue != desc->u3.ddckCKDestOverlay.dwColorSpaceHighValue)
|
&& desc->ddckCKDestOverlay.dwColorSpaceLowValue != desc->ddckCKDestOverlay.dwColorSpaceHighValue)
|
||||||
|| ((desc->dwFlags & DDSD_CKDESTBLT)
|
|| ((desc->dwFlags & DDSD_CKDESTBLT)
|
||||||
&& desc->ddckCKDestBlt.dwColorSpaceLowValue != desc->ddckCKDestBlt.dwColorSpaceHighValue)
|
&& desc->ddckCKDestBlt.dwColorSpaceLowValue != desc->ddckCKDestBlt.dwColorSpaceHighValue)
|
||||||
|| ((desc->dwFlags & DDSD_CKSRCOVERLAY)
|
|| ((desc->dwFlags & DDSD_CKSRCOVERLAY)
|
||||||
|
@ -6936,7 +6936,7 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
|
||||||
|
|
||||||
reserve_memory = !(desc->dwFlags & DDSD_LPSURFACE)
|
reserve_memory = !(desc->dwFlags & DDSD_LPSURFACE)
|
||||||
&& desc->ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY
|
&& desc->ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY
|
||||||
&& wined3d_display_mode_format.u1.dwRGBBitCount <= 16;
|
&& wined3d_display_mode_format.dwRGBBitCount <= 16;
|
||||||
|
|
||||||
if (FAILED(hr = ddraw_texture_init(texture, ddraw, layers, levels, sysmem_fallback, reserve_memory)))
|
if (FAILED(hr = ddraw_texture_init(texture, ddraw, layers, levels, sysmem_fallback, reserve_memory)))
|
||||||
{
|
{
|
||||||
|
@ -6950,7 +6950,7 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
|
||||||
|
|
||||||
if (desc->dwFlags & DDSD_BACKBUFFERCOUNT)
|
if (desc->dwFlags & DDSD_BACKBUFFERCOUNT)
|
||||||
{
|
{
|
||||||
unsigned int count = desc->u5.dwBackBufferCount;
|
unsigned int count = desc->dwBackBufferCount;
|
||||||
struct ddraw_surface *last = root;
|
struct ddraw_surface *last = root;
|
||||||
|
|
||||||
attach = &last->complex_array[0];
|
attach = &last->complex_array[0];
|
||||||
|
@ -6973,7 +6973,7 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
|
||||||
| DDSCAPS_BACKBUFFER);
|
| DDSCAPS_BACKBUFFER);
|
||||||
if (!i)
|
if (!i)
|
||||||
desc->ddsCaps.dwCaps |= DDSCAPS_BACKBUFFER;
|
desc->ddsCaps.dwCaps |= DDSCAPS_BACKBUFFER;
|
||||||
desc->u5.dwBackBufferCount = 0;
|
desc->dwBackBufferCount = 0;
|
||||||
|
|
||||||
if (FAILED(hr = ddraw_texture_init(texture, ddraw, 1, 1, sysmem_fallback, reserve_memory)))
|
if (FAILED(hr = ddraw_texture_init(texture, ddraw, 1, 1, sysmem_fallback, reserve_memory)))
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,130 +40,130 @@ void ddrawformat_from_wined3dformat(DDPIXELFORMAT *DDPixelFormat, enum wined3d_f
|
||||||
case WINED3DFMT_B8G8R8_UNORM:
|
case WINED3DFMT_B8G8R8_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_RGB;
|
DDPixelFormat->dwFlags = DDPF_RGB;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 24;
|
DDPixelFormat->dwRGBBitCount = 24;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0x00ff0000;
|
DDPixelFormat->dwRBitMask = 0x00ff0000;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x0000ff00;
|
DDPixelFormat->dwGBitMask = 0x0000ff00;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x000000ff;
|
DDPixelFormat->dwBBitMask = 0x000000ff;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
DDPixelFormat->dwRGBAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_B8G8R8A8_UNORM:
|
case WINED3DFMT_B8G8R8A8_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
|
DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 32;
|
DDPixelFormat->dwRGBBitCount = 32;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0x00ff0000;
|
DDPixelFormat->dwRBitMask = 0x00ff0000;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x0000ff00;
|
DDPixelFormat->dwGBitMask = 0x0000ff00;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x000000ff;
|
DDPixelFormat->dwBBitMask = 0x000000ff;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0xff000000;
|
DDPixelFormat->dwRGBAlphaBitMask = 0xff000000;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_B8G8R8X8_UNORM:
|
case WINED3DFMT_B8G8R8X8_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_RGB;
|
DDPixelFormat->dwFlags = DDPF_RGB;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 32;
|
DDPixelFormat->dwRGBBitCount = 32;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0x00ff0000;
|
DDPixelFormat->dwRBitMask = 0x00ff0000;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x0000ff00;
|
DDPixelFormat->dwGBitMask = 0x0000ff00;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x000000ff;
|
DDPixelFormat->dwBBitMask = 0x000000ff;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
DDPixelFormat->dwRGBAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_R8G8B8X8_UNORM:
|
case WINED3DFMT_R8G8B8X8_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_RGB;
|
DDPixelFormat->dwFlags = DDPF_RGB;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 32;
|
DDPixelFormat->dwRGBBitCount = 32;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0x000000ff;
|
DDPixelFormat->dwRBitMask = 0x000000ff;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x0000ff00;
|
DDPixelFormat->dwGBitMask = 0x0000ff00;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x00ff0000;
|
DDPixelFormat->dwBBitMask = 0x00ff0000;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
DDPixelFormat->dwRGBAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_B5G6R5_UNORM:
|
case WINED3DFMT_B5G6R5_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_RGB;
|
DDPixelFormat->dwFlags = DDPF_RGB;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 16;
|
DDPixelFormat->dwRGBBitCount = 16;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0xF800;
|
DDPixelFormat->dwRBitMask = 0xF800;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x07E0;
|
DDPixelFormat->dwGBitMask = 0x07E0;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x001F;
|
DDPixelFormat->dwBBitMask = 0x001F;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
DDPixelFormat->dwRGBAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_B5G5R5X1_UNORM:
|
case WINED3DFMT_B5G5R5X1_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_RGB;
|
DDPixelFormat->dwFlags = DDPF_RGB;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 16;
|
DDPixelFormat->dwRGBBitCount = 16;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0x7C00;
|
DDPixelFormat->dwRBitMask = 0x7C00;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x03E0;
|
DDPixelFormat->dwGBitMask = 0x03E0;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x001F;
|
DDPixelFormat->dwBBitMask = 0x001F;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
DDPixelFormat->dwRGBAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_B5G5R5A1_UNORM:
|
case WINED3DFMT_B5G5R5A1_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
|
DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 16;
|
DDPixelFormat->dwRGBBitCount = 16;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0x7C00;
|
DDPixelFormat->dwRBitMask = 0x7C00;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x03E0;
|
DDPixelFormat->dwGBitMask = 0x03E0;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x001F;
|
DDPixelFormat->dwBBitMask = 0x001F;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x8000;
|
DDPixelFormat->dwRGBAlphaBitMask = 0x8000;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_B4G4R4A4_UNORM:
|
case WINED3DFMT_B4G4R4A4_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
|
DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 16;
|
DDPixelFormat->dwRGBBitCount = 16;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0x0F00;
|
DDPixelFormat->dwRBitMask = 0x0F00;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x00F0;
|
DDPixelFormat->dwGBitMask = 0x00F0;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x000F;
|
DDPixelFormat->dwBBitMask = 0x000F;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0xF000;
|
DDPixelFormat->dwRGBAlphaBitMask = 0xF000;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_B2G3R3_UNORM:
|
case WINED3DFMT_B2G3R3_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_RGB;
|
DDPixelFormat->dwFlags = DDPF_RGB;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 8;
|
DDPixelFormat->dwRGBBitCount = 8;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0xE0;
|
DDPixelFormat->dwRBitMask = 0xE0;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x1C;
|
DDPixelFormat->dwGBitMask = 0x1C;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x03;
|
DDPixelFormat->dwBBitMask = 0x03;
|
||||||
DDPixelFormat->u5.dwLuminanceAlphaBitMask = 0x0;
|
DDPixelFormat->dwLuminanceAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_P8_UINT:
|
case WINED3DFMT_P8_UINT:
|
||||||
DDPixelFormat->dwFlags = DDPF_PALETTEINDEXED8 | DDPF_RGB;
|
DDPixelFormat->dwFlags = DDPF_PALETTEINDEXED8 | DDPF_RGB;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 8;
|
DDPixelFormat->dwRGBBitCount = 8;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0x00;
|
DDPixelFormat->dwRBitMask = 0x00;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x00;
|
DDPixelFormat->dwGBitMask = 0x00;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x00;
|
DDPixelFormat->dwBBitMask = 0x00;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_A8_UNORM:
|
case WINED3DFMT_A8_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_ALPHA;
|
DDPixelFormat->dwFlags = DDPF_ALPHA;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwAlphaBitDepth = 8;
|
DDPixelFormat->dwAlphaBitDepth = 8;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0x0;
|
DDPixelFormat->dwRBitMask = 0x0;
|
||||||
DDPixelFormat->u3.dwZBitMask = 0x0;
|
DDPixelFormat->dwZBitMask = 0x0;
|
||||||
DDPixelFormat->u4.dwStencilBitMask = 0x0;
|
DDPixelFormat->dwStencilBitMask = 0x0;
|
||||||
DDPixelFormat->u5.dwLuminanceAlphaBitMask = 0x0;
|
DDPixelFormat->dwLuminanceAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_B2G3R3A8_UNORM:
|
case WINED3DFMT_B2G3R3A8_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
|
DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 16;
|
DDPixelFormat->dwRGBBitCount = 16;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0x00E0;
|
DDPixelFormat->dwRBitMask = 0x00E0;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x001C;
|
DDPixelFormat->dwGBitMask = 0x001C;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x0003;
|
DDPixelFormat->dwBBitMask = 0x0003;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0xFF00;
|
DDPixelFormat->dwRGBAlphaBitMask = 0xFF00;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_B4G4R4X4_UNORM:
|
case WINED3DFMT_B4G4R4X4_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_RGB;
|
DDPixelFormat->dwFlags = DDPF_RGB;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwRGBBitCount = 16;
|
DDPixelFormat->dwRGBBitCount = 16;
|
||||||
DDPixelFormat->u2.dwRBitMask = 0x0F00;
|
DDPixelFormat->dwRBitMask = 0x0F00;
|
||||||
DDPixelFormat->u3.dwGBitMask = 0x00F0;
|
DDPixelFormat->dwGBitMask = 0x00F0;
|
||||||
DDPixelFormat->u4.dwBBitMask = 0x000F;
|
DDPixelFormat->dwBBitMask = 0x000F;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
DDPixelFormat->dwRGBAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* How are Z buffer bit depth and Stencil buffer bit depth related?
|
/* How are Z buffer bit depth and Stencil buffer bit depth related?
|
||||||
|
@ -171,73 +171,73 @@ void ddrawformat_from_wined3dformat(DDPIXELFORMAT *DDPixelFormat, enum wined3d_f
|
||||||
case WINED3DFMT_D16_UNORM:
|
case WINED3DFMT_D16_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_ZBUFFER;
|
DDPixelFormat->dwFlags = DDPF_ZBUFFER;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwZBufferBitDepth = 16;
|
DDPixelFormat->dwZBufferBitDepth = 16;
|
||||||
DDPixelFormat->u2.dwStencilBitDepth = 0;
|
DDPixelFormat->dwStencilBitDepth = 0;
|
||||||
DDPixelFormat->u3.dwZBitMask = 0x0000FFFF;
|
DDPixelFormat->dwZBitMask = 0x0000FFFF;
|
||||||
DDPixelFormat->u4.dwStencilBitMask = 0x0;
|
DDPixelFormat->dwStencilBitMask = 0x0;
|
||||||
DDPixelFormat->u5.dwRGBZBitMask = 0x00000000;
|
DDPixelFormat->dwRGBZBitMask = 0x00000000;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_D32_UNORM:
|
case WINED3DFMT_D32_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_ZBUFFER;
|
DDPixelFormat->dwFlags = DDPF_ZBUFFER;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwZBufferBitDepth = 32;
|
DDPixelFormat->dwZBufferBitDepth = 32;
|
||||||
DDPixelFormat->u2.dwStencilBitDepth = 0;
|
DDPixelFormat->dwStencilBitDepth = 0;
|
||||||
DDPixelFormat->u3.dwZBitMask = 0xFFFFFFFF;
|
DDPixelFormat->dwZBitMask = 0xFFFFFFFF;
|
||||||
DDPixelFormat->u4.dwStencilBitMask = 0x0;
|
DDPixelFormat->dwStencilBitMask = 0x0;
|
||||||
DDPixelFormat->u5.dwRGBZBitMask = 0x00000000;
|
DDPixelFormat->dwRGBZBitMask = 0x00000000;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_S4X4_UINT_D24_UNORM:
|
case WINED3DFMT_S4X4_UINT_D24_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
|
DDPixelFormat->dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
/* Should I set dwZBufferBitDepth to 32 here? */
|
/* Should I set dwZBufferBitDepth to 32 here? */
|
||||||
DDPixelFormat->u1.dwZBufferBitDepth = 32;
|
DDPixelFormat->dwZBufferBitDepth = 32;
|
||||||
DDPixelFormat->u2.dwStencilBitDepth = 4;
|
DDPixelFormat->dwStencilBitDepth = 4;
|
||||||
DDPixelFormat->u3.dwZBitMask = 0x00FFFFFF;
|
DDPixelFormat->dwZBitMask = 0x00FFFFFF;
|
||||||
DDPixelFormat->u4.dwStencilBitMask = 0x0F000000;
|
DDPixelFormat->dwStencilBitMask = 0x0F000000;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
DDPixelFormat->dwRGBAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_D24_UNORM_S8_UINT:
|
case WINED3DFMT_D24_UNORM_S8_UINT:
|
||||||
DDPixelFormat->dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
|
DDPixelFormat->dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwZBufferBitDepth = 32;
|
DDPixelFormat->dwZBufferBitDepth = 32;
|
||||||
DDPixelFormat->u2.dwStencilBitDepth = 8;
|
DDPixelFormat->dwStencilBitDepth = 8;
|
||||||
DDPixelFormat->u3.dwZBitMask = 0x00FFFFFF;
|
DDPixelFormat->dwZBitMask = 0x00FFFFFF;
|
||||||
DDPixelFormat->u4.dwStencilBitMask = 0xFF000000;
|
DDPixelFormat->dwStencilBitMask = 0xFF000000;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
DDPixelFormat->dwRGBAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_X8D24_UNORM:
|
case WINED3DFMT_X8D24_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_ZBUFFER;
|
DDPixelFormat->dwFlags = DDPF_ZBUFFER;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwZBufferBitDepth = 32;
|
DDPixelFormat->dwZBufferBitDepth = 32;
|
||||||
DDPixelFormat->u2.dwStencilBitDepth = 0;
|
DDPixelFormat->dwStencilBitDepth = 0;
|
||||||
DDPixelFormat->u3.dwZBitMask = 0x00FFFFFF;
|
DDPixelFormat->dwZBitMask = 0x00FFFFFF;
|
||||||
DDPixelFormat->u4.dwStencilBitMask = 0x00000000;
|
DDPixelFormat->dwStencilBitMask = 0x00000000;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
DDPixelFormat->dwRGBAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_S1_UINT_D15_UNORM:
|
case WINED3DFMT_S1_UINT_D15_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
|
DDPixelFormat->dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwZBufferBitDepth = 16;
|
DDPixelFormat->dwZBufferBitDepth = 16;
|
||||||
DDPixelFormat->u2.dwStencilBitDepth = 1;
|
DDPixelFormat->dwStencilBitDepth = 1;
|
||||||
DDPixelFormat->u3.dwZBitMask = 0x7fff;
|
DDPixelFormat->dwZBitMask = 0x7fff;
|
||||||
DDPixelFormat->u4.dwStencilBitMask = 0x8000;
|
DDPixelFormat->dwStencilBitMask = 0x8000;
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
DDPixelFormat->dwRGBAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_UYVY:
|
case WINED3DFMT_UYVY:
|
||||||
case WINED3DFMT_YUY2:
|
case WINED3DFMT_YUY2:
|
||||||
DDPixelFormat->u1.dwYUVBitCount = 16;
|
DDPixelFormat->dwYUVBitCount = 16;
|
||||||
DDPixelFormat->dwFlags = DDPF_FOURCC;
|
DDPixelFormat->dwFlags = DDPF_FOURCC;
|
||||||
DDPixelFormat->dwFourCC = wined3d_format;
|
DDPixelFormat->dwFourCC = wined3d_format;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_YV12:
|
case WINED3DFMT_YV12:
|
||||||
DDPixelFormat->u1.dwYUVBitCount = 12;
|
DDPixelFormat->dwYUVBitCount = 12;
|
||||||
DDPixelFormat->dwFlags = DDPF_FOURCC;
|
DDPixelFormat->dwFlags = DDPF_FOURCC;
|
||||||
DDPixelFormat->dwFourCC = wined3d_format;
|
DDPixelFormat->dwFourCC = wined3d_format;
|
||||||
break;
|
break;
|
||||||
|
@ -258,62 +258,62 @@ void ddrawformat_from_wined3dformat(DDPIXELFORMAT *DDPixelFormat, enum wined3d_f
|
||||||
case WINED3DFMT_L8_UNORM:
|
case WINED3DFMT_L8_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_LUMINANCE;
|
DDPixelFormat->dwFlags = DDPF_LUMINANCE;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwLuminanceBitCount = 8;
|
DDPixelFormat->dwLuminanceBitCount = 8;
|
||||||
DDPixelFormat->u2.dwLuminanceBitMask = 0xff;
|
DDPixelFormat->dwLuminanceBitMask = 0xff;
|
||||||
DDPixelFormat->u3.dwBumpDvBitMask = 0x0;
|
DDPixelFormat->dwBumpDvBitMask = 0x0;
|
||||||
DDPixelFormat->u4.dwBumpLuminanceBitMask = 0x0;
|
DDPixelFormat->dwBumpLuminanceBitMask = 0x0;
|
||||||
DDPixelFormat->u5.dwLuminanceAlphaBitMask = 0x0;
|
DDPixelFormat->dwLuminanceAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_L4A4_UNORM:
|
case WINED3DFMT_L4A4_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_ALPHAPIXELS | DDPF_LUMINANCE;
|
DDPixelFormat->dwFlags = DDPF_ALPHAPIXELS | DDPF_LUMINANCE;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwLuminanceBitCount = 4;
|
DDPixelFormat->dwLuminanceBitCount = 4;
|
||||||
DDPixelFormat->u2.dwLuminanceBitMask = 0x0f;
|
DDPixelFormat->dwLuminanceBitMask = 0x0f;
|
||||||
DDPixelFormat->u3.dwBumpDvBitMask = 0x0;
|
DDPixelFormat->dwBumpDvBitMask = 0x0;
|
||||||
DDPixelFormat->u4.dwBumpLuminanceBitMask = 0x0;
|
DDPixelFormat->dwBumpLuminanceBitMask = 0x0;
|
||||||
DDPixelFormat->u5.dwLuminanceAlphaBitMask = 0xf0;
|
DDPixelFormat->dwLuminanceAlphaBitMask = 0xf0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_L8A8_UNORM:
|
case WINED3DFMT_L8A8_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_ALPHAPIXELS | DDPF_LUMINANCE;
|
DDPixelFormat->dwFlags = DDPF_ALPHAPIXELS | DDPF_LUMINANCE;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwLuminanceBitCount = 16;
|
DDPixelFormat->dwLuminanceBitCount = 16;
|
||||||
DDPixelFormat->u2.dwLuminanceBitMask = 0x00ff;
|
DDPixelFormat->dwLuminanceBitMask = 0x00ff;
|
||||||
DDPixelFormat->u3.dwBumpDvBitMask = 0x0;
|
DDPixelFormat->dwBumpDvBitMask = 0x0;
|
||||||
DDPixelFormat->u4.dwBumpLuminanceBitMask = 0x0;
|
DDPixelFormat->dwBumpLuminanceBitMask = 0x0;
|
||||||
DDPixelFormat->u5.dwLuminanceAlphaBitMask = 0xff00;
|
DDPixelFormat->dwLuminanceAlphaBitMask = 0xff00;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Bump mapping */
|
/* Bump mapping */
|
||||||
case WINED3DFMT_R8G8_SNORM:
|
case WINED3DFMT_R8G8_SNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_BUMPDUDV;
|
DDPixelFormat->dwFlags = DDPF_BUMPDUDV;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwBumpBitCount = 16;
|
DDPixelFormat->dwBumpBitCount = 16;
|
||||||
DDPixelFormat->u2.dwBumpDuBitMask = 0x000000ff;
|
DDPixelFormat->dwBumpDuBitMask = 0x000000ff;
|
||||||
DDPixelFormat->u3.dwBumpDvBitMask = 0x0000ff00;
|
DDPixelFormat->dwBumpDvBitMask = 0x0000ff00;
|
||||||
DDPixelFormat->u4.dwBumpLuminanceBitMask = 0x00000000;
|
DDPixelFormat->dwBumpLuminanceBitMask = 0x00000000;
|
||||||
DDPixelFormat->u5.dwLuminanceAlphaBitMask = 0x00000000;
|
DDPixelFormat->dwLuminanceAlphaBitMask = 0x00000000;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_R5G5_SNORM_L6_UNORM:
|
case WINED3DFMT_R5G5_SNORM_L6_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_BUMPDUDV | DDPF_BUMPLUMINANCE;
|
DDPixelFormat->dwFlags = DDPF_BUMPDUDV | DDPF_BUMPLUMINANCE;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwBumpBitCount = 16;
|
DDPixelFormat->dwBumpBitCount = 16;
|
||||||
DDPixelFormat->u2.dwBumpDuBitMask = 0x0000001f;
|
DDPixelFormat->dwBumpDuBitMask = 0x0000001f;
|
||||||
DDPixelFormat->u3.dwBumpDvBitMask = 0x000003e0;
|
DDPixelFormat->dwBumpDvBitMask = 0x000003e0;
|
||||||
DDPixelFormat->u4.dwBumpLuminanceBitMask = 0x0000fc00;
|
DDPixelFormat->dwBumpLuminanceBitMask = 0x0000fc00;
|
||||||
DDPixelFormat->u5.dwLuminanceAlphaBitMask = 0x00000000;
|
DDPixelFormat->dwLuminanceAlphaBitMask = 0x00000000;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_R8G8_SNORM_L8X8_UNORM:
|
case WINED3DFMT_R8G8_SNORM_L8X8_UNORM:
|
||||||
DDPixelFormat->dwFlags = DDPF_BUMPDUDV | DDPF_BUMPLUMINANCE;
|
DDPixelFormat->dwFlags = DDPF_BUMPDUDV | DDPF_BUMPLUMINANCE;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
DDPixelFormat->u1.dwBumpBitCount = 32;
|
DDPixelFormat->dwBumpBitCount = 32;
|
||||||
DDPixelFormat->u2.dwBumpDuBitMask = 0x000000ff;
|
DDPixelFormat->dwBumpDuBitMask = 0x000000ff;
|
||||||
DDPixelFormat->u3.dwBumpDvBitMask = 0x0000ff00;
|
DDPixelFormat->dwBumpDvBitMask = 0x0000ff00;
|
||||||
DDPixelFormat->u4.dwBumpLuminanceBitMask = 0x00ff0000;
|
DDPixelFormat->dwBumpLuminanceBitMask = 0x00ff0000;
|
||||||
DDPixelFormat->u5.dwLuminanceAlphaBitMask = 0x00000000;
|
DDPixelFormat->dwLuminanceAlphaBitMask = 0x00000000;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -346,7 +346,7 @@ enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPix
|
||||||
}
|
}
|
||||||
else if(DDPixelFormat->dwFlags & DDPF_RGB)
|
else if(DDPixelFormat->dwFlags & DDPF_RGB)
|
||||||
{
|
{
|
||||||
switch(DDPixelFormat->u1.dwRGBBitCount)
|
switch(DDPixelFormat->dwRGBBitCount)
|
||||||
{
|
{
|
||||||
case 8:
|
case 8:
|
||||||
/* This is the only format that can match here */
|
/* This is the only format that can match here */
|
||||||
|
@ -354,40 +354,40 @@ enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPix
|
||||||
|
|
||||||
case 16:
|
case 16:
|
||||||
/* Read the Color masks */
|
/* Read the Color masks */
|
||||||
if( (DDPixelFormat->u2.dwRBitMask == 0xF800) &&
|
if( (DDPixelFormat->dwRBitMask == 0xF800) &&
|
||||||
(DDPixelFormat->u3.dwGBitMask == 0x07E0) &&
|
(DDPixelFormat->dwGBitMask == 0x07E0) &&
|
||||||
(DDPixelFormat->u4.dwBBitMask == 0x001F) )
|
(DDPixelFormat->dwBBitMask == 0x001F) )
|
||||||
{
|
{
|
||||||
return WINED3DFMT_B5G6R5_UNORM;
|
return WINED3DFMT_B5G6R5_UNORM;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (DDPixelFormat->u2.dwRBitMask == 0x7C00) &&
|
if( (DDPixelFormat->dwRBitMask == 0x7C00) &&
|
||||||
(DDPixelFormat->u3.dwGBitMask == 0x03E0) &&
|
(DDPixelFormat->dwGBitMask == 0x03E0) &&
|
||||||
(DDPixelFormat->u4.dwBBitMask == 0x001F) )
|
(DDPixelFormat->dwBBitMask == 0x001F) )
|
||||||
{
|
{
|
||||||
if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
|
if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
|
||||||
(DDPixelFormat->u5.dwRGBAlphaBitMask == 0x8000))
|
(DDPixelFormat->dwRGBAlphaBitMask == 0x8000))
|
||||||
return WINED3DFMT_B5G5R5A1_UNORM;
|
return WINED3DFMT_B5G5R5A1_UNORM;
|
||||||
else
|
else
|
||||||
return WINED3DFMT_B5G5R5X1_UNORM;
|
return WINED3DFMT_B5G5R5X1_UNORM;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (DDPixelFormat->u2.dwRBitMask == 0x0F00) &&
|
if( (DDPixelFormat->dwRBitMask == 0x0F00) &&
|
||||||
(DDPixelFormat->u3.dwGBitMask == 0x00F0) &&
|
(DDPixelFormat->dwGBitMask == 0x00F0) &&
|
||||||
(DDPixelFormat->u4.dwBBitMask == 0x000F) )
|
(DDPixelFormat->dwBBitMask == 0x000F) )
|
||||||
{
|
{
|
||||||
if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
|
if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
|
||||||
(DDPixelFormat->u5.dwRGBAlphaBitMask == 0xF000))
|
(DDPixelFormat->dwRGBAlphaBitMask == 0xF000))
|
||||||
return WINED3DFMT_B4G4R4A4_UNORM;
|
return WINED3DFMT_B4G4R4A4_UNORM;
|
||||||
else
|
else
|
||||||
return WINED3DFMT_B4G4R4X4_UNORM;
|
return WINED3DFMT_B4G4R4X4_UNORM;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
|
if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
|
||||||
(DDPixelFormat->u5.dwRGBAlphaBitMask == 0xFF00) &&
|
(DDPixelFormat->dwRGBAlphaBitMask == 0xFF00) &&
|
||||||
(DDPixelFormat->u2.dwRBitMask == 0x00E0) &&
|
(DDPixelFormat->dwRBitMask == 0x00E0) &&
|
||||||
(DDPixelFormat->u3.dwGBitMask == 0x001C) &&
|
(DDPixelFormat->dwGBitMask == 0x001C) &&
|
||||||
(DDPixelFormat->u4.dwBBitMask == 0x0003) )
|
(DDPixelFormat->dwBBitMask == 0x0003) )
|
||||||
{
|
{
|
||||||
return WINED3DFMT_B2G3R3A8_UNORM;
|
return WINED3DFMT_B2G3R3A8_UNORM;
|
||||||
}
|
}
|
||||||
|
@ -399,12 +399,12 @@ enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPix
|
||||||
|
|
||||||
case 32:
|
case 32:
|
||||||
/* Read the Color masks */
|
/* Read the Color masks */
|
||||||
if( (DDPixelFormat->u2.dwRBitMask == 0x00FF0000) &&
|
if( (DDPixelFormat->dwRBitMask == 0x00FF0000) &&
|
||||||
(DDPixelFormat->u3.dwGBitMask == 0x0000FF00) &&
|
(DDPixelFormat->dwGBitMask == 0x0000FF00) &&
|
||||||
(DDPixelFormat->u4.dwBBitMask == 0x000000FF) )
|
(DDPixelFormat->dwBBitMask == 0x000000FF) )
|
||||||
{
|
{
|
||||||
if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
|
if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
|
||||||
(DDPixelFormat->u5.dwRGBAlphaBitMask == 0xFF000000))
|
(DDPixelFormat->dwRGBAlphaBitMask == 0xFF000000))
|
||||||
return WINED3DFMT_B8G8R8A8_UNORM;
|
return WINED3DFMT_B8G8R8A8_UNORM;
|
||||||
else
|
else
|
||||||
return WINED3DFMT_B8G8R8X8_UNORM;
|
return WINED3DFMT_B8G8R8X8_UNORM;
|
||||||
|
@ -421,7 +421,7 @@ enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPix
|
||||||
else if( (DDPixelFormat->dwFlags & DDPF_ALPHA) )
|
else if( (DDPixelFormat->dwFlags & DDPF_ALPHA) )
|
||||||
{
|
{
|
||||||
/* Alpha only Pixelformat */
|
/* Alpha only Pixelformat */
|
||||||
switch(DDPixelFormat->u1.dwAlphaBitDepth)
|
switch(DDPixelFormat->dwAlphaBitDepth)
|
||||||
{
|
{
|
||||||
case 8:
|
case 8:
|
||||||
return WINED3DFMT_A8_UNORM;
|
return WINED3DFMT_A8_UNORM;
|
||||||
|
@ -437,10 +437,10 @@ enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPix
|
||||||
if(DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS)
|
if(DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS)
|
||||||
{
|
{
|
||||||
/* Luminance with Alpha */
|
/* Luminance with Alpha */
|
||||||
switch(DDPixelFormat->u1.dwLuminanceBitCount)
|
switch(DDPixelFormat->dwLuminanceBitCount)
|
||||||
{
|
{
|
||||||
case 4:
|
case 4:
|
||||||
if(DDPixelFormat->u1.dwAlphaBitDepth == 4)
|
if(DDPixelFormat->dwAlphaBitDepth == 4)
|
||||||
return WINED3DFMT_L4A4_UNORM;
|
return WINED3DFMT_L4A4_UNORM;
|
||||||
WARN("Unknown Alpha / Luminance bit depth combination.\n");
|
WARN("Unknown Alpha / Luminance bit depth combination.\n");
|
||||||
return WINED3DFMT_UNKNOWN;
|
return WINED3DFMT_UNKNOWN;
|
||||||
|
@ -450,7 +450,7 @@ enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPix
|
||||||
return WINED3DFMT_R5G5_SNORM_L6_UNORM;
|
return WINED3DFMT_R5G5_SNORM_L6_UNORM;
|
||||||
|
|
||||||
case 8:
|
case 8:
|
||||||
if(DDPixelFormat->u1.dwAlphaBitDepth == 8)
|
if(DDPixelFormat->dwAlphaBitDepth == 8)
|
||||||
return WINED3DFMT_L8A8_UNORM;
|
return WINED3DFMT_L8A8_UNORM;
|
||||||
WARN("Unknown Alpha / Lumincase bit depth combination.\n");
|
WARN("Unknown Alpha / Lumincase bit depth combination.\n");
|
||||||
return WINED3DFMT_UNKNOWN;
|
return WINED3DFMT_UNKNOWN;
|
||||||
|
@ -459,7 +459,7 @@ enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPix
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Luminance-only */
|
/* Luminance-only */
|
||||||
switch(DDPixelFormat->u1.dwLuminanceBitCount)
|
switch(DDPixelFormat->dwLuminanceBitCount)
|
||||||
{
|
{
|
||||||
case 6:
|
case 6:
|
||||||
FIXME("A luminance Pixelformat shouldn't have 6 luminance bits. Returning D3DFMT_L6V5U5 for now.\n");
|
FIXME("A luminance Pixelformat shouldn't have 6 luminance bits. Returning D3DFMT_L6V5U5 for now.\n");
|
||||||
|
@ -469,7 +469,7 @@ enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPix
|
||||||
return WINED3DFMT_L8_UNORM;
|
return WINED3DFMT_L8_UNORM;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
WARN("Unknown luminance-only bit depth %lu.\n", DDPixelFormat->u1.dwLuminanceBitCount);
|
WARN("Unknown luminance-only bit depth %lu.\n", DDPixelFormat->dwLuminanceBitCount);
|
||||||
return WINED3DFMT_UNKNOWN;
|
return WINED3DFMT_UNKNOWN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -479,30 +479,30 @@ enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPix
|
||||||
/* Z buffer */
|
/* Z buffer */
|
||||||
if(DDPixelFormat->dwFlags & DDPF_STENCILBUFFER)
|
if(DDPixelFormat->dwFlags & DDPF_STENCILBUFFER)
|
||||||
{
|
{
|
||||||
switch(DDPixelFormat->u1.dwZBufferBitDepth)
|
switch(DDPixelFormat->dwZBufferBitDepth)
|
||||||
{
|
{
|
||||||
case 16:
|
case 16:
|
||||||
if (DDPixelFormat->u2.dwStencilBitDepth == 1) return WINED3DFMT_S1_UINT_D15_UNORM;
|
if (DDPixelFormat->dwStencilBitDepth == 1) return WINED3DFMT_S1_UINT_D15_UNORM;
|
||||||
WARN("Unknown depth stencil format: 16 z bits, %lu stencil bits.\n",
|
WARN("Unknown depth stencil format: 16 z bits, %lu stencil bits.\n",
|
||||||
DDPixelFormat->u2.dwStencilBitDepth);
|
DDPixelFormat->dwStencilBitDepth);
|
||||||
return WINED3DFMT_UNKNOWN;
|
return WINED3DFMT_UNKNOWN;
|
||||||
|
|
||||||
case 32:
|
case 32:
|
||||||
if (DDPixelFormat->u2.dwStencilBitDepth == 8) return WINED3DFMT_D24_UNORM_S8_UINT;
|
if (DDPixelFormat->dwStencilBitDepth == 8) return WINED3DFMT_D24_UNORM_S8_UINT;
|
||||||
else if (DDPixelFormat->u2.dwStencilBitDepth == 4) return WINED3DFMT_S4X4_UINT_D24_UNORM;
|
else if (DDPixelFormat->dwStencilBitDepth == 4) return WINED3DFMT_S4X4_UINT_D24_UNORM;
|
||||||
WARN("Unknown depth stencil format: 32 z bits, %lu stencil bits.\n",
|
WARN("Unknown depth stencil format: 32 z bits, %lu stencil bits.\n",
|
||||||
DDPixelFormat->u2.dwStencilBitDepth);
|
DDPixelFormat->dwStencilBitDepth);
|
||||||
return WINED3DFMT_UNKNOWN;
|
return WINED3DFMT_UNKNOWN;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
WARN("Unknown depth stencil format: %lu z bits, %lu stencil bits.\n",
|
WARN("Unknown depth stencil format: %lu z bits, %lu stencil bits.\n",
|
||||||
DDPixelFormat->u1.dwZBufferBitDepth, DDPixelFormat->u2.dwStencilBitDepth);
|
DDPixelFormat->dwZBufferBitDepth, DDPixelFormat->dwStencilBitDepth);
|
||||||
return WINED3DFMT_UNKNOWN;
|
return WINED3DFMT_UNKNOWN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch(DDPixelFormat->u1.dwZBufferBitDepth)
|
switch(DDPixelFormat->dwZBufferBitDepth)
|
||||||
{
|
{
|
||||||
case 16:
|
case 16:
|
||||||
return WINED3DFMT_D16_UNORM;
|
return WINED3DFMT_D16_UNORM;
|
||||||
|
@ -511,16 +511,16 @@ enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPix
|
||||||
return WINED3DFMT_X8D24_UNORM;
|
return WINED3DFMT_X8D24_UNORM;
|
||||||
|
|
||||||
case 32:
|
case 32:
|
||||||
if (DDPixelFormat->u3.dwZBitMask == 0x00FFFFFF) return WINED3DFMT_X8D24_UNORM;
|
if (DDPixelFormat->dwZBitMask == 0x00FFFFFF) return WINED3DFMT_X8D24_UNORM;
|
||||||
else if (DDPixelFormat->u3.dwZBitMask == 0xFFFFFF00) return WINED3DFMT_X8D24_UNORM;
|
else if (DDPixelFormat->dwZBitMask == 0xFFFFFF00) return WINED3DFMT_X8D24_UNORM;
|
||||||
else if (DDPixelFormat->u3.dwZBitMask == 0xFFFFFFFF) return WINED3DFMT_D32_UNORM;
|
else if (DDPixelFormat->dwZBitMask == 0xFFFFFFFF) return WINED3DFMT_D32_UNORM;
|
||||||
WARN("Unknown depth-only format: 32 z bits, mask 0x%08lx\n",
|
WARN("Unknown depth-only format: 32 z bits, mask 0x%08lx\n",
|
||||||
DDPixelFormat->u3.dwZBitMask);
|
DDPixelFormat->dwZBitMask);
|
||||||
return WINED3DFMT_UNKNOWN;
|
return WINED3DFMT_UNKNOWN;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
WARN("Unknown depth-only format: %lu z bits, mask 0x%08lx\n",
|
WARN("Unknown depth-only format: %lu z bits, mask 0x%08lx\n",
|
||||||
DDPixelFormat->u1.dwZBufferBitDepth, DDPixelFormat->u3.dwZBitMask);
|
DDPixelFormat->dwZBufferBitDepth, DDPixelFormat->dwZBitMask);
|
||||||
return WINED3DFMT_UNKNOWN;
|
return WINED3DFMT_UNKNOWN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -531,24 +531,24 @@ enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPix
|
||||||
}
|
}
|
||||||
else if(DDPixelFormat->dwFlags & DDPF_BUMPDUDV)
|
else if(DDPixelFormat->dwFlags & DDPF_BUMPDUDV)
|
||||||
{
|
{
|
||||||
if( (DDPixelFormat->u1.dwBumpBitCount == 16 ) &&
|
if( (DDPixelFormat->dwBumpBitCount == 16 ) &&
|
||||||
(DDPixelFormat->u2.dwBumpDuBitMask == 0x000000ff) &&
|
(DDPixelFormat->dwBumpDuBitMask == 0x000000ff) &&
|
||||||
(DDPixelFormat->u3.dwBumpDvBitMask == 0x0000ff00) &&
|
(DDPixelFormat->dwBumpDvBitMask == 0x0000ff00) &&
|
||||||
(DDPixelFormat->u4.dwBumpLuminanceBitMask == 0x00000000) )
|
(DDPixelFormat->dwBumpLuminanceBitMask == 0x00000000) )
|
||||||
{
|
{
|
||||||
return WINED3DFMT_R8G8_SNORM;
|
return WINED3DFMT_R8G8_SNORM;
|
||||||
}
|
}
|
||||||
else if ( (DDPixelFormat->u1.dwBumpBitCount == 16 ) &&
|
else if ( (DDPixelFormat->dwBumpBitCount == 16 ) &&
|
||||||
(DDPixelFormat->u2.dwBumpDuBitMask == 0x0000001f) &&
|
(DDPixelFormat->dwBumpDuBitMask == 0x0000001f) &&
|
||||||
(DDPixelFormat->u3.dwBumpDvBitMask == 0x000003e0) &&
|
(DDPixelFormat->dwBumpDvBitMask == 0x000003e0) &&
|
||||||
(DDPixelFormat->u4.dwBumpLuminanceBitMask == 0x0000fc00) )
|
(DDPixelFormat->dwBumpLuminanceBitMask == 0x0000fc00) )
|
||||||
{
|
{
|
||||||
return WINED3DFMT_R5G5_SNORM_L6_UNORM;
|
return WINED3DFMT_R5G5_SNORM_L6_UNORM;
|
||||||
}
|
}
|
||||||
else if ( (DDPixelFormat->u1.dwBumpBitCount == 32 ) &&
|
else if ( (DDPixelFormat->dwBumpBitCount == 32 ) &&
|
||||||
(DDPixelFormat->u2.dwBumpDuBitMask == 0x000000ff) &&
|
(DDPixelFormat->dwBumpDuBitMask == 0x000000ff) &&
|
||||||
(DDPixelFormat->u3.dwBumpDvBitMask == 0x0000ff00) &&
|
(DDPixelFormat->dwBumpDvBitMask == 0x0000ff00) &&
|
||||||
(DDPixelFormat->u4.dwBumpLuminanceBitMask == 0x00ff0000) )
|
(DDPixelFormat->dwBumpLuminanceBitMask == 0x00ff0000) )
|
||||||
{
|
{
|
||||||
return WINED3DFMT_R8G8_SNORM_L8X8_UNORM;
|
return WINED3DFMT_R8G8_SNORM_L8X8_UNORM;
|
||||||
}
|
}
|
||||||
|
@ -597,7 +597,7 @@ BOOL wined3d_colour_from_ddraw_colour(const DDPIXELFORMAT *pf, const struct ddra
|
||||||
{
|
{
|
||||||
DWORD size, mask;
|
DWORD size, mask;
|
||||||
|
|
||||||
size = pf->u1.dwAlphaBitDepth;
|
size = pf->dwAlphaBitDepth;
|
||||||
mask = size < 32 ? (1u << size) - 1 : ~0u;
|
mask = size < 32 ? (1u << size) - 1 : ~0u;
|
||||||
wined3d_colour->r = 0.0f;
|
wined3d_colour->r = 0.0f;
|
||||||
wined3d_colour->g = 0.0f;
|
wined3d_colour->g = 0.0f;
|
||||||
|
@ -635,11 +635,11 @@ BOOL wined3d_colour_from_ddraw_colour(const DDPIXELFORMAT *pf, const struct ddra
|
||||||
|
|
||||||
if (pf->dwFlags & DDPF_RGB)
|
if (pf->dwFlags & DDPF_RGB)
|
||||||
{
|
{
|
||||||
wined3d_colour->r = colour_to_float(colour, pf->u2.dwRBitMask);
|
wined3d_colour->r = colour_to_float(colour, pf->dwRBitMask);
|
||||||
wined3d_colour->g = colour_to_float(colour, pf->u3.dwGBitMask);
|
wined3d_colour->g = colour_to_float(colour, pf->dwGBitMask);
|
||||||
wined3d_colour->b = colour_to_float(colour, pf->u4.dwBBitMask);
|
wined3d_colour->b = colour_to_float(colour, pf->dwBBitMask);
|
||||||
if (pf->dwFlags & DDPF_ALPHAPIXELS)
|
if (pf->dwFlags & DDPF_ALPHAPIXELS)
|
||||||
wined3d_colour->a = colour_to_float(colour, pf->u5.dwRGBAlphaBitMask);
|
wined3d_colour->a = colour_to_float(colour, pf->dwRGBAlphaBitMask);
|
||||||
else
|
else
|
||||||
wined3d_colour->a = 0.0f;
|
wined3d_colour->a = 0.0f;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -647,9 +647,9 @@ BOOL wined3d_colour_from_ddraw_colour(const DDPIXELFORMAT *pf, const struct ddra
|
||||||
|
|
||||||
if (pf->dwFlags & DDPF_ZBUFFER)
|
if (pf->dwFlags & DDPF_ZBUFFER)
|
||||||
{
|
{
|
||||||
wined3d_colour->r = colour_to_float(colour, pf->u3.dwZBitMask);
|
wined3d_colour->r = colour_to_float(colour, pf->dwZBitMask);
|
||||||
if (pf->dwFlags & DDPF_STENCILBUFFER)
|
if (pf->dwFlags & DDPF_STENCILBUFFER)
|
||||||
wined3d_colour->g = colour_to_float(colour, pf->u4.dwStencilBitMask);
|
wined3d_colour->g = colour_to_float(colour, pf->dwStencilBitMask);
|
||||||
else
|
else
|
||||||
wined3d_colour->g = 0.0f;
|
wined3d_colour->g = 0.0f;
|
||||||
wined3d_colour->b = 0.0f;
|
wined3d_colour->b = 0.0f;
|
||||||
|
@ -777,7 +777,7 @@ DDRAW_dump_DDSCAPS(const DDSCAPS *in)
|
||||||
in_bis.dwCaps = in->dwCaps;
|
in_bis.dwCaps = in->dwCaps;
|
||||||
in_bis.dwCaps2 = 0;
|
in_bis.dwCaps2 = 0;
|
||||||
in_bis.dwCaps3 = 0;
|
in_bis.dwCaps3 = 0;
|
||||||
in_bis.u1.dwCaps4 = 0;
|
in_bis.dwCaps4 = 0;
|
||||||
|
|
||||||
DDRAW_dump_DDSCAPS2(&in_bis);
|
DDRAW_dump_DDSCAPS2(&in_bis);
|
||||||
}
|
}
|
||||||
|
@ -832,29 +832,29 @@ DDRAW_dump_pixelformat(const DDPIXELFORMAT *pf)
|
||||||
(unsigned char)((pf->dwFourCC>>16)&0xff),
|
(unsigned char)((pf->dwFourCC>>16)&0xff),
|
||||||
(unsigned char)((pf->dwFourCC>>24)&0xff),
|
(unsigned char)((pf->dwFourCC>>24)&0xff),
|
||||||
pf->dwFourCC,
|
pf->dwFourCC,
|
||||||
pf->u1.dwYUVBitCount);
|
pf->dwYUVBitCount);
|
||||||
if (pf->dwFlags & DDPF_RGB)
|
if (pf->dwFlags & DDPF_RGB)
|
||||||
{
|
{
|
||||||
TRACE(", RGB bits: %lu, R 0x%08lx G 0x%08lx B 0x%08lx",
|
TRACE(", RGB bits: %lu, R 0x%08lx G 0x%08lx B 0x%08lx",
|
||||||
pf->u1.dwRGBBitCount,
|
pf->dwRGBBitCount,
|
||||||
pf->u2.dwRBitMask,
|
pf->dwRBitMask,
|
||||||
pf->u3.dwGBitMask,
|
pf->dwGBitMask,
|
||||||
pf->u4.dwBBitMask);
|
pf->dwBBitMask);
|
||||||
if (pf->dwFlags & DDPF_ALPHAPIXELS)
|
if (pf->dwFlags & DDPF_ALPHAPIXELS)
|
||||||
TRACE(" A 0x%08lx", pf->u5.dwRGBAlphaBitMask);
|
TRACE(" A 0x%08lx", pf->dwRGBAlphaBitMask);
|
||||||
if (pf->dwFlags & DDPF_ZPIXELS)
|
if (pf->dwFlags & DDPF_ZPIXELS)
|
||||||
TRACE(" Z 0x%08lx", pf->u5.dwRGBZBitMask);
|
TRACE(" Z 0x%08lx", pf->dwRGBZBitMask);
|
||||||
}
|
}
|
||||||
if (pf->dwFlags & DDPF_ZBUFFER)
|
if (pf->dwFlags & DDPF_ZBUFFER)
|
||||||
TRACE(", Z bits: %lu", pf->u1.dwZBufferBitDepth);
|
TRACE(", Z bits: %lu", pf->dwZBufferBitDepth);
|
||||||
if (pf->dwFlags & DDPF_ALPHA)
|
if (pf->dwFlags & DDPF_ALPHA)
|
||||||
TRACE(", Alpha bits: %lu", pf->u1.dwAlphaBitDepth);
|
TRACE(", Alpha bits: %lu", pf->dwAlphaBitDepth);
|
||||||
if (pf->dwFlags & DDPF_BUMPDUDV)
|
if (pf->dwFlags & DDPF_BUMPDUDV)
|
||||||
TRACE(", Bump bits: %lu, U 0x%08lx V 0x%08lx L 0x%08lx",
|
TRACE(", Bump bits: %lu, U 0x%08lx V 0x%08lx L 0x%08lx",
|
||||||
pf->u1.dwBumpBitCount,
|
pf->dwBumpBitCount,
|
||||||
pf->u2.dwBumpDuBitMask,
|
pf->dwBumpDuBitMask,
|
||||||
pf->u3.dwBumpDvBitMask,
|
pf->dwBumpDvBitMask,
|
||||||
pf->u4.dwBumpLuminanceBitMask);
|
pf->dwBumpLuminanceBitMask);
|
||||||
TRACE(")\n");
|
TRACE(")\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -865,19 +865,18 @@ void DDRAW_dump_surface_desc(const DDSURFACEDESC2 *lpddsd)
|
||||||
{
|
{
|
||||||
ME(DDSD_HEIGHT, DDRAW_dump_DWORD, dwHeight),
|
ME(DDSD_HEIGHT, DDRAW_dump_DWORD, dwHeight),
|
||||||
ME(DDSD_WIDTH, DDRAW_dump_DWORD, dwWidth),
|
ME(DDSD_WIDTH, DDRAW_dump_DWORD, dwWidth),
|
||||||
ME(DDSD_PITCH, DDRAW_dump_DWORD, u1 /* lPitch */),
|
ME(DDSD_PITCH, DDRAW_dump_DWORD, lPitch),
|
||||||
ME(DDSD_LINEARSIZE, DDRAW_dump_DWORD, u1 /* dwLinearSize */),
|
ME(DDSD_LINEARSIZE, DDRAW_dump_DWORD, dwLinearSize),
|
||||||
ME(DDSD_BACKBUFFERCOUNT, DDRAW_dump_DWORD, u5.dwBackBufferCount),
|
ME(DDSD_BACKBUFFERCOUNT, DDRAW_dump_DWORD, dwBackBufferCount),
|
||||||
ME(DDSD_MIPMAPCOUNT, DDRAW_dump_DWORD, u2 /* dwMipMapCount */),
|
ME(DDSD_MIPMAPCOUNT, DDRAW_dump_DWORD, dwMipMapCount),
|
||||||
ME(DDSD_ZBUFFERBITDEPTH, DDRAW_dump_DWORD, u2 /* dwZBufferBitDepth */), /* This is for 'old-style' D3D */
|
ME(DDSD_REFRESHRATE, DDRAW_dump_DWORD, dwRefreshRate),
|
||||||
ME(DDSD_REFRESHRATE, DDRAW_dump_DWORD, u2 /* dwRefreshRate */),
|
|
||||||
ME(DDSD_ALPHABITDEPTH, DDRAW_dump_DWORD, dwAlphaBitDepth),
|
ME(DDSD_ALPHABITDEPTH, DDRAW_dump_DWORD, dwAlphaBitDepth),
|
||||||
ME(DDSD_LPSURFACE, DDRAW_dump_PTR, lpSurface),
|
ME(DDSD_LPSURFACE, DDRAW_dump_PTR, lpSurface),
|
||||||
ME(DDSD_CKDESTOVERLAY, DDRAW_dump_DDCOLORKEY, u3 /* ddckCKDestOverlay */),
|
ME(DDSD_CKDESTOVERLAY, DDRAW_dump_DDCOLORKEY, ddckCKDestOverlay),
|
||||||
ME(DDSD_CKDESTBLT, DDRAW_dump_DDCOLORKEY, ddckCKDestBlt),
|
ME(DDSD_CKDESTBLT, DDRAW_dump_DDCOLORKEY, ddckCKDestBlt),
|
||||||
ME(DDSD_CKSRCOVERLAY, DDRAW_dump_DDCOLORKEY, ddckCKSrcOverlay),
|
ME(DDSD_CKSRCOVERLAY, DDRAW_dump_DDCOLORKEY, ddckCKSrcOverlay),
|
||||||
ME(DDSD_CKSRCBLT, DDRAW_dump_DDCOLORKEY, ddckCKSrcBlt),
|
ME(DDSD_CKSRCBLT, DDRAW_dump_DDCOLORKEY, ddckCKSrcBlt),
|
||||||
ME(DDSD_PIXELFORMAT, DDRAW_dump_pixelformat, u4 /* ddpfPixelFormat */)
|
ME(DDSD_PIXELFORMAT, DDRAW_dump_pixelformat, ddpfPixelFormat)
|
||||||
};
|
};
|
||||||
static const struct member_info members_caps[] =
|
static const struct member_info members_caps[] =
|
||||||
{
|
{
|
||||||
|
@ -952,7 +951,7 @@ void DDRAW_Convert_DDSCAPS_1_To_2(const DDSCAPS* pIn, DDSCAPS2* pOut)
|
||||||
pOut->dwCaps = pIn->dwCaps;
|
pOut->dwCaps = pIn->dwCaps;
|
||||||
pOut->dwCaps2 = 0;
|
pOut->dwCaps2 = 0;
|
||||||
pOut->dwCaps3 = 0;
|
pOut->dwCaps3 = 0;
|
||||||
pOut->u1.dwCaps4 = 0;
|
pOut->dwCaps4 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DDRAW_Convert_DDDEVICEIDENTIFIER_2_To_1(const DDDEVICEIDENTIFIER2* pIn, DDDEVICEIDENTIFIER* pOut)
|
void DDRAW_Convert_DDDEVICEIDENTIFIER_2_To_1(const DDDEVICEIDENTIFIER2* pIn, DDDEVICEIDENTIFIER* pOut)
|
||||||
|
@ -1210,32 +1209,32 @@ void DDSD_to_DDSD2(const DDSURFACEDESC *in, DDSURFACEDESC2 *out)
|
||||||
out->dwFlags = in->dwFlags & ~DDSD_ZBUFFERBITDEPTH;
|
out->dwFlags = in->dwFlags & ~DDSD_ZBUFFERBITDEPTH;
|
||||||
if (in->dwFlags & DDSD_WIDTH) out->dwWidth = in->dwWidth;
|
if (in->dwFlags & DDSD_WIDTH) out->dwWidth = in->dwWidth;
|
||||||
if (in->dwFlags & DDSD_HEIGHT) out->dwHeight = in->dwHeight;
|
if (in->dwFlags & DDSD_HEIGHT) out->dwHeight = in->dwHeight;
|
||||||
if (in->dwFlags & DDSD_PIXELFORMAT) out->u4.ddpfPixelFormat = in->ddpfPixelFormat;
|
if (in->dwFlags & DDSD_PIXELFORMAT) out->ddpfPixelFormat = in->ddpfPixelFormat;
|
||||||
else if(in->dwFlags & DDSD_ZBUFFERBITDEPTH)
|
else if(in->dwFlags & DDSD_ZBUFFERBITDEPTH)
|
||||||
{
|
{
|
||||||
out->dwFlags |= DDSD_PIXELFORMAT;
|
out->dwFlags |= DDSD_PIXELFORMAT;
|
||||||
memset(&out->u4.ddpfPixelFormat, 0, sizeof(out->u4.ddpfPixelFormat));
|
memset(&out->ddpfPixelFormat, 0, sizeof(out->ddpfPixelFormat));
|
||||||
out->u4.ddpfPixelFormat.dwSize = sizeof(out->u4.ddpfPixelFormat);
|
out->ddpfPixelFormat.dwSize = sizeof(out->ddpfPixelFormat);
|
||||||
out->u4.ddpfPixelFormat.dwFlags = DDPF_ZBUFFER;
|
out->ddpfPixelFormat.dwFlags = DDPF_ZBUFFER;
|
||||||
out->u4.ddpfPixelFormat.u1.dwZBufferBitDepth = in->u2.dwZBufferBitDepth;
|
out->ddpfPixelFormat.dwZBufferBitDepth = in->dwZBufferBitDepth;
|
||||||
/* 0 is not a valid DDSURFACEDESC / DDPIXELFORMAT on either side of the
|
/* 0 is not a valid DDSURFACEDESC / DDPIXELFORMAT on either side of the
|
||||||
* conversion */
|
* conversion */
|
||||||
out->u4.ddpfPixelFormat.u3.dwZBitMask = ~0U >> (32 - in->u2.dwZBufferBitDepth);
|
out->ddpfPixelFormat.dwZBitMask = ~0U >> (32 - in->dwZBufferBitDepth);
|
||||||
}
|
}
|
||||||
/* ddsCaps is read even without DDSD_CAPS set. See dsurface:no_ddsd_caps_test */
|
/* ddsCaps is read even without DDSD_CAPS set. See dsurface:no_ddsd_caps_test */
|
||||||
out->ddsCaps.dwCaps = in->ddsCaps.dwCaps;
|
out->ddsCaps.dwCaps = in->ddsCaps.dwCaps;
|
||||||
if (in->dwFlags & DDSD_PITCH) out->u1.lPitch = in->u1.lPitch;
|
if (in->dwFlags & DDSD_PITCH) out->lPitch = in->lPitch;
|
||||||
if (in->dwFlags & DDSD_BACKBUFFERCOUNT) out->u5.dwBackBufferCount = in->dwBackBufferCount;
|
if (in->dwFlags & DDSD_BACKBUFFERCOUNT) out->dwBackBufferCount = in->dwBackBufferCount;
|
||||||
if (in->dwFlags & DDSD_ALPHABITDEPTH) out->dwAlphaBitDepth = in->dwAlphaBitDepth;
|
if (in->dwFlags & DDSD_ALPHABITDEPTH) out->dwAlphaBitDepth = in->dwAlphaBitDepth;
|
||||||
/* DDraw(native, and wine) does not set the DDSD_LPSURFACE, so always copy */
|
/* DDraw(native, and wine) does not set the DDSD_LPSURFACE, so always copy */
|
||||||
out->lpSurface = in->lpSurface;
|
out->lpSurface = in->lpSurface;
|
||||||
if (in->dwFlags & DDSD_CKDESTOVERLAY) out->u3.ddckCKDestOverlay = in->ddckCKDestOverlay;
|
if (in->dwFlags & DDSD_CKDESTOVERLAY) out->ddckCKDestOverlay = in->ddckCKDestOverlay;
|
||||||
if (in->dwFlags & DDSD_CKDESTBLT) out->ddckCKDestBlt = in->ddckCKDestBlt;
|
if (in->dwFlags & DDSD_CKDESTBLT) out->ddckCKDestBlt = in->ddckCKDestBlt;
|
||||||
if (in->dwFlags & DDSD_CKSRCOVERLAY) out->ddckCKSrcOverlay = in->ddckCKSrcOverlay;
|
if (in->dwFlags & DDSD_CKSRCOVERLAY) out->ddckCKSrcOverlay = in->ddckCKSrcOverlay;
|
||||||
if (in->dwFlags & DDSD_CKSRCBLT) out->ddckCKSrcBlt = in->ddckCKSrcBlt;
|
if (in->dwFlags & DDSD_CKSRCBLT) out->ddckCKSrcBlt = in->ddckCKSrcBlt;
|
||||||
if (in->dwFlags & DDSD_MIPMAPCOUNT) out->u2.dwMipMapCount = in->u2.dwMipMapCount;
|
if (in->dwFlags & DDSD_MIPMAPCOUNT) out->dwMipMapCount = in->dwMipMapCount;
|
||||||
if (in->dwFlags & DDSD_REFRESHRATE) out->u2.dwRefreshRate = in->u2.dwRefreshRate;
|
if (in->dwFlags & DDSD_REFRESHRATE) out->dwRefreshRate = in->dwRefreshRate;
|
||||||
if (in->dwFlags & DDSD_LINEARSIZE) out->u1.dwLinearSize = in->u1.dwLinearSize;
|
if (in->dwFlags & DDSD_LINEARSIZE) out->dwLinearSize = in->dwLinearSize;
|
||||||
/* Does not exist in DDSURFACEDESC:
|
/* Does not exist in DDSURFACEDESC:
|
||||||
* DDSD_TEXTURESTAGE, DDSD_FVF, DDSD_SRCVBHANDLE,
|
* DDSD_TEXTURESTAGE, DDSD_FVF, DDSD_SRCVBHANDLE,
|
||||||
*/
|
*/
|
||||||
|
@ -1253,31 +1252,31 @@ void DDSD2_to_DDSD(const DDSURFACEDESC2 *in, DDSURFACEDESC *out)
|
||||||
if (in->dwFlags & DDSD_HEIGHT) out->dwHeight = in->dwHeight;
|
if (in->dwFlags & DDSD_HEIGHT) out->dwHeight = in->dwHeight;
|
||||||
if (in->dwFlags & DDSD_PIXELFORMAT)
|
if (in->dwFlags & DDSD_PIXELFORMAT)
|
||||||
{
|
{
|
||||||
out->ddpfPixelFormat = in->u4.ddpfPixelFormat;
|
out->ddpfPixelFormat = in->ddpfPixelFormat;
|
||||||
if ((in->dwFlags & DDSD_CAPS) && (in->ddsCaps.dwCaps & DDSCAPS_ZBUFFER))
|
if ((in->dwFlags & DDSD_CAPS) && (in->ddsCaps.dwCaps & DDSCAPS_ZBUFFER))
|
||||||
{
|
{
|
||||||
/* Z buffers have DDSD_ZBUFFERBITDEPTH set, but not DDSD_PIXELFORMAT. They do
|
/* Z buffers have DDSD_ZBUFFERBITDEPTH set, but not DDSD_PIXELFORMAT. They do
|
||||||
* have valid data in ddpfPixelFormat though */
|
* have valid data in ddpfPixelFormat though */
|
||||||
out->dwFlags &= ~DDSD_PIXELFORMAT;
|
out->dwFlags &= ~DDSD_PIXELFORMAT;
|
||||||
out->dwFlags |= DDSD_ZBUFFERBITDEPTH;
|
out->dwFlags |= DDSD_ZBUFFERBITDEPTH;
|
||||||
out->u2.dwZBufferBitDepth = in->u4.ddpfPixelFormat.u1.dwZBufferBitDepth;
|
out->dwZBufferBitDepth = in->ddpfPixelFormat.dwZBufferBitDepth;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* ddsCaps is read even without DDSD_CAPS set. See dsurface:no_ddsd_caps_test */
|
/* ddsCaps is read even without DDSD_CAPS set. See dsurface:no_ddsd_caps_test */
|
||||||
out->ddsCaps.dwCaps = in->ddsCaps.dwCaps;
|
out->ddsCaps.dwCaps = in->ddsCaps.dwCaps;
|
||||||
if (in->dwFlags & DDSD_PITCH) out->u1.lPitch = in->u1.lPitch;
|
if (in->dwFlags & DDSD_PITCH) out->lPitch = in->lPitch;
|
||||||
if (in->dwFlags & DDSD_BACKBUFFERCOUNT) out->dwBackBufferCount = in->u5.dwBackBufferCount;
|
if (in->dwFlags & DDSD_BACKBUFFERCOUNT) out->dwBackBufferCount = in->dwBackBufferCount;
|
||||||
if (in->dwFlags & DDSD_ZBUFFERBITDEPTH) out->u2.dwZBufferBitDepth = in->u2.dwMipMapCount; /* same union */
|
if (in->dwFlags & DDSD_ZBUFFERBITDEPTH) out->dwZBufferBitDepth = in->dwMipMapCount; /* same union */
|
||||||
if (in->dwFlags & DDSD_ALPHABITDEPTH) out->dwAlphaBitDepth = in->dwAlphaBitDepth;
|
if (in->dwFlags & DDSD_ALPHABITDEPTH) out->dwAlphaBitDepth = in->dwAlphaBitDepth;
|
||||||
/* DDraw(native, and wine) does not set the DDSD_LPSURFACE, so always copy */
|
/* DDraw(native, and wine) does not set the DDSD_LPSURFACE, so always copy */
|
||||||
out->lpSurface = in->lpSurface;
|
out->lpSurface = in->lpSurface;
|
||||||
if (in->dwFlags & DDSD_CKDESTOVERLAY) out->ddckCKDestOverlay = in->u3.ddckCKDestOverlay;
|
if (in->dwFlags & DDSD_CKDESTOVERLAY) out->ddckCKDestOverlay = in->ddckCKDestOverlay;
|
||||||
if (in->dwFlags & DDSD_CKDESTBLT) out->ddckCKDestBlt = in->ddckCKDestBlt;
|
if (in->dwFlags & DDSD_CKDESTBLT) out->ddckCKDestBlt = in->ddckCKDestBlt;
|
||||||
if (in->dwFlags & DDSD_CKSRCOVERLAY) out->ddckCKSrcOverlay = in->ddckCKSrcOverlay;
|
if (in->dwFlags & DDSD_CKSRCOVERLAY) out->ddckCKSrcOverlay = in->ddckCKSrcOverlay;
|
||||||
if (in->dwFlags & DDSD_CKSRCBLT) out->ddckCKSrcBlt = in->ddckCKSrcBlt;
|
if (in->dwFlags & DDSD_CKSRCBLT) out->ddckCKSrcBlt = in->ddckCKSrcBlt;
|
||||||
if (in->dwFlags & DDSD_MIPMAPCOUNT) out->u2.dwMipMapCount = in->u2.dwMipMapCount;
|
if (in->dwFlags & DDSD_MIPMAPCOUNT) out->dwMipMapCount = in->dwMipMapCount;
|
||||||
if (in->dwFlags & DDSD_REFRESHRATE) out->u2.dwRefreshRate = in->u2.dwRefreshRate;
|
if (in->dwFlags & DDSD_REFRESHRATE) out->dwRefreshRate = in->dwRefreshRate;
|
||||||
if (in->dwFlags & DDSD_LINEARSIZE) out->u1.dwLinearSize = in->u1.dwLinearSize;
|
if (in->dwFlags & DDSD_LINEARSIZE) out->dwLinearSize = in->dwLinearSize;
|
||||||
/* Does not exist in DDSURFACEDESC:
|
/* Does not exist in DDSURFACEDESC:
|
||||||
* DDSD_TEXTURESTAGE, DDSD_FVF, DDSD_SRCVBHANDLE,
|
* DDSD_TEXTURESTAGE, DDSD_FVF, DDSD_SRCVBHANDLE,
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -544,9 +544,9 @@ static HRESULT WINAPI d3d_viewport_TransformVertices(IDirect3DViewport3 *iface,
|
||||||
{
|
{
|
||||||
/* If clipping is enabled, Windows assumes that outH is
|
/* If clipping is enabled, Windows assumes that outH is
|
||||||
* a valid pointer. */
|
* a valid pointer. */
|
||||||
outH[i].u1.hx = (x - device->legacy_clipspace._41 * w) / device->legacy_clipspace._11;
|
outH[i].hx = (x - device->legacy_clipspace._41 * w) / device->legacy_clipspace._11;
|
||||||
outH[i].u2.hy = (y - device->legacy_clipspace._42 * w) / device->legacy_clipspace._22;
|
outH[i].hy = (y - device->legacy_clipspace._42 * w) / device->legacy_clipspace._22;
|
||||||
outH[i].u3.hz = (z - device->legacy_clipspace._43 * w) / device->legacy_clipspace._33;
|
outH[i].hz = (z - device->legacy_clipspace._43 * w) / device->legacy_clipspace._33;
|
||||||
|
|
||||||
outH[i].dwFlags = 0;
|
outH[i].dwFlags = 0;
|
||||||
if (x > w)
|
if (x > w)
|
||||||
|
@ -635,8 +635,8 @@ static HRESULT WINAPI d3d_viewport_SetBackground(IDirect3DViewport3 *iface, D3DM
|
||||||
}
|
}
|
||||||
|
|
||||||
TRACE("Setting background color : %.8e %.8e %.8e %.8e.\n",
|
TRACE("Setting background color : %.8e %.8e %.8e %.8e.\n",
|
||||||
m->mat.u.diffuse.u1.r, m->mat.u.diffuse.u2.g,
|
m->mat.diffuse.r, m->mat.diffuse.g,
|
||||||
m->mat.u.diffuse.u3.b, m->mat.u.diffuse.u4.a);
|
m->mat.diffuse.b, m->mat.diffuse.a);
|
||||||
viewport->background = m;
|
viewport->background = m;
|
||||||
|
|
||||||
wined3d_mutex_unlock();
|
wined3d_mutex_unlock();
|
||||||
|
@ -762,10 +762,10 @@ static HRESULT WINAPI d3d_viewport_Clear(IDirect3DViewport3 *iface,
|
||||||
if (!This->background)
|
if (!This->background)
|
||||||
WARN("No background material set.\n");
|
WARN("No background material set.\n");
|
||||||
else
|
else
|
||||||
color = D3DRGBA(This->background->mat.u.diffuse.u1.r,
|
color = D3DRGBA(This->background->mat.diffuse.r,
|
||||||
This->background->mat.u.diffuse.u2.g,
|
This->background->mat.diffuse.g,
|
||||||
This->background->mat.u.diffuse.u3.b,
|
This->background->mat.diffuse.b,
|
||||||
This->background->mat.u.diffuse.u4.a);
|
This->background->mat.diffuse.a);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Need to temporarily activate the viewport to clear it. The previously
|
/* Need to temporarily activate the viewport to clear it. The previously
|
||||||
|
|
Loading…
Reference in a new issue