1//
2// Copyright (c) 2011 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
7#ifndef COMPILER_TRANSLATOR_BUILTINFUNCTIONEMULATORGLSL_H_
8#define COMPILER_TRANSLATOR_BUILTINFUNCTIONEMULATORGLSL_H_
9
10#include "GLSLANG/ShaderLang.h"
11
12namespace sh
13{
14class BuiltInFunctionEmulator;
15
16//
17// This works around bug in Intel Mac drivers.
18//
19void InitBuiltInAbsFunctionEmulatorForGLSLWorkarounds(BuiltInFunctionEmulator *emu,
20 sh::GLenum shaderType);
21
22//
23// This works around isnan() bug in Intel Mac drivers
24//
25void InitBuiltInIsnanFunctionEmulatorForGLSLWorkarounds(BuiltInFunctionEmulator *emu,
26 int targetGLSLVersion);
27//
28// This works around atan(y, x) bug in NVIDIA drivers.
29//
30void InitBuiltInAtanFunctionEmulatorForGLSLWorkarounds(BuiltInFunctionEmulator *emu);
31
32//
33// This function is emulating built-in functions missing from GLSL 1.30 and higher.
34//
35void InitBuiltInFunctionEmulatorForGLSLMissingFunctions(BuiltInFunctionEmulator *emu,
36 sh::GLenum shaderType,
37 int targetGLSLVersion);
38} // namespace sh
39
40#endif // COMPILER_TRANSLATOR_BUILTINFUNCTIONEMULATORGLSL_H_
41