31namespace SkSL {
struct Program; }
68 static constexpr size_t kMaxStride = 1024;
69 static constexpr size_t kMaxAttributes = 8;
70 static constexpr size_t kStrideAlignment = 4;
71 static constexpr size_t kOffsetAlignment = 4;
72 static constexpr size_t kMaxVaryings = 6;
75 enum class Type : uint32_t {
90 enum class Type : uint32_t {
164 size_t uniformSize()
const;
176 const Child* findChild(std::string_view
name)
const;
179 const Uniform* findUniform(std::string_view
name)
const;
185 const Varying* findVarying(std::string_view
name)
const;
187 size_t stride()
const {
return fStride; }
194 enum class ColorType {
211 int passthroughLocalCoordsVaryingIndex,
212 uint32_t deadVaryingMask,
213 std::vector<Uniform> uniforms,
214 std::vector<Child> children,
215 std::unique_ptr<const SkSL::Program>,
216 std::unique_ptr<const SkSL::Program>,
227 const std::vector<Attribute> fAttributes;
228 const std::vector<Varying> fVaryings;
229 const std::vector<Uniform> fUniforms;
230 const std::vector<Child> fChildren;
231 const std::unique_ptr<const SkSL::Program> fVS;
232 const std::unique_ptr<const SkSL::Program> fFS;
233 const size_t fStride;
235 const int fPassthroughLocalCoordsVaryingIndex;
236 const uint32_t fDeadVaryingMask;
267 virtual size_t size()
const = 0;
284 virtual size_t size()
const = 0;
371 bool isValid()
const;
374 std::tuple<bool, SkString> validate()
const;
SkMeshSpecification::Uniform Uniform
SkMeshSpecification::Child Child
SkSpan(Container &&) -> SkSpan< std::remove_pointer_t< decltype(std::data(std::declval< Container >()))> >
SkSpan< const Uniform > uniforms() const
SkSpan< const Child > children() const
SkSpan< const Attribute > attributes() const
SkColorSpace * colorSpace() const
virtual size_t size() const =0
virtual bool onUpdate(GrDirectContext *, const void *data, size_t offset, size_t size)=0
virtual size_t size() const =0
virtual bool onUpdate(GrDirectContext *, const void *data, size_t offset, size_t size)=0
SkMesh & operator=(const SkMesh &)
SkSpan< const ChildPtr > children() const
VertexBuffer * vertexBuffer() const
SkMesh & operator=(SkMesh &&)
size_t vertexCount() const
sk_sp< IndexBuffer > refIndexBuffer() const
size_t vertexOffset() const
sk_sp< VertexBuffer > refVertexBuffer() const
IndexBuffer * indexBuffer() const
size_t indexCount() const
sk_sp< const SkData > refUniforms() const
size_t indexOffset() const
const SkData * uniforms() const
SkMeshSpecification * spec() const
sk_sp< SkMeshSpecification > refSpec() const
SK_API sk_sp< SkMesh::IndexBuffer > CopyIndexBuffer(const sk_sp< SkMesh::IndexBuffer > &)
SK_API sk_sp< SkMesh::IndexBuffer > MakeIndexBuffer(const void *data, size_t size)
SK_API sk_sp< SkMesh::VertexBuffer > MakeVertexBuffer(const void *, size_t size)
SK_API sk_sp< SkMesh::VertexBuffer > CopyVertexBuffer(const sk_sp< SkMesh::VertexBuffer > &)
SK_API sk_sp< SkDocument > Make(SkWStream *dst, const SkSerialProcs *=nullptr, std::function< void(const SkPicture *)> onEndPage=nullptr)
Optional< SkRect > bounds
DEF_SWITCHES_START aot vmservice shared library name
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
sk_sp< SkMeshSpecification > specification
static constexpr SkRect MakeEmpty()
std::shared_ptr< const fml::Mapping > data