From 2992eb5165ed88d61466f19d1608f6b4bbd14427 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mika=20Isoj=C3=A4rvi?= Date: Mon, 16 May 2016 11:05:05 -0700 Subject: [PATCH] Apply alternatives to vector refract tests Bug: 28657855 Bug: 27266906 Change-Id: I0ea0211c8292805338d55c1dc01692135761a428 --- modules/glshared/glsBuiltinPrecisionTests.cpp | 55 ++++++--------------------- 1 file changed, 11 insertions(+), 44 deletions(-) diff --git a/modules/glshared/glsBuiltinPrecisionTests.cpp b/modules/glshared/glsBuiltinPrecisionTests.cpp index fee0c53..198e1ad 100644 --- a/modules/glshared/glsBuiltinPrecisionTests.cpp +++ b/modules/glshared/glsBuiltinPrecisionTests.cpp @@ -3127,49 +3127,6 @@ protected: } }; -template -struct ApplyRefract -{ - static ExprP apply (ExpandContext& ctx, - const ExprP& i, - const ExprP& n, - const ExprP& eta) - { - const ExprP dotNI = bindExpression("dotNI", ctx, dot(n, i)); - const ExprP k = bindExpression("k", ctx, constant(1.0f) - eta * eta * - (constant(1.0f) - dotNI * dotNI)); - - return cond(k < constant(0.0f), - genXType(constant(0.0f)), - i * eta - n * (eta * dotNI + sqrt(k))); - }; -}; - -template -struct ApplyRefract<1, Ret, Arg0, Arg1> -{ - static ExprP apply (ExpandContext& ctx, - const ExprP& i, - const ExprP& n, - const ExprP& eta) - { - const ExprP dotNI = bindExpression("dotNI", ctx, dot(n, i)); - const ExprP k1 = bindExpression("k1", ctx, constant(1.0f) - eta * eta * - (constant(1.0f) - dotNI * dotNI)); - - const ExprP k2 = bindExpression("k2", ctx, - (((dotNI * (-dotNI)) + constant(1.0f)) * eta) - * (-eta) + constant(1.0f)); - - return alternatives(cond(k1 < constant(0.0f), - genXType(constant(0.0f)), - i * eta - n * (eta * dotNI + sqrt(k1))), - cond(k2 < constant(0.0f), - genXType(constant(0.0f)), - i * eta - n * (eta * dotNI + sqrt(k2)))); - }; -}; - template class Refract : public DerivedFunc< Signature::Container, @@ -3194,8 +3151,18 @@ protected: const ExprP& i = args.a; const ExprP& n = args.b; const ExprP& eta = args.c; + const ExprP dotNI = bindExpression("dotNI", ctx, dot(n, i)); + const ExprP k1 = bindExpression("k1", ctx, constant(1.0f) - eta * eta * + (constant(1.0f) - dotNI * dotNI)); + + const ExprP k2 = bindExpression("k2", ctx, + (((dotNI * (-dotNI)) + constant(1.0f)) * eta) + * (-eta) + constant(1.0f)); + const ExprP k = bindExpression("k", ctx, alternatives(k1, k2)); - return ApplyRefract::apply(ctx, i, n, eta); + return cond(k < constant(0.0f), + genXType(constant(0.0f)), + i * eta - n * (eta * dotNI + sqrt(k))); } }; -- 2.7.4