ReactOS 0.4.17-dev-966-gf06eace
utils.c File Reference
#include "ddraw_private.h"
Include dependency graph for utils.c:

Go to the source code of this file.

Macros

#define STRUCT   DDSURFACEDESC2
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (ddraw)
 
static void DDRAW_dump_pixelformat (const DDPIXELFORMAT *pf)
 
void ddrawformat_from_wined3dformat (DDPIXELFORMAT *DDPixelFormat, enum wined3d_format_id wined3d_format)
 
enum wined3d_format_id wined3dformat_from_ddrawformat (const DDPIXELFORMAT *DDPixelFormat)
 
unsigned int wined3dmapflags_from_ddrawmapflags (unsigned int flags)
 
static float colour_to_float (DWORD colour, DWORD mask)
 
BOOL wined3d_colour_from_ddraw_colour (const DDPIXELFORMAT *pf, const struct ddraw_palette *palette, DWORD colour, struct wined3d_color *wined3d_colour)
 
static void DDRAW_dump_DWORD (const void *in)
 
static void DDRAW_dump_PTR (const void *in)
 
static void DDRAW_dump_DDCOLORKEY (const DDCOLORKEY *ddck)
 
static void DDRAW_dump_flags_nolf (DWORD flags, const struct flag_info *names, size_t num_names)
 
static void DDRAW_dump_flags (DWORD flags, const struct flag_info *names, size_t num_names)
 
void DDRAW_dump_DDSCAPS2 (const DDSCAPS2 *in)
 
static void DDRAW_dump_DDSCAPS (const DDSCAPS *in)
 
static void DDRAW_dump_pixelformat_flag (DWORD flagmask)
 
static void DDRAW_dump_members (DWORD flags, const void *data, const struct member_info *mems, size_t num_mems)
 
void DDRAW_dump_surface_desc (const DDSURFACEDESC2 *lpddsd)
 
void dump_D3DMATRIX (const D3DMATRIX *mat)
 
DWORD get_flexible_vertex_size (DWORD d3dvtVertexType)
 
void DDRAW_Convert_DDSCAPS_1_To_2 (const DDSCAPS *pIn, DDSCAPS2 *pOut)
 
void DDRAW_Convert_DDDEVICEIDENTIFIER_2_To_1 (const DDDEVICEIDENTIFIER2 *pIn, DDDEVICEIDENTIFIER *pOut)
 
void DDRAW_dump_cooperativelevel (DWORD cooplevel)
 
void DDRAW_dump_DDCAPS (const DDCAPS *lpcaps)
 
void multiply_matrix (struct wined3d_matrix *dst, const struct wined3d_matrix *src1, const struct wined3d_matrix *src2)
 
HRESULT hr_ddraw_from_wined3d (HRESULT hr)
 
void DDSD_to_DDSD2 (const DDSURFACEDESC *in, DDSURFACEDESC2 *out)
 
void DDSD2_to_DDSD (const DDSURFACEDESC2 *in, DDSURFACEDESC *out)
 

Macro Definition Documentation

◆ STRUCT

#define STRUCT   DDSURFACEDESC2

Function Documentation

◆ colour_to_float()

static float colour_to_float ( DWORD  colour,
DWORD  mask 
)
static

Definition at line 586 of file utils.c.

587{
588 if (!mask)
589 return 0.0f;
590 return (float)(colour & mask) / (float)mask;
591}
GLenum GLint GLuint mask
Definition: glext.h:6028

Referenced by wined3d_colour_from_ddraw_colour().

◆ DDRAW_Convert_DDDEVICEIDENTIFIER_2_To_1()

void DDRAW_Convert_DDDEVICEIDENTIFIER_2_To_1 ( const DDDEVICEIDENTIFIER2 *  pIn,
DDDEVICEIDENTIFIER *  pOut 
)

Definition at line 953 of file utils.c.

954{
955 /* 2 adds a dwWHQLLevel field to the end. Both structures are
956 * unversioned. */
957 memcpy(pOut, pIn, sizeof(*pOut));
958}
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878

Referenced by ddraw4_GetDeviceIdentifier().

◆ DDRAW_Convert_DDSCAPS_1_To_2()

void DDRAW_Convert_DDSCAPS_1_To_2 ( const DDSCAPS *  pIn,
DDSCAPS2 *  pOut 
)

Definition at line 943 of file utils.c.

944{
945 /* 2 adds three additional caps fields to the end. Both versions
946 * are unversioned. */
947 pOut->dwCaps = pIn->dwCaps;
948 pOut->dwCaps2 = 0;
949 pOut->dwCaps3 = 0;
950 pOut->dwCaps4 = 0;
951}
DWORD dwCaps4
Definition: ddraw.h:739
DWORD dwCaps3
Definition: ddraw.h:736
DWORD dwCaps2
Definition: ddraw.h:735
DWORD dwCaps
Definition: ddraw.h:734
DWORD dwCaps
Definition: ddraw.h:729

Referenced by ddraw2_GetAvailableVidMem().

◆ DDRAW_dump_cooperativelevel()

void DDRAW_dump_cooperativelevel ( DWORD  cooplevel)

Definition at line 960 of file utils.c.

961{
962 static const struct flag_info flags[] =
963 {
973 };
974
975 if (TRACE_ON(ddraw))
976 {
977 TRACE(" - ");
979 }
980}
#define ARRAY_SIZE(A)
Definition: main.h:20
#define FE(x)
static void DDRAW_dump_flags(DWORD flags, const struct flag_info *names, size_t num_names)
Definition: utils.c:704
#define TRACE_ON(x)
Definition: compat.h:75
GLbitfield flags
Definition: glext.h:7161
#define DDSCL_SETDEVICEWINDOW
Definition: ddraw.h:541
#define DDSCL_SETFOCUSWINDOW
Definition: ddraw.h:540
#define DDSCL_NORMAL
Definition: ddraw.h:537
#define DDSCL_EXCLUSIVE
Definition: ddraw.h:538
#define DDSCL_ALLOWREBOOT
Definition: ddraw.h:535
#define DDSCL_CREATEDEVICEWINDOW
Definition: ddraw.h:542
#define DDSCL_NOWINDOWCHANGES
Definition: ddraw.h:536
#define DDSCL_ALLOWMODEX
Definition: ddraw.h:539
#define DDSCL_FULLSCREEN
Definition: ddraw.h:534
#define TRACE(s)
Definition: solgame.cpp:4

Referenced by ddraw_set_cooperative_level().

◆ DDRAW_dump_DDCAPS()

void DDRAW_dump_DDCAPS ( const DDCAPS *  lpcaps)

Definition at line 982 of file utils.c.

