Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(213)

Unified Diff: include/gpu/GrSurface.h

Issue 1919993002: Added --deepColor option to SampleApp, triggers creation of a ten-bit/channel buffer on Windows. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Plumb gamma to shader, fix window title Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: include/gpu/GrSurface.h
diff --git a/include/gpu/GrSurface.h b/include/gpu/GrSurface.h
index b87b2dbaf04f7c8e94c323cc0c1272c24c47f516..e6c991d341ee6e5d1bfd2bdb4cd5dada1f1c725a 100644
--- a/include/gpu/GrSurface.h
+++ b/include/gpu/GrSurface.h
@@ -17,6 +17,7 @@
class GrRenderTarget;
class GrSurfacePriv;
class GrTexture;
+class SkColorSpace;
class SK_API GrSurface : public GrGpuResource {
public:
@@ -100,7 +101,7 @@ public:
* packed.
* @param pixelOpsFlags See the GrContext::PixelOpsFlags enum.
*
- * @return true if the read succeeded, false if not. The read can fail because of an
+ * @return true if the write succeeded, false if not. The write can fail because of an
* unsupported pixel config.
*/
bool writePixels(int left, int top, int width, int height,
@@ -110,6 +111,32 @@ public:
uint32_t pixelOpsFlags = 0);
/**
+ * Copy the src pixels [buffer, rowbytes, pixelconfig] into the surface at the specified
+ * rectangle, performing color space conversion. No other conversions are allowed.
+ * @param left left edge of the rectangle to write (inclusive)
+ * @param top top edge of the rectangle to write (inclusive)
+ * @param width width of rectangle to write in pixels.
+ * @param height height of rectangle to write in pixels.
+ * @param config the pixel config of the source buffer
+ * @param srcColorSpace color space of the source buffer
+ * @param dstColorSpace color space to convert to
+ * @param buffer memory to read the rectangle from.
+ * @param rowBytes number of bytes between consecutive rows. Zero means rows are tightly
+ * packed.
+ * @param colorSpaceOpsFlags See the GrContext::ColorSpaceOpsFlags enum.
+ *
+ * @return true if the write succeeded, false if not. The write can fail because of an
+ * unsupported pixel config.
+ */
+ bool writePixelsWithColorSpace(int left, int top, int width, int height,
+ GrPixelConfig config,
+ const SkColorSpace* srcColorSpace,
+ const SkColorSpace* dstColorSpace,
+ const void* buffer,
+ size_t rowBytes = 0,
+ uint32_t colorSpaceOpsFlags = 0);
+
+ /**
* After this returns any pending writes to the surface will be issued to the backend 3D API.
*/
void flushWrites();

Powered by Google App Engine
This is Rietveld 408576698