35#define WINED3D_FORMAT_FOURCC_BASE (WINED3DFMT_BC7_UNORM_SRGB + 1)
70#define WINED3D_FORMAT_COUNT (WINED3D_FORMAT_FOURCC_BASE + ARRAY_SIZE(format_index_remap))
86 {
WINED3DFMT_UNKNOWN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
88 {
WINED3DFMT_UYVY, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0},
89 {
WINED3DFMT_YUY2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0},
90 {
WINED3DFMT_YV12, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
91 {
WINED3DFMT_NV12, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
92 {
WINED3DFMT_DXT1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
93 {
WINED3DFMT_DXT2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
94 {
WINED3DFMT_DXT3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
95 {
WINED3DFMT_DXT4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
96 {
WINED3DFMT_DXT5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
97 {
WINED3DFMT_MULTI2_ARGB8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
98 {
WINED3DFMT_G8R8_G8B8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
99 {
WINED3DFMT_R8G8_B8G8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
101 {
WINED3DFMT_R8G8_SNORM_Cx, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0},
102 {
WINED3DFMT_R11G11B10_FLOAT, 11, 11, 10, 0, 0, 11, 22, 0, 4, 0, 0,
"FFF"},
104 {
WINED3DFMT_P8_UINT_A8_UNORM, 0, 0, 0, 8, 0, 0, 0, 8, 2, 0, 0},
105 {
WINED3DFMT_P8_UINT, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
107 {
WINED3DFMT_B8G8R8_UNORM, 8, 8, 8, 0, 16, 8, 0, 0, 3, 0, 0,
"uuu"},
108 {
WINED3DFMT_B5G6R5_UNORM, 5, 6, 5, 0, 11, 5, 0, 0, 2, 0, 0,
"uuu"},
109 {
WINED3DFMT_B5G5R5X1_UNORM, 5, 5, 5, 0, 10, 5, 0, 0, 2, 0, 0,
"uuuX"},
110 {
WINED3DFMT_B5G5R5A1_UNORM, 5, 5, 5, 1, 10, 5, 0, 15, 2, 0, 0,
"uuuu"},
111 {
WINED3DFMT_B4G4R4A4_UNORM, 4, 4, 4, 4, 8, 4, 0, 12, 2, 0, 0,
"uuuu"},
112 {
WINED3DFMT_B2G3R3_UNORM, 3, 3, 2, 0, 5, 2, 0, 0, 1, 0, 0,
"uuu"},
113 {
WINED3DFMT_A8_UNORM, 0, 0, 0, 8, 0, 0, 0, 0, 1, 0, 0,
"u"},
114 {
WINED3DFMT_B2G3R3A8_UNORM, 3, 3, 2, 8, 5, 2, 0, 8, 2, 0, 0,
"uuuu"},
115 {
WINED3DFMT_B4G4R4X4_UNORM, 4, 4, 4, 0, 8, 4, 0, 0, 2, 0, 0,
"uuuX"},
116 {
WINED3DFMT_R8G8B8X8_UNORM, 8, 8, 8, 0, 0, 8, 16, 0, 4, 0, 0,
"uuuX"},
117 {
WINED3DFMT_B10G10R10A2_UNORM, 10, 10, 10, 2, 20, 10, 0, 30, 4, 0, 0,
"uuuu"},
119 {
WINED3DFMT_L8_UNORM, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
120 {
WINED3DFMT_L8A8_UNORM, 0, 0, 0, 8, 0, 0, 0, 8, 2, 0, 0},
121 {
WINED3DFMT_L4A4_UNORM, 0, 0, 0, 4, 0, 0, 0, 4, 1, 0, 0},
122 {
WINED3DFMT_L16_UNORM, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0},
124 {
WINED3DFMT_R5G5_SNORM_L6_UNORM, 5, 5, 0, 0, 0, 5, 0, 0, 2, 0, 0},
125 {
WINED3DFMT_R8G8_SNORM_L8X8_UNORM, 8, 8, 0, 0, 0, 8, 0, 0, 4, 0, 0},
126 {
WINED3DFMT_R10G11B11_SNORM, 10, 11, 11, 0, 0, 10, 21, 0, 4, 0, 0,
"iii"},
127 {
WINED3DFMT_R10G10B10_SNORM_A2_UNORM, 10, 10, 10, 2, 0, 10, 20, 30, 4, 0, 0,
"iiiu"},
129 {
WINED3DFMT_D16_LOCKABLE, 0, 0, 0, 0, 0, 0, 0, 0, 2, 16, 0,
"D"},
130 {
WINED3DFMT_D32_UNORM, 0, 0, 0, 0, 0, 0, 0, 0, 4, 32, 0,
"D"},
131 {
WINED3DFMT_S1_UINT_D15_UNORM, 0, 0, 0, 0, 0, 0, 0, 0, 2, 15, 1,
"SD"},
132 {
WINED3DFMT_X8D24_UNORM, 0, 0, 0, 0, 0, 0, 0, 0, 4, 24, 0,
"XD"},
133 {
WINED3DFMT_S4X4_UINT_D24_UNORM, 0, 0, 0, 0, 0, 0, 0, 0, 4, 24, 4,
"SXD"},
134 {
WINED3DFMT_S8_UINT_D24_FLOAT, 0, 0, 0, 0, 0, 0, 0, 0, 4, 24, 8,
"SD"},
136 {
WINED3DFMT_ATI1N, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
137 {
WINED3DFMT_ATI2N, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
138 {
WINED3DFMT_NVDB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
139 {
WINED3DFMT_ATOC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
140 {
WINED3DFMT_INST, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
141 {
WINED3DFMT_INTZ, 0, 0, 0, 0, 0, 0, 0, 0, 4, 24, 8},
142 {
WINED3DFMT_RESZ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
143 {
WINED3DFMT_NVHU, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0},
144 {
WINED3DFMT_NVHS, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0},
145 {
WINED3DFMT_NULL, 8, 8, 8, 8, 0, 8, 16, 24, 4, 0, 0},
147 {
WINED3DFMT_R16, 16, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0},
148 {
WINED3DFMT_AL16, 0, 0, 0, 16, 0, 0, 0, 16, 4, 0, 0},
150 {
WINED3DFMT_R9G9B9E5_SHAREDEXP, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0},
152 {
WINED3DFMT_R32G32B32A32_TYPELESS, 32, 32, 32, 32, 0, 32, 64, 96, 16, 0, 0},
153 {
WINED3DFMT_R32G32B32_TYPELESS, 32, 32, 32, 0, 0, 32, 64, 0, 12, 0, 0},
154 {
WINED3DFMT_R16G16B16A16_TYPELESS, 16, 16, 16, 16, 0, 16, 32, 48, 8, 0, 0},
155 {
WINED3DFMT_R32G32_TYPELESS, 32, 32, 0, 0, 0, 32, 0, 0, 8, 0, 0},
156 {
WINED3DFMT_R32G8X24_TYPELESS, 32, 8, 0, 0, 0, 0, 0, 0, 8, 0, 0},
157 {
WINED3DFMT_R10G10B10A2_TYPELESS, 10, 10, 10, 2, 0, 10, 20, 30, 4, 0, 0},
158 {
WINED3DFMT_R10G10B10X2_TYPELESS, 10, 10, 10, 0, 0, 10, 20, 0, 4, 0, 0},
159 {
WINED3DFMT_R8G8B8A8_TYPELESS, 8, 8, 8, 8, 0, 8, 16, 24, 4, 0, 0},
160 {
WINED3DFMT_R16G16_TYPELESS, 16, 16, 0, 0, 0, 16, 0, 0, 4, 0, 0},
161 {
WINED3DFMT_R32_TYPELESS, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0},
162 {
WINED3DFMT_R24G8_TYPELESS, 24, 8, 0, 0, 0, 0, 0, 0, 4, 0, 0},
163 {
WINED3DFMT_R8G8_TYPELESS, 8, 8, 0, 0, 0, 8, 0, 0, 2, 0, 0},
164 {
WINED3DFMT_R16_TYPELESS, 16, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0},
165 {
WINED3DFMT_R8_TYPELESS, 8, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
166 {
WINED3DFMT_BC1_TYPELESS, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
167 {
WINED3DFMT_BC2_TYPELESS, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
168 {
WINED3DFMT_BC3_TYPELESS, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
169 {
WINED3DFMT_BC4_TYPELESS, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
170 {
WINED3DFMT_BC5_TYPELESS, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
171 {
WINED3DFMT_BC6H_TYPELESS, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
172 {
WINED3DFMT_BC7_TYPELESS, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
173 {
WINED3DFMT_B8G8R8A8_TYPELESS, 8, 8, 8, 8, 16, 8, 0, 24, 4, 0, 0},
174 {
WINED3DFMT_B8G8R8X8_TYPELESS, 8, 8, 8, 0, 16, 8, 0, 0, 4, 0, 0},
368 *
r = (
c << 3) + (
c >> 2);
369 c = (rgb565 >> 5) & 0x3f;
370 *
g = (
c << 2) + (
c >> 4);
372 *
b = (
c << 3) + (
c >> 2);
389 c[2].r = (
c[0].r +
c[1].r) / 2;
390 c[2].g = (
c[0].g +
c[1].g) / 2;
391 c[2].b = (
c[0].b +
c[1].b) / 2;
399 for (
i = 0;
i < 2; ++
i)
401 c[
i + 2].r = (2 *
c[
i].r +
c[1 -
i].r) / 3;
402 c[
i + 2].g = (2 *
c[
i].g +
c[1 -
i].g) / 3;
403 c[
i + 2].b = (2 *
c[
i].b +
c[1 -
i].b) / 3;
407 for (
i = 0;
i < 4; ++
i)
409 colour_table[
i] = (
c[
i].r << 16) | (
c[
i].
g << 8) |
c[
i].b;
417 alpha_table[0] = alpha0;
418 alpha_table[1] = alpha1;
422 for (
i = 0;
i < 6; ++
i)
424 alpha_table[2 +
i] = ((6 -
i) * alpha0 + (
i + 1) * alpha1) / 7;
430 for (
i = 0;
i < 4; ++
i)
432 alpha_table[2 +
i] = ((4 -
i) * alpha0 + (
i + 1) * alpha1) / 5;
434 alpha_table[6] = 0x00;
435 alpha_table[7] = 0xff;
444 DWORD colour_table[4];
455 WORD colour0, colour1;
459 colour0 =
s[0] & 0xffff;
460 colour1 = (
s[0] >> 16) & 0xffff;
461 colour_bits = (
s[0] >> 32) & 0xffffffff;
463 if (colour0 <= colour1)
475 colour_bits = (
s[1] >> 32) & 0xffffffff;
481 dst_row = (
DWORD *)&
dst[
y * dst_row_pitch];
484 colour_idx = (colour_bits >> (
y * 8 +
x * 2)) & 0x3;
488 alpha = bc1_alpha && colour_idx == 3 ? 0x00 : 0xff;
492 alpha = (alpha_bits >> (
y * 16 +
x * 4)) & 0xf;
498 alpha = alpha_table[(alpha_bits >> (
y * 12 +
x * 3)) & 0x7];
505 dst_row[
x] = (
alpha << 24) | colour_table[colour_idx];
511 unsigned int src_slice_pitch,
unsigned int dst_row_pitch,
unsigned int dst_slice_pitch,
514 unsigned int block_byte_count, block_w, block_h;
515 const BYTE *src_row, *src_slice =
src;
516 BYTE *dst_row, *dst_slice =
dst;
517 unsigned int x,
y,
z;
532 &dst_row[
x * 4], block_w, block_h, dst_row_pitch,
format_id);
534 src_row += src_row_pitch;
535 dst_row += dst_row_pitch * 4;
537 src_slice += src_slice_pitch;
538 dst_slice += dst_slice_pitch;
543 unsigned int src_slice_pitch,
unsigned int dst_row_pitch,
unsigned int dst_slice_pitch,
551 unsigned int src_slice_pitch,
unsigned int dst_row_pitch,
unsigned int dst_slice_pitch,
559 unsigned int src_slice_pitch,
unsigned int dst_row_pitch,
unsigned int dst_slice_pitch,
570 colour_table[0] = red0;
571 colour_table[1] = red1;
574 for (
i = 0;
i < 4; ++
i)
576 colour_table[
i + 2] = ((8 - 2 *
i) * red0 + (2 + 2 *
i) * red1 + 5) / 10;
578 colour_table[6] = 0x00;
579 colour_table[7] = 0xff;
583 for (
i = 0;
i < 6; ++
i)
585 colour_table[
i + 2] = ((12 - 2 *
i) * red0 + (2 + 2 *
i) * red1 + 7) / 14;
591 unsigned int width,
unsigned int height,
unsigned int dst_row_pitch)
601 red1 = (
s[0] >> 8) & 0xff;
610 red_idx = (
bits >> (
y * 12 +
x * 3)) & 0x7;
613 dst_row[
x] = 0xff000000 | (colour_table[red_idx] << 16);
619 unsigned int src_slice_pitch,
unsigned int dst_row_pitch,
unsigned int dst_slice_pitch,
622 unsigned int block_w, block_h,
x,
y,
z;
623 const uint8_t *src_row, *src_slice;
628 src_slice = &
src[
z * src_slice_pitch];
629 dst_slice = &
dst[
z * dst_slice_pitch];
632 src_row = &src_slice[(
y / 4) * src_row_pitch];
633 dst_row = &dst_slice[
y * dst_row_pitch];
648 unsigned int dst_row_pitch,
unsigned int dst_slice_pitch,
764 unsigned int dst_row_pitch,
unsigned int dst_slice_pitch,
767 unsigned int dst_row_pitch,
unsigned int dst_slice_pitch,
770 unsigned int dst_row_pitch,
unsigned int dst_slice_pitch,
781 unsigned int x,
y,
z;
782 const unsigned char *
Source;
789 Source =
src +
z * src_slice_pitch +
y * src_row_pitch;
790 Dest =
dst +
z * dst_slice_pitch +
y * dst_row_pitch;
794 Dest[1] = (
color & 0xf0u) << 0;
795 Dest[0] = (
color & 0x0fu) << 4;
805 unsigned int x,
y,
z;
806 unsigned char r_in,
g_in, l_in;
807 const unsigned short *texel_in;
808 unsigned short *texel_out;
818 texel_out = (
unsigned short *) (
dst +
z * dst_slice_pitch +
y * dst_row_pitch);
819 texel_in = (
const unsigned short *)(
src +
z * src_slice_pitch +
y * src_row_pitch);
822 l_in = (*texel_in & 0xfc00u) >> 10;
823 g_in = (*texel_in & 0x03e0u) >> 5;
824 r_in = *texel_in & 0x001fu;
826 *texel_out = ((r_in + 16) << 11) | (l_in << 5) | (
g_in + 16);
837 unsigned int x,
y,
z;
838 unsigned char *texel_out, r_out,
g_out, r_in,
g_in, l_in;
839 const unsigned short *texel_in;
845 texel_in = (
const unsigned short *)(
src +
z * src_slice_pitch +
y * src_row_pitch);
846 texel_out =
dst +
z * dst_slice_pitch +
y * dst_row_pitch;
849 l_in = (*texel_in & 0xfc00u) >> 10;
850 g_in = (*texel_in & 0x03e0u) >> 5;
851 r_in = *texel_in & 0x001fu;
861 texel_out[0] = r_out;
862 texel_out[1] =
g_out;
863 texel_out[2] = l_in << 1 | l_in >> 5;
876 unsigned int x,
y,
z;
877 unsigned char *texel_out, ds_out, dt_out, r_in,
g_in, l_in;
878 const unsigned short *texel_in;
892 texel_in = (
const unsigned short *)(
src +
z * src_slice_pitch +
y * src_row_pitch);
893 texel_out =
dst +
z * dst_slice_pitch +
y * dst_row_pitch;
896 l_in = (*texel_in & 0xfc00u) >> 10;
897 g_in = (*texel_in & 0x03e0u) >> 5;
898 r_in = *texel_in & 0x001fu;
908 texel_out[0] = ds_out;
909 texel_out[1] = dt_out;
910 texel_out[2] = l_in << 1 | l_in >> 5;
922 unsigned int x,
y,
z;
930 Source = (
const short *)(
src +
z * src_slice_pitch +
y * src_row_pitch);
931 Dest =
dst +
z * dst_slice_pitch +
y * dst_row_pitch;
936 Dest[1] = (
color >> 8) + 128;
937 Dest[2] = (
color & 0xff) + 128;
947 unsigned int x,
y,
z;
960 Dest =
dst +
z * dst_slice_pitch +
y * dst_row_pitch;
964 Dest[0] = ((
color >> 16) & 0xff);
965 Dest[1] = ((
color >> 8 ) & 0xff) + 128;
966 Dest[2] = (
color & 0xff) + 128;
976 unsigned int x,
y,
z;
988 Dest =
dst +
z * dst_slice_pitch +
y * dst_row_pitch;
992 Dest[2] = ((
color >> 16) & 0xff);
993 Dest[1] = ((
color >> 8 ) & 0xff);
994 Dest[0] = (
color & 0xff);
1005 unsigned int x,
y,
z;
1007 unsigned char *Dest;
1014 Dest =
dst +
z * dst_slice_pitch +
y * dst_row_pitch;
1018 Dest[0] = ((
color >> 16) & 0xff) + 128;
1019 Dest[1] = ((
color >> 8 ) & 0xff) + 128;
1020 Dest[2] = (
color & 0xff) + 128;
1021 Dest[3] = ((
color >> 24) & 0xff) + 128;
1031 unsigned int x,
y,
z;
1033 unsigned short *Dest;
1040 Dest = (
unsigned short *) (
dst +
z * dst_slice_pitch +
y * dst_row_pitch);
1045 Dest[1] = (
color >> 16) + 32768;
1046 Dest[2] = (
color & 0xffff) + 32768;
1056 unsigned int x,
y,
z;
1064 Source = (
const WORD *)(
src +
z * src_slice_pitch +
y * src_row_pitch);
1065 Dest = (
WORD *) (
dst +
z * dst_slice_pitch +
y * dst_row_pitch);
1084 unsigned int x,
y,
z;
1092 Source = (
const float *)(
src +
z * src_slice_pitch +
y * src_row_pitch);
1093 Dest = (
float *) (
dst +
z * dst_slice_pitch +
y * dst_row_pitch);
1110 unsigned int x,
y,
z;
1117 float *dest_f = (
float *)(
dst +
z * dst_slice_pitch +
y * dst_row_pitch);
1123 dest_s[
x * 2 + 1] =
source[
x] & 0xff;
1130 unsigned int src_row_pitch,
unsigned int src_slice_pitch,
1131 unsigned int dst_row_pitch,
unsigned int dst_slice_pitch,
1134 unsigned int x,
y,
z;
1152 unsigned int src_row_pitch,
unsigned int src_slice_pitch,
1153 unsigned int dst_row_pitch,
unsigned int dst_slice_pitch,
1156 unsigned int x,
y,
z;
1185 const WORD *src_row;
1191 src_row = (
WORD *)&
src[src_pitch *
y];
1192 dst_row = (
WORD *)&
dst[dst_pitch *
y];
1195 WORD src_color = src_row[
x];
1197 dst_row[
x] = 0x8000u | ((src_color & 0xffc0u) >> 1) | (src_color & 0x1fu);
1199 dst_row[
x] = ((src_color & 0xffc0u) >> 1) | (src_color & 0x1fu);
1208 const WORD *src_row;
1214 src_row = (
WORD *)&
src[src_pitch *
y];
1215 dst_row = (
WORD *)&
dst[dst_pitch *
y];
1218 WORD src_color = src_row[
x];
1220 dst_row[
x] = src_color & ~0x8000;
1222 dst_row[
x] = src_color | 0x8000;
1231 const BYTE *src_row;
1237 src_row = &
src[src_pitch *
y];
1241 DWORD src_color = (src_row[
x * 3 + 2] << 16) | (src_row[
x * 3 + 1] << 8) | src_row[
x * 3];
1243 dst_row[
x] = src_color | 0xff000000;
1252 const DWORD *src_row;
1262 DWORD src_color = src_row[
x];
1264 dst_row[
x] = src_color & ~0xff000000;
1266 dst_row[
x] = src_color | 0xff000000;
1275 const DWORD *src_row;
1285 DWORD src_color = src_row[
x];
1287 src_color &= ~0xff000000;
1288 dst_row[
x] = src_color;
1317 if (color_key_info[
i].src_format ==
format->id)
1318 return &color_key_info[
i].conversion;
2038 ERR(
"Invalid channel type '%c'.\n",
t);
2046 unsigned int attrs = 0;
2049 for (
j = 0;
j <
strlen(channel_desc); ++
j)
2102 format->block_height = 1;
2134 format->typeless_id = typeless_format->
id;
2245 ERR(
"Unexpected GL resource type %u.\n",
type);
2258 gl_info->
gl_ops.gl.p_glDeleteTextures(1, &
object);
2262 gl_info->
fbo_ops.glDeleteRenderbuffers(1, &
object);
2283 gl_info->
gl_ops.gl.p_glGenTextures(1,
object);
2290 if (format_gl->
f.stencil_size)
2296 gl_info->
gl_ops.gl.p_glGenTextures(1,
object);
2305 if (format_gl->
f.stencil_size)
2311 gl_info->
gl_ops.gl.p_glGenTextures(1,
object);
2318 if (format_gl->
f.stencil_size)
2324 gl_info->
gl_ops.gl.p_glGenTextures(1,
object);
2343 if (format_gl->
f.stencil_size)
2349 gl_info->
fbo_ops.glGenRenderbuffers(1,
object);
2353 if (format_gl->
f.stencil_size)
2368 while (gl_info->
gl_ops.gl.p_glGetError());
2377 {-1.0f, -1.0f, 0.0f},
2378 { 1.0f, -1.0f, 0.0f},
2379 {-1.0f, 1.0f, 0.0f},
2380 { 1.0f, 1.0f, 0.0f},
2382 static const char vs_core_header[] =
2386 "out vec4 out_color;\n"
2388 static const char vs_legacy_header[] =
2390 "attribute vec4 pos;\n"
2391 "attribute vec4 color;\n"
2392 "varying vec4 out_color;\n"
2394 static const char vs_body[] =
2397 " gl_Position = pos;\n"
2398 " out_color = color;\n"
2400 static const char fs_core[] =
2402 "in vec4 out_color;\n"
2403 "out vec4 fragment_color;\n"
2407 " fragment_color = out_color;\n"
2409 static const char fs_legacy[] =
2411 "varying vec4 out_color;\n"
2415 " gl_FragData[0] = out_color;\n"
2422 geometry = default_geometry;
2429 gl_info->
gl_ops.gl.p_glLoadIdentity();
2431 gl_info->
gl_ops.gl.p_glLoadIdentity();
2435 for (
i = 0;
i < 4; ++
i)
2436 gl_info->
gl_ops.gl.p_glVertex3fv(&geometry[
i].
x);
2437 gl_info->
gl_ops.gl.p_glEnd();
2451 if (!
ctx->test_program_id)
2458 source[0] = use_glsl_150 ? vs_core_header : vs_legacy_header;
2465 source[0] = use_glsl_150 ? fs_core : fs_legacy;
2470 GL_EXTCALL(glBindAttribLocation(
ctx->test_program_id, 0,
"pos"));
2471 GL_EXTCALL(glBindAttribLocation(
ctx->test_program_id, 1,
"color"));
2474 GL_EXTCALL(glBindFragDataLocation(
ctx->test_program_id, 0,
"fragment_color"));
2500 static const struct wined3d_color black = {0.0f, 0.0f, 0.0f, 1.0f};
2501 static const struct wined3d_color half_transparent_red = {1.0f, 0.0f, 0.0f, 0.5f};
2512 const char *type_string =
"color";
2521 gl_info->
fbo_ops.glGenRenderbuffers(1, &color_rb);
2530 checkGLcall(
"Create and attach color rb attachment");
2531 type_string =
"depth / stencil";
2539 TRACE(
"Format %s is supported as FBO %s attachment, type %u.\n",
2543 regular_fmt_used =
TRUE;
2551 WARN(
"Format %s with rendertarget flag is not supported as FBO color attachment (type %u),"
2557 TRACE(
"Format %s is not supported as FBO %s attachment, type %u.\n",
2564 TRACE(
"Format %s is not supported as FBO %s attachment (type %u),"
2565 " trying rtInternal format as fallback.\n",
2568 while (gl_info->
gl_ops.gl.p_glGetError());
2578 TRACE(
"Format %s rtInternal format is supported as FBO %s attachment, type %u.\n",
2580 fallback_fmt_used =
TRUE;
2584 WARN(
"Format %s rtInternal format is not supported as FBO %s attachment, type %u.\n",
2600 unsigned int r_range, a_range;
2607 gl_info->
fbo_ops.glGenRenderbuffers(1, &rb);
2619 gl_info->
gl_ops.gl.p_glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
2623 while (gl_info->
gl_ops.gl.p_glGetError());
2624 TRACE(
"Format %s doesn't support post-pixelshader blending, type %u.\n",
2626 format->f.caps[
type] &= ~WINED3D_FORMAT_CAP_POSTPIXELSHADER_BLENDING;
2632 gl_info->
gl_ops.gl.p_glViewport(0, 0, 16, 1);
2634 gl_info->
gl_ops.gl.p_glViewport(0, 0, 16, 16);
2673 gl_info->
gl_ops.gl.p_glReadPixels(0, 0, 16, 16,
2686 r = (
color & 0x00ff0000u) >> 16;
2688 r_range =
format->f.red_size < 8 ? 1u << (8 -
format->f.red_size) : 1;
2689 a_range =
format->f.alpha_size < 8 ? 1u << (8 -
format->f.alpha_size) : 1;
2690 if (
format->f.red_size && (r < 0x7f - r_range || r > 0x7f + r_range))
2692 else if (
format->f.alpha_size > 1 && (a < 0xbf - a_range || a > 0xbf + a_range))
2696 TRACE(
"Format %s doesn't support post-pixelshader blending, type %u.\n",
2699 format->f.caps[
type] &= ~WINED3D_FORMAT_CAP_POSTPIXELSHADER_BLENDING;
2703 TRACE(
"Format %s supports post-pixelshader blending, type %u.\n",
2714 gl_info->
fbo_ops.glDeleteRenderbuffers(1, &rb);
2729 TRACE(
"Format %s's sRGB format is FBO attachable, type %u.\n",
2737 WARN(
"Format %s's sRGB format is not FBO attachable, type %u.\n",
2748 gl_info->
fbo_ops.glDeleteRenderbuffers(1, &color_rb);
2755 if (fallback_fmt_used && regular_fmt_used)
2757 FIXME(
"Format %s needs different render target formats for different resource types.\n",
2792 unsigned int i,
type;
2813 TRACE(
"Format %s is supported as FBO color attachment, resource type %u.\n",
2817 regular_fmt_used =
TRUE;
2823 TRACE(
"Format %s supports post-pixelshader blending, resource type %u.\n",
2829 TRACE(
"Format %s doesn't support post-pixelshader blending, resource typed %u.\n",
2831 format->f.caps[
type] &= ~WINED3D_FORMAT_CAP_POSTPIXELSHADER_BLENDING;
2840 WARN(
"Format %s with rendertarget flag is not supported as FBO color attachment"
2841 " and no fallback specified, resource type %u.\n",
2843 format->f.caps[
type] &= ~WINED3D_FORMAT_CAP_RENDERTARGET;
2846 TRACE(
"Format %s is not supported as FBO color attachment,"
2856 TRACE(
"Format %s rtInternal format is supported as FBO color attachment,"
2858 fallback_fmt_used =
TRUE;
2862 WARN(
"Format %s rtInternal format is not supported as FBO color attachment,"
2864 format->f.caps[
type] &= ~WINED3D_FORMAT_CAP_RENDERTARGET;
2875 TRACE(
"Format %s's sRGB format is FBO attachable, resource type %u.\n",
2883 WARN(
"Format %s's sRGB format is not FBO attachable, resource type %u.\n",
2892 if (fallback_fmt_used && regular_fmt_used)
2894 FIXME(
"Format %s needs different render target formats for different resource types.\n",
2903 gl_info->
fbo_ops.glGenFramebuffers(1, &fbo);
2917 TRACE(
"Skipping format %s because it's a compressed format.\n",
2926 gl_info->
fbo_ops.glDeleteFramebuffers(1, &fbo);
3033 if (view_classes[
i].internal_format == internal_format)
3034 return view_classes[
i].view_class;
3042 GLenum internal_view_class, gamma_view_class, rt_view_class;
3048 if (internal_view_class == gamma_view_class || gamma_view_class == rt_view_class)
3050 format->view_class = internal_view_class;
3051 TRACE(
"Format %s is member of GL view class %#x.\n",
3065 unsigned int i, max_log2;
3077 if (srgb_format ||
format->srgb_internal !=
format->internal)
3101 if (srgb_format ||
format->srgb_internal !=
format->internal)
3138 FIXME(
"Unexpectedly high number of multisample types %d.\n",
count);
3145 if (multisample_types[
i] >
sizeof(
format->f.multisample_types) *
CHAR_BIT)
3147 format->f.multisample_types |= 1u << (multisample_types[
i] - 1);
3154 for (
i = 1;
i <= max_log2; ++
i)
3155 format->f.multisample_types |= 1u << ((1u <<
i) - 1);
3195 format->f.height_scale.numerator = 1;
3196 format->f.height_scale.denominator = 1;
3260 unsigned int diff =
x >
y ?
x -
y :
y -
x;
3262 return diff <= max_diff;
3268 &&
compare_uint((c1 >> 8) & 0xff, (c2 >> 8) & 0xff, max_diff)
3269 &&
compare_uint((c1 >> 16) & 0xff, (c2 >> 16) & 0xff, max_diff)
3270 &&
compare_uint((c1 >> 24) & 0xff, (c2 >> 24) & 0xff, max_diff);
3276 static const DWORD data[] = {0x00000000, 0xffffffff};
3291 while (gl_info->
gl_ops.gl.p_glGetError());
3304 gl_info->
gl_ops.gl.p_glGenTextures(1, &tex);
3315 gl_info->
fbo_ops.glGenFramebuffers(1, &fbo);
3320 gl_info->
gl_ops.gl.p_glViewport(0, 0, 16, 1);
3323 gl_info->
gl_ops.gl.p_glLoadIdentity();
3325 gl_info->
gl_ops.gl.p_glLoadIdentity();
3327 gl_info->
gl_ops.gl.p_glClearColor(0, 1, 0, 0);
3331 gl_info->
gl_ops.gl.p_glTexCoord2f(0.0, 0.0);
3332 gl_info->
gl_ops.gl.p_glVertex2f(-1.0f, -1.0f);
3333 gl_info->
gl_ops.gl.p_glTexCoord2f(1.0, 0.0);
3334 gl_info->
gl_ops.gl.p_glVertex2f(1.0f, -1.0f);
3335 gl_info->
gl_ops.gl.p_glTexCoord2f(0.0, 1.0);
3336 gl_info->
gl_ops.gl.p_glVertex2f(-1.0f, 1.0f);
3337 gl_info->
gl_ops.gl.p_glTexCoord2f(1.0, 1.0);
3338 gl_info->
gl_ops.gl.p_glVertex2f(1.0f, 1.0f);
3339 gl_info->
gl_ops.gl.p_glEnd();
3347 TRACE(
"Read back colors 0x%08x and 0x%08x close to unfiltered color, assuming no filtering\n",
3353 TRACE(
"Read back colors are 0x%08x and 0x%08x, assuming texture is filtered\n",
3359 gl_info->
fbo_ops.glDeleteFramebuffers(1, &fbo);
3360 gl_info->
gl_ops.gl.p_glDeleteTextures(1, &tex);
3364 if (gl_info->
gl_ops.gl.p_glGetError())
3366 FIXME(
"Error during filtering test for format %x, returning no filtering\n",
internal);
3395 TRACE(
"Nvidia card with texture_float support: Assuming float16 blending\n");
3398 else if (gl_info->
limits.glsl_varyings > 44)
3400 TRACE(
"More than 44 GLSL varyings - assuming d3d10 card with float16 blending\n");
3405 TRACE(
"Assuming no float16 blending\n");
3465 if (
c ==
'x' ||
c ==
'y' ||
c ==
'z' ||
c ==
'w')
3496 BOOL use_legacy_fixups;
3561 if (fixups[
i].
legacy && !use_legacy_fixups)
3564 if (!gl_info->
supported[fixups[
i].extension])
3606 format->f.height_scale.numerator = 3;
3607 format->f.height_scale.denominator = 2;
3612 format->f.height_scale.numerator = 3;
3613 format->f.height_scale.denominator = 2;
3707 TRACE(
"Checking support for fixup:\n");
3709 if (!
adapter->shader_backend->shader_color_fixup_supported(
format->f.color_fixup)
3710 || !
adapter->fragment_pipe->color_fixup_supported(
format->f.color_fixup))
3712 TRACE(
"[FAILED]\n");
3767 unsigned int attrs,
i,
j;
3788 struct wined3d_format *typeless_format, *typeless_ds_format, *ds_format;
3800 typeless_ds_format->
attrs = typeless_format->
attrs;
3803 typeless_ds_format->
caps[
j] = typeless_format->
caps[
j];
3804 typeless_format->
caps[
j] &= ~WINED3D_FORMAT_CAP_DEPTH_STENCIL;
3836 if (!gl_info->
fbo_ops.glGenerateMipmap)
3853 static const float offset = -63.0f / 128.0f;
3863 gl_info->
fbo_ops.glGenFramebuffers(1, &fbo);
3869 gl_info->
gl_ops.gl.p_glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
3880 TRACE(
"Readback colors are 0x%08x, 0x%08x, 0x%08x, 0x%08x.\n",
3884 gl_info->
fbo_ops.glDeleteFramebuffers(1, &fbo);
3900 unsigned int x,
y, clear = 0, draw = 0;
3935 {(-1.0f +
offset) / 8.0f, (-1.0f +
offset) / 8.0f, 0.0f},
3936 {( 1.0f +
offset) / 8.0f, (-1.0f +
offset) / 8.0f, 0.0f},
3937 {(-1.0f +
offset) / 8.0f, ( 1.0f +
offset) / 8.0f, 0.0f},
3938 {( 1.0f +
offset) / 8.0f, ( 1.0f +
offset) / 8.0f, 0.0f},
3946 gl_info->
fbo_ops.glGenFramebuffers(1, &fbo);
3952 gl_info->
gl_ops.gl.p_glViewport(0, 0, 8, 8);
3953 gl_info->
gl_ops.gl.p_glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
3965 gl_info->
fbo_ops.glDeleteFramebuffers(1, &fbo);
3981 if (clear != 63 || draw != 1)
3983 FIXME(
"Unexpected filling convention test result.\n");
3988 return readback[3][3] == 0xffff0000;
3995 unsigned int low = 0, high = 32,
cur;
3999 {-1.0f, -1.0f, -1.0f},
4000 { 1.0f, -1.0f, 0.0f},
4001 {-1.0f, 1.0f, -1.0f},
4002 { 1.0f, 1.0f, 0.0f},
4007 unsigned int fallback = 23;
4018 gl_info->
fbo_ops.glGenFramebuffers(1, &fbo);
4024 gl_info->
gl_ops.gl.p_glClearColor(0.0f, 0.0f, 0.5f, 0.0f);
4025 gl_info->
gl_ops.gl.p_glClearDepth(0.5f);
4028 gl_info->
gl_ops.gl.p_glViewport(0, 0, 256, 1);
4033 if (high - low <= 1)
4035 ERR(
"PolygonOffset scale factor detection failed, using fallback value 2^%u.\n", fallback);
4039 cur = (low + high) / 2;
4044 gl_info->
gl_ops.gl.p_glPolygonOffset(0.0f, (
float)(1u <<
cur) * 0.25f);
4053 TRACE(
"low %02u, high %02u, cur %2u, 0=0x%08x, 125=0x%08x, 131=0x%08x, 255=0x%08x\n",
4058 else if ((
readback[131] & 0xff) > 0xa0)
4069 gl_info->
fbo_ops.glDeleteFramebuffers(1, &fbo);
4075 return (
float)(1u <<
cur);
4099 format->f.depth_bias_scale /= 1u << 24;
4101 format->f.depth_bias_scale /= 1u <<
format->f.depth_size;
4113 ERR(
"Failed to allocate memory.\n");
4204 const struct wined3d_vk_info *vk_info, VkPhysicalDevice vk_physical_device)
4299 if (vulkan_formats[
i].
id ==
format->f.id)
4301 vk_format = vulkan_formats[
i].vk_format;
4302 fixup = vulkan_formats[
i].fixup;
4312 format->vk_format = vk_format;
4324 WARN(
"Mapping VK_FORMAT_D24_UNORM_S8_UINT to VK_FORMAT_D32_SFLOAT_S8_UINT.\n");
4394 format->f.multisample_types |= 1u <<
i;
4437 FIXME(
"Can't find format %s (%#x) in the format lookup table.\n",
4452 FIXME(
"Cannot find depth/stencil typeless format %s (%#x).\n",
4490 unsigned int width,
unsigned int height,
unsigned int *row_pitch,
unsigned int *slice_pitch)
4496 unsigned int row_block_count = (
width +
format->block_width - 1) /
format->block_width;
4497 unsigned int slice_block_count = (
height +
format->block_height - 1) /
format->block_height;
4498 *row_pitch = row_block_count *
format->block_byte_count;
4500 *slice_pitch = *row_pitch * slice_block_count;
4506 *slice_pitch = *row_pitch *
height;
4512 *slice_pitch *=
format->height_scale.numerator;
4513 *slice_pitch /=
format->height_scale.denominator;
4516 TRACE(
"Returning row pitch %u, slice pitch %u.\n", *row_pitch, *slice_pitch);
4522 unsigned int row_pitch, slice_pitch;
4532 return slice_pitch *
depth;
4574 v->x,
v->y,
v->z,
v->w);
4582 v->x,
v->y,
v->z,
v->w);
4590 v->x,
v->y,
v->z,
v->w);
4609#define FMT_TO_STR(format_id) case format_id: return #format_id
4773 FIXME(
"Unrecognized %#x (as fourcc: %s) WINED3DFORMAT!\n",
format_id, fourcc);
4777 return "unrecognized";
4785#define DEVTYPE_TO_STR(dev) case dev: return #dev
4789#undef DEVTYPE_TO_STR
4792 return "unrecognized";
4833#define ACCESS_TO_STR(x) if (access & x) { debug_append(&buffer, #x, " | "); access &= ~x; }
4840 FIXME(
"Unrecognised access flag(s) %#x.\n",
access);
4850#define BIND_FLAG_TO_STR(x) if (bind_flags & x) { debug_append(&buffer, #x, " | "); bind_flags &= ~x; }
4860#undef BIND_FLAG_TO_STR
4862 FIXME(
"Unrecognised bind flag(s) %#x.\n", bind_flags);
4870 unsigned int flags =
d->flags;
4873#define VIEW_FLAG_TO_STR(x) if (flags & x) { debug_append(&buffer, #x, " | "); flags &= ~x; }
4882#undef VIEW_FLAG_TO_STR
4884 FIXME(
"Unrecognised view flag(s) %#x.\n",
flags);
4890 return wine_dbg_sprintf(
"format %s, flags %s, level_idx %u, level_count %u, layer_idx %u, layer_count %u",
4892 d->u.texture.layer_idx,
d->u.texture.layer_count);
4900#define WINED3DUSAGE_TO_STR(x) if (usage & x) { debug_append(&buffer, #x, " | "); usage &= ~x; }
4926#undef WINED3DUSAGE_TO_STR
4928 FIXME(
"Unrecognized usage flag(s) %#x.\n",
usage);
4937#define WINED3DDECLMETHOD_TO_STR(u) case u: return #u
4945#undef WINED3DDECLMETHOD_TO_STR
4947 FIXME(
"Unrecognized declaration method %#x.\n",
method);
4948 return "unrecognized";
4956#define WINED3DDECLUSAGE_TO_STR(u) case u: return #u
4971#undef WINED3DDECLUSAGE_TO_STR
4973 FIXME(
"Unrecognized %u declaration usage!\n",
usage);
4974 return "unrecognized";
4980 switch (classification)
4982#define WINED3D_TO_STR(x) case x: return #x
4985#undef WINED3D_TO_STR
4987 FIXME(
"Unrecognized input classification %#x.\n", classification);
4988 return "unrecognized";
4994 switch (resource_type)
4996#define WINED3D_TO_STR(x) case x: return #x
5002#undef WINED3D_TO_STR
5004 FIXME(
"Unrecognized resource type %#x.\n", resource_type);
5005 return "unrecognized";
5011 switch (primitive_type)
5013#define PRIM_TO_STR(prim) case prim: return #prim
5028 FIXME(
"Unrecognized primitive type %#x.\n", primitive_type);
5029 return "unrecognized";
5037#define D3DSTATE_TO_STR(u) case u: return #u
5162#undef D3DSTATE_TO_STR
5164 FIXME(
"Unrecognized %u render state!\n",
state);
5165 return "unrecognized";
5173#define D3DSTATE_TO_STR(u) case u: return #u
5187#undef D3DSTATE_TO_STR
5189 FIXME(
"Unrecognized %u sampler state!\n",
state);
5190 return "unrecognized";
5196 switch (filter_type)
5198#define D3DTEXTUREFILTERTYPE_TO_STR(u) case u: return #u
5207#undef D3DTEXTUREFILTERTYPE_TO_STR
5209 FIXME(
"Unrecognized texture filter type 0x%08x.\n", filter_type);
5210 return "unrecognized";
5218#define D3DSTATE_TO_STR(u) case u: return #u
5237#undef D3DSTATE_TO_STR
5239 FIXME(
"Unrecognized %u texture state!\n",
state);
5240 return "unrecognized";
5248#define D3DTOP_TO_STR(u) case u: return #u
5277 FIXME(
"Unrecognized texture op %#x.\n", d3dtop);
5278 return "unrecognized";
5286#define TSTYPE_TO_STR(tstype) case tstype: return #tstype
5303 if (tstype > 256 && tstype < 512)
5305 FIXME(
"WINED3D_TS_WORLD_MATRIX(%u). 1..255 not currently supported.\n", tstype);
5306 return (
"WINED3D_TS_WORLD_MATRIX > 0");
5308 FIXME(
"Unrecognized transform state %#x.\n", tstype);
5309 return "unrecognized";
5317#define WINED3D_TO_STR(type) case type: return #type
5324#undef WINED3D_TO_STR
5326 FIXME(
"Unrecognized shader type %#x.\n",
type);
5327 return "unrecognized";
5351 return "STATE_COMPUTE_SHADER_RESOURCE_BINDING";
5353 return "STATE_GRAPHICS_SHADER_RESOURCE_BINDING";
5355 return "STATE_COMPUTE_UNORDERED_ACCESS_VIEW_BINDING";
5357 return "STATE_GRAPHICS_UNORDERED_ACCESS_VIEW_BINDING";
5359 return "STATE_STREAMSRC";
5361 return "STATE_INDEXBUFFER";
5363 return "STATE_VDECL";
5365 return "STATE_VIEWPORT";
5367 return "STATE_SCISSORRECT";
5371 return "STATE_RASTERIZER";
5373 return "STATE_DEPTH_BOUNDS";
5375 return "STATE_BASEVERTEXINDEX";
5377 return "STATE_FRAMEBUFFER";
5379 return "STATE_STREAM_OUTPUT";
5381 return "STATE_BLEND";
5383 return "STATE_BLEND_FACTOR";
5385 return "STATE_SAMPLE_MASK";
5387 return "STATE_DEPTH_STENCIL";
5389 return "STATE_STENCIL_REF";
5398#define WINED3D_TO_STR(x) case x: return #x
5417#undef WINED3D_TO_STR
5425#define FBOSTATUS_TO_STR(u) case u: return #u
5438#undef FBOSTATUS_TO_STR
5440 FIXME(
"Unrecognized FBO status 0x%08x.\n",
status);
5441 return "unrecognized";
5447#define GLERROR_TO_STR(u) case u: return #u
5456#undef GLERROR_TO_STR
5458 FIXME(
"Unrecognized GL error 0x%08x.\n",
error);
5459 return "unrecognized";
5467#define WINED3D_TO_STR(x) case x: return #x
5496#undef WINED3D_TO_STR
5506#define WINED3D_TO_STR(x) case x: return #x
5515#undef WINED3D_TO_STR
5517 FIXME(
"Unrecognized fixup_channel_source %#x\n",
source);
5518 return "unrecognized";
5526#define WINED3D_TO_STR(x) case x: return #x
5533#undef WINED3D_TO_STR
5535 FIXME(
"Unrecognized complex fixup %#x\n", fixup);
5536 return "unrecognized";
5579 1.0f, 0.0f, 0.0f, 0.0f,
5580 0.0f, 1.0f, 0.0f, 0.0f,
5581 0.0f, 0.0f, 1.0f, 0.0f,
5582 0.0f, 0.0f, 0.0f, 1.0f,
5607 ERR(
"Invalid texture transform flags: WINED3D_TTFF_COUNT1 | WINED3D_TTFF_PROJECTED.\n");
5652 FIXME(
"Unexpected fixed function texture coord input\n");
5685 float *out_min,
float *out_max)
5721 *
start = tmpvalue.f;
5737 ERR(
"Unexpected fog coordinate source.\n");
5746 DWORD device_idx = 0;
5748 display_device.
cb =
sizeof(display_device);
5859 color = &colour_srgb;
5870 idx.x = float_conv[
i].shift.x / 32;
5871 idx.y = float_conv[
i].shift.y / 32;
5872 idx.z = float_conv[
i].shift.z / 32;
5873 idx.w = float_conv[
i].shift.w / 32;
5874 shift.x = float_conv[
i].shift.x % 32;
5875 shift.y = float_conv[
i].shift.y % 32;
5876 shift.z = float_conv[
i].shift.z % 32;
5877 shift.w = float_conv[
i].shift.w % 32;
5894 idx.x = double_conv[
i].shift.x / 32;
5895 idx.y = double_conv[
i].shift.y / 32;
5896 idx.z = double_conv[
i].shift.z / 32;
5897 idx.w = double_conv[
i].shift.w / 32;
5898 shift.x = double_conv[
i].shift.x % 32;
5899 shift.y = double_conv[
i].shift.y % 32;
5900 shift.z = double_conv[
i].shift.z % 32;
5901 shift.w = double_conv[
i].shift.w % 32;
5935 && (
format->red_size == 32 ||
format->depth_size == 32)
5936 && !
format->stencil_size)
5940 switch (
format->byte_count)
5942 case 16: ret_f[3] =
color->a;
5943 case 12: ret_f[2] =
color->b;
5944 case 8: ret_f[1] =
color->g;
5945 case 4: ret_f[0] =
color->r;
5960 switch (
format->byte_count)
6051 float_colors[0].
r = 0.0f;
6052 float_colors[0].
g = 0.0f;
6053 float_colors[0].
b = 0.0f;
6054 float_colors[0].
a = (
key->color_space_low_value - 0.5f) / 255.0f;
6056 float_colors[1].
r = 0.0f;
6057 float_colors[1].
g = 0.0f;
6058 float_colors[1].
b = 0.0f;
6059 float_colors[1].
a = (
key->color_space_high_value + 0.5f) / 255.0f;
6081 unsigned int src_row_pitch,
unsigned int src_slice_pitch,
uint8_t *
dst,
unsigned int dst_row_pitch,
6082 unsigned int dst_slice_pitch,
unsigned int w,
unsigned int h,
unsigned int d)
6084 unsigned int row_block_count, row_count, row_size,
slice,
row;
6085 unsigned int slice_count =
d, slice_size;
6089 row_block_count = (
w +
format->block_width - 1) /
format->block_width;
6090 row_count = (
h +
format->block_height - 1) /
format->block_height;
6091 row_size = row_block_count *
format->block_byte_count;
6092 slice_size = row_size * row_count;
6094 if (src_row_pitch == row_size && dst_row_pitch == row_size
6095 && ((src_slice_pitch == slice_size && dst_slice_pitch == slice_size) || slice_count == 1))
6105 src_row = &
src[
slice * src_slice_pitch +
row * src_row_pitch];
6106 dst_row = &
dst[
slice * dst_slice_pitch +
row * dst_row_pitch];
6107 memcpy(dst_row, src_row, row_size);
6179 DWORD cop, aop, carg0, carg1, carg2, aarg0, aarg1, aarg2;
6256 if (
state->blend_state &&
state->blend_state->desc.rt[0].enable)
6268 if (
state->blend_state &&
state->blend_state->desc.rt[0].enable)
6380 settings->texcoords_initialized = 0;
6386 settings->texcoords_initialized |= 1u <<
i;
6394 settings->texcoords_initialized |= 1u <<
i;
6432 ERR(
"Failed to insert ffp frag shader.\n");
6441 return memcmp(ka, kb,
sizeof(*ka));
6449 unsigned int coord_idx,
i;
6511 &ambient_source, &specular_source,
state);
6512 settings->diffuse_source = diffuse_source;
6513 settings->emissive_source = emissive_source;
6514 settings->ambient_source = ambient_source;
6515 settings->specular_source = specular_source;
6529 if (!
state->light_state.lights[
i])
6532 switch (
state->light_state.lights[
i]->OriginalParms.type)
6541 ++
settings->directional_light_count;
6544 ++
settings->parallel_point_light_count;
6547 FIXME(
"Unhandled light type %#x.\n",
state->light_state.lights[
i]->OriginalParms.type);
6585 return memcmp(ka, kb,
sizeof(*ka));
6592 const char *suffix =
"";
6602#define LOCATION_TO_STR(x) if (location & x) { debug_append(&buffer, #x, " | "); location &= ~x; }
6612#undef LOCATION_TO_STR
6623#define LEVEL_TO_STR(level) case level: return #level
6667 WARN(
"DC %p does not belong to window %p.\n",
dc,
window);
6669 ERR(
"Failed to release device context %p, last error %#lx.\n",
dc,
GetLastError());
6674 RECT orig = *clipped;
6742 SIZE_T max_capacity, new_capacity;
6745 if (
count <= *capacity)
6749 if (
count > max_capacity)
6752 new_capacity =
max(1, *capacity);
6753 while (new_capacity <
count && new_capacity <= max_capacity / 2)
6755 if (new_capacity <
count)
6756 new_capacity =
count;
6762 *elements = new_elements;
6763 *capacity = new_capacity;
6778 float m0, m1, m2, m3,
s;
6779 float *r0, *
r1, *
r2, *
r3;
6791 r0[5] = r0[6] = r0[7] = 0.0f;
6798 r1[4] =
r1[6] =
r1[7] = 0.0f;
6805 r2[4] =
r2[5] =
r2[7] = 0.0f;
6812 r3[4] =
r3[5] =
r3[6] = 0.0f;
6825 m1 =
r1[0] / r0[0]; m2 =
r2[0] / r0[0]; m3 =
r3[0] / r0[0];
6826 s = r0[1];
r1[1] -= m1 *
s;
r2[1] -= m2 *
s;
r3[1] -= m3 *
s;
6827 s = r0[2];
r1[2] -= m1 *
s;
r2[2] -= m2 *
s;
r3[2] -= m3 *
s;
6828 s = r0[3];
r1[3] -= m1 *
s;
r2[3] -= m2 *
s;
r3[3] -= m3 *
s;
6867 m2 =
r2[1] /
r1[1]; m3 =
r3[1] /
r1[1];
6868 r2[2] -= m2 *
r1[2];
r3[2] -= m3 *
r1[2];
6869 r2[3] -= m2 *
r1[3];
r3[3] -= m3 *
r1[3];
6903 r3[3] -= m3 *
r2[3];
6904 r3[4] -= m3 *
r2[4];
6905 r3[5] -= m3 *
r2[5];
6906 r3[6] -= m3 *
r2[6];
6907 r3[7] -= m3 *
r2[7];
6923 r2[4] =
s * (
r2[4] -
r3[4] * m2);
6924 r2[5] =
s * (
r2[5] -
r3[5] * m2);
6925 r2[6] =
s * (
r2[6] -
r3[6] * m2);
6926 r2[7] =
s * (
r2[7] -
r3[7] * m2);
6928 r1[4] -=
r3[4] * m1;
6929 r1[5] -=
r3[5] * m1;
6930 r1[6] -=
r3[6] * m1;
6931 r1[7] -=
r3[7] * m1;
6933 r0[4] -=
r3[4] * m0;
6934 r0[5] -=
r3[5] * m0;
6935 r0[6] -=
r3[6] * m0;
6936 r0[7] -=
r3[7] * m0;
6941 r1[4] =
s * (
r1[4] -
r2[4] * m1);
6942 r1[5] =
s * (
r1[5] -
r2[5] * m1);
6943 r1[6] =
s * (
r1[6] -
r2[6] * m1);
6944 r1[7] =
s * (
r1[7] -
r2[7] * m1);
6946 r0[4] -=
r2[4] * m0;
6947 r0[5] -=
r2[5] * m0;
6948 r0[6] -=
r2[6] * m0;
6949 r0[7] -=
r2[7] * m0;
6954 r0[4] =
s * (r0[4] -
r1[4] * m0);
6955 r0[5] =
s * (r0[5] -
r1[5] * m0);
6956 r0[6] =
s * (r0[6] -
r1[6] * m0);
6957 r0[7] =
s * (r0[7] -
r1[7] * m0);
6982 float pos, neg,
t, det;
6988 t =
in->_11 *
in->_22 *
in->_33;
6994 t =
in->_21 *
in->_32 *
in->_13;
6999 t =
in->_31 *
in->_12 *
in->_23;
7005 t = -
in->_31 *
in->_22 *
in->_13;
7010 t = -
in->_21 *
in->_12 *
in->_33;
7016 t = -
in->_11 *
in->_32 *
in->_23;
7024 if (
fabsf(det) < 1e-25f)
7028 temp._11 = (
in->_22 *
in->_33 -
in->_32 *
in->_23) * det;
7029 temp._12 = -(
in->_12 *
in->_33 -
in->_32 *
in->_13) * det;
7030 temp._13 = (
in->_12 *
in->_23 -
in->_22 *
in->_13) * det;
7031 temp._21 = -(
in->_21 *
in->_33 -
in->_31 *
in->_23) * det;
7032 temp._22 = (
in->_11 *
in->_33 -
in->_31 *
in->_13) * det;
7033 temp._23 = -(
in->_11 *
in->_23 -
in->_21 *
in->_13) * det;
7034 temp._31 = (
in->_21 *
in->_32 -
in->_31 *
in->_22) * det;
7035 temp._32 = -(
in->_11 *
in->_32 -
in->_31 *
in->_12) * det;
7036 temp._33 = (
in->_11 *
in->_22 -
in->_21 *
in->_12) * det;
7048 if (legacy_lighting)
7056 normal_matrix->
_11 = mv.
_11;
7057 normal_matrix->
_12 = mv.
_21;
7058 normal_matrix->
_13 = mv.
_31;
7059 normal_matrix->
_21 = mv.
_12;
7060 normal_matrix->
_22 = mv.
_22;
7061 normal_matrix->
_23 = mv.
_32;
7062 normal_matrix->
_31 = mv.
_13;
7063 normal_matrix->
_32 = mv.
_23;
7064 normal_matrix->
_33 = mv.
_33;
7124 ERR(
"Chunk %p is not empty.\n",
chunk);
7132 ERR(
"Chunk %p is not empty.\n",
chunk);
7157 chunk->map_count = 0;
7205 block->free =
false;
7211 ERR(
"Failed to allocate left.\n");
7217 ERR(
"Failed to allocate right.\n");
7274 for (
i = 0;
i < pool_count; ++
i)
struct mke2fs_defaults settings[]
ios_base &_STLP_CALL internal(ios_base &__s)
COMPILER_DEPENDENT_UINT64 UINT64
_Check_return_ _Ret_maybenull_ _In_ size_t alignment
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static struct stream g_out[STREAM_COUNT]
static struct stream g_in
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static const D2D1_CREATION_PROPERTIES * properties
static float(WINAPI *pD2D1Tan)(float angle)
unsigned int component_count
unsigned short float_32_to_16(const float in)
void multiply_matrix(struct wined3d_matrix *dst, const struct wined3d_matrix *src1, const struct wined3d_matrix *src2)
static void format_clear_caps(struct wined3d_format *format, unsigned int caps)
struct wined3d_allocator_block * wined3d_allocator_allocate(struct wined3d_allocator *allocator, struct wined3d_context *context, unsigned int memory_type, size_t size)
static float color_to_float(DWORD color, DWORD size, DWORD offset)
const char * debug_d3dusage(uint32_t usage)
static void convert_l4a4_unorm(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
bool wined3d_allocator_init(struct wined3d_allocator *allocator, size_t pool_count, const struct wined3d_allocator_ops *allocator_ops)
#define FMT_TO_STR(format_id)
static GLenum wined3d_gl_type_to_enum(enum wined3d_gl_resource_type type)
void wined3d_allocator_cleanup(struct wined3d_allocator *allocator)
BOOL wined3d_get_primary_adapter_luid(LUID *luid)
#define WINED3D_FORMAT_COUNT
static struct wined3d_format * get_format_by_idx(const struct wined3d_adapter *adapter, int fmt_idx)
void wined3d_release_dc(HWND window, HDC dc)
const char * wined3d_debug_bind_flags(uint32_t bind_flags)
static void convert_r16g16(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
static void convert_b5g5r5x1_unorm_b5g5r5a1_unorm_color_key(const BYTE *src, unsigned int src_pitch, BYTE *dst, unsigned int dst_pitch, unsigned int width, unsigned int height, const struct wined3d_color_key *color_key)
static void copy_format(const struct wined3d_adapter *adapter, struct wined3d_format *dst_format, const struct wined3d_format *src_format)
static void x8_d24_unorm_download(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth)
const char * debug_d3ddevicetype(enum wined3d_device_type device_type)
static void convert_b5g6r5_unorm_b5g5r5a1_unorm_color_key(const BYTE *src, unsigned int src_pitch, BYTE *dst, unsigned int dst_pitch, unsigned int width, unsigned int height, const struct wined3d_color_key *color_key)
static void convert_r5g5_snorm_l6_unorm_nv(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
const char * debug_box(const struct wined3d_box *box)
BOOL wined3d_adapter_no3d_init_format_info(struct wined3d_adapter *adapter)
#define WINED3D_TO_STR(x)
static BOOL init_format_texture_info(struct wined3d_adapter *adapter, struct wined3d_gl_info *gl_info)
const struct ffp_frag_desc * find_ffp_frag_shader(const struct wine_rb_tree *fragment_shaders, const struct ffp_frag_settings *settings)
const char * debug_ivec4(const struct wined3d_ivec4 *v)
enum wined3d_format_id wined3d_get_typed_format_id(const struct wined3d_adapter *adapter, const struct wined3d_format *format, enum wined3d_channel_type channel_type)
void get_modelview_matrix(const struct wined3d_stateblock_state *state, unsigned int index, struct wined3d_matrix *mat)
const char * debug_d3dformat(enum wined3d_format_id format_id)
static const struct wined3d_typeless_format_depth_stencil_info typeless_depth_stencil_formats[]
void get_fog_start_end(const struct wined3d_context *context, const struct wined3d_state *state, float *start, float *end)
void compute_normal_matrix(struct wined3d_matrix *normal_matrix, BOOL legacy_lighting, const struct wined3d_matrix *modelview)
static void build_bc3_alpha_table(BYTE alpha0, BYTE alpha1, BYTE alpha_table[8])
uint32_t wined3d_format_pack(const struct wined3d_format *format, const struct wined3d_uvec4 *value)
static void convert_s8_uint_d24_float(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
const char * wined3d_debug_feature_level(enum wined3d_feature_level level)
static void convert_b8g8r8a8_unorm_b8g8r8a8_unorm_color_key(const BYTE *src, unsigned int src_pitch, BYTE *dst, unsigned int dst_pitch, unsigned int width, unsigned int height, const struct wined3d_color_key *color_key)
const char * debug_d3dtexturestate(enum wined3d_texture_stage_state state)
const char * debug_d3dinput_classification(enum wined3d_input_classification classification)
BOOL is_invalid_op(const struct wined3d_state *state, int stage, enum wined3d_texture_op op, DWORD arg1, DWORD arg2, DWORD arg3)
static const char * debug_fixup_channel_source(enum fixup_channel_source source)
static const struct wined3d_typed_format_info typed_formats[]
static struct wined3d_format_gl * get_format_gl_internal(const struct wined3d_adapter *adapter, enum wined3d_format_id format_id)
static int get_format_idx(enum wined3d_format_id format_id)
void wined3d_gl_limits_get_texture_unit_range(const struct wined3d_gl_limits *gl_limits, enum wined3d_shader_type shader_type, unsigned int *base, unsigned int *count)
#define WINED3DDECLUSAGE_TO_STR(u)
#define D3DSTATE_TO_STR(u)
static GLenum lookup_gl_view_class(GLenum internal_format)
static void query_internal_format(struct wined3d_adapter *adapter, struct wined3d_format_gl *format, const struct wined3d_format_texture_info *texture_info, struct wined3d_gl_info *gl_info, BOOL srgb_format)
void wined3d_ffp_get_fs_settings(const struct wined3d_state *state, const struct wined3d_d3d_info *d3d_info, struct ffp_frag_settings *settings)
const char * debug_d3dsamplerstate(enum wined3d_sampler_state state)
static void init_debug_buffer(struct debug_buffer *buffer, const char *default_string)
BOOL invert_matrix(struct wined3d_matrix *out, const struct wined3d_matrix *m)
static void build_dxtn_colour_table(WORD colour0, WORD colour1, DWORD colour_table[4], enum wined3d_format_id format_id)
static void convert_b8g8r8x8_unorm_b8g8r8a8_unorm_color_key(const BYTE *src, unsigned int src_pitch, BYTE *dst, unsigned int dst_pitch, unsigned int width, unsigned int height, const struct wined3d_color_key *color_key)
static BOOL init_format_block_info(struct wined3d_adapter *adapter)
enum wined3d_format_id id
const char * wined3d_debug_location(uint32_t location)
static const struct wined3d_format_decompress_info format_decompress_info[]
static void format_set_caps(struct wined3d_format *format, unsigned int caps)
UINT wined3d_format_calculate_size(const struct wined3d_format *format, UINT alignment, UINT width, UINT height, UINT depth)
BOOL wined3d_adapter_gl_init_format_info(struct wined3d_adapter *adapter, struct wined3d_caps_gl_ctx *ctx)
BOOL wined3d_adapter_vk_init_format_info(struct wined3d_adapter_vk *adapter_vk, const struct wined3d_vk_info *vk_info)
static void build_rgtc_colour_table(uint8_t red0, uint8_t red1, uint8_t colour_table[8])
static void query_format_cap(struct wined3d_gl_info *gl_info, struct wined3d_format_gl *format, GLint internal, GLenum pname, unsigned int cap, const char *string)
static struct wined3d_format * get_format_internal(const struct wined3d_adapter *adapter, enum wined3d_format_id format_id)
static BOOL compare_uint(unsigned int x, unsigned int y, unsigned int max_diff)
const char * wined3d_debug_resource_access(uint32_t access)
const char * debug_const_bo_address(const struct wined3d_const_bo_address *address)
static BOOL init_typeless_formats(const struct wined3d_adapter *adapter)
static void swap_rows(float **a, float **b)
static void decompress_dxtn(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth, enum wined3d_format_id format_id)
const char * debug_shader_type(enum wined3d_shader_type type)
const char * debug_vec4(const struct wined3d_vec4 *v)
BOOL wined3d_caps_gl_ctx_test_viewport_subpixel_bits(struct wined3d_caps_gl_ctx *ctx)
BOOL wined3d_clip_blit(const RECT *clip_rect, RECT *clipped, RECT *other)
const char * debug_d3dprimitivetype(enum wined3d_primitive_type primitive_type)
void get_identity_matrix(struct wined3d_matrix *mat)
static void convert_r16g16_snorm(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
static BOOL init_format_vertex_info(const struct wined3d_adapter *adapter, struct wined3d_gl_info *gl_info)
static void apply_format_fixups(struct wined3d_adapter *adapter, struct wined3d_gl_info *gl_info)
const char * debug_d3dtstype(enum wined3d_transform_state tstype)
static const struct wined3d_format_texture_info format_texture_info[]
static void query_view_class(struct wined3d_format_gl *format)
#define PRIM_TO_STR(prim)
const char * wined3d_debug_vkresult(VkResult vr)
void wined3d_format_convert_from_float(const struct wined3d_format *format, const struct wined3d_color *color, void *ret)
static void decompress_bc2(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth)
static void check_fbo_compat(struct wined3d_caps_gl_ctx *ctx, struct wined3d_format_gl *format)
const char * debug_uvec4(const struct wined3d_uvec4 *v)
static void init_vulkan_format_info(struct wined3d_format_vk *format, const struct wined3d_vk_info *vk_info, VkPhysicalDevice vk_physical_device)
#define LOCATION_TO_STR(x)
void get_texture_matrix(const struct wined3d_stateblock_state *state, const unsigned int tex, struct wined3d_matrix *mat)
static struct wined3d_allocator_block * wined3d_allocator_acquire_block(struct wined3d_allocator *allocator)
static float wined3d_adapter_find_polyoffset_scale(struct wined3d_caps_gl_ctx *ctx, GLenum format)
const char * debug_d3dstate(uint32_t state)
static BOOL check_filter(const struct wined3d_gl_info *gl_info, GLenum internal)
static struct wined3d_format_vk * wined3d_format_vk_mutable(struct wined3d_format *format)
static void decompress_bc3(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth)
void wined3d_ftoa(float value, char *s)
int wined3d_ffp_frag_program_key_compare(const void *key, const struct wine_rb_entry *entry)
#define VIEW_FLAG_TO_STR(x)
bool wined3d_allocator_chunk_init(struct wined3d_allocator_chunk *chunk, struct wined3d_allocator *allocator)
static enum fixup_channel_source fixup_source_from_char(char c)
static void convert_r5g5_snorm_l6_unorm_ext(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
static void init_format_fbo_compat_info(const struct wined3d_adapter *adapter, struct wined3d_caps_gl_ctx *ctx)
void get_pointsize_minmax(const struct wined3d_context *context, const struct wined3d_state *state, float *out_min, float *out_max)
const char * debug_d3ddeclmethod(enum wined3d_decl_method method)
#define BIND_FLAG_TO_STR(x)
static struct wined3d_format_gl * get_format_gl_by_idx(const struct wined3d_adapter *adapter, int fmt_idx)
const char * debug_d3dresourcetype(enum wined3d_resource_type resource_type)
#define D3DTEXTUREFILTERTYPE_TO_STR(u)
const char * debug_d3drenderstate(enum wined3d_render_state state)
static BOOL wined3d_adapter_init_format_info(struct wined3d_adapter *adapter, size_t format_size)
static void convert_r8g8_snorm_l8x8_unorm(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
static BOOL init_format_decompress_info(struct wined3d_adapter *adapter)
void wined3d_format_copy_data(const struct wined3d_format *format, const uint8_t *src, unsigned int src_row_pitch, unsigned int src_slice_pitch, uint8_t *dst, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int w, unsigned int h, unsigned int d)
static BOOL color_in_range(const struct wined3d_color_key *color_key, DWORD color)
static void decompress_bc4(const uint8_t *src, uint8_t *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth)
static void convert_r5g5_snorm_l6_unorm(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
static void convert_r32g32_float(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
static const char * debug_complex_fixup(enum complex_fixup fixup)
static BOOL wined3d_get_primary_display(WCHAR *display)
const struct wined3d_format * wined3d_get_format(const struct wined3d_adapter *adapter, enum wined3d_format_id format_id, unsigned int bind_flags)
BOOL wined3d_array_reserve(void **elements, SIZE_T *capacity, SIZE_T count, SIZE_T size)
const char * debug_bo_address(const struct wined3d_bo_address *address)
static void convert_r8g8b8a8_snorm(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
static struct color_fixup_desc create_color_fixup_desc_from_string(const char *s)
static struct wined3d_format_gl * wined3d_format_gl_mutable(struct wined3d_format *format)
const char * debug_d3dtop(enum wined3d_texture_op d3dtop)
static const struct wined3d_format_ddi_info ddi_formats[]
static void convert_b8g8r8_unorm_b8g8r8a8_unorm_color_key(const BYTE *src, unsigned int src_pitch, BYTE *dst, unsigned int dst_pitch, unsigned int width, unsigned int height, const struct wined3d_color_key *color_key)
const struct wined3d_color_key_conversion * wined3d_format_get_color_key_conversion(const struct wined3d_texture *texture, BOOL need_alpha_ck)
void wined3d_allocator_chunk_cleanup(struct wined3d_allocator_chunk *chunk)
static void rgb888_from_rgb565(WORD rgb565, BYTE *r, BYTE *g, BYTE *b)
const char * debug_d3dtexturefiltertype(enum wined3d_texture_filter_type filter_type)
BOOL wined3d_formats_are_srgb_variants(enum wined3d_format_id format1, enum wined3d_format_id format2)
#define WINED3D_FORMAT_FOURCC_BASE
static BOOL invert_matrix_3d(struct wined3d_matrix *out, const struct wined3d_matrix *in)
static void init_format_gen_mipmap_info(const struct wined3d_adapter *adapter, struct wined3d_gl_info *gl_info)
static const struct wined3d_format_channels formats[]
static const struct @343 format_index_remap[]
static const struct wined3d_format_srgb_info format_srgb_info[]
static enum wined3d_channel_type map_channel_type(char t)
const char * debug_fboattachment(GLenum attachment)
bool wined3d_caps_gl_ctx_test_filling_convention(struct wined3d_caps_gl_ctx *ctx, float offset)
static void init_format_depth_bias_scale(struct wined3d_adapter *adapter, struct wined3d_caps_gl_ctx *ctx)
static const struct wined3d_format_block_info format_block_info[]
static void decompress_dxtn_block(const BYTE *src, BYTE *dst, unsigned int width, unsigned int height, unsigned int dst_row_pitch, enum wined3d_format_id format_id)
static void decompress_bc1(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth)
const char * debug_d3ddeclusage(enum wined3d_decl_usage usage)
const char * debug_glerror(GLenum error)
#define WINED3DDECLMETHOD_TO_STR(u)
void wined3d_format_calculate_pitch(const struct wined3d_format *format, unsigned int alignment, unsigned int width, unsigned int height, unsigned int *row_pitch, unsigned int *slice_pitch)
static BOOL init_format_base_info(struct wined3d_adapter *adapter)
static void compute_texture_matrix(const struct wined3d_matrix *matrix, uint32_t flags, BOOL calculated_coords, enum wined3d_format_id format_id, struct wined3d_matrix *out_matrix)
static BOOL init_srgb_formats(struct wined3d_adapter *adapter)
const char * wined3d_debug_view_desc(const struct wined3d_view_desc *d, const struct wined3d_resource *resource)
void wined3d_format_get_float_color_key(const struct wined3d_format *format, const struct wined3d_color_key *key, struct wined3d_color *float_colors)
static void debug_append(struct debug_buffer *buffer, const char *str, const char *separator)
static void wined3d_allocator_release_block(struct wined3d_allocator *allocator, struct wined3d_allocator_block *block)
static void x8_d24_unorm_upload(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth)
static void convert_r8g8_snorm(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
void wined3d_gl_limits_get_uniform_block_range(const struct wined3d_gl_limits *gl_limits, enum wined3d_shader_type shader_type, unsigned int *base, unsigned int *count)
BOOL wined3d_format_is_depth_view(enum wined3d_format_id resource_format_id, enum wined3d_format_id view_format_id)
static unsigned int fixup_sign_from_char(char c)
void add_ffp_frag_shader(struct wine_rb_tree *shaders, struct ffp_frag_desc *desc)
static void delete_fbo_attachment(const struct wined3d_gl_info *gl_info, enum wined3d_gl_resource_type d3d_type, GLuint object)
static const struct wined3d_format_base_flags format_base_flags[]
#define GLERROR_TO_STR(u)
static void draw_test_quad(struct wined3d_caps_gl_ctx *ctx, const struct wined3d_vec3 *geometry, const struct wined3d_color *color)
#define LEVEL_TO_STR(level)
void wined3d_allocator_block_free(struct wined3d_allocator_block *block)
void wined3d_format_colour_to_vk(const struct wined3d_format *format, const struct wined3d_color *c, VkClearColorValue *retval)
static struct wined3d_allocator_block * wined3d_allocator_chunk_allocate(struct wined3d_allocator_chunk *chunk, unsigned int order)
#define TSTYPE_TO_STR(tstype)
enum wined3d_format_id pixelformat_for_depth(DWORD depth)
static enum wined3d_format_id get_texcoord_format(const struct wined3d_vertex_declaration *decl, unsigned int index)
static void convert_r8g8_snorm_l8x8_unorm_nv(const BYTE *src, BYTE *dst, UINT src_row_pitch, UINT src_slice_pitch, UINT dst_row_pitch, UINT dst_slice_pitch, UINT width, UINT height, UINT depth)
#define FBOSTATUS_TO_STR(u)
static void create_and_bind_fbo_attachment(const struct wined3d_gl_info *gl_info, const struct wined3d_format_gl *format_gl, enum wined3d_gl_resource_type d3d_type, GLuint *object, GLenum internal)
const char * debug_color(const struct wined3d_color *color)
void wined3d_ffp_get_vs_settings(const struct wined3d_state *state, const struct wined3d_stream_info *si, const struct wined3d_d3d_info *d3d_info, struct wined3d_ffp_vs_settings *settings)
#define DEVTYPE_TO_STR(dev)
const char * debug_fbostatus(GLenum status)
int wined3d_ffp_vertex_program_key_compare(const void *key, const struct wine_rb_entry *entry)
static const struct wined3d_format_vertex_info format_vertex_info[]
static BOOL compare_colour(DWORD c1, DWORD c2, BYTE max_diff)
static void wined3d_allocator_block_init(struct wined3d_allocator_block *block, struct wined3d_allocator_chunk *chunk, struct wined3d_allocator_block *parent, struct wined3d_allocator_block *sibling, unsigned int order, size_t offset, bool free)
static void parse_channel_desc(struct wined3d_format *format, const char *channel_desc)
static void decompress_rgtc_block(const uint8_t *src, uint8_t *dst, unsigned int width, unsigned int height, unsigned int dst_row_pitch)
#define WINED3DUSAGE_TO_STR(x)
void dump_color_fixup_desc(struct color_fixup_desc fixup)
static void init_format_filter_info(struct wined3d_adapter *adapter, struct wined3d_gl_info *gl_info)
void format_size(uint64_t size, wstring &s, bool show_bytes)
const char * wine_dbg_sprintf(const char *format,...)
static const WCHAR separator[]
_ACRTIMP void *__cdecl _recalloc(void *, size_t, size_t) __WINE_ALLOC_SIZE(2
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP float __cdecl fabsf(float)
_ACRTIMP size_t __cdecl strlen(const char *)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
#define GL_TEXTURE_MIN_FILTER
#define GL_TEXTURE_WRAP_R
GLint GLint GLsizei GLsizei GLsizei depth
#define GL_TEXTURE_WRAP_S
#define GL_UNSIGNED_SHORT_4_4_4_4_REV
#define GL_UNSIGNED_SHORT
GLint GLint GLint GLint GLint x
#define GL_POLYGON_OFFSET_FILL
#define GL_LUMINANCE_ALPHA
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
#define GL_TEXTURE_MAX_LEVEL
#define GL_LUMINANCE4_ALPHA4
GLuint GLuint GLsizei GLenum type
#define GL_INVALID_OPERATION
GLclampf GLclampf GLclampf alpha
#define GL_STACK_OVERFLOW
GLint GLint GLint GLint GLint GLint y
GLAPI void GLAPIENTRY glTexImage3D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
#define GL_COLOR_BUFFER_BIT
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define GL_ONE_MINUS_SRC_ALPHA
#define GL_LUMINANCE8_ALPHA8
#define GL_DEPTH_COMPONENT
GLdouble GLdouble GLdouble r
#define GL_UNSIGNED_INT_8_8_8_8
#define GL_TEXTURE_WRAP_T
#define GL_TEXTURE_MAG_FILTER
#define GL_TRIANGLE_STRIP
GLint GLint GLsizei width
#define GL_UNSIGNED_BYTE_3_3_2
#define GL_UNSIGNED_SHORT_1_5_5_5_REV
#define GL_UNSIGNED_INT_8_8_8_8_REV
#define GL_UNSIGNED_SHORT_5_6_5
#define GL_DEPTH_BUFFER_BIT
#define GL_UNSIGNED_INT_2_10_10_10_REV
#define GL_STACK_UNDERFLOW
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
#define GL_DEPTH32F_STENCIL8
#define GL_NUM_SAMPLE_COUNTS
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB
#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
#define GL_COLOR_ATTACHMENT5
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB
#define GL_FRAGMENT_SHADER
#define GL_DEPTH_COMPONENT32F
#define GL_FRAMEBUFFER_UNDEFINED
#define GL_SIGNED_HILO16_NV
#define GL_DEPTH24_STENCIL8
#define GL_DEPTH_COMPONENT16
#define GL_UNSIGNED_INT_10F_11F_11F_REV
#define GL_COMPRESSED_RED_RGTC1
#define GL_COLOR_ATTACHMENT13
#define GL_COMPRESSED_RG_RGTC2
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
#define GL_COLOR_ATTACHMENT7
#define GL_DSDT_MAG_VIB_NV
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB
#define GL_UNSIGNED_SHORT_8_8_APPLE
GLuint GLuint GLuint GLuint arg1
#define GL_COLOR_ATTACHMENT9
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB
#define GL_COLOR_ATTACHMENT0
GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg3
#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB
#define GL_COLOR_ATTACHMENT11
#define GL_TEXTURE_CUBE_MAP_ARB
#define GL_COLOR_ATTACHMENT2
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
#define GL_UNSIGNED_INT_24_8
GLboolean GLboolean GLboolean b
#define GL_COLOR_ATTACHMENT1
#define GL_DEPTH_COMPONENT24_ARB
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB
#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT
#define GL_COLOR_ATTACHMENT3
#define GL_COLOR_ATTACHMENT8
#define GL_FRAMEBUFFER_COMPLETE
#define GL_SLUMINANCE8_ALPHA8_EXT
#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT
#define GL_COLOR_ATTACHMENT10
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
#define GL_COLOR_ATTACHMENT15
#define GL_FRAMEBUFFER_UNSUPPORTED
#define GL_COLOR_ATTACHMENT4
GLuint GLint GLboolean GLint GLenum access
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
#define GL_R11F_G11F_B10F
#define GL_TEXTURE_2D_MULTISAMPLE
#define GL_COMPRESSED_SIGNED_RG_RGTC2
#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
#define GL_INVALID_FRAMEBUFFER_OPERATION
#define GL_HALF_FLOAT_ARB
#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
#define GL_COLOR_ATTACHMENT12
#define GL_SRGB8_ALPHA8_EXT
#define GL_DEPTH_ATTACHMENT
GLuint GLdouble GLdouble GLint GLint order
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
GLboolean GLboolean GLboolean GLboolean a
#define GL_COLOR_ATTACHMENT6
#define GL_UNSIGNED_SHORT_8_8_REV_APPLE
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS
#define GL_SLUMINANCE8_EXT
#define GL_DSDT8_MAG8_INTENSITY8_NV
#define GL_COLOR_ATTACHMENT14
GLubyte GLubyte GLubyte GLubyte w
#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
#define GL_COMPRESSED_SIGNED_RED_RGTC1
#define GL_SIGNED_RGBA8_NV
GLsizeiptr const GLvoid GLenum usage
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB
#define GL_STENCIL_ATTACHMENT
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
GLfloat GLfloat GLfloat GLfloat h
#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
#define GL_YCBCR_422_APPLE
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
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 GLint GLint j
void shader_glsl_validate_link(const struct wined3d_gl_info *gl_info, GLuint program)
void print_glsl_info_log(const struct wined3d_gl_info *gl_info, GLuint id, BOOL program)
#define memcpy(s1, s2, n)
D3D11_SHADER_VARIABLE_DESC desc
static const char * dst_format
static IHTMLWindow2 * window
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HWND WINAPI WindowFromDC(_In_ HDC hDC)
BOOL WINAPI IsRectEmpty(_In_ LPCRECT)
BOOL WINAPI IntersectRect(_Out_ LPRECT, _In_ LPCRECT, _In_ LPCRECT)
BOOL WINAPI SetRectEmpty(_Out_ LPRECT)
static unsigned __int64 next
int int static __inline const char * wine_dbgstr_a(const char *s)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
#define WINE_RB_ENTRY_VALUE
unsigned short y_sign_fixup
unsigned short x_sign_fixup
unsigned short z_sign_fixup
unsigned short w_sign_fixup
struct wined3d_gl_info gl_info
VkPhysicalDevice physical_device
struct wined3d_allocator_block * sibling
struct wined3d_allocator_chunk * chunk
struct fragment_caps ffp_fragment_caps
uint32_t full_ffp_varyings
struct wined3d_d3d_limits limits
uint32_t wined3d_creation_flags
uint32_t emulated_flatshading
uint32_t srgb_write_control
void(* decompress)(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth)
enum wined3d_gl_extension extension
enum wined3d_format_id id
unsigned int conv_byte_count
void(* upload)(const BYTE *src, BYTE *dst, unsigned int src_row_pitch, unsigned int src_slice_pitch, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int width, unsigned int height, unsigned int depth)
BOOL supported[WINED3D_GL_EXT_COUNT]
struct opengl_funcs gl_ops
struct wined3d_gl_limits limits
struct wined3d_fbo_ops fbo_ops
unsigned int glsl_version
unsigned int samplers[WINED3D_SHADER_TYPE_COUNT]
unsigned int graphics_samplers
unsigned int combined_samplers
unsigned int uniform_blocks[WINED3D_SHADER_TYPE_COUNT]
struct wined3d_vertex_declaration_element * elements
unsigned int element_count
bool position_transformed
Character const *const prefix
#define CONTAINING_RECORD(address, type, field)
@ VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
@ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
@ VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
@ VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
@ VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
@ VK_FORMAT_FEATURE_TRANSFER_DST_BIT
@ VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
@ VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
@ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
@ VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
VkFlags VkImageUsageFlags
@ VK_IMAGE_TILING_OPTIMAL
void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties *pFormatProperties)
@ VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
@ VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties *pImageFormatProperties)
VkFlags VkFormatFeatureFlags
@ VK_ERROR_FRAGMENTATION_EXT
@ VK_ERROR_INVALID_SHADER_NV
@ VK_ERROR_EXTENSION_NOT_PRESENT
@ VK_ERROR_INVALID_EXTERNAL_HANDLE
@ VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR
@ VK_ERROR_OUT_OF_HOST_MEMORY
@ VK_ERROR_INITIALIZATION_FAILED
@ VK_ERROR_OUT_OF_DEVICE_MEMORY
@ VK_ERROR_NATIVE_WINDOW_IN_USE_KHR
@ VK_ERROR_NOT_PERMITTED_EXT
@ VK_ERROR_OUT_OF_DATE_KHR
@ VK_ERROR_FORMAT_NOT_SUPPORTED
@ VK_ERROR_FRAGMENTED_POOL
@ VK_ERROR_SURFACE_LOST_KHR
@ VK_ERROR_FEATURE_NOT_PRESENT
@ VK_ERROR_TOO_MANY_OBJECTS
@ VK_ERROR_MEMORY_MAP_FAILED
@ VK_ERROR_LAYER_NOT_PRESENT
@ VK_ERROR_INCOMPATIBLE_DRIVER
@ VK_ERROR_OUT_OF_POOL_MEMORY
@ VK_FORMAT_R16G16B16A16_UNORM
@ VK_FORMAT_A1R5G5B5_UNORM_PACK16
@ VK_FORMAT_R8G8B8A8_SRGB
@ VK_FORMAT_R32G32B32_UINT
@ VK_FORMAT_BC2_UNORM_BLOCK
@ VK_FORMAT_D24_UNORM_S8_UINT
@ VK_FORMAT_B8G8R8A8_UNORM
@ VK_FORMAT_R16G16B16A16_SNORM
@ VK_FORMAT_BC7_SRGB_BLOCK
@ VK_FORMAT_R16G16_SFLOAT
@ VK_FORMAT_R32G32_SFLOAT
@ VK_FORMAT_BC2_SRGB_BLOCK
@ VK_FORMAT_BC1_RGBA_SRGB_BLOCK
@ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
@ VK_FORMAT_BC3_UNORM_BLOCK
@ VK_FORMAT_R32G32B32A32_SFLOAT
@ VK_FORMAT_R32G32B32A32_UINT
@ VK_FORMAT_BC6H_SFLOAT_BLOCK
@ VK_FORMAT_R5G6B5_UNORM_PACK16
@ VK_FORMAT_R4G4B4A4_UNORM_PACK16
@ VK_FORMAT_R16G16B16A16_SINT
@ VK_FORMAT_A2B10G10R10_UNORM_PACK32
@ VK_FORMAT_B8G8R8A8_SRGB
@ VK_FORMAT_R8G8B8A8_UNORM
@ VK_FORMAT_BC4_SNORM_BLOCK
@ VK_FORMAT_R32G32B32_SINT
@ VK_FORMAT_BC6H_UFLOAT_BLOCK
@ VK_FORMAT_BC7_UNORM_BLOCK
@ VK_FORMAT_R16G16B16A16_SFLOAT
@ VK_FORMAT_BC5_UNORM_BLOCK
@ VK_FORMAT_R8G8B8A8_SINT
@ VK_FORMAT_R8G8B8A8_SNORM
@ VK_FORMAT_R16G16B16A16_UINT
@ VK_FORMAT_R32G32B32A32_SINT
@ VK_FORMAT_BC3_SRGB_BLOCK
@ VK_FORMAT_R32G32B32_SFLOAT
@ VK_FORMAT_R8G8B8A8_UINT
@ VK_FORMAT_BC1_RGBA_UNORM_BLOCK
@ VK_FORMAT_B10G11R11_UFLOAT_PACK32
@ VK_FORMAT_BC5_SNORM_BLOCK
@ VK_FORMAT_BC4_UNORM_BLOCK
@ VK_FORMAT_D32_SFLOAT_S8_UINT
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
#define GL_VIEW_CLASS_16_BITS
#define GL_VIEW_CLASS_96_BITS
#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM
#define GL_VIEW_CLASS_S3TC_DXT1_RGB
#define GL_VIEW_CLASS_128_BITS
#define GL_VIEW_CLASS_S3TC_DXT5_RGBA
#define GL_VIEW_CLASS_S3TC_DXT1_RGBA
#define GL_SHADER_IMAGE_STORE
#define GL_VIEW_CLASS_24_BITS
#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT
#define GL_VERTEX_TEXTURE
#define GL_VIEW_CLASS_8_BITS
#define GL_VIEW_CLASS_BPTC_FLOAT
#define GL_VIEW_CLASS_48_BITS
#define GL_COMPRESSED_RGBA_BPTC_UNORM
#define GL_VIEW_CLASS_64_BITS
#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT
#define GL_FRAMEBUFFER_BLEND
#define GL_VIEW_CLASS_BPTC_UNORM
#define GL_VIEW_CLASS_32_BITS
#define GL_RGB_RAW_422_APPLE
#define GL_FRAMEBUFFER_RENDERABLE
#define GL_VIEW_CLASS_RGTC1_RED
#define GL_VIEW_CLASS_RGTC2_RG
#define GL_VIEW_CLASS_S3TC_DXT3_RGBA
BOOL WINAPI EnumDisplayDevicesW(LPCWSTR lpDevice, DWORD iDevNum, PDISPLAY_DEVICEW lpDisplayDevice, DWORD dwFlags)
DWORD WINAPI GetLastError(void)
enum _D3DDDIFORMAT D3DDDIFORMAT
NTSTATUS WINAPI D3DKMTCloseAdapter(const D3DKMT_CLOSEADAPTER *desc)
NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName(D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME *desc)
#define WINED3D_VIEW_READ_ONLY_DEPTH
#define WINED3DUSAGE_QUERY_LEGACYBUMPMAP
static unsigned int wined3d_log2i(unsigned int x)
#define WINED3DUSAGE_POINTS
#define WINED3DUSAGE_DONOTCLIP
#define WINED3DUSAGE_DMAP
#define WINED3D_TS_WORLD_MATRIX(index)
#define WINED3D_NORMALIZED_DEPTH_BIAS
@ WINED3D_DECL_USAGE_DEPTH
@ WINED3D_DECL_USAGE_BLEND_INDICES
@ WINED3D_DECL_USAGE_TESS_FACTOR
@ WINED3D_DECL_USAGE_NORMAL
@ WINED3D_DECL_USAGE_PSIZE
@ WINED3D_DECL_USAGE_BLEND_WEIGHT
@ WINED3D_DECL_USAGE_SAMPLE
@ WINED3D_DECL_USAGE_POSITION
@ WINED3D_DECL_USAGE_BINORMAL
@ WINED3D_DECL_USAGE_COLOR
@ WINED3D_DECL_USAGE_POSITIONT
@ WINED3D_DECL_USAGE_TEXCOORD
@ WINED3D_DECL_USAGE_TANGENT
@ WINED3D_RS_TEXTUREFACTOR
@ WINED3D_RS_COLORKEYENABLE
@ WINED3D_RS_NORMALDEGREE
@ WINED3D_RS_SOFTWAREVERTEXPROCESSING
@ WINED3D_RS_STIPPLEDALPHA
@ WINED3D_RS_COLORWRITEENABLE1
@ WINED3D_RS_STENCILENABLE
@ WINED3D_RS_ANTIALIASEDLINEENABLE
@ WINED3D_RS_SPECULARMATERIALSOURCE
@ WINED3D_RS_DEBUGMONITORTOKEN
@ WINED3D_RS_MAXTESSELLATIONLEVEL
@ WINED3D_RS_DITHERENABLE
@ WINED3D_RS_BACK_STENCILPASS
@ WINED3D_RS_PATCHEDGESTYLE
@ WINED3D_RS_SCISSORTESTENABLE
@ WINED3D_RS_MINTESSELLATIONLEVEL
@ WINED3D_RS_POINTSCALE_A
@ WINED3D_RS_MULTISAMPLEMASK
@ WINED3D_RS_BACK_STENCILFUNC
@ WINED3D_RS_SRGBWRITEENABLE
@ WINED3D_RS_RANGEFOGENABLE
@ WINED3D_RS_POINTSIZE_MIN
@ WINED3D_RS_TEXTUREPERSPECTIVE
@ WINED3D_RS_ENABLEADAPTIVETESSELLATION
@ WINED3D_RS_COLORWRITEENABLE3
@ WINED3D_RS_ALPHABLENDENABLE
@ WINED3D_RS_ADAPTIVETESS_X
@ WINED3D_RS_ADAPTIVETESS_Z
@ WINED3D_RS_POINTSCALE_C
@ WINED3D_RS_FOGTABLEMODE
@ WINED3D_RS_POINTSIZE_MAX
@ WINED3D_RS_ZWRITEENABLE
@ WINED3D_RS_CLIPPLANEENABLE
@ WINED3D_RS_AMBIENTMATERIALSOURCE
@ WINED3D_RS_POINTSPRITEENABLE
@ WINED3D_RS_BACK_STENCILZFAIL
@ WINED3D_RS_POSITIONDEGREE
@ WINED3D_RS_MULTISAMPLEANTIALIAS
@ WINED3D_RS_BACK_STENCILFAIL
@ WINED3D_RS_COLORWRITEENABLE
@ WINED3D_RS_SLOPESCALEDEPTHBIAS
@ WINED3D_RS_DIFFUSEMATERIALSOURCE
@ WINED3D_RS_NORMALIZENORMALS
@ WINED3D_RS_TWOSIDEDSTENCILMODE
@ WINED3D_RS_TRANSLUCENTSORTINDEPENDENT
@ WINED3D_RS_EMISSIVEMATERIALSOURCE
@ WINED3D_RS_PATCHSEGMENTS
@ WINED3D_RS_SPECULARENABLE
@ WINED3D_RS_ADAPTIVETESS_W
@ WINED3D_RS_SRCBLENDALPHA
@ WINED3D_RS_COLORKEYBLENDENABLE
@ WINED3D_RS_COLORWRITEENABLE2
@ WINED3D_RS_POINTSCALEENABLE
@ WINED3D_RS_FOGVERTEXMODE
@ WINED3D_RS_STENCILWRITEMASK
@ WINED3D_RS_BLENDOPALPHA
@ WINED3D_RS_DESTBLENDALPHA
@ WINED3D_RS_STENCILZFAIL
@ WINED3D_RS_POINTSCALE_B
@ WINED3D_RS_INDEXEDVERTEXBLENDENABLE
@ WINED3D_RS_MIPMAPLODBIAS
@ WINED3D_RS_SEPARATEALPHABLENDENABLE
@ WINED3D_RS_STIPPLEENABLE
@ WINED3D_RS_ADAPTIVETESS_Y
@ WINED3D_RS_ALPHATESTENABLE
#define WINED3D_VIEW_READ_ONLY_STENCIL
@ WINED3D_PT_LINESTRIP_ADJ
@ WINED3D_PT_TRIANGLELIST_ADJ
@ WINED3D_PT_LINELIST_ADJ
@ WINED3D_PT_TRIANGLESTRIP_ADJ
@ WINED3D_PT_TRIANGLESTRIP
@ WINED3D_PT_TRIANGLELIST
static int wined3d_bit_scan(unsigned int *x)
#define WINED3D_VIEW_TEXTURE_CUBE
@ WINED3D_DECL_METHOD_LOOKUP
@ WINED3D_DECL_METHOD_LOOKUP_PRESAMPLED
@ WINED3D_DECL_METHOD_PARTIAL_V
@ WINED3D_DECL_METHOD_CROSS_UV
@ WINED3D_DECL_METHOD_PARTIAL_U
@ WINED3D_DECL_METHOD_DEFAULT
#define WINED3DUSAGE_OWNDC
#define WINED3DUSAGE_LEGACY_CUBEMAP
wined3d_material_color_source
#define WINED3D_BIND_VERTEX_BUFFER
@ WINED3D_SAMP_ELEMENT_INDEX
@ WINED3D_SAMP_MAX_ANISOTROPY
@ WINED3D_SAMP_MIPMAP_LOD_BIAS
@ WINED3D_SAMP_MIN_FILTER
@ WINED3D_SAMP_SRGB_TEXTURE
@ WINED3D_SAMP_DMAP_OFFSET
@ WINED3D_SAMP_MIP_FILTER
@ WINED3D_SAMP_MAG_FILTER
@ WINED3D_SAMP_BORDER_COLOR
@ WINED3D_SAMP_MAX_MIP_LEVEL
#define WINED3D_RESOURCE_ACCESS_GPU
#define WINED3D_RESOURCE_ACCESS_CPU
#define WINED3D_LEGACY_UNBOUND_RESOURCE_COLOR
@ WINED3D_RTYPE_TEXTURE_2D
@ WINED3D_RTYPE_TEXTURE_1D
@ WINED3D_RTYPE_TEXTURE_3D
#define WINED3DTA_SELECTMASK
#define WINED3D_VIEW_TEXTURE_ARRAY
@ WINED3D_LIGHT_PARALLELPOINT
@ WINED3D_LIGHT_DIRECTIONAL
#define WINED3D_BIND_UNORDERED_ACCESS
#define WINED3D_VIEW_BUFFER_RAW
#define WINED3DTSS_TCI_PASSTHRU
#define WINED3DUSAGE_RESTRICTED_CONTENT
#define WINED3DUSAGE_QUERY_SRGBREAD
wined3d_texture_filter_type
@ WINED3D_TEXF_GAUSSIAN_CUBIC
@ WINED3D_TEXF_PYRAMIDAL_QUAD
@ WINED3D_TEXF_FLAT_CUBIC
@ WINED3D_TEXF_GAUSSIAN_QUAD
@ WINED3D_TEXF_ANISOTROPIC
wined3d_texture_stage_state
@ WINED3D_TSS_BUMPENV_LOFFSET
@ WINED3D_TSS_BUMPENV_MAT11
@ WINED3D_TSS_BUMPENV_MAT10
@ WINED3D_TSS_TEXCOORD_INDEX
@ WINED3D_TSS_BUMPENV_MAT01
@ WINED3D_TSS_BUMPENV_LSCALE
@ WINED3D_TSS_BUMPENV_MAT00
@ WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS
#define WINED3DUSAGE_QUERY_FILTER
#define WINED3D_CKEY_SRC_BLT
#define WINED3D_VIEW_FORWARD_REFERENCE
#define WINED3DUSAGE_OVERLAY
#define WINED3D_BIND_SHADER_RESOURCE
#define WINED3DUSAGE_VIDMEM_ACCOUNTING
#define WINED3DTA_CURRENT
#define WINED3DUSAGE_QUERY_WRAPANDMIP
@ WINED3DFMT_R32G32B32_TYPELESS
@ WINED3DFMT_B2G3R3_UNORM
@ WINED3DFMT_R32G32B32_SINT
@ WINED3DFMT_BC7_TYPELESS
@ WINED3DFMT_BC7_UNORM_SRGB
@ WINED3DFMT_X24_TYPELESS_G8_UINT
@ WINED3DFMT_BC2_UNORM_SRGB
@ WINED3DFMT_B4G4R4A4_UNORM
@ WINED3DFMT_R16G16_UNORM
@ WINED3DFMT_R8G8_TYPELESS
@ WINED3DFMT_R10G10B10X2_UINT
@ WINED3DFMT_R10G10B10A2_UNORM
@ WINED3DFMT_R8G8_SNORM_Cx
@ WINED3DFMT_R32G32_FLOAT
@ WINED3DFMT_R16G16_SNORM
@ WINED3DFMT_B8G8R8A8_UNORM
@ WINED3DFMT_R24G8_TYPELESS
@ WINED3DFMT_R10G10B10A2_TYPELESS
@ WINED3DFMT_R32G32B32_UINT
@ WINED3DFMT_BC4_TYPELESS
@ WINED3DFMT_R8G8B8A8_SNORM
@ WINED3DFMT_S8_UINT_D24_FLOAT
@ WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM
@ WINED3DFMT_R16_TYPELESS
@ WINED3DFMT_R16G16B16A16_SINT
@ WINED3DFMT_D16_LOCKABLE
@ WINED3DFMT_R10G11B11_SNORM
@ WINED3DFMT_S1_UINT_D15_UNORM
@ WINED3DFMT_B2G3R3A8_UNORM
@ WINED3DFMT_R8G8_B8G8_UNORM
@ WINED3DFMT_R32G32B32_FLOAT
@ WINED3DFMT_B8G8R8X8_UNORM
@ WINED3DFMT_R32_FLOAT_X8X24_TYPELESS
@ WINED3DFMT_R8G8B8X8_UNORM
@ WINED3DFMT_BC1_UNORM_SRGB
@ WINED3DFMT_B5G5R5X1_UNORM
@ WINED3DFMT_B10G10R10A2_UNORM
@ WINED3DFMT_R16G16B16A16_FLOAT
@ WINED3DFMT_R5G5_SNORM_L6_UNORM
@ WINED3DFMT_R8G8B8A8_TYPELESS
@ WINED3DFMT_B8G8R8_UNORM
@ WINED3DFMT_R8G8B8A8_UNORM_SRGB
@ WINED3DFMT_R9G9B9E5_SHAREDEXP
@ WINED3DFMT_B8G8R8X8_TYPELESS
@ WINED3DFMT_B5G5R5A1_UNORM
@ WINED3DFMT_R10G10B10_SNORM_A2_UNORM
@ WINED3DFMT_R8G8B8A8_UNORM
@ WINED3DFMT_R10G10B10A2_UINT
@ WINED3DFMT_G8R8_G8B8_UNORM
@ WINED3DFMT_R10G10B10X2_TYPELESS
@ WINED3DFMT_R32G32B32A32_UINT
@ WINED3DFMT_R16G16B16A16_UNORM
@ WINED3DFMT_R16G16B16A16_TYPELESS
@ WINED3DFMT_R10G10B10A2_SNORM
@ WINED3DFMT_R24_UNORM_X8_TYPELESS
@ WINED3DFMT_D32_FLOAT_S8X24_UINT
@ WINED3DFMT_R8G8_SNORM_L8X8_UNORM
@ WINED3DFMT_X32_TYPELESS_G8X24_UINT
@ WINED3DFMT_B5G6R5_UNORM
@ WINED3DFMT_R16G16B16A16_UINT
@ WINED3DFMT_S4X4_UINT_D24_UNORM
@ WINED3DFMT_BC1_TYPELESS
@ WINED3DFMT_B8G8R8X8_UNORM_SRGB
@ WINED3DFMT_B8G8R8A8_TYPELESS
@ WINED3DFMT_BC3_TYPELESS
@ WINED3DFMT_R16G16_TYPELESS
@ WINED3DFMT_R16G16_FLOAT
@ WINED3DFMT_R8G8B8A8_UINT
@ WINED3DFMT_BC6H_TYPELESS
@ WINED3DFMT_R32G32B32A32_TYPELESS
@ WINED3DFMT_R32_TYPELESS
@ WINED3DFMT_R32G8X24_TYPELESS
@ WINED3DFMT_BC5_TYPELESS
@ WINED3DFMT_R32G32B32A32_SINT
@ WINED3DFMT_R8G8B8A8_SINT
@ WINED3DFMT_R10G10B10X2_SNORM
@ WINED3DFMT_R11G11B10_FLOAT
@ WINED3DFMT_B8G8R8A8_UNORM_SRGB
@ WINED3DFMT_BC3_UNORM_SRGB
@ WINED3DFMT_R32G32B32A32_FLOAT
@ WINED3DFMT_BC2_TYPELESS
@ WINED3DFMT_B4G4R4X4_UNORM
@ WINED3DFMT_MULTI2_ARGB8
@ WINED3DFMT_D24_UNORM_S8_UINT
@ WINED3DFMT_P8_UINT_A8_UNORM
@ WINED3DFMT_R16G16B16A16_SNORM
@ WINED3DFMT_R32G32_TYPELESS
#define WINED3D_BIND_INDIRECT_BUFFER
#define WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING
#define WINED3DUSAGE_NPATCHES
@ WINED3D_TOP_SELECT_ARG1
@ WINED3D_TOP_BLEND_DIFFUSE_ALPHA
@ WINED3D_TOP_BLEND_TEXTURE_ALPHA_PM
@ WINED3D_TOP_BLEND_CURRENT_ALPHA
@ WINED3D_TOP_ADD_SIGNED_2X
@ WINED3D_TOP_MODULATE_INVCOLOR_ADD_ALPHA
@ WINED3D_TOP_MULTIPLY_ADD
@ WINED3D_TOP_MODULATE_INVALPHA_ADD_COLOR
@ WINED3D_TOP_BUMPENVMAP_LUMINANCE
@ WINED3D_TOP_MODULATE_COLOR_ADD_ALPHA
@ WINED3D_TOP_MODULATE_4X
@ WINED3D_TOP_SELECT_ARG2
@ WINED3D_TOP_MODULATE_ALPHA_ADD_COLOR
@ WINED3D_TOP_BLEND_TEXTURE_ALPHA
@ WINED3D_TOP_DOTPRODUCT3
@ WINED3D_TOP_PREMODULATE
@ WINED3D_TOP_MODULATE_2X
@ WINED3D_TOP_BLEND_FACTOR_ALPHA
#define WINED3D_VIEW_BUFFER_APPEND
#define WINED3D_BIND_DEPTH_STENCIL
#define WINED3DUSAGE_TEXTAPI
#define WINED3D_RESOURCE_ACCESS_MAP_R
#define WINED3DUSAGE_MANAGED
@ WINED3D_FEATURE_LEVEL_11
@ WINED3D_FEATURE_LEVEL_10_1
@ WINED3D_FEATURE_LEVEL_8
@ WINED3D_FEATURE_LEVEL_7
@ WINED3D_FEATURE_LEVEL_6
@ WINED3D_FEATURE_LEVEL_9_3
@ WINED3D_FEATURE_LEVEL_10
@ WINED3D_FEATURE_LEVEL_11_1
@ WINED3D_FEATURE_LEVEL_5
@ WINED3D_FEATURE_LEVEL_9_1
@ WINED3D_FEATURE_LEVEL_9_2
#define WINED3D_VIEW_BUFFER_COUNTER
@ WINED3D_SHADER_TYPE_HULL
@ WINED3D_SHADER_TYPE_PIXEL
@ WINED3D_SHADER_TYPE_GEOMETRY
@ WINED3D_SHADER_TYPE_GRAPHICS_COUNT
@ WINED3D_SHADER_TYPE_DOMAIN
@ WINED3D_SHADER_TYPE_COMPUTE
@ WINED3D_SHADER_TYPE_VERTEX
@ WINED3D_SHADER_TYPE_COUNT
#define WINED3D_BIND_RENDER_TARGET
#define WINED3DUSAGE_QUERY_VERTEXTEXTURE
#define WINED3DUSAGE_QUERY_GENMIPMAP
#define WINED3DUSAGE_RTPATCHES
#define WINED3D_HIGHEST_TEXTURE_STATE
#define WINED3DUSAGE_DYNAMIC
#define WINED3DUSAGE_QUERY_SRGBWRITE
#define WINED3D_MAX_FFP_TEXTURES
#define WINED3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER
#define WINED3DUSAGE_STATICDECL
@ WINED3D_DEVICE_TYPE_HAL
@ WINED3D_DEVICE_TYPE_REF
#define WINED3D_BIND_CONSTANT_BUFFER
#define WINED3D_BIND_STREAM_OUTPUT
#define WINED3D_SRGB_READ_WRITE_CONTROL
#define WINED3D_BIND_INDEX_BUFFER
wined3d_input_classification
@ WINED3D_INPUT_PER_INSTANCE_DATA
@ WINED3D_INPUT_PER_VERTEX_DATA
#define WINED3D_RESOURCE_ACCESS_MAP_W
#define WINED3DUSAGE_SOFTWAREPROCESSING
#define WINED3DTA_TEXTURE
#define WINED3DUSAGE_RESTRICT_SHARED_RESOURCE
@ ARB_INTERNALFORMAT_QUERY
@ EXT_TEXTURE_SHARED_EXPONENT
@ ATI_TEXTURE_COMPRESSION_3DC
@ ARB_TEXTURE_COMPRESSION_RGTC
@ EXT_TEXTURE_SRGB_DECODE
@ ARB_VERTEX_BUFFER_OBJECT
@ ARB_TEXTURE_MULTISAMPLE
@ ARB_INTERNALFORMAT_QUERY2
@ EXT_PACKED_DEPTH_STENCIL
@ EXT_TEXTURE_COMPRESSION_RGTC
@ EXT_FRAMEBUFFER_MULTISAMPLE
@ ARB_VERTEX_TYPE_2_10_10_10_REV
@ WINED3D_GL_LEGACY_CONTEXT
@ ARB_TEXTURE_COMPRESSION_BPTC
@ EXT_TEXTURE_COMPRESSION_S3TC
@ ARB_VERTEX_TYPE_10F_11F_11F_REV
#define WINED3D_QUIRK_LIMITED_TEX_FILTERING
#define WINED3D_QUIRK_BROKEN_RGBA16
#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI
#define WINED3D_FORMAT_CAP_VERTEX_ATTRIBUTE
#define WINED3D_FORMAT_CAP_FBO_ATTACHABLE_SRGB
static float float_24_to_32(DWORD in)
static BOOL wined3d_format_is_typeless(const struct wined3d_format *format)
#define STATE_IS_GRAPHICS_CONSTANT_BUFFER(a)
#define WINED3D_FORMAT_ATTR_FLOAT
#define WINED3D_FORMAT_ATTR_BLOCKS_NO_VERIFY
#define WINED3D_FORMAT_CAP_UNORDERED_ACCESS
#define STATE_CLIPPLANE(a)
#define STATE_CONSTANT_BUFFER(a)
#define WINED3D_FORMAT_ATTR_HEIGHT_SCALE
@ WINED3D_CHANNEL_TYPE_UNUSED
@ WINED3D_CHANNEL_TYPE_UNORM
@ WINED3D_CHANNEL_TYPE_STENCIL
@ WINED3D_CHANNEL_TYPE_FLOAT
@ WINED3D_CHANNEL_TYPE_SNORM
@ WINED3D_CHANNEL_TYPE_NONE
@ WINED3D_CHANNEL_TYPE_UINT
@ WINED3D_CHANNEL_TYPE_SINT
@ WINED3D_CHANNEL_TYPE_DEPTH
#define STATE_IS_GRAPHICS_UNORDERED_ACCESS_VIEW_BINDING(a)
#define WINED3D_LOCATION_TEXTURE_SRGB
static struct color_fixup_desc create_complex_fixup_desc(enum complex_fixup complex_fixup)
#define STATE_IS_STREAM_OUTPUT(a)
#define WINED3D_FFP_TCI_SHIFT
#define WINED3D_LOCATION_SYSMEM
#define STATE_IS_VDECL(a)
@ WINED3D_FFP_EMIT_D3DCOLOR
@ WINED3D_FFP_EMIT_FLOAT16_2
@ WINED3D_FFP_EMIT_UBYTE4N
@ WINED3D_FFP_EMIT_FLOAT2
@ WINED3D_FFP_EMIT_SHORT4N
@ WINED3D_FFP_EMIT_USHORT2N
@ WINED3D_FFP_EMIT_SHORT2N
@ WINED3D_FFP_EMIT_UBYTE4
@ WINED3D_FFP_EMIT_FLOAT4
@ WINED3D_FFP_EMIT_INVALID
@ WINED3D_FFP_EMIT_FLOAT3
@ WINED3D_FFP_EMIT_FLOAT16_4
@ WINED3D_FFP_EMIT_USHORT4N
@ WINED3D_FFP_EMIT_SHORT2
@ WINED3D_FFP_EMIT_SHORT4
@ WINED3D_FFP_EMIT_FLOAT1
#define STATE_IS_COMPUTE_UNORDERED_ACCESS_VIEW_BINDING(a)
#define MAKEDWORD_VERSION(maj, min)
#define WINED3D_FORMAT_CAP_DECOMPRESS
static BOOL use_vs(const struct wined3d_state *state)
#define WINED3D_FORMAT_CAP_SHADOW
#define WINED3D_FORMAT_CAP_TEXTURE
#define STATE_IS_BLEND_FACTOR(a)
#define STATE_IS_STREAMSRC(a)
#define WINED3D_FORMAT_ATTR_EXTENSION
#define STATE_IS_BLEND(a)
#define WINED3D_FORMAT_ATTR_INTEGER
#define WINED3D_FORMAT_CAP_INDEX_BUFFER
static enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup)
#define WINED3D_ALLOCATOR_MIN_BLOCK_SIZE
static struct wined3d_texture * wined3d_state_get_ffp_texture(const struct wined3d_state *state, unsigned int idx)
#define WINED3D_LOCATION_BUFFER
#define STATE_IS_TEXTURESTAGE(a)
#define WINED3D_FORMAT_ATTR_BROKEN_PITCH
static BOOL is_complex_fixup(struct color_fixup_desc fixup)
@ CHANNEL_SOURCE_COMPLEX1
@ CHANNEL_SOURCE_COMPLEX0
#define WINED3D_FFP_TCI_MASK
#define WINED3D_FORMAT_ATTR_MAPPABLE
#define WINED3D_LOCATION_RB_RESOLVED
#define WINED3D_FORMAT_ATTR_COMPRESSED
#define WINED3D_MAX_ACTIVE_LIGHTS
#define STATE_IS_CLIPPLANE(a)
static enum wined3d_cmp_func wined3d_sanitize_cmp_func(enum wined3d_cmp_func func)
static void wined3d_colour_srgb_from_linear(struct wined3d_color *colour_srgb, const struct wined3d_color *colour)
#define STATE_IS_VIEWPORT(a)
#define WINED3D_ALLOCATOR_CHUNK_ORDER_COUNT
static BOOL can_use_texture_swizzle(const struct wined3d_d3d_info *d3d_info, const struct wined3d_format *format)
#define STATE_IS_STENCIL_REF(a)
#define WINED3D_FORMAT_CAP_SRGB_WRITE
static uint32_t wined3d_mask_from_size(unsigned int size)
#define WINED3D_FORMAT_CAP_FILTERING
#define WINED3D_ALLOCATOR_CHUNK_SIZE
static const struct color_fixup_desc COLOR_FIXUP_IDENTITY
#define STATE_IS_RENDER(a)
#define STATE_IS_COMPUTE_SHADER_RESOURCE_BINDING(a)
#define WINED3D_FORMAT_CAP_FBO_ATTACHABLE
#define WINED3D_TEXTURE_ASYNC_COLOR_KEY
static BOOL is_identity_fixup(struct color_fixup_desc fixup)
@ WINED3D_GL_RES_TYPE_TEX_3D
@ WINED3D_GL_RES_TYPE_TEX_CUBE
@ WINED3D_GL_RES_TYPE_BUFFER
@ WINED3D_GL_RES_TYPE_TEX_2D
@ WINED3D_GL_RES_TYPE_TEX_1D
@ WINED3D_GL_RES_TYPE_COUNT
#define WINED3D_LOCATION_TEXTURE_RGB
#define WINED3D_FORMAT_CAP_POSTPIXELSHADER_BLENDING
static void wined3d_get_material_colour_source(enum wined3d_material_color_source *diffuse, enum wined3d_material_color_source *emissive, enum wined3d_material_color_source *ambient, enum wined3d_material_color_source *specular, const struct wined3d_state *state)
#define WINED3D_FORMAT_CAP_DEPTH_STENCIL
#define WINED3D_FORMAT_ATTR_NORMALISED
static BOOL needs_srgb_write(const struct wined3d_d3d_info *d3d_info, const struct wined3d_state *state, const struct wined3d_fb_state *fb)
#define WINED3D_FORMAT_CAP_VTF
#define WINED3D_LOCATION_DRAWABLE
#define STATE_IS_COMPUTE_SHADER(a)
#define WINED3D_LOCATION_CLEARED
@ WINED3D_FFP_VS_FOG_FOGCOORD
@ WINED3D_FFP_VS_FOG_DEPTH
@ WINED3D_FFP_VS_FOG_RANGE
#define WINED3D_LOCATION_DISCARDED
#define STATE_TEXTURESTAGE(stage, num)
#define WINED3D_FORMAT_CAP_RENDERTARGET
#define STATE_IS_DEPTH_STENCIL(a)
#define STATE_IS_COMPUTE_CONSTANT_BUFFER(a)
@ WINED3D_FFP_PS_FOG_EXP2
@ WINED3D_FFP_PS_FOG_LINEAR
#define WINED3D_FORMAT_CAP_BLIT
#define STATE_IS_SCISSORRECT(a)
#define STATE_IS_RASTERIZER(a)
#define STATE_IS_FRAMEBUFFER(a)
#define STATE_IS_GRAPHICS_SHADER_RESOURCE_BINDING(a)
#define WINED3D_LOCATION_RB_MULTISAMPLE
#define WINED3D_FORMAT_ATTR_BLOCKS
#define STATE_IS_INDEXBUFFER(a)
#define WINED3D_FORMAT_CAP_SRGB_READ
#define STATE_IS_DEPTH_BOUNDS(a)
#define WINED3D_FORMAT_ATTR_CAST_TO_BLOCK
#define STATE_IS_GRAPHICS_SHADER(a)
@ WINED3D_PROJECTION_COUNT3
@ WINED3D_PROJECTION_NONE
@ WINED3D_PROJECTION_COUNT4
#define STATE_IS_SAMPLE_MASK(a)
#define STATE_IS_BASEVERTEXINDEX(a)
#define WINED3D_FORMAT_CAP_GEN_MIPMAP
static unsigned int wined3d_popcount(unsigned int x)
#define WINED3D_FORMAT_ATTR_BUMPMAP
#define DISPLAY_DEVICE_PRIMARY_DEVICE
static unsigned int block