983{
984 static const struct flag_info flags1[] =
985 {
986 FE(DDCAPS_3D),
992 FE(DDCAPS_BLT),
996 FE(DDCAPS_GDI),
1005 FE(DDCAPS_VBI),
1018 };
1019 static const struct flag_info flags2[] =
1020 {
1046 };
1047 static const struct flag_info flags3[] =
1048 {
1068 };
1069 static const struct flag_info flags4[] =
1070 {
1099 };
1100 static const struct flag_info flags5[] =
1101 {
1112 };
1113 static const struct flag_info flags6[] =
1114 {
1126 };
1127 static const struct flag_info flags7[] =
1128 {
1134 };
1135
1136 TRACE(" - dwSize : %lu\n", lpcaps->dwSize);
1137 TRACE(" - dwCaps : "); DDRAW_dump_flags(lpcaps->dwCaps, flags1, ARRAY_SIZE(flags1));
1138 TRACE(" - dwCaps2 : "); DDRAW_dump_flags(lpcaps->dwCaps2, flags2, ARRAY_SIZE(flags2));
1139 TRACE(" - dwCKeyCaps : "); DDRAW_dump_flags(lpcaps->dwCKeyCaps, flags3, ARRAY_SIZE(flags3));
1140 TRACE(" - dwFXCaps : "); DDRAW_dump_flags(lpcaps->dwFXCaps, flags4, ARRAY_SIZE(flags4));
1141 TRACE(" - dwFXAlphaCaps : "); DDRAW_dump_flags(lpcaps->dwFXAlphaCaps, flags5, ARRAY_SIZE(flags5));
1142 TRACE(" - dwPalCaps : "); DDRAW_dump_flags(lpcaps->dwPalCaps, flags6, ARRAY_SIZE(flags6));
1143 TRACE(" - dwSVCaps : "); DDRAW_dump_flags(lpcaps->dwSVCaps, flags7, ARRAY_SIZE(flags7));
1144 TRACE("...\n");
1145 TRACE(" - dwNumFourCCCodes : %lu\n", lpcaps->dwNumFourCCCodes);
1146 TRACE(" - dwCurrVisibleOverlays : %lu\n", lpcaps->dwCurrVisibleOverlays);
1147 TRACE(" - dwMinOverlayStretch : %lu\n", lpcaps->dwMinOverlayStretch);
1148 TRACE(" - dwMaxOverlayStretch : %lu\n", lpcaps->dwMaxOverlayStretch);
1149 TRACE("...\n");
1150 TRACE(" - ddsCaps : "); DDRAW_dump_DDSCAPS2(&lpcaps->ddsCaps);
1151}
void DDRAW_dump_DDSCAPS2(const DDSCAPS2 *in)
Definition: utils.c:710
#define DDSVCAPS_RESERVED4
Definition: ddraw.h:442
#define DDFXCAPS_OVERLAYSHRINKXN
Definition: ddraw.h:425
#define DDCKEYCAPS_DESTBLTCLRSPACEYUV
Definition: ddraw.h:485
#define DDPCAPS_PRIMARYSURFACE
Definition: ddraw.h:458
#define DDCKEYCAPS_SRCBLTCLRSPACEYUV
Definition: ddraw.h:494
#define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL
Definition: ddraw.h:388
#define DDCAPS_OVERLAYSTRETCH
Definition: ddraw.h:345
#define DDFXALPHACAPS_BLTALPHASURFACES
Definition: ddraw.h:397
#define DDCAPS_3D
Definition: ddraw.h:331
#define DDFXALPHACAPS_BLTALPHAPIXELS
Definition: ddraw.h:395
#define DDFXCAPS_BLTSHRINKYN
Definition: ddraw.h:418
#define DDCAPS_BLT
Definition: ddraw.h:337
#define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG
Definition: ddraw.h:403
#define DDCAPS_ALIGNBOUNDARYSRC
Definition: ddraw.h:334
#define DDCAPS2_CANDROPZ16BIT
Definition: ddraw.h:372
#define DDCAPS_BLTDEPTHFILL
Definition: ddraw.h:359
#define DDCAPS2_FLIPINTERVAL
Definition: ddraw.h:383
#define DDCKEYCAPS_DESTBLT
Definition: ddraw.h:483
#define DDCKEYCAPS_SRCOVERLAYYUV
Definition: ddraw.h:500
#define DDCKEYCAPS_SRCBLTYUV
Definition: ddraw.h:495
#define DDSVCAPS_RESERVED3
Definition: ddraw.h:441
#define DDFXCAPS_BLTSHRINKX
Definition: ddraw.h:415
#define DDCAPS_ALIGNBOUNDARYDEST
Definition: ddraw.h:332
#define DDCAPS2_FLIPNOVSYNC
Definition: ddraw.h:384
#define DDCAPS_PALETTE
Definition: ddraw.h:346
#define DDPCAPS_VSYNC
Definition: ddraw.h:461
#define DDCAPS_OVERLAY
Definition: ddraw.h:342
#define DDFXALPHACAPS_OVERLAYALPHAPIXELS
Definition: ddraw.h:400
#define DDCAPS2_PRIMARYGAMMA
Definition: ddraw.h:380
#define DDCKEYCAPS_DESTOVERLAY
Definition: ddraw.h:487
#define DDCAPS_BLTQUEUE
Definition: ddraw.h:338
#define DDCAPS2_COLORCONTROLOVERLAY
Definition: ddraw.h:370
#define DDFXCAPS_OVERLAYARITHSTRETCHY
Definition: ddraw.h:423
#define DDPCAPS_ALLOW256
Definition: ddraw.h:460
#define DDCAPS2_CANRENDERWINDOWED
Definition: ddraw.h:381
#define DDCAPS_STEREOVIEW
Definition: ddraw.h:65
#define DDSVCAPS_RESERVED1
Definition: ddraw.h:439
#define DDCKEYCAPS_DESTBLTCLRSPACE
Definition: ddraw.h:484
#define DDCAPS2_NONLOCALVIDMEM
Definition: ddraw.h:373
#define DDCKEYCAPS_SRCOVERLAY
Definition: ddraw.h:496
#define DDPCAPS_8BITENTRIES
Definition: ddraw.h:456
#define DDFXCAPS_BLTSTRETCHYN
Definition: ddraw.h:422
#define DDFXCAPS_BLTMIRRORLEFTRIGHT
Definition: ddraw.h:411
#define DDFXCAPS_OVERLAYARITHSTRETCHYN
Definition: ddraw.h:408
#define DDCAPS_ALPHA
Definition: ddraw.h:354
#define DDCAPS_CANBLTSYSMEM
Definition: ddraw.h:362
#define DDCAPS_READSCANLINE
Definition: ddraw.h:348
#define DDFXCAPS_BLTMIRRORUPDOWN
Definition: ddraw.h:412
#define DDFXCAPS_OVERLAYSTRETCHXN
Definition: ddraw.h:429
#define DDCAPS2_CERTIFIED
Definition: ddraw.h:364
#define DDSVCAPS_STEREOSEQUENTIAL
Definition: ddraw.h:452
#define DDCAPS_OVERLAYFOURCC
Definition: ddraw.h:344
#define DDCAPS2_COLORCONTROLPRIMARY
Definition: ddraw.h:371
#define DDCKEYCAPS_DESTOVERLAYCLRSPACE
Definition: ddraw.h:488
#define DDCAPS2_NONLOCALVIDMEMCAPS
Definition: ddraw.h:374
#define DDCAPS_BLTSTRETCH
Definition: ddraw.h:340
#define DDFXCAPS_OVERLAYSHRINKX
Definition: ddraw.h:424
#define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV
Definition: ddraw.h:498
#define DDFXCAPS_BLTSTRETCHXN
Definition: ddraw.h:420
#define DDFXALPHACAPS_OVERLAYALPHASURFACES
Definition: ddraw.h:402
#define DDCAPS_ALIGNSIZESRC
Definition: ddraw.h:335
#define DDCKEYCAPS_SRCBLT
Definition: ddraw.h:492
#define DDFXCAPS_BLTSTRETCHY
Definition: ddraw.h:421
#define DDCKEYCAPS_SRCOVERLAYONEACTIVE
Definition: ddraw.h:499
#define DDCAPS_OVERLAYCANTCLIP
Definition: ddraw.h:343
#define DDCAPS_CANCLIPSTRETCHED
Definition: ddraw.h:361
#define DDCAPS_ZBLTS
Definition: ddraw.h:351
#define DDFXCAPS_BLTARITHSTRETCHY
Definition: ddraw.h:409
#define DDCAPS2_CANBOBINTERLEAVED
Definition: ddraw.h:368
#define DDFXCAPS_BLTARITHSTRETCHYN
Definition: ddraw.h:410
#define DDCAPS_BANKSWITCHED
Definition: ddraw.h:358
#define DDPCAPS_1BIT
Definition: ddraw.h:462
#define DDCAPS2_CANBOBNONINTERLEAVED
Definition: ddraw.h:369
#define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND
Definition: ddraw.h:399
#define DDCAPS_GDI
Definition: ddraw.h:341
#define DDFXCAPS_BLTSHRINKXN
Definition: ddraw.h:416
#define DDCAPS_VBI
Definition: ddraw.h:350
#define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG
Definition: ddraw.h:401
#define DDCAPS2_CANCALIBRATEGAMMA
Definition: ddraw.h:382
#define DDCKEYCAPS_DESTOVERLAYONEACTIVE
Definition: ddraw.h:490
#define DDCAPS_CANCLIP
Definition: ddraw.h:360
#define DDPCAPS_2BIT
Definition: ddraw.h:463
#define DDCAPS_BLTCOLORFILL
Definition: ddraw.h:357
#define DDSVCAPS_RESERVED2
Definition: ddraw.h:440
#define DDFXCAPS_OVERLAYMIRRORUPDOWN
Definition: ddraw.h:433
#define DDCAPS2_WIDESURFACES
Definition: ddraw.h:376
#define DDCAPS2_COPYFOURCC
Definition: ddraw.h:379
#define DDFXCAPS_BLTSTRETCHX
Definition: ddraw.h:419
#define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT
Definition: ddraw.h:432
#define DDCAPS_ALIGNSTRIDE
Definition: ddraw.h:336
#define DDPCAPS_8BIT
Definition: ddraw.h:457
#define DDFXALPHACAPS_BLTALPHAEDGEBLEND
Definition: ddraw.h:394
#define DDCKEYCAPS_DESTBLTYUV
Definition: ddraw.h:486
#define DDCAPS2_AUTOFLIPOVERLAY
Definition: ddraw.h:367
#define DDFXCAPS_OVERLAYSTRETCHY
Definition: ddraw.h:430
#define DDFXCAPS_BLTROTATION90
Definition: ddraw.h:414
#define DDFXCAPS_OVERLAYALPHA
Definition: ddraw.h:407
#define DDCAPS_COLORKEY
Definition: ddraw.h:353
#define DDFXCAPS_OVERLAYSTRETCHX
Definition: ddraw.h:428
#define DDCAPS2_CANFLIPODDEVEN
Definition: ddraw.h:377
#define DDCAPS_NOHARDWARE
Definition: ddraw.h:356
#define DDCAPS_BLTFOURCC
Definition: ddraw.h:339
#define DDPCAPS_PRIMARYSURFACELEFT
Definition: ddraw.h:459
#define DDCKEYCAPS_DESTOVERLAYYUV
Definition: ddraw.h:491
#define DDPCAPS_ALPHA
Definition: ddraw.h:464
#define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV
Definition: ddraw.h:489
#define DDCAPS2_STEREO
Definition: ddraw.h:387
#define DDFXCAPS_OVERLAYSTRETCHYN
Definition: ddraw.h:431
#define DDCKEYCAPS_SRCOVERLAYCLRSPACE
Definition: ddraw.h:497
#define DDCAPS_ALIGNSIZEDEST
Definition: ddraw.h:333
#define DDFXALPHACAPS_BLTALPHAPIXELSNEG
Definition: ddraw.h:396
#define DDFXCAPS_BLTROTATION
Definition: ddraw.h:413
#define DDFXALPHACAPS_BLTALPHASURFACESNEG
Definition: ddraw.h:398
#define DDCKEYCAPS_SRCBLTCLRSPACE
Definition: ddraw.h:493
#define DDCAPS2_TEXMANINNONLOCALVIDMEM
Definition: ddraw.h:386
#define DDCAPS2_NOPAGELOCKREQUIRED
Definition: ddraw.h:375
#define DDFXCAPS_OVERLAYSHRINKYN
Definition: ddraw.h:427
#define DDCAPS2_CANBOBHARDWARE
Definition: ddraw.h:378
#define DDCAPS2_CANMANAGETEXTURE
Definition: ddraw.h:385
#define DDFXCAPS_BLTSHRINKY
Definition: ddraw.h:417
#define DDPCAPS_INITIALIZE
Definition: ddraw.h:454
#define DDCKEYCAPS_NOCOSTOVERLAY
Definition: ddraw.h:501
#define DDFXCAPS_OVERLAYSHRINKY
Definition: ddraw.h:426
#define DDCAPS_ZOVERLAYS
Definition: ddraw.h:352
#define DDCAPS_COLORKEYHWASSIST
Definition: ddraw.h:355
#define DDCAPS2_VIDEOPORT
Definition: ddraw.h:366
#define DDCAPS2_NO2DDURING3DSCENE
Definition: ddraw.h:365
#define DDCAPS_PALETTEVSYNC
Definition: ddraw.h:347
#define DDPCAPS_4BIT
Definition: ddraw.h:455
#define DDFXCAPS_BLTALPHA
Definition: ddraw.h:406

Referenced by ddraw7_GetCaps().

◆ DDRAW_dump_DDCOLORKEY()

static void DDRAW_dump_DDCOLORKEY ( const DDCOLORKEY *  ddck)
static

Definition at line 689 of file utils.c.

690{
691 TRACE("Low : 0x%08lx - High : 0x%08lx\n", ddck->dwColorSpaceLowValue, ddck->dwColorSpaceHighValue);
692}

Referenced by DDRAW_dump_surface_desc().

◆ DDRAW_dump_DDSCAPS()

static void DDRAW_dump_DDSCAPS ( const DDSCAPS *  in)
static

Definition at line 773 of file utils.c.

774{
775 DDSCAPS2 in_bis;
776
777 in_bis.dwCaps = in->dwCaps;
778 in_bis.dwCaps2 = 0;
779 in_bis.dwCaps3 = 0;
780 in_bis.dwCaps4 = 0;
781
782 DDRAW_dump_DDSCAPS2(&in_bis);
783}
GLuint in
Definition: glext.h:9616

Referenced by DDRAW_dump_surface_desc().

◆ DDRAW_dump_DDSCAPS2()

void DDRAW_dump_DDSCAPS2 ( const DDSCAPS2 *  in)

Definition at line 710 of file utils.c.

