#include "compiler/translator/tree_ops/spirv/EmulateYUVBuiltIns.h"
#include "compiler/translator/StaticType.h"
#include "compiler/translator/SymbolTable.h"
#include "compiler/translator/tree_util/IntermNode_util.h"
#include "compiler/translator/tree_util/IntermTraverse.h"
namespace sh
{
namespace
{
class EmulateYUVBuiltInsTraverser : public TIntermTraverser
{ … };
bool EmulateYUVBuiltInsTraverser::visitAggregate(Visit visit, TIntermAggregate *node)
{ … }
TIntermTyped *EmulateYUVBuiltInsTraverser::replaceYUVFuncCall(TIntermTyped *node)
{ … }
TIntermTyped *MakeMatrix(const std::array<float, 12> &elements)
{ … }
const TFunction *EmulateYUVBuiltInsTraverser::getYUV2RGBFunc(TPrecision precision)
{ … }
const TFunction *EmulateYUVBuiltInsTraverser::getRGB2YUVFunc(TPrecision precision)
{ … }
const TFunction *EmulateYUVBuiltInsTraverser::getYUVFunc(TPrecision precision,
const char *name,
TIntermTyped *itu601Matrix,
TIntermTyped *itu601WideMatrix,
TIntermTyped *itu709Matrix,
TIntermFunctionDefinition **funcDefOut)
{ … }
bool EmulateYUVBuiltInsTraverser::update(TCompiler *compiler, TIntermBlock *root)
{ … }
}
bool EmulateYUVBuiltIns(TCompiler *compiler, TIntermBlock *root, TSymbolTable *symbolTable)
{ … }
}