aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk/GrVkTextureRenderTarget.cpp
diff options
context:
space:
mode:
authorGravatar Greg Daniel <egdaniel@google.com>2017-08-17 15:37:20 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-08-18 13:28:18 +0000
commit1591c38d1362790cb0ec27740678e107e71073bc (patch)
treeca562f251e8f467e9d22d9abb307453b93a9a07b /src/gpu/vk/GrVkTextureRenderTarget.cpp
parentceef4fb5c498003be77a32a46cedfbf5da22a274 (diff)
Use GrBackendObjectOwnership instead of GrVkImage::Wrapped
This is more in line with what GL does and will make things cleaner for the metal backend as well. Bug: skia: Change-Id: I0ba0c588f813ad78051251c1cb9e8f92fd917ecc Reviewed-on: https://skia-review.googlesource.com/35940 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/gpu/vk/GrVkTextureRenderTarget.cpp')
-rw-r--r--src/gpu/vk/GrVkTextureRenderTarget.cpp60
1 files changed, 32 insertions, 28 deletions
diff --git a/src/gpu/vk/GrVkTextureRenderTarget.cpp b/src/gpu/vk/GrVkTextureRenderTarget.cpp
index 8dc5ffed1e..e380e73095 100644
--- a/src/gpu/vk/GrVkTextureRenderTarget.cpp
+++ b/src/gpu/vk/GrVkTextureRenderTarget.cpp
@@ -26,12 +26,13 @@ GrVkTextureRenderTarget::GrVkTextureRenderTarget(GrVkGpu* gpu,
const GrVkImageView* texView,
const GrVkImageInfo& msaaInfo,
const GrVkImageView* colorAttachmentView,
- const GrVkImageView* resolveAttachmentView)
+ const GrVkImageView* resolveAttachmentView,
+ GrBackendObjectOwnership ownership)
: GrSurface(gpu, desc)
- , GrVkImage(info, GrVkImage::kNot_Wrapped)
- , GrVkTexture(gpu, desc, info, texView, GrVkImage::kNot_Wrapped)
+ , GrVkImage(info, ownership)
+ , GrVkTexture(gpu, desc, info, texView, ownership)
, GrVkRenderTarget(gpu, desc, info, msaaInfo, colorAttachmentView,
- resolveAttachmentView, GrVkImage::kNot_Wrapped) {
+ resolveAttachmentView, GrBackendObjectOwnership::kOwned) {
this->registerWithCache(budgeted);
}
@@ -40,11 +41,12 @@ GrVkTextureRenderTarget::GrVkTextureRenderTarget(GrVkGpu* gpu,
const GrSurfaceDesc& desc,
const GrVkImageInfo& info,
const GrVkImageView* texView,
- const GrVkImageView* colorAttachmentView)
+ const GrVkImageView* colorAttachmentView,
+ GrBackendObjectOwnership ownership)
: GrSurface(gpu, desc)
- , GrVkImage(info, GrVkImage::kNot_Wrapped)
- , GrVkTexture(gpu, desc, info, texView, GrVkImage::kNot_Wrapped)
- , GrVkRenderTarget(gpu, desc, info, colorAttachmentView, GrVkImage::kNot_Wrapped) {
+ , GrVkImage(info, ownership)
+ , GrVkTexture(gpu, desc, info, texView, ownership)
+ , GrVkRenderTarget(gpu, desc, info, colorAttachmentView, GrBackendObjectOwnership::kOwned) {
this->registerWithCache(budgeted);
}
@@ -55,12 +57,12 @@ GrVkTextureRenderTarget::GrVkTextureRenderTarget(GrVkGpu* gpu,
const GrVkImageInfo& msaaInfo,
const GrVkImageView* colorAttachmentView,
const GrVkImageView* resolveAttachmentView,
- GrVkImage::Wrapped wrapped)
+ GrBackendObjectOwnership ownership)
: GrSurface(gpu, desc)
- , GrVkImage(info, wrapped)
- , GrVkTexture(gpu, desc, info, texView, wrapped)
+ , GrVkImage(info, ownership)
+ , GrVkTexture(gpu, desc, info, texView, ownership)
, GrVkRenderTarget(gpu, desc, info, msaaInfo, colorAttachmentView,
- resolveAttachmentView, wrapped) {
+ resolveAttachmentView, ownership) {
this->registerWithCacheWrapped();
}
@@ -69,11 +71,11 @@ GrVkTextureRenderTarget::GrVkTextureRenderTarget(GrVkGpu* gpu,
const GrVkImageInfo& info,
const GrVkImageView* texView,
const GrVkImageView* colorAttachmentView,
- GrVkImage::Wrapped wrapped)
+ GrBackendObjectOwnership ownership)
: GrSurface(gpu, desc)
- , GrVkImage(info, wrapped)
- , GrVkTexture(gpu, desc, info, texView, wrapped)
- , GrVkRenderTarget(gpu, desc, info, colorAttachmentView, wrapped) {
+ , GrVkImage(info, ownership)
+ , GrVkTexture(gpu, desc, info, texView, ownership)
+ , GrVkRenderTarget(gpu, desc, info, colorAttachmentView, ownership) {
this->registerWithCacheWrapped();
}
@@ -82,7 +84,8 @@ sk_sp<GrVkTextureRenderTarget> GrVkTextureRenderTarget::Make(GrVkGpu* gpu,
const GrSurfaceDesc& desc,
const GrVkImageInfo& info,
SkBudgeted budgeted,
- GrVkImage::Wrapped wrapped) {
+ GrBackendObjectOwnership ownership,
+ bool isWrapped) {
VkImage image = info.fImage;
// Create the texture ImageView
const GrVkImageView* imageView = GrVkImageView::Create(gpu, image, info.fFormat,
@@ -149,30 +152,30 @@ sk_sp<GrVkTextureRenderTarget> GrVkTextureRenderTarget::Make(GrVkGpu* gpu,
sk_sp<GrVkTextureRenderTarget> texRT;
if (desc.fSampleCnt) {
- if (GrVkImage::kNot_Wrapped == wrapped) {
+ if (!isWrapped) {
texRT = sk_sp<GrVkTextureRenderTarget>(new GrVkTextureRenderTarget(
gpu, budgeted, desc,
info, imageView, msInfo,
colorAttachmentView,
- resolveAttachmentView));
+ resolveAttachmentView, ownership));
} else {
texRT = sk_sp<GrVkTextureRenderTarget>(new GrVkTextureRenderTarget(
gpu, desc,
info, imageView, msInfo,
colorAttachmentView,
- resolveAttachmentView, wrapped));
+ resolveAttachmentView, ownership));
}
} else {
- if (GrVkImage::kNot_Wrapped == wrapped) {
+ if (!isWrapped) {
texRT = sk_sp<GrVkTextureRenderTarget>(new GrVkTextureRenderTarget(
gpu, budgeted, desc,
info, imageView,
- colorAttachmentView));
+ colorAttachmentView, ownership));
} else {
texRT = sk_sp<GrVkTextureRenderTarget>(new GrVkTextureRenderTarget(
gpu, desc,
info, imageView,
- colorAttachmentView, wrapped));
+ colorAttachmentView, ownership));
}
}
return texRT;
@@ -191,7 +194,8 @@ GrVkTextureRenderTarget::CreateNewTextureRenderTarget(GrVkGpu* gpu,
return nullptr;
}
- sk_sp<GrVkTextureRenderTarget> trt = Make(gpu, desc, info, budgeted, GrVkImage::kNot_Wrapped);
+ sk_sp<GrVkTextureRenderTarget> trt = Make(gpu, desc, info, budgeted,
+ GrBackendObjectOwnership::kOwned, false);
if (!trt) {
GrVkImage::DestroyImageInfo(gpu, &info);
}
@@ -202,16 +206,16 @@ GrVkTextureRenderTarget::CreateNewTextureRenderTarget(GrVkGpu* gpu,
sk_sp<GrVkTextureRenderTarget>
GrVkTextureRenderTarget::MakeWrappedTextureRenderTarget(GrVkGpu* gpu,
const GrSurfaceDesc& desc,
- GrWrapOwnership ownership,
+ GrWrapOwnership wrapOwnership,
const GrVkImageInfo* info) {
SkASSERT(info);
// Wrapped textures require both image and allocation (because they can be mapped)
SkASSERT(VK_NULL_HANDLE != info->fImage && VK_NULL_HANDLE != info->fAlloc.fMemory);
- GrVkImage::Wrapped wrapped = kBorrow_GrWrapOwnership == ownership ? GrVkImage::kBorrowed_Wrapped
- : GrVkImage::kAdopted_Wrapped;
+ GrBackendObjectOwnership ownership = kBorrow_GrWrapOwnership == wrapOwnership
+ ? GrBackendObjectOwnership::kBorrowed : GrBackendObjectOwnership::kOwned;
- return Make(gpu, desc, *info, SkBudgeted::kNo, wrapped);
+ return Make(gpu, desc, *info, SkBudgeted::kNo, ownership, true);
}
bool GrVkTextureRenderTarget::updateForMipmap(GrVkGpu* gpu, const GrVkImageInfo& newInfo) {