1 // 2 // Copyright 2002 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 // RemovePow is an AST traverser to convert pow(x, y) built-in calls where y is a 7 // constant to exp2(y * log2(x)). This works around an issue in NVIDIA 311 series 8 // OpenGL drivers. 9 // 10 11 #ifndef COMPILER_TRANSLATOR_TREEOPS_REMOVEPOW_H_ 12 #define COMPILER_TRANSLATOR_TREEOPS_REMOVEPOW_H_ 13 14 #include "common/angleutils.h" 15 16 namespace sh 17 { 18 class TCompiler; 19 class TIntermNode; 20 class TSymbolTable; 21 22 ANGLE_NO_DISCARD bool RemovePow(TCompiler *compiler, TIntermNode *root, TSymbolTable *symbolTable); 23 } // namespace sh 24 25 #endif // COMPILER_TRANSLATOR_TREEOPS_REMOVEPOW_H_ 26