aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk/GrVkTexture.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/vk/GrVkTexture.h')
-rw-r--r--src/gpu/vk/GrVkTexture.h61
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