skia2/include/core
ericrk f7b8b8affe Add wrapBackendTextureAsRenderTarget API
Skia's GrTextureProvider currently exposes two APIs for wrapping backend
objects:
 * wrapBackendTexture - wraps a texture into a GrTexture. Depending on
   flags, this GrTexture can be converted to a GrRenderTarget. Skia
   manages the render target objects it may create to provide a render
   target for the texture. This allows Skia to create stencil buffers
   if needed and manager MSAA resolves.
 * wrapBackendRenderTarget - wraps a FBO into a GrRenderTarget. This
   object cannot be converted to a GrTexture. Skia does not manage
   the render target objects for such a GrRenderTarget, and as such
   cannot attach stencil buffers or perform MSAA resolves on the
   created GrRenderTarget.

Given these two options, wrapBackendTexture provides more versatility
and allows Skia more room for optimization. Chrome currently uses
wrapBackendTexture for this reason.

While these two functions cover most cases, they do not provide a way
for Skia to wrap a texture into a render target (and gain the MSAA and
stencil buffer management), without also creating a GrTexture. This is
problematic in cases where a texture can be bound to a render target,
but cannot be textured from, as is the case in Chrome's limited support
for GL_TEXTURE_RECTANGLE.

To address this, a new function is created:
 * wrapBackendTextureAsRenderTarget - wraps a texture into a
   GrRenderTarget. As with wrapBackendTexture, the created render
   target objects are fully managed by Skia. Unlike wrapBackendTexture
   no GrTexture is created, and the created object will never be
   textured from.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1709163003

