123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /*
- * Copyright 2016 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef GrVkPipeline_DEFINED
- #define GrVkPipeline_DEFINED
- #include "include/gpu/vk/GrVkTypes.h"
- #include "include/private/GrTypesPriv.h"
- #include "src/gpu/vk/GrVkResource.h"
- class GrPipeline;
- class GrPrimitiveProcessor;
- class GrRenderTarget;
- class GrXferProcessor;
- class GrStencilSettings;
- class GrVkCommandBuffer;
- class GrVkGpu;
- class GrVkRenderPass;
- struct SkIRect;
- class GrVkPipeline : public GrVkResource {
- public:
- static GrVkPipeline* Create(GrVkGpu*,
- int numColorSamples,
- const GrPrimitiveProcessor&,
- const GrPipeline& pipeline,
- const GrStencilSettings&,
- GrSurfaceOrigin,
- VkPipelineShaderStageCreateInfo* shaderStageInfo,
- int shaderStageCount,
- GrPrimitiveType primitiveType,
- VkRenderPass compatibleRenderPass,
- VkPipelineLayout layout,
- VkPipelineCache cache);
- VkPipeline pipeline() const { return fPipeline; }
- static void SetDynamicScissorRectState(GrVkGpu*, GrVkCommandBuffer*, const GrRenderTarget*,
- GrSurfaceOrigin, SkIRect);
- static void SetDynamicViewportState(GrVkGpu*, GrVkCommandBuffer*, const GrRenderTarget*);
- static void SetDynamicBlendConstantState(GrVkGpu*, GrVkCommandBuffer*,
- const GrSwizzle& outputSwizzle,
- const GrXferProcessor&);
- #ifdef SK_TRACE_VK_RESOURCES
- void dumpInfo() const override {
- SkDebugf("GrVkPipeline: %d (%d refs)\n", fPipeline, this->getRefCnt());
- }
- #endif
- protected:
- GrVkPipeline(VkPipeline pipeline) : INHERITED(), fPipeline(pipeline) {}
- VkPipeline fPipeline;
- private:
- void freeGPUData(GrVkGpu* gpu) const override;
- typedef GrVkResource INHERITED;
- };
- #endif
|