Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
SkSL::IRHelpers Struct Reference

#include <SkSLIRHelpers.h>

Public Member Functions

 IRHelpers (const Context &c)
 
std::unique_ptr< ExpressionRef (const Variable *var) const
 
std::unique_ptr< ExpressionField (const Variable *var, int idx) const
 
std::unique_ptr< ExpressionSwizzle (std::unique_ptr< Expression > base, ComponentArray c) const
 
std::unique_ptr< ExpressionIndex (std::unique_ptr< Expression > base, std::unique_ptr< Expression > idx) const
 
std::unique_ptr< ExpressionBinary (std::unique_ptr< Expression > l, Operator op, std::unique_ptr< Expression > r) const
 
std::unique_ptr< ExpressionMul (std::unique_ptr< Expression > l, std::unique_ptr< Expression > r) const
 
std::unique_ptr< ExpressionAdd (std::unique_ptr< Expression > l, std::unique_ptr< Expression > r) const
 
std::unique_ptr< ExpressionFloat (float value) const
 
std::unique_ptr< ExpressionInt (int value) const
 
std::unique_ptr< ExpressionCtorXYZW (std::unique_ptr< Expression > xy, std::unique_ptr< Expression > z, std::unique_ptr< Expression > w) const
 
std::unique_ptr< StatementAssign (std::unique_ptr< Expression > l, std::unique_ptr< Expression > r) const
 

Public Attributes

const ContextfContext
 

Detailed Description

Definition at line 36 of file SkSLIRHelpers.h.

Constructor & Destructor Documentation

◆ IRHelpers()

SkSL::IRHelpers::IRHelpers ( const Context c)
inline

Definition at line 37 of file SkSLIRHelpers.h.

37: fContext(c) {}
const Context & fContext

Member Function Documentation

◆ Add()

std::unique_ptr< Expression > SkSL::IRHelpers::Add ( std::unique_ptr< Expression l,
std::unique_ptr< Expression r 
) const
inline

Definition at line 75 of file SkSLIRHelpers.h.

76 {
77 return Binary(std::move(l), OperatorKind::PLUS, std::move(r));
78 }
std::unique_ptr< Expression > Binary(std::unique_ptr< Expression > l, Operator op, std::unique_ptr< Expression > r) const

◆ Assign()

std::unique_ptr< Statement > SkSL::IRHelpers::Assign ( std::unique_ptr< Expression l,
std::unique_ptr< Expression r 
) const
inline

Definition at line 99 of file SkSLIRHelpers.h.

100 {
103 Binary(std::move(l), OperatorKind::EQ, std::move(r)));
104 }
#define SkAssertResult(cond)
Definition SkAssert.h:123
static std::unique_ptr< Statement > Make(const Context &context, std::unique_ptr< Expression > expr)
bool UpdateVariableRefKind(Expression *expr, VariableRefKind kind, ErrorReporter *errors=nullptr)

◆ Binary()

std::unique_ptr< Expression > SkSL::IRHelpers::Binary ( std::unique_ptr< Expression l,
Operator  op,
std::unique_ptr< Expression r 
) const
inline

Definition at line 63 of file SkSLIRHelpers.h.

65 {
66 Position pos = l->fPosition.rangeThrough(r->fPosition);
67 return BinaryExpression::Make(fContext, pos, std::move(l), op, std::move(r));
68 }
SkPoint pos
static std::unique_ptr< Expression > Make(const Context &context, Position pos, std::unique_ptr< Expression > left, Operator op, std::unique_ptr< Expression > right)

◆ CtorXYZW()

std::unique_ptr< Expression > SkSL::IRHelpers::CtorXYZW ( std::unique_ptr< Expression xy,
std::unique_ptr< Expression z,
std::unique_ptr< Expression w 
) const
inline

Definition at line 88 of file SkSLIRHelpers.h.

