// To create framebuffers, we first need to create a simple RenderPass that is // only used for framebuffer creation. When we actually render we will create // RenderPasses as needed that are compatible with the framebuffer. const GrVkRenderPass* GrVkResourceProvider::findOrCreateCompatibleRenderPass(const GrVkRenderTarget& target) { for (int i = 0; i < fSimpleRenderPasses.count(); ++i) { GrVkRenderPass* renderPass = fSimpleRenderPasses[i]; if (renderPass->isCompatible(target)) { renderPass->ref(); return renderPass; } } GrVkRenderPass* renderPass = new GrVkRenderPass(); renderPass->initSimple(fGpu, target); fSimpleRenderPasses.push_back(renderPass); renderPass->ref(); return renderPass; }
bool GrVkCopyPipeline::isCompatible(const GrVkRenderPass& rp) const { return rp.isCompatible(*fRenderPass); }