diff options
Diffstat (limited to 'src/gpu/vk/GrVkTexture.h')
-rw-r--r-- | src/gpu/vk/GrVkTexture.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/gpu/vk/GrVkTexture.h b/src/gpu/vk/GrVkTexture.h new file mode 100644 index 0000000000..5e31c9da4b --- /dev/null +++ b/src/gpu/vk/GrVkTexture.h @@ -0,0 +1,61 @@ +/* + * Copyright 2015 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrVkTexture_DEFINED +#define GrVkTexture_DEFINED + +#include "GrGpu.h" +#include "GrTexture.h" +#include "GrVkImage.h" + +class GrVkGpu; +class GrVkImageView; + +class GrVkTexture : public GrTexture, public virtual GrVkImage { +public: + static GrVkTexture* CreateNewTexture(GrVkGpu*, const GrSurfaceDesc&, + GrGpuResource::LifeCycle, + const GrVkImage::ImageDesc&); + + + static GrVkTexture* CreateWrappedTexture(GrVkGpu*, const GrSurfaceDesc&, + GrGpuResource::LifeCycle, + VkFormat, const GrVkImage::Resource*); + + ~GrVkTexture() override; + + GrBackendObject getTextureHandle() const override; + + void textureParamsModified() override {} + + const GrVkImageView* textureView() const { return fTextureView; } + +protected: + enum Derived { kDerived }; + + GrVkTexture(GrVkGpu*, const GrSurfaceDesc&, GrGpuResource::LifeCycle, + const GrVkImage::Resource*, const GrVkImageView* imageView); + + GrVkTexture(GrVkGpu*, const GrSurfaceDesc&, GrGpuResource::LifeCycle, + const GrVkImage::Resource*, const GrVkImageView* imageView, Derived); + + static GrVkTexture* Create(GrVkGpu*, const GrSurfaceDesc&, + GrGpuResource::LifeCycle, VkFormat, + const GrVkImage::Resource* texImpl); + + GrVkGpu* getVkGpu() const; + + void onAbandon() override; + void onRelease() override; + +private: + const GrVkImageView* fTextureView; + + typedef GrTexture INHERITED; +}; + +#endif |