1 // Copyright 2016 The ANGLE Project Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 // 5 // This mutating tree traversal works around a bug on evaluating unary 6 // integer variable on Intel D3D driver. It works by rewriting -(int) to 7 // ~(int) + 1 when evaluating unary integer variables. 8 9 #ifndef COMPILER_TRANSLATOR_TREEOPS_REWRITEUNARYMINUSOPERATORINT_H_ 10 #define COMPILER_TRANSLATOR_TREEOPS_REWRITEUNARYMINUSOPERATORINT_H_ 11 12 #include "common/angleutils.h" 13 14 namespace sh 15 { 16 class TCompiler; 17 class TIntermNode; 18 19 ANGLE_NO_DISCARD bool RewriteUnaryMinusOperatorInt(TCompiler *compiler, TIntermNode *root); 20 21 } // namespace sh 22 23 #endif // COMPILER_TRANSLATOR_TREEOPS_REWRITEUNARYMINUSOPERATORINT_H_ 24