90 {
91 ExpressionArray args;
92 args.push_back(std::move(xy));
93 args.push_back(std::move(z));
94 args.push_back(std::move(w));
96 std::move(args));
97 }
const std::unique_ptr< Type > fFloat4
static std::unique_ptr< Expression > Make(const Context &context, Position pos, const Type &type, ExpressionArray args)
const BuiltinTypes & fTypes
Definition SkSLContext.h:30
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
SkScalar w

◆ Field()

std::unique_ptr< Expression > SkSL::IRHelpers::Field ( const Variable var,
int  idx 
) const
inline

Definition at line 47 of file SkSLIRHelpers.h.

47 {
48 return FieldAccess::Make(fContext, Position(), Ref(var), idx,
49 FieldAccess::OwnerKind::kAnonymousInterfaceBlock);
50 }
static std::unique_ptr< Expression > Make(const Context &context, Position pos, std::unique_ptr< Expression > base, int fieldIndex, OwnerKind ownerKind=OwnerKind::kDefault)
std::unique_ptr< Expression > Ref(const Variable *var) const

◆ Float()

std::unique_ptr< Expression > SkSL::IRHelpers::Float ( float  value) const
inline

Definition at line 80 of file SkSLIRHelpers.h.

80 {
81 return Literal::MakeFloat(Position(), value, fContext.fTypes.fFloat.get());
82 }
const std::unique_ptr< Type > fFloat
static std::unique_ptr< Literal > MakeFloat(const Context &context, Position pos, float value)
Definition SkSLLiteral.h:43

◆ Index()

std::unique_ptr< Expression > SkSL::IRHelpers::Index ( std::unique_ptr< Expression base,
std::unique_ptr< Expression idx 
) const
inline

Definition at line 57 of file SkSLIRHelpers.h.

58 {
59 Position pos = base->fPosition.rangeThrough(idx->fPosition);
60 return IndexExpression::Make(fContext, pos, std::move(base), std::move(idx));
61 }
static std::unique_ptr< Expression > Make(const Context &context, Position pos, std::unique_ptr< Expression > base, std::unique_ptr< Expression > index)

◆ Int()

std::unique_ptr< Expression > SkSL::IRHelpers::Int ( int  value) const
inline

Definition at line 84 of file SkSLIRHelpers.h.

84 {
85 return Literal::MakeInt(Position(), value, fContext.fTypes.fInt.get());
86 }
const std::unique_ptr< Type > fInt
static std::unique_ptr< Literal > MakeInt(const Context &context, Position pos, SKSL_INT value)
Definition SkSLLiteral.h:54

◆ Mul()

std::unique_ptr< Expression > SkSL::IRHelpers::Mul ( std::unique_ptr< Expression l,
std::unique_ptr< Expression r 
) const
inline

Definition at line 70 of file SkSLIRHelpers.h.

71 {
72 return Binary(std::move(l), OperatorKind::STAR, std::move(r));
73 }

◆ Ref()

std::unique_ptr< Expression > SkSL::IRHelpers::Ref ( const Variable var) const
inline

Definition at line 43 of file SkSLIRHelpers.h.

43 {
44 return VariableReference::Make(Position(), var);
45 }
static std::unique_ptr< Expression > Make(Position pos, const Variable *variable, RefKind refKind=RefKind::kRead)

◆ Swizzle()

std::unique_ptr< Expression > SkSL::IRHelpers::Swizzle ( std::unique_ptr< Expression base,
ComponentArray  c 
) const
inline

Definition at line 52 of file SkSLIRHelpers.h.

52 {
53 Position pos = base->fPosition;
54 return Swizzle::Make(fContext, pos, std::move(base), std::move(c));
55 }
static std::unique_ptr< Expression > Make(const Context &context, Position pos, std::unique_ptr< Expression > expr, ComponentArray inComponents)

Member Data Documentation

◆ fContext

const Context& SkSL::IRHelpers::fContext

Definition at line 106 of file SkSLIRHelpers.h.


The documentation for this struct was generated from the following file: