Index: src/gpu/vk/GrVkTexture.cpp |
diff --git a/src/gpu/vk/GrVkTexture.cpp b/src/gpu/vk/GrVkTexture.cpp |
index 24157be6f6d3b42e27a98cca257cef097f987d76..0e3bae9d90bf6d18f5f313adb9909cbc1c8c833b 100644 |
--- a/src/gpu/vk/GrVkTexture.cpp |
+++ b/src/gpu/vk/GrVkTexture.cpp |
@@ -1,124 +1,124 @@ |
-/* |
- * 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 "GrVkTexture.h" |
-#include "GrVkGpu.h" |
-#include "GrVkImageView.h" |
-#include "GrVkUtil.h" |
- |
-#define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X) |
- |
-// Because this class is virtually derived from GrSurface we must explicitly call its constructor. |
-GrVkTexture::GrVkTexture(GrVkGpu* gpu, |
- const GrSurfaceDesc& desc, |
- GrGpuResource::LifeCycle lifeCycle, |
- const GrVkImage::Resource* imageResource, |
- const GrVkImageView* view) |
- : GrSurface(gpu, lifeCycle, desc) |
- , GrVkImage(imageResource) |
- , INHERITED(gpu, lifeCycle, desc) |
- , fTextureView(view) { |
- this->registerWithCache(); |
-} |
- |
-// Because this class is virtually derived from GrSurface we must explicitly call its constructor. |
-GrVkTexture::GrVkTexture(GrVkGpu* gpu, |
- const GrSurfaceDesc& desc, |
- GrGpuResource::LifeCycle lifeCycle, |
- const GrVkImage::Resource* imageResource, |
- const GrVkImageView* view, |
- Derived) |
- : GrSurface(gpu, lifeCycle, desc) |
- , GrVkImage(imageResource) |
- , INHERITED(gpu, lifeCycle, desc) |
- , fTextureView(view) {} |
- |
- |
-GrVkTexture* GrVkTexture::Create(GrVkGpu* gpu, |
- const GrSurfaceDesc& desc, |
- GrGpuResource::LifeCycle lifeCycle, |
- VkFormat format, |
- const GrVkImage::Resource* imageResource) { |
- VkImage image = imageResource->fImage; |
- const GrVkImageView* imageView = GrVkImageView::Create(gpu, image, format, |
- GrVkImageView::kColor_Type); |
- if (!imageView) { |
- return nullptr; |
- } |
- |
- return new GrVkTexture(gpu, desc, lifeCycle, imageResource, imageView); |
-} |
- |
-GrVkTexture* GrVkTexture::CreateNewTexture(GrVkGpu* gpu, const GrSurfaceDesc& desc, |
- GrGpuResource::LifeCycle lifeCycle, |
- const GrVkImage::ImageDesc& imageDesc) { |
- SkASSERT(imageDesc.fUsageFlags & VK_IMAGE_USAGE_SAMPLED_BIT); |
- |
- const GrVkImage::Resource* imageResource = GrVkImage::CreateResource(gpu, imageDesc); |
- if (!imageResource) { |
- return nullptr; |
- } |
- |
- GrVkTexture* texture = Create(gpu, desc, lifeCycle, imageDesc.fFormat, imageResource); |
- // Create() will increment the refCount of the image resource if it succeeds |
- imageResource->unref(gpu); |
- |
- return texture; |
-} |
- |
-GrVkTexture* GrVkTexture::CreateWrappedTexture(GrVkGpu* gpu, const GrSurfaceDesc& desc, |
- GrGpuResource::LifeCycle lifeCycle, |
- VkFormat format, |
- const GrVkImage::Resource* imageResource) { |
- SkASSERT(imageResource); |
- |
- // 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 Create(gpu, desc, lifeCycle, format, imageResource); |
-} |
- |
-GrVkTexture::~GrVkTexture() { |
- // either release or abandon should have been called by the owner of this object. |
- SkASSERT(!fTextureView); |
-} |
- |
-void GrVkTexture::onRelease() { |
- // we create this and don't hand it off, so we should always destroy it |
- if (fTextureView) { |
- fTextureView->unref(this->getVkGpu()); |
- fTextureView = nullptr; |
- } |
- |
- if (this->shouldFreeResources()) { |
- this->releaseImage(this->getVkGpu()); |
- } else { |
- this->abandonImage(); |
- } |
- |
- INHERITED::onRelease(); |
-} |
- |
-void GrVkTexture::onAbandon() { |
- if (fTextureView) { |
- fTextureView->unrefAndAbandon(); |
- fTextureView = nullptr; |
- } |
- |
- this->abandonImage(); |
- INHERITED::onAbandon(); |
-} |
- |
-GrBackendObject GrVkTexture::getTextureHandle() const { |
- // Currently just passing back the pointer to the Resource as the handle |
- return (GrBackendObject)&fResource; |
-} |
- |
-GrVkGpu* GrVkTexture::getVkGpu() const { |
- SkASSERT(!this->wasDestroyed()); |
- return static_cast<GrVkGpu*>(this->getGpu()); |
-} |
- |
+/* |
+ * 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 "GrVkTexture.h" |
+#include "GrVkGpu.h" |
+#include "GrVkImageView.h" |
+#include "GrVkUtil.h" |
+ |
+#define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X) |
+ |
+// Because this class is virtually derived from GrSurface we must explicitly call its constructor. |
+GrVkTexture::GrVkTexture(GrVkGpu* gpu, |
+ const GrSurfaceDesc& desc, |
+ GrGpuResource::LifeCycle lifeCycle, |
+ const GrVkImage::Resource* imageResource, |
+ const GrVkImageView* view) |
+ : GrSurface(gpu, lifeCycle, desc) |
+ , GrVkImage(imageResource) |
+ , INHERITED(gpu, lifeCycle, desc, false) // false because we don't upload MIP data in Vk yet |
+ , fTextureView(view) { |
+ this->registerWithCache(); |
+} |
+ |
+// Because this class is virtually derived from GrSurface we must explicitly call its constructor. |
+GrVkTexture::GrVkTexture(GrVkGpu* gpu, |
+ const GrSurfaceDesc& desc, |
+ GrGpuResource::LifeCycle lifeCycle, |
+ const GrVkImage::Resource* imageResource, |
+ const GrVkImageView* view, |
+ Derived) |
+ : GrSurface(gpu, lifeCycle, desc) |
+ , GrVkImage(imageResource) |
+ , INHERITED(gpu, lifeCycle, desc, false) // false because we don't upload MIP data in Vk yet |
+ , fTextureView(view) {} |
+ |
+ |
+GrVkTexture* GrVkTexture::Create(GrVkGpu* gpu, |
+ const GrSurfaceDesc& desc, |
+ GrGpuResource::LifeCycle lifeCycle, |
+ VkFormat format, |
+ const GrVkImage::Resource* imageResource) { |
+ VkImage image = imageResource->fImage; |
+ const GrVkImageView* imageView = GrVkImageView::Create(gpu, image, format, |
+ GrVkImageView::kColor_Type); |
+ if (!imageView) { |
+ return nullptr; |
+ } |
+ |
+ return new GrVkTexture(gpu, desc, lifeCycle, imageResource, imageView); |
+} |
+ |
+GrVkTexture* GrVkTexture::CreateNewTexture(GrVkGpu* gpu, const GrSurfaceDesc& desc, |
+ GrGpuResource::LifeCycle lifeCycle, |
+ const GrVkImage::ImageDesc& imageDesc) { |
+ SkASSERT(imageDesc.fUsageFlags & VK_IMAGE_USAGE_SAMPLED_BIT); |
+ |
+ const GrVkImage::Resource* imageResource = GrVkImage::CreateResource(gpu, imageDesc); |
+ if (!imageResource) { |
+ return nullptr; |
+ } |
+ |
+ GrVkTexture* texture = Create(gpu, desc, lifeCycle, imageDesc.fFormat, imageResource); |
+ // Create() will increment the refCount of the image resource if it succeeds |
+ imageResource->unref(gpu); |
+ |
+ return texture; |
+} |
+ |
+GrVkTexture* GrVkTexture::CreateWrappedTexture(GrVkGpu* gpu, const GrSurfaceDesc& desc, |
+ GrGpuResource::LifeCycle lifeCycle, |
+ VkFormat format, |
+ const GrVkImage::Resource* imageResource) { |
+ SkASSERT(imageResource); |
+ |
+ // 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 Create(gpu, desc, lifeCycle, format, imageResource); |
+} |
+ |
+GrVkTexture::~GrVkTexture() { |
+ // either release or abandon should have been called by the owner of this object. |
+ SkASSERT(!fTextureView); |
+} |
+ |
+void GrVkTexture::onRelease() { |
+ // we create this and don't hand it off, so we should always destroy it |
+ if (fTextureView) { |
+ fTextureView->unref(this->getVkGpu()); |
+ fTextureView = nullptr; |
+ } |
+ |
+ if (this->shouldFreeResources()) { |
+ this->releaseImage(this->getVkGpu()); |
+ } else { |
+ this->abandonImage(); |
+ } |
+ |
+ INHERITED::onRelease(); |
+} |
+ |
+void GrVkTexture::onAbandon() { |
+ if (fTextureView) { |
+ fTextureView->unrefAndAbandon(); |
+ fTextureView = nullptr; |
+ } |
+ |
+ this->abandonImage(); |
+ INHERITED::onAbandon(); |
+} |
+ |
+GrBackendObject GrVkTexture::getTextureHandle() const { |
+ // Currently just passing back the pointer to the Resource as the handle |
+ return (GrBackendObject)&fResource; |
+} |
+ |
+GrVkGpu* GrVkTexture::getVkGpu() const { |
+ SkASSERT(!this->wasDestroyed()); |
+ return static_cast<GrVkGpu*>(this->getGpu()); |
+} |
+ |