Revert "wined3d: Simplify the get_write_mask and get_swizzle functions."
This reverts commit a9f658f6a6
.
This commit is contained in:
parent
f9f6a4d5da
commit
d46d7d13ab
|
@ -209,11 +209,14 @@ static const char * const shift_tab[] = {
|
|||
static void shader_arb_get_write_mask(const DWORD param, char *write_mask) {
|
||||
char *ptr = write_mask;
|
||||
|
||||
*ptr++ = '.';
|
||||
if (param & WINED3DSP_WRITEMASK_0) *ptr++ = 'x';
|
||||
if (param & WINED3DSP_WRITEMASK_1) *ptr++ = 'y';
|
||||
if (param & WINED3DSP_WRITEMASK_2) *ptr++ = 'z';
|
||||
if (param & WINED3DSP_WRITEMASK_3) *ptr++ = 'w';
|
||||
if ((param & WINED3DSP_WRITEMASK_ALL) != WINED3DSP_WRITEMASK_ALL) {
|
||||
*ptr++ = '.';
|
||||
if (param & WINED3DSP_WRITEMASK_0) *ptr++ = 'x';
|
||||
if (param & WINED3DSP_WRITEMASK_1) *ptr++ = 'y';
|
||||
if (param & WINED3DSP_WRITEMASK_2) *ptr++ = 'z';
|
||||
if (param & WINED3DSP_WRITEMASK_3) *ptr++ = 'w';
|
||||
}
|
||||
|
||||
*ptr = '\0';
|
||||
}
|
||||
|
||||
|
@ -223,15 +226,28 @@ static void shader_arb_get_swizzle(const DWORD param, BOOL fixup, char *swizzle_
|
|||
* and z components. */
|
||||
const char *swizzle_chars = fixup ? "zyxw" : "xyzw";
|
||||
char *ptr = swizzle_str;
|
||||
DWORD swizzle = (param & WINED3DSP_SWIZZLE_MASK) >> WINED3DSP_SWIZZLE_SHIFT;
|
||||
size_t i = 0;
|
||||
|
||||
*ptr++ = '.';
|
||||
/* swizzle bits fields: wwzzyyxx */
|
||||
for (i = 0; i < 4; ++i) {
|
||||
*ptr++ = swizzle_chars[swizzle & 0x3];
|
||||
swizzle >>= 2;
|
||||
DWORD swizzle = (param & WINED3DSP_SWIZZLE_MASK) >> WINED3DSP_SWIZZLE_SHIFT;
|
||||
DWORD swizzle_x = swizzle & 0x03;
|
||||
DWORD swizzle_y = (swizzle >> 2) & 0x03;
|
||||
DWORD swizzle_z = (swizzle >> 4) & 0x03;
|
||||
DWORD swizzle_w = (swizzle >> 6) & 0x03;
|
||||
|
||||
/* If the swizzle is the default swizzle (ie, "xyzw"), we don't need to
|
||||
* generate a swizzle string. Unless we need to our own swizzling. */
|
||||
if ((WINED3DSP_NOSWIZZLE >> WINED3DSP_SWIZZLE_SHIFT) != swizzle || fixup) {
|
||||
*ptr++ = '.';
|
||||
if (swizzle_x == swizzle_y && swizzle_x == swizzle_z && swizzle_x == swizzle_w) {
|
||||
*ptr++ = swizzle_chars[swizzle_x];
|
||||
} else {
|
||||
*ptr++ = swizzle_chars[swizzle_x];
|
||||
*ptr++ = swizzle_chars[swizzle_y];
|
||||
*ptr++ = swizzle_chars[swizzle_z];
|
||||
*ptr++ = swizzle_chars[swizzle_w];
|
||||
}
|
||||
}
|
||||
|
||||
*ptr = '\0';
|
||||
}
|
||||
|
||||
|
|
|
@ -722,11 +722,14 @@ static void shader_glsl_get_register_name(
|
|||
static void shader_glsl_get_write_mask(const DWORD param, char *write_mask) {
|
||||
char *ptr = write_mask;
|
||||
|
||||
*ptr++ = '.';
|
||||
if (param & WINED3DSP_WRITEMASK_0) *ptr++ = 'x';
|
||||
if (param & WINED3DSP_WRITEMASK_1) *ptr++ = 'y';
|
||||
if (param & WINED3DSP_WRITEMASK_2) *ptr++ = 'z';
|
||||
if (param & WINED3DSP_WRITEMASK_3) *ptr++ = 'w';
|
||||
if ((param & WINED3DSP_WRITEMASK_ALL) != WINED3DSP_WRITEMASK_ALL) {
|
||||
*ptr++ = '.';
|
||||
if (param & WINED3DSP_WRITEMASK_0) *ptr++ = 'x';
|
||||
if (param & WINED3DSP_WRITEMASK_1) *ptr++ = 'y';
|
||||
if (param & WINED3DSP_WRITEMASK_2) *ptr++ = 'z';
|
||||
if (param & WINED3DSP_WRITEMASK_3) *ptr++ = 'w';
|
||||
}
|
||||
|
||||
*ptr = '\0';
|
||||
}
|
||||
|
||||
|
@ -736,15 +739,28 @@ static void shader_glsl_get_swizzle(const DWORD param, BOOL fixup, char *swizzle
|
|||
* and z components. */
|
||||
const char *swizzle_chars = fixup ? "zyxw" : "xyzw";
|
||||
char *ptr = swizzle_str;
|
||||
DWORD swizzle = (param & WINED3DSP_SWIZZLE_MASK) >> WINED3DSP_SWIZZLE_SHIFT;
|
||||
size_t i = 0;
|
||||
|
||||
*ptr++ = '.';
|
||||
/* swizzle bits fields: wwzzyyxx */
|
||||
for (i = 0; i < 4; ++i) {
|
||||
*ptr++ = swizzle_chars[swizzle & 0x3];
|
||||
swizzle >>= 2;
|
||||
DWORD swizzle = (param & WINED3DSP_SWIZZLE_MASK) >> WINED3DSP_SWIZZLE_SHIFT;
|
||||
DWORD swizzle_x = swizzle & 0x03;
|
||||
DWORD swizzle_y = (swizzle >> 2) & 0x03;
|
||||
DWORD swizzle_z = (swizzle >> 4) & 0x03;
|
||||
DWORD swizzle_w = (swizzle >> 6) & 0x03;
|
||||
|
||||
/* If the swizzle is the default swizzle (ie, "xyzw"), we don't need to
|
||||
* generate a swizzle string. Unless we need to our own swizzling. */
|
||||
if ((WINED3DSP_NOSWIZZLE >> WINED3DSP_SWIZZLE_SHIFT) != swizzle || fixup) {
|
||||
*ptr++ = '.';
|
||||
if (swizzle_x == swizzle_y && swizzle_x == swizzle_z && swizzle_x == swizzle_w) {
|
||||
*ptr++ = swizzle_chars[swizzle_x];
|
||||
} else {
|
||||
*ptr++ = swizzle_chars[swizzle_x];
|
||||
*ptr++ = swizzle_chars[swizzle_y];
|
||||
*ptr++ = swizzle_chars[swizzle_z];
|
||||
*ptr++ = swizzle_chars[swizzle_w];
|
||||
}
|
||||
}
|
||||
|
||||
*ptr = '\0';
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue