Remove SkSurface::MakeFromBackendTexture variant that doesn't take SkColorType
Bug: skia:6718 Change-Id: I8289c54ca9a5f89d10dc0b0dfe750d4fd1da0b64 Reviewed-on: https://skia-review.googlesource.com/115102 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
This commit is contained in:
parent
371e29c69e
commit
53706774a7
@ -1869,7 +1869,7 @@ Error GPUSink::onDraw(const Src& src, SkBitmap* dst, SkWStream*, SkString* log,
|
||||
nullptr, info.width(), info.height(), info.colorType(), true, GrMipMapped::kNo);
|
||||
surface = SkSurface::MakeFromBackendTexture(context, backendTexture,
|
||||
kTopLeft_GrSurfaceOrigin, fSampleCount,
|
||||
info.refColorSpace(), &props);
|
||||
fColorType, info.refColorSpace(), &props);
|
||||
break;
|
||||
case SkCommandLineConfigGpu::SurfType::kBackendRenderTarget:
|
||||
if (1 == fSampleCount) {
|
||||
|
@ -346,63 +346,6 @@ void draw(SkCanvas* ) {
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
#Method static sk_sp<SkSurface> MakeFromBackendTexture(GrContext* context,
|
||||
const GrBackendTexture& backendTexture,
|
||||
GrSurfaceOrigin origin, int sampleCnt,
|
||||
sk_sp<SkColorSpace> colorSpace,
|
||||
const SkSurfaceProps* surfaceProps)
|
||||
#In Constructor
|
||||
#Line # creates Surface from GPU-backed texture ##
|
||||
|
||||
Wraps a GPU-backed texture into Surface. Caller must ensure the texture is
|
||||
valid for the lifetime of returned Surface. If sampleCnt greater than zero,
|
||||
creates an intermediate MSAA Surface which is used for drawing backendTexture.
|
||||
|
||||
Surface is returned if all parameters are valid. backendTexture is valid if
|
||||
its pixel configuration agrees with colorSpace and context; for instance, if
|
||||
backendTexture has an sRGB configuration, then context must support sRGB,
|
||||
and colorSpace must be present. Further, backendTexture width and height must
|
||||
not exceed context capabilities, and the context must be able to support
|
||||
back-end textures.
|
||||
|
||||
If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
|
||||
|
||||
#Param context GPU_Context ##
|
||||
#Param backendTexture texture residing on GPU ##
|
||||
#Param origin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
|
||||
#Param sampleCnt samples per pixel, or 0 to disable full scene anti-aliasing ##
|
||||
#Param colorSpace range of colors ##
|
||||
#Param surfaceProps LCD striping orientation and setting for device independent
|
||||
fonts; may be nullptr
|
||||
##
|
||||
|
||||
#Return Surface if all parameters are valid; otherwise, nullptr ##
|
||||
|
||||
#Example
|
||||
#ToDo remove !fiddle below once backEndTextureRenderTarget is available ##
|
||||
#Platform !fiddle gpu cpu
|
||||
SkPaint paint;
|
||||
paint.setTextSize(32);
|
||||
GrContext* context = canvas->getGrContext();
|
||||
if (!context) {
|
||||
canvas->drawString("GPU only!", 20, 40, paint);
|
||||
return;
|
||||
}
|
||||
sk_sp<SkSurface> gpuSurface = SkSurface::MakeFromBackendTexture(context,
|
||||
backEndTextureRenderTarget, kTopLeft_GrSurfaceOrigin, 0, nullptr, nullptr);
|
||||
auto surfaceCanvas = gpuSurface->getCanvas();
|
||||
surfaceCanvas->clear(SK_ColorWHITE);
|
||||
surfaceCanvas->drawString("GPU rocks!", 20, 40, paint);
|
||||
sk_sp<SkImage> image(gpuSurface->makeImageSnapshot());
|
||||
canvas->drawImage(image, 0, 0);
|
||||
##
|
||||
|
||||
#SeeAlso GrBackendTexture MakeFromBackendRenderTarget MakeRenderTarget
|
||||
|
||||
#Method ##
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
#Method static sk_sp<SkSurface> MakeFromBackendTexture(GrContext* context,
|
||||
const GrBackendTexture& backendTexture,
|
||||
GrSurfaceOrigin origin, int sampleCnt,
|
||||
|
@ -156,34 +156,6 @@ public:
|
||||
return MakeRaster(SkImageInfo::MakeN32Premul(width, height), surfaceProps);
|
||||
}
|
||||
|
||||
/** Wraps a GPU-backed texture into SkSurface. Caller must ensure the texture is
|
||||
valid for the lifetime of returned SkSurface. If sampleCnt greater than zero,
|
||||
creates an intermediate MSAA SkSurface which is used for drawing backendTexture.
|
||||
|
||||
SkSurface is returned if all parameters are valid. backendTexture is valid if
|
||||
its pixel configuration agrees with colorSpace and context; for instance, if
|
||||
backendTexture has an sRGB configuration, then context must support sRGB,
|
||||
and colorSpace must be present. Further, backendTexture width and height must
|
||||
not exceed context capabilities, and the context must be able to support
|
||||
back-end textures.
|
||||
|
||||
If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
|
||||
|
||||
@param context GPU context
|
||||
@param backendTexture texture residing on GPU
|
||||
@param origin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin
|
||||
@param sampleCnt samples per pixel, or 0 to disable full scene anti-aliasing
|
||||
@param colorSpace range of colors
|
||||
@param surfaceProps LCD striping orientation and setting for device independent
|
||||
fonts; may be nullptr
|
||||
@return SkSurface if all parameters are valid; otherwise, nullptr
|
||||
*/
|
||||
static sk_sp<SkSurface> MakeFromBackendTexture(GrContext* context,
|
||||
const GrBackendTexture& backendTexture,
|
||||
GrSurfaceOrigin origin, int sampleCnt,
|
||||
sk_sp<SkColorSpace> colorSpace,
|
||||
const SkSurfaceProps* surfaceProps);
|
||||
|
||||
/** Wraps a GPU-backed texture into SkSurface. Caller must ensure the texture is
|
||||
valid for the lifetime of returned SkSurface. If sampleCnt greater than zero,
|
||||
creates an intermediate MSAA SkSurface which is used for drawing backendTexture.
|
||||
|
@ -277,12 +277,6 @@ sk_sp<SkSurface> SkSurface::MakeRenderTarget(GrContext*, SkBudgeted, const SkIma
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
sk_sp<SkSurface> SkSurface::MakeFromBackendTexture(GrContext*, const GrBackendTexture&,
|
||||
GrSurfaceOrigin origin, int sampleCnt,
|
||||
sk_sp<SkColorSpace>, const SkSurfaceProps*) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
sk_sp<SkSurface> SkSurface::MakeFromBackendTexture(GrContext*, const GrBackendTexture&,
|
||||
GrSurfaceOrigin origin, int sampleCnt,
|
||||
SkColorType, sk_sp<SkColorSpace>,
|
||||
|
@ -312,37 +312,6 @@ sk_sp<SkSurface> SkSurface_Gpu::MakeWrappedRenderTarget(GrContext* context,
|
||||
return sk_make_sp<SkSurface_Gpu>(std::move(device));
|
||||
}
|
||||
|
||||
|
||||
sk_sp<SkSurface> SkSurface::MakeFromBackendTexture(GrContext* context, const GrBackendTexture& tex,
|
||||
GrSurfaceOrigin origin, int sampleCnt,
|
||||
sk_sp<SkColorSpace> colorSpace,
|
||||
const SkSurfaceProps* props) {
|
||||
if (!context) {
|
||||
return nullptr;
|
||||
}
|
||||
if (!SkSurface_Gpu::Valid(context, tex.config(), colorSpace.get())) {
|
||||
return nullptr;
|
||||
}
|
||||
sampleCnt = SkTMax(1, sampleCnt);
|
||||
|
||||
sk_sp<GrRenderTargetContext> rtc(context->contextPriv().makeBackendTextureRenderTargetContext(
|
||||
tex,
|
||||
origin,
|
||||
sampleCnt,
|
||||
std::move(colorSpace),
|
||||
props));
|
||||
if (!rtc) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
sk_sp<SkGpuDevice> device(SkGpuDevice::Make(context, std::move(rtc), tex.width(), tex.height(),
|
||||
SkGpuDevice::kUninit_InitContents));
|
||||
if (!device) {
|
||||
return nullptr;
|
||||
}
|
||||
return sk_make_sp<SkSurface_Gpu>(std::move(device));
|
||||
}
|
||||
|
||||
bool validate_backend_texture(GrContext* ctx, const GrBackendTexture& tex, GrPixelConfig* config,
|
||||
int sampleCnt, SkColorType ct, sk_sp<SkColorSpace> cs,
|
||||
bool texturable) {
|
||||
@ -385,7 +354,31 @@ sk_sp<SkSurface> SkSurface::MakeFromBackendTexture(GrContext* context, const GrB
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return MakeFromBackendTexture(context, texCopy, origin, sampleCnt, colorSpace, props);
|
||||
if (!context) {
|
||||
return nullptr;
|
||||
}
|
||||
if (!SkSurface_Gpu::Valid(context, texCopy.config(), colorSpace.get())) {
|
||||
return nullptr;
|
||||
}
|
||||
sampleCnt = SkTMax(1, sampleCnt);
|
||||
|
||||
sk_sp<GrRenderTargetContext> rtc(context->contextPriv().makeBackendTextureRenderTargetContext(
|
||||
texCopy,
|
||||
origin,
|
||||
sampleCnt,
|
||||
std::move(colorSpace),
|
||||
props));
|
||||
if (!rtc) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
sk_sp<SkGpuDevice> device(SkGpuDevice::Make(context, std::move(rtc), texCopy.width(),
|
||||
texCopy.height(),
|
||||
SkGpuDevice::kUninit_InitContents));
|
||||
if (!device) {
|
||||
return nullptr;
|
||||
}
|
||||
return sk_make_sp<SkSurface_Gpu>(std::move(device));
|
||||
}
|
||||
|
||||
sk_sp<SkSurface> SkSurface::MakeFromBackendRenderTarget(GrContext* context,
|
||||
|
Loading…
Reference in New Issue
Block a user