Review URL: https://codereview.chromium.org/1709163003
2016-02-24 14:49:52 -08:00
..
SkAnnotation.h Style Change: SkNEW->new; SkDELETE->delete 2015-08-26 13:07:49 -07:00
SkBBHFactory.h Add non-inline SkRTreeFactory constructor to fix clang-cl 2016-02-06 12:40:56 -08:00
SkBitmap.h SkBitmap move 2015-12-14 10:19:17 -08:00
SkBitmapDevice.h IWYU: 'core' target, files starting A-C. 2015-08-05 13:57:49 -07:00
SkBlitRow.h Port SkBlitRow::Color32 to SkOpts. 2015-09-10 10:38:02 -07:00
SkBlurTypes.h move common blur types into central header 2014-04-28 16:25:35 +00:00
SkCanvas.h Remove deferred clear from SkGpuDevice 2016-02-05 07:17:34 -08:00
SkChunkAlloc.h Add rewind capability to SkChunkAlloc 2015-02-27 08:31:57 -08:00
SkClipStack.h Move SkTDArray to private. 2016-02-18 08:53:33 -08:00
SkColor.h make SkPM4f private 2016-02-18 12:39:14 -08:00
SkColorFilter.h remove supports4f flag for colorfilters 2016-02-19 13:38:53 -08:00
SkColorPriv.h Change SkUnitScalarClampToByte to more accurate implementation. 2016-02-24 10:07:52 -08:00
SkColorTable.h use allocator (if present) when we allocate our cache bitmap 2015-09-17 13:35:19 -07:00
SkData.h Eliminate SkFILE: it always is the same as FILE. 2015-11-20 13:47:49 -08:00
SkDataTable.h Move SkTDArray to private. 2016-02-18 08:53:33 -08:00
SkDeque.h This CL addresses "SkCanvas::save flags are not respected by GPU backend" (https://code.google.com/p/skia/issues/detail?id=1503). 2013-08-16 00:53:34 +00:00
SkDevice.h try adding flag to allow lcd text even in a layer 2015-12-10 13:44:45 -08:00
SkDocument.h SkDocument: remove use of SkTArray (part 3/3). 2016-02-12 07:26:46 -08:00
SkDraw.h Only use fake gamma with linear devices. 2016-02-22 13:20:29 -08:00
SkDrawable.h add matrix options to drawDrawable 2015-07-07 10:22:31 -07:00
SkDrawFilter.h SkPaintFilterCanvas cleanup 2016-01-12 12:14:10 -08:00
SkDrawLooper.h remove SkInstCnt 2015-06-26 11:45:03 -07:00
SkError.h Sanitizing source files in Housekeeper-Nightly 2013-09-05 07:01:19 +00:00
SkFilterQuality.h add newImage API 2015-01-23 05:58:07 -08:00
SkFixed.h Revert of Simple cleanups related to SkFixed. (patchset #4 id:120001 of https://codereview.chromium.org/1683743005/ ) 2016-02-24 08:29:11 -08:00
SkFlattenable.h reorg global initialization, separating core from optional 2016-01-13 08:47:54 -08:00
SkFlattenableSerialization.h Removed unnecessary define 2013-11-08 15:24:12 +00:00
SkFont.h Treat embedded bitmaps as a hinting method. 2014-08-19 13:18:58 -07:00
SkFontHost.h Remove a layer of indirection and code from SkFontHost. 2014-09-10 15:49:48 -07:00
SkFontLCDConfig.h Sanitizing source files in Skia_Periodic_House_Keeping 2013-03-13 07:01:04 +00:00
SkFontStyle.h Replace SkTypeface::Style with SkFontStyle. 2014-10-20 13:33:19 -07:00
SkGraphics.h add SkGraphics::PurageAllCaches 2016-02-22 06:19:54 -08:00
SkImage.h Make SkImage::readYUV8Planes const 2016-02-03 17:09:00 -05:00
SkImageDecoder.h Remove staging for SkImageDecoder::Peeker 2015-12-08 18:48:38 -08:00
SkImageEncoder.h default SkPixelSerializer 2015-12-10 12:40:23 -08:00
SkImageFilter.h Update SkImageFilter's cache to handle SkSpecialImages and add unit test 2016-02-19 08:19:40 -08:00
SkImageGenerator.h take gr-context parameter to refEncoded, indicating a desire for only gpu-specific formats 2016-01-05 09:16:19 -08:00
SkImageInfo.h add kRGBA_F16_SkColorType 2016-02-05 11:18:39 -08:00
SkMallocPixelRef.h For non-opaque SkBitmapDevices, replace malloc-then-zero with calloc. 2015-11-05 09:46:23 -08:00
SkMask.h Add default ctor to SkMask 2015-12-17 11:33:12 -08:00
SkMaskFilter.h Add default ctor to SkMask 2015-12-17 11:33:12 -08:00
SkMath.h The compiler can generate smulbb perfectly well nowadays. 2015-08-07 08:48:12 -07:00
SkMatrix.h Change SkMatrix::fixedStepInX to return SkVector (of SkScalar) rather than SkFixed. 2016-02-16 10:09:40 -08:00
SkMetaData.h "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
SkMultiPictureDraw.h Move SkTDArray to private. 2016-02-18 08:53:33 -08:00
SkOSFile.h add fsync to try to get complete skps from webpage picture capture 2015-12-16 13:41:23 -08:00
SkPaint.h Simplify and combine SkDrawCacheProc and SkMeasureCacheProc to SkPaint::GlyphCacheProc. 2016-02-23 10:44:32 -08:00
SkPath.h allow move/zero-line/close to draw caps 2016-02-22 12:44:54 -08:00
SkPathEffect.h fix misc asserts and checks found by fuzzer 2016-02-22 12:50:26 -08:00
SkPathMeasure.h Move SkTDArray to private. 2016-02-18 08:53:33 -08:00
SkPathRef.h Move SkTDArray to private. 2016-02-18 08:53:33 -08:00
SkPicture.h Make SkPicture/SkImageGenerator default to SkCodec 2016-02-17 10:02:29 -08:00
SkPictureRecorder.h Respect SkPictureRecorder::kPlaybackDrawPicture_RecordFlag for SkDrawables 2015-11-17 06:18:31 -08:00
SkPixelRef.h Move SkTDArray to private. 2016-02-18 08:53:33 -08:00
SkPixelSerializer.h SkPixelSerializer: remove deprecated virtual 2015-12-10 09:30:57 -08:00
SkPixmap.h add kRGBA_F16_SkColorType 2016-02-05 11:18:39 -08:00
SkPngChunkReader.h Add SkPngChunkReader. 2015-11-23 08:14:40 -08:00
SkPoint3.h Update SkLightingShader to support rotation 2015-08-20 05:15:07 -07:00
SkPoint.h Revert of Revert of stop calling SkScalarDiv (patchset #1 id:1 of https://codereview.chromium.org/1138263002/) 2015-05-12 10:37:34 -07:00
SkPostConfig.h Add Histogram Macros to Skia 2016-02-05 15:32:36 -08:00
SkPreConfig.h check for both __ARM_NEON__ and __ARM_NEON 2016-01-26 07:34:51 -08:00
SkRasterizer.h remove SkInstCnt 2015-06-26 11:45:03 -07:00
SkRect.h Revert of Simple cleanups related to SkFixed. (patchset #4 id:120001 of https://codereview.chromium.org/1683743005/ ) 2016-02-24 08:29:11 -08:00
SkRefCnt.h Revert of skstd -> std for unique_ptr (patchset #24 id:460001 of https://codereview.chromium.org/1436033003/ ) 2016-01-24 19:49:24 -08:00
SkRegion.h Remove useless SkASSERT in SkRect.h and SkRegion.h 2015-04-28 12:47:48 -07:00
SkRRect.h make transformed rrect radii fit rectangle 2016-02-23 10:32:40 -08:00
SkRSXform.h add helper to create RSXform w/ anchorPt 2015-07-30 05:46:05 -07:00
SkScalar.h Remove SkLerpXfermode 2016-01-25 14:19:56 -08:00
SkShader.h Retire SkShader::kSupports4f_Flag 2016-02-23 19:02:20 -08:00
SkSize.h deprecate SkScalarRound (and its ilk), use SkScalarRound[ToInt,ToScalar]. #define SK_SUPPORT_DEPRECATED_SCALARROUND for legacy clients 2013-12-17 19:22:07 +00:00
SkStream.h add fsync to try to get complete skps from webpage picture capture 2015-12-16 13:41:23 -08:00
SkString.h Move SkTArray to include/private. 2016-02-17 13:13:44 -08:00
SkStrokeRec.h resolution dependent path measure 2016-01-21 07:07:02 -08:00
SkSurface.h Add wrapBackendTextureAsRenderTarget API 2016-02-24 14:49:52 -08:00
SkSurfaceProps.h Rename flag from "distance field" to "device independent." 2015-08-31 12:39:41 -07:00
SkTextBlob.h Move SkTArray to include/private. 2016-02-17 13:13:44 -08:00
SkTime.h SkTime: Stop using POSIX entensions to time.h for timezone 2016-01-12 11:55:29 -08:00
SkTLazy.h SkTCopyOnFirstWrite-based SkPaintFilterCanvas API 2016-01-12 07:21:11 -08:00
SkTraceMemoryDump.h Add support for light dumps in SkTraceMemoryDump interface. 2015-09-30 04:31:23 -07:00
SkTRegistry.h Rewrite SkTRegistry to take any trivially-copyable type. 2013-09-04 17:20:18 +00:00
SkTypeface.h Port uses of SkLazyPtr to SkOncePtr. 2015-09-09 09:09:53 -07:00
SkTypes.h Move Google3-specific stack limitation logic to template classes. 2016-02-05 07:02:38 -08:00
SkUnPreMultiply.h Factor out UnPreMultiplyPreservingByteOrder 2014-01-15 22:24:58 +00:00
SkWriteBuffer.h change old picture serialization to really handle images 2015-06-22 12:48:26 -07:00
SkWriter32.h yet another memcpy -> sk_careful_memcpy 2015-12-10 14:34:23 -08:00
SkXfermode.h simplify/unify xferproc api 2016-02-24 06:21:36 -08:00