711{
712 static const struct flag_info flags[] =
713 {
744 };
745 static const struct flag_info flags2[] =
746 {
766 };
767
769 DDRAW_dump_flags(in->dwCaps2, flags2, ARRAY_SIZE(flags2));
770}
#define DDSCAPS_PALETTE
Definition: surface.c:97
#define DDSCAPS_ALPHA
Definition: surface.c:95
static void DDRAW_dump_flags_nolf(DWORD flags, const struct flag_info *names, size_t num_names)
Definition: utils.c:694
#define DDSCAPS2_CUBEMAP
Definition: ddsformat.c:64
#define DDSCAPS_MODEX
Definition: ddraw.h:273
#define DDSCAPS2_CUBEMAP_NEGATIVEZ
Definition: ddraw.h:298
#define DDSCAPS_FRONTBUFFER
Definition: ddraw.h:256
#define DDSCAPS_ALLOCONLOAD
Definition: ddraw.h:276
#define DDSCAPS_ZBUFFER
Definition: ddraw.h:269
#define DDSCAPS2_OPAQUE
Definition: ddraw.h:290
#define DDSCAPS_OVERLAY
Definition: ddraw.h:258
#define DDSCAPS_VISIBLE
Definition: ddraw.h:267
#define DDSCAPS2_HARDWAREDEINTERLACE
Definition: ddraw.h:283
#define DDSCAPS2_RESERVED1
Definition: ddraw.h:288
#define DDSCAPS_HWCODEC
Definition: ddraw.h:272
#define DDSCAPS_RESERVED2
Definition: ddraw.h:275
#define DDSCAPS2_CUBEMAP_POSITIVEX
Definition: ddraw.h:293
#define DDSCAPS_MIPMAP
Definition: ddraw.h:274
#define DDSCAPS_PRIMARYSURFACE
Definition: ddraw.h:260
#define DDSCAPS_WRITEONLY
Definition: ddraw.h:268
#define DDSCAPS_OPTIMIZED
Definition: ddraw.h:281
#define DDSCAPS_NONLOCALVIDMEM
Definition: ddraw.h:279
#define DDSCAPS_RESERVED1
Definition: ddraw.h:251
#define DDSCAPS2_MIPMAPSUBLEVEL
Definition: ddraw.h:306
#define DDSCAPS_LIVEVIDEO
Definition: ddraw.h:271
#define DDSCAPS2_D3DTEXTUREMANAGE
Definition: ddraw.h:307
#define DDSCAPS_OFFSCREENPLAIN
Definition: ddraw.h:257
#define DDSCAPS2_RESERVED2
Definition: ddraw.h:289
#define DDSCAPS_PRIMARYSURFACELEFT
Definition: ddraw.h:262
#define DDSCAPS_FLIP
Definition: ddraw.h:255
#define DDSCAPS2_HINTDYNAMIC
Definition: ddraw.h:285
#define DDSCAPS_BACKBUFFER
Definition: ddraw.h:253
#define DDSCAPS2_CUBEMAP_NEGATIVEY
Definition: ddraw.h:296
#define DDSCAPS_3DDEVICE
Definition: ddraw.h:265
#define DDSCAPS2_CUBEMAP_POSITIVEY
Definition: ddraw.h:295
#define DDSCAPS2_CUBEMAP_NEGATIVEX
Definition: ddraw.h:294
#define DDSCAPS2_TEXTUREMANAGE
Definition: ddraw.h:287
#define DDSCAPS2_HINTANTIALIASING
Definition: ddraw.h:291
#define DDSCAPS2_CUBEMAP_POSITIVEZ
Definition: ddraw.h:297
#define DDSCAPS_TEXTURE
Definition: ddraw.h:264
#define DDSCAPS_VIDEOMEMORY
Definition: ddraw.h:266
#define DDSCAPS_LOCALVIDMEM
Definition: ddraw.h:278
#define DDSCAPS_OWNDC
Definition: ddraw.h:270
#define DDSCAPS_SYSTEMMEMORY
Definition: ddraw.h:263
#define DDSCAPS2_HINTSTATIC
Definition: ddraw.h:286
#define DDSCAPS_VIDEOPORT
Definition: ddraw.h:277
#define DDSCAPS_STANDARDVGAMODE
Definition: ddraw.h:280
#define DDSCAPS2_STEREOSURFACELEFT
Definition: ddraw.h:309
#define DDSCAPS2_DONOTPERSIST
Definition: ddraw.h:308
#define DDSCAPS_COMPLEX
Definition: ddraw.h:254

Referenced by ddraw7_GetAvailableVidMem(), DDRAW_dump_DDCAPS(), DDRAW_dump_DDSCAPS(), and DDRAW_dump_surface_desc().

◆ DDRAW_dump_DWORD()

static void DDRAW_dump_DWORD ( const void *  in)
static

Definition at line 679 of file utils.c.

680{
681 TRACE("%ld\n", *((const DWORD *) in));
682}
unsigned long DWORD
Definition: ntddk_ex.h:95

Referenced by DDRAW_dump_surface_desc().

◆ DDRAW_dump_flags()

static void DDRAW_dump_flags ( DWORD  flags,
const struct flag_info *  names,
size_t  num_names 
)
static

Definition at line 704 of file utils.c.

705{
706 DDRAW_dump_flags_nolf(flags, names, num_names);
707 TRACE("\n");
708}
GLuint GLuint * names
Definition: glext.h:11545

Referenced by DDRAW_dump_cooperativelevel(), DDRAW_dump_DDCAPS(), and DDRAW_dump_DDSCAPS2().

◆ DDRAW_dump_flags_nolf()

static void DDRAW_dump_flags_nolf ( DWORD  flags,
const struct flag_info *  names,
size_t  num_names 
)
static

Definition at line 694 of file utils.c.

695{
696 unsigned int i;
697
698 for (i=0; i < num_names; i++)
699 if ((flags & names[i].val) || /* standard flag value */
700 ((!flags) && (!names[i].val))) /* zero value only */
701 TRACE("%s ", names[i].name);
702}
GLuint GLfloat * val
Definition: glext.h:7180
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
Definition: glfuncs.h:248
Definition: name.c:39

Referenced by DDRAW_dump_DDSCAPS2(), DDRAW_dump_flags(), and DDRAW_dump_pixelformat_flag().

◆ DDRAW_dump_members()

static void DDRAW_dump_members ( DWORD  flags,
const void *  data,
const struct member_info *  mems,
size_t  num_mems 
)
static

Definition at line 809 of file utils.c.

810{
811 unsigned int i;
812
813 for (i=0; i < num_mems; i++)
814 {
815 if (mems[i].val & flags)
816 {
817 TRACE(" - %s : ", mems[i].name);
818 mems[i].func((const char *)data + mems[i].offset);
819 }
820 }
821}
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLintptr offset
Definition: glext.h:5920
void(* func)(const void *)

Referenced by DDRAW_dump_surface_desc().

◆ DDRAW_dump_pixelformat()

static void DDRAW_dump_pixelformat ( const DDPIXELFORMAT *  pf)
static

Definition at line 824 of file utils.c.

