1//
2// Copyright (c) 2002-2014 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// Scalarize vector and matrix constructor args, so that vectors built from components don't have
7// matrix arguments, and matrices built from components don't have vector arguments. This avoids
8// driver bugs around vector and matrix constructors.
9//
10
11#ifndef COMPILER_TRANSLATOR_TREEOPS_SCALARIZEVECANDMATCONSTRUCTORARGS_H_
12#define COMPILER_TRANSLATOR_TREEOPS_SCALARIZEVECANDMATCONSTRUCTORARGS_H_
13
14#include "GLSLANG/ShaderLang.h"
15
16namespace sh
17{
18class TIntermBlock;
19class TSymbolTable;
20
21void ScalarizeVecAndMatConstructorArgs(TIntermBlock *root,
22 sh::GLenum shaderType,
23 bool fragmentPrecisionHigh,
24 TSymbolTable *symbolTable);
25} // namespace sh
26
27#endif // COMPILER_TRANSLATOR_TREEOPS_SCALARIZEVECANDMATCONSTRUCTORARGS_H_
28