1 /* 2 * Copyright 2022 Google LLC 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef skgpu_graphite_render_AnalyticRRectRenderStep_DEFINED 9 #define skgpu_graphite_render_AnalyticRRectRenderStep_DEFINED 10 11 #include "src/gpu/graphite/Renderer.h" 12 13 namespace skgpu::graphite { 14 15 class StaticBufferManager; 16 17 class AnalyticRRectRenderStep final : public RenderStep { 18 public: 19 AnalyticRRectRenderStep(StaticBufferManager* bufferManager); 20 21 ~AnalyticRRectRenderStep() override; 22 23 std::string vertexSkSL() const override; 24 const char* fragmentCoverageSkSL() const override; 25 26 void writeVertices(DrawWriter*, const DrawParams&, skvx::ushort2 ssboIndices) const override; 27 void writeUniformsAndTextures(const DrawParams&, PipelineDataGatherer*) const override; 28 29 private: 30 // Points to the static buffers holding the fixed indexed vertex template for drawing instances. 31 BindBufferInfo fVertexBuffer; 32 BindBufferInfo fIndexBuffer; 33 }; 34 35 } // namespace skgpu::graphite 36 37 #endif // skgpu_render_AnalyticRRectRenderStep_DEFINED 38