825{
826 TRACE("( ");
828 if (pf->dwFlags & DDPF_FOURCC)
829 TRACE(", dwFourCC code %s - %lu bits per pixel",
831 pf->dwYUVBitCount);
832 if (pf->dwFlags & DDPF_RGB)
833 {
834 TRACE(", RGB bits: %lu, R 0x%08lx G 0x%08lx B 0x%08lx",
835 pf->dwRGBBitCount,
836 pf->dwRBitMask,
837 pf->dwGBitMask,
838 pf->dwBBitMask);
839 if (pf->dwFlags & DDPF_ALPHAPIXELS)
840 TRACE(" A 0x%08lx", pf->dwRGBAlphaBitMask);
841 if (pf->dwFlags & DDPF_ZPIXELS)
842 TRACE(" Z 0x%08lx", pf->dwRGBZBitMask);
843 }
844 if (pf->dwFlags & DDPF_ZBUFFER)
845 TRACE(", Z bits: %lu", pf->dwZBufferBitDepth);
846 if (pf->dwFlags & DDPF_ALPHA)
847 TRACE(", Alpha bits: %lu", pf->dwAlphaBitDepth);
848 if (pf->dwFlags & DDPF_BUMPDUDV)
849 TRACE(", Bump bits: %lu, U 0x%08lx V 0x%08lx L 0x%08lx",
850 pf->dwBumpBitCount,
851 pf->dwBumpDuBitMask,
852 pf->dwBumpDvBitMask,
854 TRACE(")\n");
855}
static void DDRAW_dump_pixelformat_flag(DWORD flagmask)
Definition: utils.c:786
#define DDPF_ALPHA
Definition: ddsformat.c:57
#define DDPF_FOURCC
Definition: ddsformat.c:58
#define DDPF_RGB
Definition: ddsformat.c:60
#define DDPF_ALPHAPIXELS
Definition: ddsformat.c:56
#define DDPF_BUMPDUDV
Definition: ddsformat.c:62
#define DDPF_ZBUFFER
Definition: ddraw.h:513
#define DDPF_ZPIXELS
Definition: ddraw.h:516
static __inline const char * debugstr_fourcc(unsigned int cc)
Definition: debug.h:397
DWORD dwRGBZBitMask
Definition: ddraw.h:1118
DWORD dwBBitMask
Definition: ddraw.h:1108
DWORD dwBumpDuBitMask
Definition: ddraw.h:1091
DWORD dwBumpBitCount
Definition: ddraw.h:1082
DWORD dwBumpDvBitMask
Definition: ddraw.h:1099
DWORD dwZBufferBitDepth
Definition: ddraw.h:1079
DWORD dwAlphaBitDepth
Definition: ddraw.h:1080
DWORD dwFourCC
Definition: ddraw.h:1074
DWORD dwBumpLuminanceBitMask
Definition: ddraw.h:1111
DWORD dwRGBBitCount
Definition: ddraw.h:1077
DWORD dwYUVBitCount
Definition: ddraw.h:1078
DWORD dwRBitMask
Definition: ddraw.h:1087
DWORD dwGBitMask
Definition: ddraw.h:1096
DWORD dwFlags
Definition: ddraw.h:1073
DWORD dwRGBAlphaBitMask
Definition: ddraw.h:1115

Referenced by DDRAW_dump_surface_desc(), ddrawformat_from_wined3dformat(), wined3d_colour_from_ddraw_colour(), and wined3dformat_from_ddrawformat().

◆ DDRAW_dump_pixelformat_flag()

static void DDRAW_dump_pixelformat_flag ( DWORD  flagmask)
static

Definition at line 786 of file utils.c.

787{
788 static const struct flag_info flags[] =
789 {
791 FE(DDPF_ALPHA),
796 FE(DDPF_RGB),
799 FE(DDPF_YUV),
804 };
805
807}
#define DDPF_PALETTEINDEXED8
Definition: ddsformat.c:59
#define DDPF_PALETTEINDEXEDTO8
Definition: ddraw.h:507
#define DDPF_PALETTEINDEXED4
Definition: ddraw.h:506
#define DDPF_PALETTEINDEXED2
Definition: ddraw.h:515
#define DDPF_COMPRESSED
Definition: ddraw.h:510
#define DDPF_YUV
Definition: ddraw.h:512
#define DDPF_PALETTEINDEXED1
Definition: ddraw.h:514
#define DDPF_RGBTOYUV
Definition: ddraw.h:511

Referenced by DDRAW_dump_pixelformat().

◆ DDRAW_dump_PTR()

static void DDRAW_dump_PTR ( const void *  in)
static

Definition at line 684 of file utils.c.

685{
686 TRACE("%p\n", *((const void * const*) in));
687}

Referenced by DDRAW_dump_surface_desc().

◆ DDRAW_dump_surface_desc()

void DDRAW_dump_surface_desc ( const DDSURFACEDESC2 *  lpddsd)

Definition at line 857 of file utils.c.

858{
859#define STRUCT DDSURFACEDESC2
860 static const struct member_info members[] =
861 {
862 ME(DDSD_HEIGHT, DDRAW_dump_DWORD, dwHeight),
863 ME(DDSD_WIDTH, DDRAW_dump_DWORD, dwWidth),
870 ME(DDSD_LPSURFACE, DDRAW_dump_PTR, lpSurface),
872 ME(DDSD_CKDESTBLT, DDRAW_dump_DDCOLORKEY, ddckCKDestBlt),
873 ME(DDSD_CKSRCOVERLAY, DDRAW_dump_DDCOLORKEY, ddckCKSrcOverlay),
874 ME(DDSD_CKSRCBLT, DDRAW_dump_DDCOLORKEY, ddckCKSrcBlt),
876 };
877 static const struct member_info members_caps[] =
878 {
880 };
881 static const struct member_info members_caps2[] =
882 {
884 };
885#undef STRUCT
886
887 if (NULL == lpddsd)
888 {
889 TRACE("(null)\n");
890 }
891 else
892 {
893 if (lpddsd->dwSize >= sizeof(DDSURFACEDESC2))
894 {
895 DDRAW_dump_members(lpddsd->dwFlags, lpddsd, members_caps2, 1);
896 }
897 else
898 {
899 DDRAW_dump_members(lpddsd->dwFlags, lpddsd, members_caps, 1);
900 }
901 DDRAW_dump_members(lpddsd->dwFlags, lpddsd, members, ARRAY_SIZE(members));
902 }
903}
#define ME(x, f, e)
#define DDSD_LPSURFACE
Definition: ddrawex.h:22
#define NULL
Definition: types.h:112
static void DDRAW_dump_members(DWORD flags, const void *data, const struct member_info *mems, size_t num_mems)
Definition: utils.c:809
static void DDRAW_dump_PTR(const void *in)
Definition: utils.c:684
static void DDRAW_dump_DDSCAPS(const DDSCAPS *in)
Definition: utils.c:773
static void DDRAW_dump_DDCOLORKEY(const DDCOLORKEY *ddck)
Definition: utils.c:689
static void DDRAW_dump_pixelformat(const DDPIXELFORMAT *pf)
Definition: utils.c:824
static void DDRAW_dump_DWORD(const void *in)
Definition: utils.c:679
#define DDSD_WIDTH
Definition: ddraw.h:212
#define DDSD_PIXELFORMAT
Definition: ddraw.h:218
DWORD dwAlphaBitDepth
Definition: ddraw.h:3
#define DDSD_PITCH
Definition: ddraw.h:213
#define DDSD_REFRESHRATE
Definition: ddraw.h:224
#define DDSD_MIPMAPCOUNT
Definition: ddraw.h:223
DWORD dwRefreshRate
Definition: ddraw.h:2
#define DDSD_ALPHABITDEPTH
Definition: ddraw.h:216
#define DDSD_HEIGHT
Definition: ddraw.h:211
DDPIXELFORMAT ddpfPixelFormat
Definition: ddraw.h:0
#define DDSD_CKDESTOVERLAY
Definition: ddraw.h:219
LONG lPitch
Definition: ddraw.h:0
DDCOLORKEY ddckCKDestOverlay
Definition: ddraw.h:0
DWORD dwBackBufferCount
Definition: ddraw.h:0
DWORD dwMipMapCount
Definition: ddraw.h:0
#define DDSD_CKSRCBLT
Definition: ddraw.h:222
#define DDSD_LINEARSIZE
Definition: ddraw.h:225
DWORD dwLinearSize
Definition: ddraw.h:1
#define DDSD_CAPS
Definition: ddraw.h:210
#define DDSD_CKDESTBLT
Definition: ddraw.h:220
#define DDSD_BACKBUFFERCOUNT
Definition: ddraw.h:214
#define DDSD_CKSRCOVERLAY
Definition: ddraw.h:221
DWORD dwFlags
Definition: ddraw.h:1155
DWORD dwSize
Definition: ddraw.h:1154

Referenced by ddraw2_CreateSurface(), ddraw4_CreateSurface(), ddraw7_CreateSurface(), ddraw7_GetDisplayMode(), ddraw_surface3_GetSurfaceDesc(), ddraw_surface7_GetSurfaceDesc(), ddraw_surface_create(), and surface_lock().

◆ ddrawformat_from_wined3dformat()

void ddrawformat_from_wined3dformat ( DDPIXELFORMAT *  DDPixelFormat,
enum wined3d_format_id  wined3d_format 
)

Definition at line 30 of file utils.c.

31{
32 DWORD Size = DDPixelFormat->dwSize;
33
34 if(Size==0) return;
35
36 memset(DDPixelFormat, 0x00, Size);
37 DDPixelFormat->dwSize = Size;
38 switch (wined3d_format)
39 {
41 DDPixelFormat->dwFlags = DDPF_RGB;
42 DDPixelFormat->dwFourCC = 0;
43 DDPixelFormat->dwRGBBitCount = 24;
44 DDPixelFormat->dwRBitMask = 0x00ff0000;
45 DDPixelFormat->dwGBitMask = 0x0000ff00;
46 DDPixelFormat->dwBBitMask = 0x000000ff;
47 DDPixelFormat->dwRGBAlphaBitMask = 0x0;
48 break;
49
51 DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
52 DDPixelFormat->dwFourCC = 0;
53 DDPixelFormat->dwRGBBitCount = 32;
54 DDPixelFormat->dwRBitMask = 0x00ff0000;
55 DDPixelFormat->dwGBitMask = 0x0000ff00;
56 DDPixelFormat->dwBBitMask = 0x000000ff;
57 DDPixelFormat->dwRGBAlphaBitMask = 0xff000000;
58 break;
59
61 DDPixelFormat->dwFlags = DDPF_RGB;
62 DDPixelFormat->dwFourCC = 0;
63 DDPixelFormat->dwRGBBitCount = 32;
64 DDPixelFormat->dwRBitMask = 0x00ff0000;
65 DDPixelFormat->dwGBitMask = 0x0000ff00;
66 DDPixelFormat->dwBBitMask = 0x000000ff;
67 DDPixelFormat->dwRGBAlphaBitMask = 0x0;
68 break;
69
71 DDPixelFormat->dwFlags = DDPF_RGB;
72 DDPixelFormat->dwFourCC = 0;
73 DDPixelFormat->dwRGBBitCount = 32;
74 DDPixelFormat->dwRBitMask = 0x000000ff;
75 DDPixelFormat->dwGBitMask = 0x0000ff00;
76 DDPixelFormat->dwBBitMask = 0x00ff0000;
77 DDPixelFormat->dwRGBAlphaBitMask = 0x0;
78 break;
79
81 DDPixelFormat->dwFlags = DDPF_RGB;
82 DDPixelFormat->dwFourCC = 0;
83 DDPixelFormat->dwRGBBitCount = 16;
84 DDPixelFormat->dwRBitMask = 0xF800;
85 DDPixelFormat->dwGBitMask = 0x07E0;
86 DDPixelFormat->dwBBitMask = 0x001F;
87 DDPixelFormat->dwRGBAlphaBitMask = 0x0;
88 break;
89
91 DDPixelFormat->dwFlags = DDPF_RGB;
92 DDPixelFormat->dwFourCC = 0;
93 DDPixelFormat->dwRGBBitCount = 16;
94 DDPixelFormat->dwRBitMask = 0x7C00;
95 DDPixelFormat->dwGBitMask = 0x03E0;
96 DDPixelFormat->dwBBitMask = 0x001F;
97 DDPixelFormat->dwRGBAlphaBitMask = 0x0;
98 break;
99
101 DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
102 DDPixelFormat->dwFourCC = 0;
103 DDPixelFormat->dwRGBBitCount = 16;
104 DDPixelFormat->dwRBitMask = 0x7C00;
105 DDPixelFormat->dwGBitMask = 0x03E0;
106 DDPixelFormat->dwBBitMask = 0x001F;
107 DDPixelFormat->dwRGBAlphaBitMask = 0x8000;
108 break;
109
111 DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
112 DDPixelFormat->dwFourCC = 0;
113 DDPixelFormat->dwRGBBitCount = 16;
114 DDPixelFormat->dwRBitMask = 0x0F00;
115 DDPixelFormat->dwGBitMask = 0x00F0;
116 DDPixelFormat->dwBBitMask = 0x000F;
117 DDPixelFormat->dwRGBAlphaBitMask = 0xF000;
118 break;
119
121 DDPixelFormat->dwFlags = DDPF_RGB;
122 DDPixelFormat->dwFourCC = 0;
123 DDPixelFormat->dwRGBBitCount = 8;
124 DDPixelFormat->dwRBitMask = 0xE0;
125 DDPixelFormat->dwGBitMask = 0x1C;
126 DDPixelFormat->dwBBitMask = 0x03;
127 DDPixelFormat->dwLuminanceAlphaBitMask = 0x0;
128 break;
129
131 DDPixelFormat->dwFlags = DDPF_PALETTEINDEXED8 | DDPF_RGB;
132 DDPixelFormat->dwFourCC = 0;
133 DDPixelFormat->dwRGBBitCount = 8;
134 DDPixelFormat->dwRBitMask = 0x00;
135 DDPixelFormat->dwGBitMask = 0x00;
136 DDPixelFormat->dwBBitMask = 0x00;
137 break;
138
140 DDPixelFormat->dwFlags = DDPF_ALPHA;
141 DDPixelFormat->dwFourCC = 0;
142 DDPixelFormat->dwAlphaBitDepth = 8;
143 DDPixelFormat->dwRBitMask = 0x0;
144 DDPixelFormat->dwZBitMask = 0x0;
145 DDPixelFormat->dwStencilBitMask = 0x0;
146 DDPixelFormat->dwLuminanceAlphaBitMask = 0x0;
147 break;
148
150 DDPixelFormat->dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
151 DDPixelFormat->dwFourCC = 0;
152 DDPixelFormat->dwRGBBitCount = 16;
153 DDPixelFormat->dwRBitMask = 0x00E0;
154 DDPixelFormat->dwGBitMask = 0x001C;
155 DDPixelFormat->dwBBitMask = 0x0003;
156 DDPixelFormat->dwRGBAlphaBitMask = 0xFF00;
157 break;
158
160 DDPixelFormat->dwFlags = DDPF_RGB;
161 DDPixelFormat->dwFourCC = 0;
162 DDPixelFormat->dwRGBBitCount = 16;
163 DDPixelFormat->dwRBitMask = 0x0F00;
164 DDPixelFormat->dwGBitMask = 0x00F0;
165 DDPixelFormat->dwBBitMask = 0x000F;
166 DDPixelFormat->dwRGBAlphaBitMask = 0x0;
167 break;
168
169 /* How are Z buffer bit depth and Stencil buffer bit depth related?
170 */
172 DDPixelFormat->dwFlags = DDPF_ZBUFFER;
173 DDPixelFormat->dwFourCC = 0;
174 DDPixelFormat->dwZBufferBitDepth = 16;
175 DDPixelFormat->dwStencilBitDepth = 0;
176 DDPixelFormat->dwZBitMask = 0x0000FFFF;
177 DDPixelFormat->dwStencilBitMask = 0x0;
178 DDPixelFormat->dwRGBZBitMask = 0x00000000;
179 break;
180
182 DDPixelFormat->dwFlags = DDPF_ZBUFFER;
183 DDPixelFormat->dwFourCC = 0;
184 DDPixelFormat->dwZBufferBitDepth = 32;
185 DDPixelFormat->dwStencilBitDepth = 0;
186 DDPixelFormat->dwZBitMask = 0xFFFFFFFF;
187 DDPixelFormat->dwStencilBitMask = 0x0;
188 DDPixelFormat->dwRGBZBitMask = 0x00000000;
189 break;
190
192 DDPixelFormat->dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
193 DDPixelFormat->dwFourCC = 0;
194 /* Should I set dwZBufferBitDepth to 32 here? */
195 DDPixelFormat->dwZBufferBitDepth = 32;
196 DDPixelFormat->dwStencilBitDepth = 4;
197 DDPixelFormat->dwZBitMask = 0x00FFFFFF;
198 DDPixelFormat->dwStencilBitMask = 0x0F000000;
199 DDPixelFormat->dwRGBAlphaBitMask = 0x0;
200 break;
201
203 DDPixelFormat->dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
204 DDPixelFormat->dwFourCC = 0;
205 DDPixelFormat->dwZBufferBitDepth = 32;
206 DDPixelFormat->dwStencilBitDepth = 8;
207 DDPixelFormat->dwZBitMask = 0x00FFFFFF;
208 DDPixelFormat->dwStencilBitMask = 0xFF000000;
209 DDPixelFormat->dwRGBAlphaBitMask = 0x0;
210 break;
211
213 DDPixelFormat->dwFlags = DDPF_ZBUFFER;
214 DDPixelFormat->dwFourCC = 0;
215 DDPixelFormat->dwZBufferBitDepth = 32;
216 DDPixelFormat->dwStencilBitDepth = 0;
217 DDPixelFormat->dwZBitMask = 0x00FFFFFF;
218 DDPixelFormat->dwStencilBitMask = 0x00000000;
219 DDPixelFormat->dwRGBAlphaBitMask = 0x0;
220 break;
221
223 DDPixelFormat->dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
224 DDPixelFormat->dwFourCC = 0;
225 DDPixelFormat->dwZBufferBitDepth = 16;
226 DDPixelFormat->dwStencilBitDepth = 1;
227 DDPixelFormat->dwZBitMask = 0x7fff;
228 DDPixelFormat->dwStencilBitMask = 0x8000;
229 DDPixelFormat->dwRGBAlphaBitMask = 0x0;
230 break;
231
232 case WINED3DFMT_UYVY:
233 case WINED3DFMT_YUY2:
234 DDPixelFormat->dwYUVBitCount = 16;
235 DDPixelFormat->dwFlags = DDPF_FOURCC;
236 DDPixelFormat->dwFourCC = wined3d_format;
237 break;
238
239 case WINED3DFMT_YV12:
240 DDPixelFormat->dwYUVBitCount = 12;
241 DDPixelFormat->dwFlags = DDPF_FOURCC;
242 DDPixelFormat->dwFourCC = wined3d_format;
243 break;
244
245 case WINED3DFMT_DXT1:
246 case WINED3DFMT_DXT2:
247 case WINED3DFMT_DXT3:
248 case WINED3DFMT_DXT4:
249 case WINED3DFMT_DXT5:
253 DDPixelFormat->dwFlags = DDPF_FOURCC;
254 DDPixelFormat->dwFourCC = wined3d_format;
255 break;
256
257 /* Luminance */
259 DDPixelFormat->dwFlags = DDPF_LUMINANCE;
260 DDPixelFormat->dwFourCC = 0;
261 DDPixelFormat->dwLuminanceBitCount = 8;
262 DDPixelFormat->dwLuminanceBitMask = 0xff;
263 DDPixelFormat->dwBumpDvBitMask = 0x0;
264 DDPixelFormat->dwBumpLuminanceBitMask = 0x0;
265 DDPixelFormat->dwLuminanceAlphaBitMask = 0x0;
266 break;
267
269 DDPixelFormat->dwFlags = DDPF_ALPHAPIXELS | DDPF_LUMINANCE;
270 DDPixelFormat->dwFourCC = 0;
271 DDPixelFormat->dwLuminanceBitCount = 4;
272 DDPixelFormat->dwLuminanceBitMask = 0x0f;
273 DDPixelFormat->dwBumpDvBitMask = 0x0;
274 DDPixelFormat->dwBumpLuminanceBitMask = 0x0;
275 DDPixelFormat->dwLuminanceAlphaBitMask = 0xf0;
276 break;
277
279 DDPixelFormat->dwFlags = DDPF_ALPHAPIXELS | DDPF_LUMINANCE;
280 DDPixelFormat->dwFourCC = 0;
281 DDPixelFormat->dwLuminanceBitCount = 16;
282 DDPixelFormat->dwLuminanceBitMask = 0x00ff;
283 DDPixelFormat->dwBumpDvBitMask = 0x0;
284 DDPixelFormat->dwBumpLuminanceBitMask = 0x0;
285 DDPixelFormat->dwLuminanceAlphaBitMask = 0xff00;
286 break;
287
288 /* Bump mapping */
290 DDPixelFormat->dwFlags = DDPF_BUMPDUDV;
291 DDPixelFormat->dwFourCC = 0;
292 DDPixelFormat->dwBumpBitCount = 16;
293 DDPixelFormat->dwBumpDuBitMask = 0x000000ff;
294 DDPixelFormat->dwBumpDvBitMask = 0x0000ff00;
295 DDPixelFormat->dwBumpLuminanceBitMask = 0x00000000;
296 DDPixelFormat->dwLuminanceAlphaBitMask = 0x00000000;
297 break;
298
300 DDPixelFormat->dwFlags = DDPF_BUMPDUDV | DDPF_BUMPLUMINANCE;
301 DDPixelFormat->dwFourCC = 0;
302 DDPixelFormat->dwBumpBitCount = 16;
303 DDPixelFormat->dwBumpDuBitMask = 0x0000001f;
304 DDPixelFormat->dwBumpDvBitMask = 0x000003e0;
305 DDPixelFormat->dwBumpLuminanceBitMask = 0x0000fc00;
306 DDPixelFormat->dwLuminanceAlphaBitMask = 0x00000000;
307 break;
308
310 DDPixelFormat->dwFlags = DDPF_BUMPDUDV | DDPF_BUMPLUMINANCE;
311 DDPixelFormat->dwFourCC = 0;
312 DDPixelFormat->dwBumpBitCount = 32;
313 DDPixelFormat->dwBumpDuBitMask = 0x000000ff;
314 DDPixelFormat->dwBumpDvBitMask = 0x0000ff00;
315 DDPixelFormat->dwBumpLuminanceBitMask = 0x00ff0000;
316 DDPixelFormat->dwLuminanceAlphaBitMask = 0x00000000;
317 break;
318
319 default:
320 FIXME("Unhandled wined3d format %#x.\n", wined3d_format);
321 break;
322 }
323
324 if(TRACE_ON(ddraw)) {
325 TRACE("Returning: ");
326 DDRAW_dump_pixelformat(DDPixelFormat);
327 }
328}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define DDPF_LUMINANCE
Definition: ddsformat.c:61
#define DDPF_STENCILBUFFER
Definition: ddraw.h:517
#define DDPF_BUMPLUMINANCE
Definition: ddraw.h:520
#define memset(x, y, z)
Definition: compat.h:39
DWORD dwLuminanceAlphaBitMask
Definition: ddraw.h:1117
DWORD dwSize
Definition: ddraw.h:1072
DWORD dwLuminanceBitMask
Definition: ddraw.h:1090
DWORD dwStencilBitDepth
Definition: ddraw.h:1089
DWORD dwLuminanceBitCount
Definition: ddraw.h:1081
DWORD dwZBitMask
Definition: ddraw.h:1098
DWORD dwStencilBitMask
Definition: ddraw.h:1110
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539
@ WINED3DFMT_B2G3R3_UNORM
Definition: wined3d.h:131
@ WINED3DFMT_B4G4R4A4_UNORM
Definition: wined3d.h:130
@ WINED3DFMT_X8D24_UNORM
Definition: wined3d.h:151
@ WINED3DFMT_DXT2
Definition: wined3d.h:261
@ WINED3DFMT_B8G8R8A8_UNORM
Definition: wined3d.h:244
@ WINED3DFMT_S1_UINT_D15_UNORM
Definition: wined3d.h:150
@ WINED3DFMT_B2G3R3A8_UNORM
Definition: wined3d.h:132
@ WINED3DFMT_L8A8_UNORM
Definition: wined3d.h:139
@ WINED3DFMT_L4A4_UNORM
Definition: wined3d.h:140
@ WINED3DFMT_B8G8R8X8_UNORM
Definition: wined3d.h:245
@ WINED3DFMT_R8G8B8X8_UNORM
Definition: wined3d.h:134
@ WINED3DFMT_B5G5R5X1_UNORM
Definition: wined3d.h:129
@ WINED3DFMT_D16_UNORM
Definition: wined3d.h:212
@ WINED3DFMT_L8_UNORM
Definition: wined3d.h:138
@ WINED3DFMT_R8G8_SNORM
Definition: wined3d.h:208
@ WINED3DFMT_R5G5_SNORM_L6_UNORM
Definition: wined3d.h:141
@ WINED3DFMT_B8G8R8_UNORM
Definition: wined3d.h:128
@ WINED3DFMT_DXT1
Definition: wined3d.h:260
@ WINED3DFMT_B5G5R5A1_UNORM
Definition: wined3d.h:243
@ WINED3DFMT_DXT3
Definition: wined3d.h:262
@ WINED3DFMT_DXT4
Definition: wined3d.h:263
@ WINED3DFMT_D32_UNORM
Definition: wined3d.h:149
@ WINED3DFMT_R8G8_SNORM_L8X8_UNORM
Definition: wined3d.h:142
@ WINED3DFMT_YV12
Definition: wined3d.h:259
@ WINED3DFMT_B5G6R5_UNORM
Definition: wined3d.h:242
@ WINED3DFMT_S4X4_UINT_D24_UNORM
Definition: wined3d.h:152
@ WINED3DFMT_DXT5
Definition: wined3d.h:264
@ WINED3DFMT_YUY2
Definition: wined3d.h:258
@ WINED3DFMT_G8R8_G8B8
Definition: wined3d.h:266
@ WINED3DFMT_P8_UINT
Definition: wined3d.h:137
@ WINED3DFMT_UYVY
Definition: wined3d.h:257
@ WINED3DFMT_A8_UNORM
Definition: wined3d.h:222
@ WINED3DFMT_R8G8_B8G8
Definition: wined3d.h:267
@ WINED3DFMT_B4G4R4X4_UNORM
Definition: wined3d.h:133
@ WINED3DFMT_MULTI2_ARGB8
Definition: wined3d.h:265
@ WINED3DFMT_D24_UNORM_S8_UINT
Definition: wined3d.h:202

Referenced by d3d7_EnumZBufferFormats(), d3d_device2_EnumTextureFormats(), d3d_device7_EnumTextureFormats(), ddraw7_EnumDisplayModes(), ddraw7_EnumSurfaces(), ddraw7_GetDisplayMode(), ddraw7_SetDisplayMode(), ddraw_surface_create(), and fixup_texture_alpha_op().

◆ DDSD2_to_DDSD()

void DDSD2_to_DDSD ( const DDSURFACEDESC2 *  in,
DDSURFACEDESC *  out 
)

Definition at line 1242 of file utils.c.

1243{
1244 memset(out, 0, sizeof(*out));
1245 out->dwSize = sizeof(*out);
1246 out->dwFlags = in->dwFlags;
1247 if (in->dwFlags & DDSD_WIDTH) out->dwWidth = in->dwWidth;
1248 if (in->dwFlags & DDSD_HEIGHT) out->dwHeight = in->dwHeight;
1249 if (in->dwFlags & DDSD_PIXELFORMAT)
1250 {
1251 out->ddpfPixelFormat = in->ddpfPixelFormat;
1252 if ((in->dwFlags & DDSD_CAPS) && (in->ddsCaps.dwCaps & DDSCAPS_ZBUFFER))
1253 {
1254 /* Z buffers have DDSD_ZBUFFERBITDEPTH set, but not DDSD_PIXELFORMAT. They do
1255 * have valid data in ddpfPixelFormat though */
1256 out->dwFlags &= ~DDSD_PIXELFORMAT;
1257 out->dwFlags |= DDSD_ZBUFFERBITDEPTH;
1258 out->dwZBufferBitDepth = in->ddpfPixelFormat.dwZBufferBitDepth;
1259 }
1260 }
1261 /* ddsCaps is read even without DDSD_CAPS set. See dsurface:no_ddsd_caps_test */
1262 out->ddsCaps.dwCaps = in->ddsCaps.dwCaps;
1263 if (in->dwFlags & DDSD_PITCH) out->lPitch = in->lPitch;
1264 if (in->dwFlags & DDSD_BACKBUFFERCOUNT) out->dwBackBufferCount = in->dwBackBufferCount;
1265 if (in->dwFlags & DDSD_ZBUFFERBITDEPTH) out->dwZBufferBitDepth = in->dwMipMapCount; /* same union */
1266 if (in->dwFlags & DDSD_ALPHABITDEPTH) out->dwAlphaBitDepth = in->dwAlphaBitDepth;
1267 /* DDraw(native, and wine) does not set the DDSD_LPSURFACE, so always copy */
1268 out->lpSurface = in->lpSurface;
1269 if (in->dwFlags & DDSD_CKDESTOVERLAY) out->ddckCKDestOverlay = in->ddckCKDestOverlay;
1270 if (in->dwFlags & DDSD_CKDESTBLT) out->ddckCKDestBlt = in->ddckCKDestBlt;
1271 if (in->dwFlags & DDSD_CKSRCOVERLAY) out->ddckCKSrcOverlay = in->ddckCKSrcOverlay;
1272 if (in->dwFlags & DDSD_CKSRCBLT) out->ddckCKSrcBlt = in->ddckCKSrcBlt;
1273 if (in->dwFlags & DDSD_MIPMAPCOUNT) out->dwMipMapCount = in->dwMipMapCount;
1274 if (in->dwFlags & DDSD_REFRESHRATE) out->dwRefreshRate = in->dwRefreshRate;
1275 if (in->dwFlags & DDSD_LINEARSIZE) out->dwLinearSize = in->dwLinearSize;
1276 /* Does not exist in DDSURFACEDESC:
1277 * DDSD_TEXTURESTAGE, DDSD_FVF, DDSD_SRCVBHANDLE,
1278 */
1279 if (in->dwFlags & DDSD_TEXTURESTAGE) WARN("Does not exist in DDSURFACEDESC: DDSD_TEXTURESTAGE\n");
1280 if (in->dwFlags & DDSD_FVF) WARN("Does not exist in DDSURFACEDESC: DDSD_FVF\n");
1281 if (in->dwFlags & DDSD_SRCVBHANDLE) WARN("Does not exist in DDSURFACEDESC: DDSD_SRCVBHANDLE\n");
1283}
#define WARN(fmt,...)
Definition: precomp.h:61
#define DDSD_TEXTURESTAGE
Definition: ddraw.h:226
#define DDSD_ZBUFFERBITDEPTH
Definition: ddraw.h:215
#define DDSD_SRCVBHANDLE
Definition: ddraw.h:228
#define DDSD_FVF
Definition: ddraw.h:227
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383

◆ DDSD_to_DDSD2()

void DDSD_to_DDSD2 ( const DDSURFACEDESC *  in,
DDSURFACEDESC2 *  out 
)

Definition at line 1198 of file utils.c.

1199{
1200 /* The output of this function is never passed to the application directly, so
1201 * the memset is not strictly needed. CreateSurface still has problems with this
1202 * though. Don't forget to set ddsCaps.dwCaps2/3/4 to 0 when removing this */
1203 memset(out, 0x00, sizeof(*out));
1204 out->dwSize = sizeof(*out);
1205 out->dwFlags = in->dwFlags & ~DDSD_ZBUFFERBITDEPTH;
1206 if (in->dwFlags & DDSD_WIDTH) out->dwWidth = in->dwWidth;
1207 if (in->dwFlags & DDSD_HEIGHT) out->dwHeight = in->dwHeight;
1208 if (in->dwFlags & DDSD_PIXELFORMAT) out->ddpfPixelFormat = in->ddpfPixelFormat;
1209 else if(in->dwFlags & DDSD_ZBUFFERBITDEPTH)
1210 {
1211 out->dwFlags |= DDSD_PIXELFORMAT;
1212 memset(&out->ddpfPixelFormat, 0, sizeof(out->ddpfPixelFormat));
1213 out->ddpfPixelFormat.dwSize = sizeof(out->ddpfPixelFormat);
1214 out->ddpfPixelFormat.dwFlags = DDPF_ZBUFFER;
1215 out->ddpfPixelFormat.dwZBufferBitDepth = in->dwZBufferBitDepth;
1216 /* 0 is not a valid DDSURFACEDESC / DDPIXELFORMAT on either side of the
1217 * conversion */
1218 out->ddpfPixelFormat.dwZBitMask = ~0U >> (32 - in->dwZBufferBitDepth);
1219 }
1220 /* ddsCaps is read even without DDSD_CAPS set. See dsurface:no_ddsd_caps_test */
1221 out->ddsCaps.dwCaps = in->ddsCaps.dwCaps;
1222 if (in->dwFlags & DDSD_PITCH) out->lPitch = in->lPitch;
1223 if (in->dwFlags & DDSD_BACKBUFFERCOUNT) out->dwBackBufferCount = in->dwBackBufferCount;
1224 if (in->dwFlags & DDSD_ALPHABITDEPTH) out->dwAlphaBitDepth = in->dwAlphaBitDepth;
1225 /* DDraw(native, and wine) does not set the DDSD_LPSURFACE, so always copy */
1226 out->lpSurface = in->lpSurface;
1227 if (in->dwFlags & DDSD_CKDESTOVERLAY) out->ddckCKDestOverlay = in->ddckCKDestOverlay;
1228 if (in->dwFlags & DDSD_CKDESTBLT) out->ddckCKDestBlt = in->ddckCKDestBlt;
1229 if (in->dwFlags & DDSD_CKSRCOVERLAY) out->ddckCKSrcOverlay = in->ddckCKSrcOverlay;
1230 if (in->dwFlags & DDSD_CKSRCBLT) out->ddckCKSrcBlt = in->ddckCKSrcBlt;
1231 if (in->dwFlags & DDSD_MIPMAPCOUNT) out->dwMipMapCount = in->dwMipMapCount;
1232 if (in->dwFlags & DDSD_REFRESHRATE) out->dwRefreshRate = in->dwRefreshRate;
1233 if (in->dwFlags & DDSD_LINEARSIZE) out->dwLinearSize = in->dwLinearSize;
1234 /* Does not exist in DDSURFACEDESC:
1235 * DDSD_TEXTURESTAGE, DDSD_FVF, DDSD_SRCVBHANDLE,
1236 */
1237}
#define U(x)
Definition: wordpad.c:45

◆ dump_D3DMATRIX()

void dump_D3DMATRIX ( const D3DMATRIX *  mat)

Definition at line 906 of file utils.c.

907{
908 TRACE(" %f %f %f %f\n", mat->_11, mat->_12, mat->_13, mat->_14);
909 TRACE(" %f %f %f %f\n", mat->_21, mat->_22, mat->_23, mat->_24);
910 TRACE(" %f %f %f %f\n", mat->_31, mat->_32, mat->_33, mat->_34);
911 TRACE(" %f %f %f %f\n", mat->_41, mat->_42, mat->_43, mat->_44);
912}
static const MAT2 mat
Definition: font.c:51

Referenced by d3d_device1_SetMatrix().

◆ get_flexible_vertex_size()

DWORD get_flexible_vertex_size ( DWORD  d3dvtVertexType)

Definition at line 915 of file utils.c.

916{
917 DWORD size = 0;
918 DWORD i;
919
920 if (d3dvtVertexType & D3DFVF_NORMAL) size += 3 * sizeof(D3DVALUE);
921 if (d3dvtVertexType & D3DFVF_DIFFUSE) size += sizeof(DWORD);
922 if (d3dvtVertexType & D3DFVF_SPECULAR) size += sizeof(DWORD);
923 if (d3dvtVertexType & D3DFVF_RESERVED1) size += sizeof(DWORD);
924 switch (d3dvtVertexType & D3DFVF_POSITION_MASK)
925 {
926 case D3DFVF_XYZ: size += 3 * sizeof(D3DVALUE); break;
927 case D3DFVF_XYZRHW: size += 4 * sizeof(D3DVALUE); break;
928 case D3DFVF_XYZB1: size += 4 * sizeof(D3DVALUE); break;
929 case D3DFVF_XYZB2: size += 5 * sizeof(D3DVALUE); break;
930 case D3DFVF_XYZB3: size += 6 * sizeof(D3DVALUE); break;
931 case D3DFVF_XYZB4: size += 7 * sizeof(D3DVALUE); break;
932 case D3DFVF_XYZB5: size += 8 * sizeof(D3DVALUE); break;
933 default: ERR("Unexpected position mask\n");
934 }
935 for (i = 0; i < GET_TEXCOUNT_FROM_FVF(d3dvtVertexType); i++)
936 {
937 size += GET_TEXCOORD_SIZE_FROM_FVF(d3dvtVertexType, i) * sizeof(D3DVALUE);
938 }
939
940 return size;
941}
#define ERR(fmt,...)
Definition: precomp.h:57
#define D3DFVF_DIFFUSE
Definition: d3d8types.h:122
#define D3DFVF_XYZ
Definition: d3d8types.h:113
#define D3DFVF_XYZB1
Definition: d3d8types.h:115
#define D3DFVF_XYZB5
Definition: d3d8types.h:119
#define D3DFVF_XYZRHW
Definition: d3d8types.h:114
#define D3DFVF_XYZB4
Definition: d3d8types.h:118
#define D3DFVF_NORMAL
Definition: d3d8types.h:120
#define D3DFVF_XYZB3
Definition: d3d8types.h:117
#define D3DFVF_XYZB2
Definition: d3d8types.h:116
#define D3DFVF_SPECULAR
Definition: d3d8types.h:123
#define D3DFVF_POSITION_MASK
Definition: d3d8types.h:112
float D3DVALUE
Definition: d3dtypes.h:89
#define D3DFVF_RESERVED1
Definition: d3dtypes.h:1309
#define GET_TEXCOORD_SIZE_FROM_FVF(d3dvtVertexType, tex_num)
#define GET_TEXCOUNT_FROM_FVF(d3dvtVertexType)
GLsizeiptr size
Definition: glext.h:5919
#define DWORD
Definition: nt_native.h:44

Referenced by d3d_device3_Begin(), d3d_device3_DrawIndexedPrimitiveVB(), d3d_device7_DrawIndexedPrimitive(), d3d_device7_DrawIndexedPrimitiveStrided(), d3d_device7_DrawIndexedPrimitiveVB(), d3d_device7_DrawPrimitive(), d3d_device7_DrawPrimitiveStrided(), d3d_device7_DrawPrimitiveVB(), d3d_vertex_buffer7_GetVertexBufferDesc(), d3d_vertex_buffer7_ProcessVertices(), and d3d_vertex_buffer_create().

◆ hr_ddraw_from_wined3d()

HRESULT hr_ddraw_from_wined3d ( HRESULT  hr)

Definition at line 1183 of file utils.c.

1184{
1185 switch(hr)
1186 {
1191 default: return hr;
1192 }
1193}
HRESULT hr
Definition: delayimp.cpp:582
#define DDERR_NOTAOVERLAYSURFACE
Definition: ddraw.h:156
#define DDERR_OVERLAYNOTVISIBLE
Definition: ddraw.h:153
#define DDERR_UNSUPPORTED
Definition: ddraw.h:129
#define DDERR_INVALIDPARAMS
Definition: ddraw.h:81
#define WINEDDERR_OVERLAYNOTVISIBLE
Definition: wined3d.h:49
#define WINED3DERR_NOTAVAILABLE
Definition: wined3d.h:42
#define WINED3DERR_INVALIDCALL
Definition: wined3d.h:44
#define WINEDDERR_NOTAOVERLAYSURFACE
Definition: wined3d.h:45

Referenced by d3d_device7_BeginStateBlock(), d3d_device7_CreateStateBlock(), d3d_device7_GetLight(), d3d_device7_GetLightEnable(), d3d_device7_LightEnable(), d3d_device7_SetLight(), ddraw7_EnumSurfaces(), ddraw7_SetDisplayMode(), ddraw_surface7_SetPrivateData(), ddraw_surface7_SetSurfaceDesc(), ddraw_surface7_UpdateOverlay(), ddraw_surface_create(), ddraw_surface_set_color_key(), and ddraw_texture_init().

◆ multiply_matrix()

void multiply_matrix ( struct wined3d_matrix *  dst,
const struct wined3d_matrix *  src1,
const struct wined3d_matrix *  src2 
)

Definition at line 1153 of file utils.c.

1154{
1155 struct wined3d_matrix temp;
1156
1157 /* Now do the multiplication 'by hand'.
1158 I know that all this could be optimised, but this will be done later :-) */
1159 temp._11 = (src1->_11 * src2->_11) + (src1->_21 * src2->_12) + (src1->_31 * src2->_13) + (src1->_41 * src2->_14);
1160 temp._21 = (src1->_11 * src2->_21) + (src1->_21 * src2->_22) + (src1->_31 * src2->_23) + (src1->_41 * src2->_24);
1161 temp._31 = (src1->_11 * src2->_31) + (src1->_21 * src2->_32) + (src1->_31 * src2->_33) + (src1->_41 * src2->_34);
1162 temp._41 = (src1->_11 * src2->_41) + (src1->_21 * src2->_42) + (src1->_31 * src2->_43) + (src1->_41 * src2->_44);
1163
1164 temp._12 = (src1->_12 * src2->_11) + (src1->_22 * src2->_12) + (src1->_32 * src2->_13) + (src1->_42 * src2->_14);
1165 temp._22 = (src1->_12 * src2->_21) + (src1->_22 * src2->_22) + (src1->_32 * src2->_23) + (src1->_42 * src2->_24);
1166 temp._32 = (src1->_12 * src2->_31) + (src1->_22 * src2->_32) + (src1->_32 * src2->_33) + (src1->_42 * src2->_34);
1167 temp._42 = (src1->_12 * src2->_41) + (src1->_22 * src2->_42) + (src1->_32 * src2->_43) + (src1->_42 * src2->_44);
1168
1169 temp._13 = (src1->_13 * src2->_11) + (src1->_23 * src2->_12) + (src1->_33 * src2->_13) + (src1->_43 * src2->_14);
1170 temp._23 = (src1->_13 * src2->_21) + (src1->_23 * src2->_22) + (src1->_33 * src2->_23) + (src1->_43 * src2->_24);
1171 temp._33 = (src1->_13 * src2->_31) + (src1->_23 * src2->_32) + (src1->_33 * src2->_33) + (src1->_43 * src2->_34);
1172 temp._43 = (src1->_13 * src2->_41) + (src1->_23 * src2->_42) + (src1->_33 * src2->_43) + (src1->_43 * src2->_44);
1173
1174 temp._14 = (src1->_14 * src2->_11) + (src1->_24 * src2->_12) + (src1->_34 * src2->_13) + (src1->_44 * src2->_14);
1175 temp._24 = (src1->_14 * src2->_21) + (src1->_24 * src2->_22) + (src1->_34 * src2->_23) + (src1->_44 * src2->_24);
1176 temp._34 = (src1->_14 * src2->_31) + (src1->_24 * src2->_32) + (src1->_34 * src2->_33) + (src1->_44 * src2->_34);
1177 temp._44 = (src1->_14 * src2->_41) + (src1->_24 * src2->_42) + (src1->_34 * src2->_43) + (src1->_44 * src2->_44);
1178
1179 *dst = temp;
1180}
GLenum GLenum dst
Definition: glext.h:6340
static calc_node_t temp
Definition: rpn_ieee.c:38

Referenced by get_modelview_matrix().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( ddraw  )

◆ wined3d_colour_from_ddraw_colour()

BOOL wined3d_colour_from_ddraw_colour ( const DDPIXELFORMAT *  pf,
const struct ddraw_palette *  palette,
DWORD  colour,
struct wined3d_color *  wined3d_colour 
)

Definition at line 593 of file utils.c.

595{
596 if (pf->dwFlags & DDPF_ALPHA)
597 {
598 DWORD size, mask;
599
600 size = pf->dwAlphaBitDepth;
601 mask = size < 32 ? (1u << size) - 1 : ~0u;
602 wined3d_colour->r = 0.0f;
603 wined3d_colour->g = 0.0f;
604 wined3d_colour->b = 0.0f;
605 wined3d_colour->a = colour_to_float(colour, mask);
606 return TRUE;
607 }
608
609 if (pf->dwFlags & DDPF_FOURCC)
610 {
611 WARN("FourCC formats not supported.\n");
612 goto fail;
613 }
614
616 {
618
619 colour &= 0xff;
620 if (!palette || FAILED(wined3d_palette_get_entries(palette->wined3d_palette, 0, colour, 1, &entry)))
621 {
622 wined3d_colour->r = 0.0f;
623 wined3d_colour->g = 0.0f;
624 wined3d_colour->b = 0.0f;
625 }
626 else
627 {
628 wined3d_colour->r = entry.peRed / 255.0f;
629 wined3d_colour->g = entry.peGreen / 255.0f;
630 wined3d_colour->b = entry.peBlue / 255.0f;
631 }
632 wined3d_colour->a = colour / 255.0f;
633 return TRUE;
634 }
635
636 if (pf->dwFlags & DDPF_RGB)
637 {
638 wined3d_colour->r = colour_to_float(colour, pf->dwRBitMask);
639 wined3d_colour->g = colour_to_float(colour, pf->dwGBitMask);
640 wined3d_colour->b = colour_to_float(colour, pf->dwBBitMask);
641 if (pf->dwFlags & DDPF_ALPHAPIXELS)
642 wined3d_colour->a = colour_to_float(colour, pf->dwRGBAlphaBitMask);
643 else
644 wined3d_colour->a = 0.0f;
645 return TRUE;
646 }
647
648 if (pf->dwFlags & DDPF_ZBUFFER)
649 {
650 wined3d_colour->r = colour_to_float(colour, pf->dwZBitMask);
651 if (pf->dwFlags & DDPF_STENCILBUFFER)
652 wined3d_colour->g = colour_to_float(colour, pf->dwStencilBitMask);
653 else
654 wined3d_colour->g = 0.0f;
655 wined3d_colour->b = 0.0f;
656 wined3d_colour->a = 0.0f;
657 return TRUE;
658 }
659
660 FIXME("Unhandled pixel format.\n");
662
663fail:
664 wined3d_colour->r = 0.0f;
665 wined3d_colour->g = 0.0f;
666 wined3d_colour->b = 0.0f;
667 wined3d_colour->a = 0.0f;
668
669 return FALSE;
670}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
static float colour_to_float(DWORD colour, DWORD mask)
Definition: utils.c:586
HRESULT CDECL wined3d_palette_get_entries(const struct wined3d_palette *palette, uint32_t flags, unsigned int start, unsigned int count, PALETTEENTRY *entries)
Definition: palette.c:58
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
Definition: glfuncs.h:240
#define FAILED(hr)
Definition: intsafe.h:51
uint32_t entry
Definition: isohybrid.c:63
static HPALETTE palette
Definition: clipboard.c:1457

Referenced by ddraw_surface_blt().

◆ wined3dformat_from_ddrawformat()

enum wined3d_format_id wined3dformat_from_ddrawformat ( const DDPIXELFORMAT *  DDPixelFormat)

Definition at line 330 of file utils.c.

331{
332 TRACE("Convert a DirectDraw Pixelformat to a WineD3D Pixelformat\n");
333 if(TRACE_ON(ddraw))
334 {
335 DDRAW_dump_pixelformat(DDPixelFormat);
336 }
337
338 if(DDPixelFormat->dwFlags & DDPF_PALETTEINDEXED8)
339 {
340 return WINED3DFMT_P8_UINT;
341 }
343 {
344 FIXME("DDPF_PALETTEINDEXED1 to DDPF_PALETTEINDEXED4 are not supported by WineD3D (yet). Returning WINED3DFMT_P8\n");
345 return WINED3DFMT_P8_UINT;
346 }
347 else if(DDPixelFormat->dwFlags & DDPF_RGB)
348 {
349 switch(DDPixelFormat->dwRGBBitCount)
350 {
351 case 8:
352 /* This is the only format that can match here */
354
355 case 16:
356 /* Read the Color masks */
357 if( (DDPixelFormat->dwRBitMask == 0xF800) &&
358 (DDPixelFormat->dwGBitMask == 0x07E0) &&
359 (DDPixelFormat->dwBBitMask == 0x001F) )
360 {
362 }
363
364 if( (DDPixelFormat->dwRBitMask == 0x7C00) &&
365 (DDPixelFormat->dwGBitMask == 0x03E0) &&
366 (DDPixelFormat->dwBBitMask == 0x001F) )
367 {
368 if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
369 (DDPixelFormat->dwRGBAlphaBitMask == 0x8000))
371 else
373 }
374
375 if( (DDPixelFormat->dwRBitMask == 0x0F00) &&
376 (DDPixelFormat->dwGBitMask == 0x00F0) &&
377 (DDPixelFormat->dwBBitMask == 0x000F) )
378 {
379 if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
380 (DDPixelFormat->dwRGBAlphaBitMask == 0xF000))
382 else
384 }
385
386 if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
387 (DDPixelFormat->dwRGBAlphaBitMask == 0xFF00) &&
388 (DDPixelFormat->dwRBitMask == 0x00E0) &&
389 (DDPixelFormat->dwGBitMask == 0x001C) &&
390 (DDPixelFormat->dwBBitMask == 0x0003) )
391 {
393 }
394 WARN("16 bit RGB Pixel format does not match.\n");
395 return WINED3DFMT_UNKNOWN;
396
397 case 24:
399
400 case 32:
401 /* Read the Color masks */
402 if( (DDPixelFormat->dwRBitMask == 0x00FF0000) &&
403 (DDPixelFormat->dwGBitMask == 0x0000FF00) &&
404 (DDPixelFormat->dwBBitMask == 0x000000FF) )
405 {
406 if( (DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS) &&
407 (DDPixelFormat->dwRGBAlphaBitMask == 0xFF000000))
409 else
411
412 }
413 WARN("32 bit RGB pixel format does not match.\n");
414 return WINED3DFMT_UNKNOWN;
415
416 default:
417 WARN("Invalid dwRGBBitCount in Pixelformat structure.\n");
418 return WINED3DFMT_UNKNOWN;
419 }
420 }
421 else if( (DDPixelFormat->dwFlags & DDPF_ALPHA) )
422 {
423 /* Alpha only Pixelformat */
424 switch(DDPixelFormat->dwAlphaBitDepth)
425 {
426 case 8:
427 return WINED3DFMT_A8_UNORM;
428
429 default:
430 WARN("Invalid AlphaBitDepth in Alpha-Only Pixelformat.\n");
431 return WINED3DFMT_UNKNOWN;
432 }
433 }
434 else if(DDPixelFormat->dwFlags & DDPF_LUMINANCE)
435 {
436 /* Luminance-only or luminance-alpha */
437 if(DDPixelFormat->dwFlags & DDPF_ALPHAPIXELS)
438 {
439 /* Luminance with Alpha */
440 switch(DDPixelFormat->dwLuminanceBitCount)
441 {
442 case 4:
443 if(DDPixelFormat->dwAlphaBitDepth == 4)
445 WARN("Unknown Alpha / Luminance bit depth combination.\n");
446 return WINED3DFMT_UNKNOWN;
447
448 case 6:
449 FIXME("A luminance Pixelformat shouldn't have 6 luminance bits. Returning D3DFMT_L6V5U5 for now.\n");
451
452 case 8:
453 if(DDPixelFormat->dwAlphaBitDepth == 8)
455 WARN("Unknown Alpha / Lumincase bit depth combination.\n");
456 return WINED3DFMT_UNKNOWN;
457 }
458 }
459 else
460 {
461 /* Luminance-only */
462 switch(DDPixelFormat->dwLuminanceBitCount)
463 {
464 case 6:
465 FIXME("A luminance Pixelformat shouldn't have 6 luminance bits. Returning D3DFMT_L6V5U5 for now.\n");
467
468 case 8:
469 return WINED3DFMT_L8_UNORM;
470
471 default:
472 WARN("Unknown luminance-only bit depth %lu.\n", DDPixelFormat->dwLuminanceBitCount);
473 return WINED3DFMT_UNKNOWN;
474 }
475 }
476 }
477 else if(DDPixelFormat->dwFlags & DDPF_ZBUFFER)
478 {
479 /* Z buffer */
480 if(DDPixelFormat->dwFlags & DDPF_STENCILBUFFER)
481 {
482 switch(DDPixelFormat->dwZBufferBitDepth)
483 {
484 case 16:
485 if (DDPixelFormat->dwStencilBitDepth == 1) return WINED3DFMT_S1_UINT_D15_UNORM;
486 WARN("Unknown depth stencil format: 16 z bits, %lu stencil bits.\n",
487 DDPixelFormat->dwStencilBitDepth);
488 return WINED3DFMT_UNKNOWN;
489
490 case 32:
491 if (DDPixelFormat->dwStencilBitDepth == 8) return WINED3DFMT_D24_UNORM_S8_UINT;
492 else if (DDPixelFormat->dwStencilBitDepth == 4) return WINED3DFMT_S4X4_UINT_D24_UNORM;
493 WARN("Unknown depth stencil format: 32 z bits, %lu stencil bits.\n",
494 DDPixelFormat->dwStencilBitDepth);
495 return WINED3DFMT_UNKNOWN;
496
497 default:
498 WARN("Unknown depth stencil format: %lu z bits, %lu stencil bits.\n",
499 DDPixelFormat->dwZBufferBitDepth, DDPixelFormat->dwStencilBitDepth);
500 return WINED3DFMT_UNKNOWN;
501 }
502 }
503 else
504 {
505 switch(DDPixelFormat->dwZBufferBitDepth)
506 {
507 case 16:
509
510 case 24:
512
513 case 32:
514 if (DDPixelFormat->dwZBitMask == 0x00FFFFFF) return WINED3DFMT_X8D24_UNORM;
515 else if (DDPixelFormat->dwZBitMask == 0xFFFFFF00) return WINED3DFMT_X8D24_UNORM;
516 else if (DDPixelFormat->dwZBitMask == 0xFFFFFFFF) return WINED3DFMT_D32_UNORM;
517 WARN("Unknown depth-only format: 32 z bits, mask 0x%08lx\n",
518 DDPixelFormat->dwZBitMask);
519 return WINED3DFMT_UNKNOWN;
520
521 default:
522 WARN("Unknown depth-only format: %lu z bits, mask 0x%08lx\n",
523 DDPixelFormat->dwZBufferBitDepth, DDPixelFormat->dwZBitMask);
524 return WINED3DFMT_UNKNOWN;
525 }
526 }
527 }
528 else if(DDPixelFormat->dwFlags & DDPF_FOURCC)
529 {
530 return DDPixelFormat->dwFourCC;
531 }
532 else if(DDPixelFormat->dwFlags & DDPF_BUMPDUDV)
533 {
534 if( (DDPixelFormat->dwBumpBitCount == 16 ) &&
535 (DDPixelFormat->dwBumpDuBitMask == 0x000000ff) &&
536 (DDPixelFormat->dwBumpDvBitMask == 0x0000ff00) &&
537 (DDPixelFormat->dwBumpLuminanceBitMask == 0x00000000) )
538 {
540 }
541 else if ( (DDPixelFormat->dwBumpBitCount == 16 ) &&
542 (DDPixelFormat->dwBumpDuBitMask == 0x0000001f) &&
543 (DDPixelFormat->dwBumpDvBitMask == 0x000003e0) &&
544 (DDPixelFormat->dwBumpLuminanceBitMask == 0x0000fc00) )
545 {
547 }
548 else if ( (DDPixelFormat->dwBumpBitCount == 32 ) &&
549 (DDPixelFormat->dwBumpDuBitMask == 0x000000ff) &&
550 (DDPixelFormat->dwBumpDvBitMask == 0x0000ff00) &&
551 (DDPixelFormat->dwBumpLuminanceBitMask == 0x00ff0000) )
552 {
554 }
555 }
556
557 WARN("Unknown Pixelformat.\n");
558 return WINED3DFMT_UNKNOWN;
559}
@ WINED3DFMT_UNKNOWN
Definition: wined3d.h:127

