19#define SKSL_RTFLIP_NAME "u_skRTFlip"
24class FunctionDeclaration;
67 std::unique_ptr<ProgramConfig> config,
68 std::shared_ptr<Context> context,
69 std::vector<std::unique_ptr<ProgramElement>>
elements,
70 std::unique_ptr<SymbolTable>
symbols,
71 std::unique_ptr<Pool>
pool);
80 if (fShared != fSharedEnd) {
88 if (fShared != fSharedEnd) {
97 return fOwned == other.fOwned && fShared == other.fShared;
101 return !(*
this == other);
105 using Owned = std::vector<std::unique_ptr<ProgramElement>>::const_iterator;
106 using Shared = std::vector<const ProgramElement*>::const_iterator;
109 iterator(Owned owned, Owned ownedEnd, Shared shared, Shared sharedEnd)
110 : fOwned(owned), fOwnedEnd(ownedEnd), fShared(shared), fSharedEnd(sharedEnd) {}
bool operator==(const iterator &other) const
const ProgramElement * operator*()
bool operator!=(const iterator &other) const
bool operator!=(const ProgramInterface &that) const
bool fOutputSecondaryColor
bool operator==(const ProgramInterface &that) const
std::vector< std::unique_ptr< ProgramElement > > fOwnedElements
Program(std::unique_ptr< std::string > source, std::unique_ptr< ProgramConfig > config, std::shared_ptr< Context > context, std::vector< std::unique_ptr< ProgramElement > > elements, std::unique_ptr< SymbolTable > symbols, std::unique_ptr< Pool > pool)
ElementsCollection elements() const
std::shared_ptr< Context > fContext
const ProgramUsage * usage() const
std::unique_ptr< ProgramUsage > fUsage
std::unique_ptr< Pool > fPool
ProgramInterface fInterface
std::unique_ptr< SymbolTable > fSymbols
std::vector< const ProgramElement * > fSharedElements
std::unique_ptr< std::string > fSource
const FunctionDeclaration * getFunction(const char *functionName) const
std::unique_ptr< ProgramConfig > fConfig
std::string description() const