diff options
Diffstat (limited to 'src/gpu/vk/GrVkGpuCommandBuffer.h')
-rw-r--r-- | src/gpu/vk/GrVkGpuCommandBuffer.h | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/gpu/vk/GrVkGpuCommandBuffer.h b/src/gpu/vk/GrVkGpuCommandBuffer.h index 527a1b2f46..160e4ca63f 100644 --- a/src/gpu/vk/GrVkGpuCommandBuffer.h +++ b/src/gpu/vk/GrVkGpuCommandBuffer.h @@ -34,6 +34,8 @@ public: void discard() override; + void inlineUpload(GrBatchFlushState* state, GrDrawBatch::DeferredUploadFn& upload) override; + private: GrGpu* gpu() override; GrRenderTarget* renderTarget() override; @@ -57,11 +59,25 @@ private: void onClearStencilClip(const GrFixedClip&, bool insideStencilMask) override; + void addAdditionalCommandBuffer(); + + struct InlineUploadInfo { + InlineUploadInfo(GrBatchFlushState* state, const GrDrawBatch::DeferredUploadFn& upload) + : fFlushState(state) + , fUpload(upload) {} + + GrBatchFlushState* fFlushState; + GrDrawBatch::DeferredUploadFn fUpload; + }; + struct CommandBufferInfo { - const GrVkRenderPass* fRenderPass; - GrVkSecondaryCommandBuffer* fCommandBuffer; - VkClearValue fColorClearValue; - SkRect fBounds; + const GrVkRenderPass* fRenderPass; + GrVkSecondaryCommandBuffer* fCommandBuffer; + VkClearValue fColorClearValue; + SkRect fBounds; + bool fIsEmpty; + bool fStartsWithClear; + SkTArray<InlineUploadInfo> fPreDrawUploads; }; SkTArray<CommandBufferInfo> fCommandBufferInfos; @@ -70,9 +86,6 @@ private: GrVkGpu* fGpu; GrVkRenderTarget* fRenderTarget; - bool fIsEmpty; - bool fStartsWithClear; - typedef GrGpuCommandBuffer INHERITED; }; |