Flutter Engine
The Flutter Engine
Classes | Namespaces | Enumerations | Functions
SkSLAnalysis.h File Reference
#include "include/private/SkSLSampleUsage.h"
#include "include/private/base/SkTArray.h"
#include <cstdint>
#include <memory>
#include <vector>

Go to the source code of this file.

Classes

struct  SkSL::Analysis::LoopControlFlowInfo
 
struct  SkSL::Analysis::AssignmentInfo
 
class  SkSL::Analysis::SymbolTableStackBuilder
 

Namespaces

namespace  SkSL
 
namespace  SkSL::Analysis
 

Enumerations

enum class  SkSL::Analysis::ReturnComplexity { SkSL::Analysis::kSingleSafeReturn , SkSL::Analysis::kScopedReturns , SkSL::Analysis::kEarlyReturns }
 

Functions

SampleUsage SkSL::Analysis::GetSampleUsage (const Program &program, const Variable &child, bool writesToSampleCoords=true, int *elidedSampleCoordCount=nullptr)
 
bool SkSL::Analysis::ReferencesBuiltin (const Program &program, int builtin)
 
bool SkSL::Analysis::ReferencesSampleCoords (const Program &program)
 
bool SkSL::Analysis::ReferencesFragCoords (const Program &program)
 
bool SkSL::Analysis::CallsSampleOutsideMain (const Program &program)
 
bool SkSL::Analysis::CallsColorTransformIntrinsics (const Program &program)
 
bool SkSL::Analysis::ReturnsOpaqueColor (const FunctionDefinition &function)
 
bool SkSL::Analysis::ReturnsInputAlpha (const FunctionDefinition &function, const ProgramUsage &usage)
 
bool SkSL::Analysis::CheckProgramStructure (const Program &program, bool enforceSizeLimit)
 
bool SkSL::Analysis::ContainsRTAdjust (const Expression &expr)
 
bool SkSL::Analysis::ContainsVariable (const Expression &expr, const Variable &var)
 
bool SkSL::Analysis::HasSideEffects (const Expression &expr)
 
bool SkSL::Analysis::IsCompileTimeConstant (const Expression &expr)
 
bool SkSL::Analysis::IsDynamicallyUniformExpression (const Expression &expr)
 
bool SkSL::Analysis::DetectVarDeclarationWithoutScope (const Statement &stmt, ErrorReporter *errors=nullptr)
 
int SkSL::Analysis::NodeCountUpToLimit (const FunctionDefinition &function, int limit)
 
bool SkSL::Analysis::SwitchCaseContainsUnconditionalExit (const Statement &stmt)
 
bool SkSL::Analysis::SwitchCaseContainsConditionalExit (const Statement &stmt)
 
std::unique_ptr< ProgramUsage > SkSL::Analysis::GetUsage (const Program &program)
 
std::unique_ptr< ProgramUsage > SkSL::Analysis::GetUsage (const Module &module)
 
bool SkSL::Analysis::StatementWritesToVariable (const Statement &stmt, const Variable &var)
 
LoopControlFlowInfo SkSL::Analysis::GetLoopControlFlowInfo (const Statement &stmt)
 
bool SkSL::Analysis::IsAssignable (Expression &expr, AssignmentInfo *info=nullptr, ErrorReporter *errors=nullptr)
 
bool SkSL::Analysis::UpdateVariableRefKind (Expression *expr, VariableRefKind kind, ErrorReporter *errors=nullptr)
 
bool SkSL::Analysis::IsTrivialExpression (const Expression &expr)
 
bool SkSL::Analysis::IsSameExpressionTree (const Expression &left, const Expression &right)
 
bool SkSL::Analysis::IsConstantExpression (const Expression &expr)
 
void SkSL::Analysis::ValidateIndexingForES2 (const ProgramElement &pe, ErrorReporter &errors)
 
void SkSL::Analysis::CheckSymbolTableCorrectness (const Program &program)
 
std::unique_ptr< LoopUnrollInfo > SkSL::Analysis::GetLoopUnrollInfo (const Context &context, Position pos, const ForLoopPositions &positions, const Statement *loopInitializer, std::unique_ptr< Expression > *loopTestPtr, const Expression *loopNext, const Statement *loopStatement, ErrorReporter *errors)
 
bool SkSL::Analysis::CanExitWithoutReturningValue (const FunctionDeclaration &funcDecl, const Statement &body)
 
ReturnComplexity SkSL::Analysis::GetReturnComplexity (const FunctionDefinition &funcDef)
 
void SkSL::Analysis::DoFinalizationChecks (const Program &program)
 
skia_private::TArray< const SkSL::Variable * > SkSL::Analysis::GetComputeShaderMainParams (const Context &context, const Program &program)