aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrBackendSurface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/GrBackendSurface.cpp')
-rw-r--r--src/gpu/GrBackendSurface.cpp120
1 files changed, 120 insertions, 0 deletions
diff --git a/src/gpu/GrBackendSurface.cpp b/src/gpu/GrBackendSurface.cpp
new file mode 100644
index 0000000000..9bf85cb7db
--- /dev/null
+++ b/src/gpu/GrBackendSurface.cpp
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2017 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "GrBackendSurface.h"
+
+#ifdef SK_VULKAN
+#include "vk/GrVkTypes.h"
+#include "vk/GrVkUtil.h"
+GrBackendTexture::GrBackendTexture(int width,
+ int height,
+ GrVkImageInfo* vkInfo)
+ : fWidth(width)
+ , fHeight(height)
+ , fConfig(GrVkFormatToPixelConfig(vkInfo->fFormat))
+ , fBackend(kVulkan_GrBackend)
+ , fVkInfo(vkInfo) {}
+#endif // SK_VULKAN
+
+GrBackendTexture::GrBackendTexture(int width,
+ int height,
+ GrPixelConfig config,
+ GrGLTextureInfo* glInfo)
+ : fWidth(width)
+ , fHeight(height)
+ , fConfig(config)
+ , fBackend(kOpenGL_GrBackend)
+ , fGLInfo(glInfo) {}
+
+GrBackendTexture::GrBackendTexture(const GrBackendTextureDesc& desc, GrBackend backend)
+ : fWidth(desc.fWidth)
+ , fHeight(desc.fHeight)
+ , fConfig(kVulkan_GrBackend == backend
+#ifdef SK_VULKAN
+ ? GrVkFormatToPixelConfig(((GrVkImageInfo*)desc.fTextureHandle)->fFormat)
+#else
+ ? kUnknown_GrPixelConfig
+#endif
+ : desc.fConfig)
+ , fBackend(backend)
+ , fHandle(desc.fTextureHandle) {}
+
+GrVkImageInfo* GrBackendTexture::getVkImageInfo() {
+ if (kVulkan_GrBackend == fBackend) {
+ return fVkInfo;
+ }
+ return nullptr;
+}
+
+GrGLTextureInfo* GrBackendTexture::getGLTextureInfo() {
+ if (kOpenGL_GrBackend == fBackend) {
+ return fGLInfo;
+ }
+ return nullptr;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#ifdef SK_VULKAN
+GrBackendRenderTarget::GrBackendRenderTarget(int width,
+ int height,
+ int sampleCnt,
+ int stencilBits,
+ GrVkImageInfo* vkInfo)
+ : fWidth(width)
+ , fHeight(height)
+ , fSampleCnt(sampleCnt)
+ , fStencilBits(stencilBits)
+ , fConfig(GrVkFormatToPixelConfig(vkInfo->fFormat))
+ , fBackend(kVulkan_GrBackend)
+ , fVkInfo(vkInfo) {}
+#endif // SK_VULKAN
+
+GrBackendRenderTarget::GrBackendRenderTarget(int width,
+ int height,
+ int sampleCnt,
+ int stencilBits,
+ GrPixelConfig config,
+ GrGLTextureInfo* glInfo)
+ : fWidth(width)
+ , fHeight(height)
+ , fSampleCnt(sampleCnt)
+ , fStencilBits(stencilBits)
+ , fConfig(config)
+ , fBackend(kOpenGL_GrBackend)
+ , fGLInfo(glInfo) {}
+
+GrBackendRenderTarget::GrBackendRenderTarget(const GrBackendRenderTargetDesc& desc,
+ GrBackend backend)
+ : fWidth(desc.fWidth)
+ , fHeight(desc.fHeight)
+ , fSampleCnt(desc.fSampleCnt)
+ , fStencilBits(desc.fStencilBits)
+ , fConfig(kVulkan_GrBackend == backend
+#ifdef SK_VULKAN
+ ? GrVkFormatToPixelConfig(((GrVkImageInfo*)desc.fRenderTargetHandle)->fFormat)
+#else
+ ? kUnknown_GrPixelConfig
+#endif
+ : desc.fConfig)
+ , fBackend(backend)
+ , fHandle(desc.fRenderTargetHandle) {}
+
+GrVkImageInfo* GrBackendRenderTarget::getVkImageInfo() {
+ if (kVulkan_GrBackend == fBackend) {
+ return fVkInfo;
+ }
+ return nullptr;
+}
+
+GrGLTextureInfo* GrBackendRenderTarget::getGLTextureInfo() {
+ if (kOpenGL_GrBackend == fBackend) {
+ return fGLInfo;
+ }
+ return nullptr;
+}
+