Referenced by ddraw_surface7_SetSurfaceDesc(), ddraw_surface_create(), and wined3d_resource_desc_from_ddraw().

◆ wined3dmapflags_from_ddrawmapflags()

unsigned int wined3dmapflags_from_ddrawmapflags ( unsigned int  flags)

Definition at line 561 of file utils.c.

562{
563 static const unsigned int handled = DDLOCK_NOSYSLOCK
567 unsigned int wined3d_flags;
568
569 wined3d_flags = flags & handled;
571 wined3d_flags |= WINED3D_MAP_READ;
572 if (!(flags & DDLOCK_READONLY))
573 wined3d_flags |= WINED3D_MAP_WRITE;
574 if (!(wined3d_flags & (WINED3D_MAP_READ | WINED3D_MAP_WRITE)))
575 wined3d_flags |= WINED3D_MAP_READ | WINED3D_MAP_WRITE;
577 wined3d_flags |= WINED3D_MAP_NO_DIRTY_UPDATE;
579
580 if (flags)
581 FIXME("Unhandled flags %#x.\n", flags);
582
583 return wined3d_flags;
584}
#define DDLOCK_READONLY
Definition: ddraw.h:626
#define DDLOCK_WRITEONLY
Definition: ddraw.h:627
#define DDLOCK_NODIRTYUPDATE
Definition: ddraw.h:634
#define DDLOCK_DONOTWAIT
Definition: ddraw.h:632
#define DDLOCK_DISCARDCONTENTS
Definition: ddraw.h:630
#define DDLOCK_NOOVERWRITE
Definition: ddraw.h:629
#define DDLOCK_NOSYSLOCK
Definition: ddraw.h:628
#define DDLOCK_WAIT
Definition: ddraw.h:624
#define WINED3D_MAP_NO_DIRTY_UPDATE
Definition: wined3d.h:955
#define WINED3D_MAP_READ
Definition: wined3d.h:957
#define WINED3D_MAP_WRITE
Definition: wined3d.h:956

Referenced by d3d_vertex_buffer7_Lock(), and surface_lock().