From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3d10/effect.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index a77178d6e0b..9e2be3b6b21 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -518,6 +518,20 @@ static void pres_and(float **args, unsigned int n, const struct preshader_instr } }
+static void pres_or(float **args, unsigned int n, const struct preshader_instr *instr) +{ + unsigned int *arg1 = (unsigned int *)args[0]; + unsigned int *arg2 = (unsigned int *)args[1]; + float *retval = args[2]; + unsigned int i; + + for (i = 0; i < instr->comp_count; ++i) + { + unsigned int v = arg1[instr->scalar ? 0 : i] | arg2[i]; + retval[i] = *(float *)&v; + } +} + static void pres_xor(float **args, unsigned int n, const struct preshader_instr *instr) { unsigned int *arg1 = (unsigned int *)args[0]; @@ -578,6 +592,7 @@ static const struct preshader_op_info preshader_ops[] = { 0x21f, "umin", pres_umin }, { 0x220, "umax", pres_umax }, { 0x230, "and", pres_and }, + { 0x231, "or", pres_or }, { 0x233, "xor", pres_xor }, { 0x301, "movc", pres_movc }, };