25 #include "wine/port.h" 328 TRACE(
"Returning: ");
335 TRACE(
"Convert a DirectDraw Pixelformat to a WineD3D Pixelformat\n");
347 FIXME(
"DDPF_PALETTEINDEXED1 to DDPF_PALETTEINDEXED4 are not supported by WineD3D (yet). Returning WINED3DFMT_P8\n");
360 if( (DDPixelFormat->u2.
dwRBitMask == 0xF800) &&
367 if( (DDPixelFormat->u2.
dwRBitMask == 0x7C00) &&
378 if( (DDPixelFormat->u2.
dwRBitMask == 0x0F00) &&
397 WARN(
"16 bit RGB Pixel format does not match.\n");
405 if( (DDPixelFormat->u2.
dwRBitMask == 0x00FF0000) &&
406 (DDPixelFormat->u3.
dwGBitMask == 0x0000FF00) &&
407 (DDPixelFormat->u4.
dwBBitMask == 0x000000FF) )
416 WARN(
"32 bit RGB pixel format does not match.\n");
420 WARN(
"Invalid dwRGBBitCount in Pixelformat structure.\n");
433 WARN(
"Invalid AlphaBitDepth in Alpha-Only Pixelformat.\n");
448 WARN(
"Unknown Alpha / Luminance bit depth combination.\n");
452 FIXME(
"A luminance Pixelformat shouldn't have 6 luminance bits. Returning D3DFMT_L6V5U5 for now.\n");
458 WARN(
"Unknown Alpha / Lumincase bit depth combination.\n");
468 FIXME(
"A luminance Pixelformat shouldn't have 6 luminance bits. Returning D3DFMT_L6V5U5 for now.\n");
489 WARN(
"Unknown depth stencil format: 16 z bits, %u stencil bits.\n",
496 WARN(
"Unknown depth stencil format: 32 z bits, %u stencil bits.\n",
501 WARN(
"Unknown depth stencil format: %u z bits, %u stencil bits.\n",
520 WARN(
"Unknown depth-only format: 32 z bits, mask 0x%08x\n",
525 WARN(
"Unknown depth-only format: %u z bits, mask 0x%08x\n",
560 WARN(
"Unknown Pixelformat.\n");
570 unsigned int wined3d_flags;
572 wined3d_flags =
flags & handled;
586 return wined3d_flags;
593 return (
float)(colour &
mask) / (
float)
mask;
605 wined3d_colour->
r = 0.0f;
606 wined3d_colour->
g = 0.0f;
607 wined3d_colour->
b = 0.0f;
614 WARN(
"FourCC formats not supported.\n");
625 wined3d_colour->
r = 0.0f;
626 wined3d_colour->
g = 0.0f;
627 wined3d_colour->
b = 0.0f;
631 wined3d_colour->
r =
entry.peRed / 255.0f;
632 wined3d_colour->
g =
entry.peGreen / 255.0f;
633 wined3d_colour->
b =
entry.peBlue / 255.0f;
635 wined3d_colour->
a = colour / 255.0f;
647 wined3d_colour->
a = 0.0f;
657 wined3d_colour->
g = 0.0f;
658 wined3d_colour->
b = 0.0f;
659 wined3d_colour->
a = 0.0f;
663 FIXME(
"Unhandled pixel format.\n");
667 wined3d_colour->
r = 0.0f;
668 wined3d_colour->
g = 0.0f;
669 wined3d_colour->
b = 0.0f;
670 wined3d_colour->
a = 0.0f;
689 TRACE(
"%p\n", *((
const void *
const*)
in));
694 TRACE(
"Low : 0x%08x - High : 0x%08x\n", ddck->dwColorSpaceLowValue, ddck->dwColorSpaceHighValue);
816 for (
i=0;
i < num_mems;
i++)
832 TRACE(
", dwFourCC code '%c%c%c%c' (0x%08x) - %u bits per pixel",
833 (
unsigned char)( pf->
dwFourCC &0xff),
834 (
unsigned char)((pf->
dwFourCC>> 8)&0xff),
835 (
unsigned char)((pf->
dwFourCC>>16)&0xff),
836 (
unsigned char)((pf->
dwFourCC>>24)&0xff),
841 TRACE(
", RGB bits: %u, R 0x%08x G 0x%08x B 0x%08x",
856 TRACE(
", Bump bits: %u, U 0x%08x V 0x%08x L 0x%08x",
866 #define STRUCT DDSURFACEDESC2 941 default:
ERR(
"Unexpected position mask\n");
965 memcpy(pOut, pIn,
sizeof(*pOut));
1027 static const struct flag_info flags2[] =
1055 static const struct flag_info flags3[] =
1077 static const struct flag_info flags4[] =
1108 static const struct flag_info flags5[] =
1121 static const struct flag_info flags6[] =
1135 static const struct flag_info flags7[] =
1144 TRACE(
" - dwSize : %d\n", lpcaps->dwSize);
1153 TRACE(
" - dwNumFourCCCodes : %d\n", lpcaps->dwNumFourCCCodes);
1154 TRACE(
" - dwCurrVisibleOverlays : %d\n", lpcaps->dwCurrVisibleOverlays);
1155 TRACE(
" - dwMinOverlayStretch : %d\n", lpcaps->dwMinOverlayStretch);
1156 TRACE(
" - dwMaxOverlayStretch : %d\n", lpcaps->dwMaxOverlayStretch);
1224 out->dwSize =
sizeof(*out);
1232 memset(&
out->u4.ddpfPixelFormat, 0,
sizeof(
out->u4.ddpfPixelFormat));
1233 out->u4.ddpfPixelFormat.dwSize =
sizeof(
out->u4.ddpfPixelFormat);
1235 out->u4.ddpfPixelFormat.u1.dwZBufferBitDepth =
in->u2.dwZBufferBitDepth;
1238 out->u4.ddpfPixelFormat.u3.dwZBitMask = ~0
U >> (32 -
in->u2.dwZBufferBitDepth);
1241 out->ddsCaps.dwCaps =
in->ddsCaps.dwCaps;
1246 out->lpSurface =
in->lpSurface;
1265 out->dwSize =
sizeof(*out);
1266 out->dwFlags =
in->dwFlags;
1271 out->ddpfPixelFormat =
in->u4.ddpfPixelFormat;
1278 out->u2.dwZBufferBitDepth =
in->u4.ddpfPixelFormat.u1.dwZBufferBitDepth;
1282 out->ddsCaps.dwCaps =
in->ddsCaps.dwCaps;
1288 out->lpSurface =
in->lpSurface;
1300 if (
in->dwFlags &
DDSD_FVF)
WARN(
"Does not exist in DDSURFACEDESC: DDSD_FVF\n");
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
#define DDFXCAPS_BLTALPHA
#define DDFXCAPS_BLTSHRINKY
#define DDCAPS2_COPYFOURCC
#define WINED3DERR_INVALIDCALL
#define DDSD_CKDESTOVERLAY
void dump_D3DMATRIX(const D3DMATRIX *mat)
#define DDCAPS2_COLORCONTROLPRIMARY
#define DDSCAPS2_HINTSTATIC
void(* func)(const void *)
static void DDRAW_dump_pixelformat_flag(DWORD flagmask)
#define DDCAPS_STEREOVIEW
#define DDFXALPHACAPS_BLTALPHAPIXELS
#define DDFXCAPS_OVERLAYSHRINKX
HRESULT CDECL wined3d_palette_get_entries(const struct wined3d_palette *palette, DWORD flags, DWORD start, DWORD count, PALETTEENTRY *entries)
#define DDPCAPS_INITIALIZE
#define DDFXCAPS_OVERLAYSHRINKXN
#define DDCAPS_ALIGNSIZEDEST
#define DDFXCAPS_OVERLAYSHRINKYN
#define DDFXCAPS_BLTSHRINKXN
void DDRAW_dump_cooperativelevel(DWORD cooplevel)
#define DDCAPS_OVERLAYCANTCLIP
#define DDCAPS2_NONLOCALVIDMEM
#define DDFXCAPS_OVERLAYSTRETCHYN
#define DDSCAPS_WRITEONLY
#define DDCAPS_READSCANLINE
#define DDCAPS2_CANDROPZ16BIT
#define DDFXALPHACAPS_BLTALPHAPIXELSNEG
#define DDSCAPS2_DONOTPERSIST
#define DDPF_BUMPLUMINANCE
#define DDSCAPS2_CUBEMAP_NEGATIVEX
void DDSD2_to_DDSD(const DDSURFACEDESC2 *in, DDSURFACEDESC *out)
#define DDSCAPS_NONLOCALVIDMEM
#define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG
DWORD get_flexible_vertex_size(DWORD d3dvtVertexType)
IN PVOID IN PVOID IN USHORT IN USHORT Size
#define DDCAPS2_CANMANAGETEXTURE
#define DDFXCAPS_BLTSHRINKYN
static float colour_to_float(DWORD colour, DWORD mask)
#define DDPCAPS_PRIMARYSURFACELEFT
#define DDCAPS2_CANFLIPODDEVEN
#define DDPCAPS_PRIMARYSURFACE
#define DDFXCAPS_OVERLAYSHRINKY
#define DDCAPS_BLTSTRETCH
#define DDSCAPS2_D3DTEXTUREMANAGE
#define DDCAPS2_WIDESURFACES
#define DDCAPS2_NONLOCALVIDMEMCAPS
#define DDFXCAPS_OVERLAYMIRRORUPDOWN
#define DDCAPS_BLTCOLORFILL
#define DDSCAPS_LIVEVIDEO
#define DDSCAPS_RESERVED1
#define DDPCAPS_8BITENTRIES
#define DDCKEYCAPS_SRCBLTCLRSPACEYUV
#define DDCAPS_OVERLAYFOURCC
#define GET_TEXCOORD_SIZE_FROM_FVF(d3dvtVertexType, tex_num)
#define DDSCAPS2_STEREOSURFACELEFT
#define DDFXCAPS_BLTROTATION90
void DDRAW_dump_DDSCAPS2(const DDSCAPS2 *in)
#define DDCAPS_BANKSWITCHED
#define DDSCAPS2_MIPMAPSUBLEVEL
#define DDCAPS2_VIDEOPORT
#define DDCAPS_CANCLIPSTRETCHED
#define DDSD_BACKBUFFERCOUNT
#define DDFXCAPS_BLTARITHSTRETCHY
#define DDCAPS2_PRIMARYGAMMA
#define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT
enum wined3d_format_id wined3dformat_from_ddrawformat(const DDPIXELFORMAT *DDPixelFormat)
#define DDCKEYCAPS_DESTBLT
#define D3DFVF_POSITION_MASK
#define DDSVCAPS_RESERVED3
#define DDFXALPHACAPS_BLTALPHAEDGEBLEND
#define DDCAPS_OVERLAYSTRETCH
#define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG
#define DDCAPS_ALIGNBOUNDARYSRC
#define DDSCAPS_VIDEOPORT
#define DDFXALPHACAPS_BLTALPHASURFACESNEG
#define DDSCAPS_SYSTEMMEMORY
#define DDCAPS_ALIGNSTRIDE
#define DDCKEYCAPS_NOCOSTOVERLAY
#define DDFXCAPS_OVERLAYARITHSTRETCHY
#define DDCAPS_BLTDEPTHFILL
#define DDCKEYCAPS_SRCOVERLAY
#define DDSVCAPS_RESERVED2
static void DDRAW_dump_PTR(const void *in)
#define DDSCAPS_FRONTBUFFER
#define DDCAPS2_CANBOBINTERLEAVED
#define DDSD_CKSRCOVERLAY
#define DDCKEYCAPS_DESTOVERLAYCLRSPACE
#define DDCAPS2_FLIPINTERVAL
#define DDCKEYCAPS_SRCOVERLAYYUV
#define DDFXALPHACAPS_OVERLAYALPHAPIXELS
#define DDSCAPS2_TEXTUREMANAGE
#define DDSCL_SETDEVICEWINDOW
#define DDSCAPS_ALLOCONLOAD
#define DDSCAPS_STANDARDVGAMODE
#define DDSCAPS_VIDEOMEMORY
#define DDSCAPS2_HINTANTIALIASING
static const WCHAR dwHeight[]
#define DDFXCAPS_BLTROTATION
#define DDSCAPS_RESERVED2
void ddrawformat_from_wined3dformat(DDPIXELFORMAT *DDPixelFormat, enum wined3d_format_id wined3d_format)
#define DDCKEYCAPS_SRCBLTYUV
#define DDFXCAPS_BLTARITHSTRETCHYN
#define DDCAPS2_CANRENDERWINDOWED
void DDRAW_dump_DDCAPS(const DDCAPS *lpcaps)
#define DDSD_ALPHABITDEPTH
#define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV
#define DDCKEYCAPS_DESTBLTYUV
#define DDSCAPS2_CUBEMAP_POSITIVEX
void DDSD_to_DDSD2(const DDSURFACEDESC *in, DDSURFACEDESC2 *out)
#define DDSCAPS2_CUBEMAP_NEGATIVEZ
#define DDCAPS_ALIGNSIZESRC
#define DDPF_PALETTEINDEXED4
HRESULT hr_ddraw_from_wined3d(HRESULT hr)
#define DDSCL_ALLOWREBOOT
#define DDCAPS_ALIGNBOUNDARYDEST
#define DDPF_PALETTEINDEXED2
#define DDSVCAPS_RESERVED4
#define DDPF_STENCILBUFFER
#define DDSVCAPS_STEREOSEQUENTIAL
#define DDSCAPS2_HARDWAREDEINTERLACE
void DDRAW_dump_surface_desc(const DDSURFACEDESC2 *lpddsd)
static void DDRAW_dump_flags_nolf(DWORD flags, const struct flag_info *names, size_t num_names)
WINE_DEFAULT_DEBUG_CHANNEL(d3dcompiler)
#define DDSCAPS2_HINTDYNAMIC
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define DDCAPS2_TEXMANINNONLOCALVIDMEM
#define DDFXCAPS_BLTSTRETCHXN
#define DDSCAPS2_RESERVED2
#define DDCAPS_NOHARDWARE
#define DDPF_PALETTEINDEXED8
#define WINED3D_MAP_NO_DIRTY_UPDATE
#define DDSCAPS2_CUBEMAP_POSITIVEY
#define DDCKEYCAPS_DESTBLTCLRSPACEYUV
unsigned int wined3dmapflags_from_ddrawmapflags(unsigned int flags)
#define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL
#define DDSCAPS_LOCALVIDMEM
#define WINED3D_MAP_WRITE
#define DDFXCAPS_BLTSTRETCHX
#define DDCAPS_COLORKEYHWASSIST
#define DDSCAPS2_RESERVED1
#define DDFXCAPS_BLTSHRINKX
#define memcpy(s1, s2, n)
static void DDRAW_dump_members(DWORD flags, const void *data, const struct member_info *mems, size_t num_mems)
#define GET_TEXCOUNT_FROM_FVF(d3dvtVertexType)
#define DDFXCAPS_OVERLAYSTRETCHX
#define DDCAPS2_AUTOFLIPOVERLAY
#define DDCKEYCAPS_DESTOVERLAY
BOOL wined3d_colour_from_ddraw_colour(const DDPIXELFORMAT *pf, const struct ddraw_palette *palette, DWORD colour, struct wined3d_color *wined3d_colour)
#define DDFXCAPS_OVERLAYSTRETCHXN
#define DDCAPS_CANBLTSYSMEM
static void DDRAW_dump_pixelformat(const DDPIXELFORMAT *pf)
#define DDSD_ZBUFFERBITDEPTH
#define DDFXALPHACAPS_OVERLAYALPHASURFACES
#define DDFXCAPS_OVERLAYALPHA
#define DDFXCAPS_OVERLAYSTRETCHY
#define DDCAPS2_NO2DDURING3DSCENE
#define DDSCAPS_BACKBUFFER
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
void DDRAW_Convert_DDSCAPS_1_To_2(const DDSCAPS *pIn, DDSCAPS2 *pOut)
#define DDSCL_SETFOCUSWINDOW
#define DDSD_TEXTURESTAGE
#define DDFXCAPS_OVERLAYARITHSTRETCHYN
#define DDFXCAPS_BLTSTRETCHYN
#define DDCKEYCAPS_SRCBLTCLRSPACE
#define DDCKEYCAPS_DESTOVERLAYYUV
#define DDCAPS2_CANCALIBRATEGAMMA
#define DDSCAPS_PRIMARYSURFACE
#define DDPF_PALETTEINDEXED1
#define DDCKEYCAPS_DESTOVERLAYONEACTIVE
#define DDCAPS2_CANBOBHARDWARE
#define DDFXCAPS_BLTMIRRORUPDOWN
#define DDSVCAPS_RESERVED1
#define DDFXCAPS_BLTMIRRORLEFTRIGHT
#define DDCKEYCAPS_SRCOVERLAYCLRSPACE
#define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV
#define DDSCL_NOWINDOWCHANGES
#define DDSCAPS2_CUBEMAP_POSITIVEZ
#define DDSCAPS_PRIMARYSURFACELEFT
#define DDSCAPS_OFFSCREENPLAIN
void DDRAW_Convert_DDDEVICEIDENTIFIER_2_To_1(const DDDEVICEIDENTIFIER2 *pIn, DDDEVICEIDENTIFIER *pOut)
#define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND
#define DDCAPS2_CANBOBNONINTERLEAVED
#define DDLOCK_NOOVERWRITE
#define DDSCAPS_OPTIMIZED
#define DDLOCK_NODIRTYUPDATE
#define DDFXCAPS_BLTSTRETCHY
#define DDCKEYCAPS_SRCOVERLAYONEACTIVE
#define DDCAPS2_FLIPNOVSYNC
#define DDCAPS_PALETTEVSYNC
#define DDLOCK_DISCARDCONTENTS
void multiply_matrix(D3DMATRIX *dest, const D3DMATRIX *src1, const D3DMATRIX *src2)
static void DDRAW_dump_DWORD(const void *in)
#define DDCAPS2_COLORCONTROLOVERLAY
#define DDCAPS2_CERTIFIED
#define DDCAPS2_NOPAGELOCKREQUIRED
#define DDERR_INVALIDPARAMS
static const WCHAR dwWidth[]
#define DDFXALPHACAPS_BLTALPHASURFACES
#define DDCKEYCAPS_SRCBLT
#define DDCKEYCAPS_DESTBLTCLRSPACE
#define DDPF_PALETTEINDEXEDTO8
static void DDRAW_dump_DDSCAPS(const DDSCAPS *in)
static void DDRAW_dump_flags(DWORD flags, const struct flag_info *names, size_t num_names)
#define DDSCL_CREATEDEVICEWINDOW
static void DDRAW_dump_DDCOLORKEY(const DDCOLORKEY *ddck)
#define DDSCAPS2_CUBEMAP_NEGATIVEY