faa095e984
Bug: skia: Change-Id: Ib1b03b1181ec937843eac2e8d8cb03ebe53e32c1 Reviewed-on: https://skia-review.googlesource.com/86760 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
159 lines
5.3 KiB
C++
159 lines
5.3 KiB
C++
/*
|
|
* 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"
|
|
|
|
#include "gl/GrGLUtil.h"
|
|
|
|
#ifdef SK_VULKAN
|
|
#include "vk/GrVkTypes.h"
|
|
#include "vk/GrVkUtil.h"
|
|
#endif
|
|
|
|
#ifdef SK_VULKAN
|
|
GrBackendTexture::GrBackendTexture(int width,
|
|
int height,
|
|
const GrVkImageInfo& vkInfo)
|
|
: fWidth(width)
|
|
, fHeight(height)
|
|
, fConfig(GrVkFormatToPixelConfig(vkInfo.fFormat))
|
|
, fMipMapped(GrMipMapped(vkInfo.fLevelCount > 1))
|
|
, fBackend(kVulkan_GrBackend)
|
|
, fVkInfo(vkInfo) {}
|
|
#endif
|
|
|
|
GrBackendTexture::GrBackendTexture(int width,
|
|
int height,
|
|
GrPixelConfig config,
|
|
const GrGLTextureInfo& glInfo)
|
|
: GrBackendTexture(width, height, config, GrMipMapped::kNo, glInfo) {}
|
|
|
|
GrBackendTexture::GrBackendTexture(int width,
|
|
int height,
|
|
GrPixelConfig config,
|
|
GrMipMapped mipMapped,
|
|
const GrGLTextureInfo& glInfo)
|
|
: fWidth(width)
|
|
, fHeight(height)
|
|
, fConfig(config)
|
|
, fMipMapped(mipMapped)
|
|
, fBackend(kOpenGL_GrBackend)
|
|
, fGLInfo(glInfo) {}
|
|
|
|
GrBackendTexture::GrBackendTexture(int width,
|
|
int height,
|
|
GrMipMapped mipMapped,
|
|
const GrGLTextureInfo& glInfo)
|
|
: fWidth(width)
|
|
, fHeight(height)
|
|
, fConfig(GrGLSizedFormatToPixelConfig(glInfo.fFormat))
|
|
, fMipMapped(mipMapped)
|
|
, fBackend(kOpenGL_GrBackend)
|
|
, fGLInfo(glInfo) {}
|
|
|
|
GrBackendTexture::GrBackendTexture(int width,
|
|
int height,
|
|
GrPixelConfig config,
|
|
const GrMockTextureInfo& mockInfo)
|
|
: GrBackendTexture(width, height, config, GrMipMapped::kNo, mockInfo) {}
|
|
|
|
GrBackendTexture::GrBackendTexture(int width,
|
|
int height,
|
|
GrPixelConfig config,
|
|
GrMipMapped mipMapped,
|
|
const GrMockTextureInfo& mockInfo)
|
|
: fWidth(width)
|
|
, fHeight(height)
|
|
, fConfig(config)
|
|
, fMipMapped(mipMapped)
|
|
, fBackend(kMock_GrBackend)
|
|
, fMockInfo(mockInfo) {}
|
|
|
|
#ifdef SK_VULKAN
|
|
const GrVkImageInfo* GrBackendTexture::getVkImageInfo() const {
|
|
if (this->isValid() && kVulkan_GrBackend == fBackend) {
|
|
return &fVkInfo;
|
|
}
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
|
|
const GrGLTextureInfo* GrBackendTexture::getGLTextureInfo() const {
|
|
if (this->isValid() && kOpenGL_GrBackend == fBackend) {
|
|
return &fGLInfo;
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
const GrMockTextureInfo* GrBackendTexture::getMockTextureInfo() const {
|
|
if (this->isValid() && kMock_GrBackend == fBackend) {
|
|
return &fMockInfo;
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifdef SK_VULKAN
|
|
GrBackendRenderTarget::GrBackendRenderTarget(int width,
|
|
int height,
|
|
int sampleCnt,
|
|
int stencilBits,
|
|
const GrVkImageInfo& vkInfo)
|
|
: fWidth(width)
|
|
, fHeight(height)
|
|
, fSampleCnt(sampleCnt)
|
|
, fStencilBits(stencilBits)
|
|
, fConfig(GrVkFormatToPixelConfig(vkInfo.fFormat))
|
|
, fBackend(kVulkan_GrBackend)
|
|
, fVkInfo(vkInfo) {}
|
|
#endif
|
|
|
|
GrBackendRenderTarget::GrBackendRenderTarget(int width,
|
|
int height,
|
|
int sampleCnt,
|
|
int stencilBits,
|
|
GrPixelConfig config,
|
|
const GrGLFramebufferInfo& glInfo)
|
|
: fWidth(width)
|
|
, fHeight(height)
|
|
, fSampleCnt(sampleCnt)
|
|
, fStencilBits(stencilBits)
|
|
, fConfig(config)
|
|
, fBackend(kOpenGL_GrBackend)
|
|
, fGLInfo(glInfo) {}
|
|
|
|
GrBackendRenderTarget::GrBackendRenderTarget(int width,
|
|
int height,
|
|
int sampleCnt,
|
|
int stencilBits,
|
|
const GrGLFramebufferInfo& glInfo)
|
|
: fWidth(width)
|
|
, fHeight(height)
|
|
, fSampleCnt(sampleCnt)
|
|
, fStencilBits(stencilBits)
|
|
, fConfig(GrGLSizedFormatToPixelConfig(glInfo.fFormat))
|
|
, fBackend(kOpenGL_GrBackend)
|
|
, fGLInfo(glInfo) {}
|
|
|
|
#ifdef SK_VULKAN
|
|
const GrVkImageInfo* GrBackendRenderTarget::getVkImageInfo() const {
|
|
if (kVulkan_GrBackend == fBackend) {
|
|
return &fVkInfo;
|
|
}
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
|
|
const GrGLFramebufferInfo* GrBackendRenderTarget::getGLFramebufferInfo() const {
|
|
if (kOpenGL_GrBackend == fBackend) {
|
|
return &fGLInfo;
|
|
}
|
|
return nullptr;
|
|
}
|
|
|