Index: src/gpu/vk/GrVkTextureRenderTarget.cpp |
diff --git a/src/gpu/vk/GrVkTextureRenderTarget.cpp b/src/gpu/vk/GrVkTextureRenderTarget.cpp |
deleted file mode 100644 |
index 79ba90481eb075e82746fc781d9b876beb74aae2..0000000000000000000000000000000000000000 |
--- a/src/gpu/vk/GrVkTextureRenderTarget.cpp |
+++ /dev/null |
@@ -1,150 +0,0 @@ |
-/* |
- * Copyright 2015 Google Inc. |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
-#include "GrVkTextureRenderTarget.h" |
- |
-#include "GrRenderTargetPriv.h" |
-#include "GrVkGpu.h" |
-#include "GrVkImageView.h" |
-#include "GrVkUtil.h" |
- |
-#define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X) |
- |
-GrVkTextureRenderTarget* |
-GrVkTextureRenderTarget::Create(GrVkGpu* gpu, |
- const GrSurfaceDesc& desc, |
- GrGpuResource::LifeCycle lifeCycle, |
- VkFormat format, |
- const GrVkImage::Resource* imageResource) { |
- |
- VkImage image = imageResource->fImage; |
- // Create the texture ImageView |
- const GrVkImageView* imageView = GrVkImageView::Create(gpu, image, format, |
- GrVkImageView::kColor_Type); |
- if (!imageView) { |
- return nullptr; |
- } |
- |
- VkFormat pixelFormat; |
- GrPixelConfigToVkFormat(desc.fConfig, &pixelFormat); |
- |
- VkImage colorImage; |
- |
- // create msaa surface if necessary |
- const GrVkImage::Resource* msaaImageResource = nullptr; |
- const GrVkImageView* resolveAttachmentView = nullptr; |
- if (desc.fSampleCnt) { |
- GrVkImage::ImageDesc msImageDesc; |
- msImageDesc.fImageType = VK_IMAGE_TYPE_2D; |
- msImageDesc.fFormat = pixelFormat; |
- msImageDesc.fWidth = desc.fWidth; |
- msImageDesc.fHeight = desc.fHeight; |
- msImageDesc.fLevels = 1; |
- msImageDesc.fSamples = desc.fSampleCnt; |
- msImageDesc.fImageTiling = VK_IMAGE_TILING_OPTIMAL; |
- msImageDesc.fUsageFlags = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; |
- msImageDesc.fMemProps = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; |
- |
- msaaImageResource = GrVkImage::CreateResource(gpu, msImageDesc); |
- |
- if (!msaaImageResource) { |
- imageView->unref(gpu); |
- return nullptr; |
- } |
- |
- // Set color attachment image |
- colorImage = msaaImageResource->fImage; |
- |
- // Create resolve attachment view if necessary. |
- // If the format matches, this is the same as the texture imageView. |
- if (pixelFormat == format) { |
- resolveAttachmentView = imageView; |
- resolveAttachmentView->ref(); |
- } else { |
- resolveAttachmentView = GrVkImageView::Create(gpu, image, pixelFormat, |
- GrVkImageView::kColor_Type); |
- if (!resolveAttachmentView) { |
- msaaImageResource->unref(gpu); |
- imageView->unref(gpu); |
- return nullptr; |
- } |
- } |
- } else { |
- // Set color attachment image |
- colorImage = imageResource->fImage; |
- } |
- |
- const GrVkImageView* colorAttachmentView; |
- // Get color attachment view. |
- // If the format matches and there's no multisampling, |
- // this is the same as the texture imageView |
- if (pixelFormat == format && !resolveAttachmentView) { |
- colorAttachmentView = imageView; |
- colorAttachmentView->ref(); |
- } else { |
- colorAttachmentView = GrVkImageView::Create(gpu, colorImage, pixelFormat, |
- GrVkImageView::kColor_Type); |
- if (!colorAttachmentView) { |
- if (msaaImageResource) { |
- resolveAttachmentView->unref(gpu); |
- msaaImageResource->unref(gpu); |
- } |
- imageView->unref(gpu); |
- return nullptr; |
- } |
- } |
- |
- GrVkTextureRenderTarget* texRT; |
- if (msaaImageResource) { |
- texRT = new GrVkTextureRenderTarget(gpu, desc, lifeCycle, |
- imageResource, imageView, msaaImageResource, |
- colorAttachmentView, |
- resolveAttachmentView); |
- msaaImageResource->unref(gpu); |
- } else { |
- texRT = new GrVkTextureRenderTarget(gpu, desc, lifeCycle, |
- imageResource, imageView, |
- colorAttachmentView); |
- } |
- return texRT; |
-} |
- |
-GrVkTextureRenderTarget* |
-GrVkTextureRenderTarget::CreateNewTextureRenderTarget(GrVkGpu* gpu, |
- const GrSurfaceDesc& desc, |
- GrGpuResource::LifeCycle lifeCycle, |
- const GrVkImage::ImageDesc& imageDesc) { |
- SkASSERT(imageDesc.fUsageFlags & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT); |
- SkASSERT(imageDesc.fUsageFlags & VK_IMAGE_USAGE_SAMPLED_BIT); |
- |
- const GrVkImage::Resource* imageRsrc = GrVkImage::CreateResource(gpu, imageDesc); |
- |
- if (!imageRsrc) { |
- return nullptr; |
- } |
- |
- GrVkTextureRenderTarget* trt = GrVkTextureRenderTarget::Create(gpu, desc, lifeCycle, |
- imageDesc.fFormat, imageRsrc); |
- // Create() will increment the refCount of the image resource if it succeeds |
- imageRsrc->unref(gpu); |
- |
- return trt; |
-} |
- |
-GrVkTextureRenderTarget* |
-GrVkTextureRenderTarget::CreateWrappedTextureRenderTarget(GrVkGpu* gpu, |
- const GrSurfaceDesc& desc, |
- GrGpuResource::LifeCycle lifeCycle, |
- VkFormat format, |
- GrVkImage::Resource* imageRsrc) { |
- SkASSERT(imageRsrc); |
- |
- // Note: we assume the caller will unref the imageResource |
- // Create() will increment the refCount, and we'll unref when we're done with it |
- return GrVkTextureRenderTarget::Create(gpu, desc, lifeCycle, format, imageRsrc); |
-} |
- |