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

Side by Side Diff: include/core/SkSurface.h

Issue 2164363002: Add SkColorSpace to GrDrawContext (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Remove ':' from comment Created 4 years, 5 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 unified diff | Download patch
« no previous file with comments | « example/HelloWorld.h ('k') | include/gpu/GrContext.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkSurface_DEFINED 8 #ifndef SkSurface_DEFINED
9 #define SkSurface_DEFINED 9 #define SkSurface_DEFINED
10 10
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 * pixels in SkPMColor format. 75 * pixels in SkPMColor format.
76 */ 76 */
77 static sk_sp<SkSurface> MakeRasterN32Premul(int width, int height, 77 static sk_sp<SkSurface> MakeRasterN32Premul(int width, int height,
78 const SkSurfaceProps* props = nu llptr) { 78 const SkSurfaceProps* props = nu llptr) {
79 return MakeRaster(SkImageInfo::MakeN32Premul(width, height), props); 79 return MakeRaster(SkImageInfo::MakeN32Premul(width, height), props);
80 } 80 }
81 81
82 /** 82 /**
83 * Return a new surface using the specified render target. 83 * Return a new surface using the specified render target.
84 */ 84 */
85 static sk_sp<SkSurface> MakeRenderTargetDirect(GrRenderTarget*, 85 static sk_sp<SkSurface> MakeRenderTargetDirect(GrRenderTarget*, sk_sp<SkColo rSpace> colorSpace,
86 const SkSurfaceProps* = nullp tr); 86 const SkSurfaceProps* = nullp tr);
87 87
88 /** 88 /**
89 * Used to wrap a pre-existing backend 3D API texture as a SkSurface. The k RenderTarget flag 89 * Used to wrap a pre-existing backend 3D API texture as a SkSurface. The k RenderTarget flag
90 * must be set on GrBackendTextureDesc for this to succeed. Skia will not a ssume ownership 90 * must be set on GrBackendTextureDesc for this to succeed. Skia will not a ssume ownership
91 * of the texture and the client must ensure the texture is valid for the l ifetime of the 91 * of the texture and the client must ensure the texture is valid for the l ifetime of the
92 * SkSurface. 92 * SkSurface.
93 */ 93 */
94 static sk_sp<SkSurface> MakeFromBackendTexture(GrContext*, const GrBackendTe xtureDesc&, 94 static sk_sp<SkSurface> MakeFromBackendTexture(GrContext*, const GrBackendTe xtureDesc&,
95 const SkSurfaceProps*); 95 sk_sp<SkColorSpace>, const Sk SurfaceProps*);
96 96
97 /** 97 /**
98 * Used to wrap a pre-existing 3D API rendering target as a SkSurface. Skia will not assume 98 * Used to wrap a pre-existing 3D API rendering target as a SkSurface. Skia will not assume
99 * ownership of the render target and the client must ensure the render tar get is valid for the 99 * ownership of the render target and the client must ensure the render tar get is valid for the
100 * lifetime of the SkSurface. 100 * lifetime of the SkSurface.
101 */ 101 */
102 static sk_sp<SkSurface> MakeFromBackendRenderTarget(GrContext*, 102 static sk_sp<SkSurface> MakeFromBackendRenderTarget(GrContext*,
103 const GrBackendRenderTar getDesc&, 103 const GrBackendRenderTar getDesc&,
104 sk_sp<SkColorSpace>,
104 const SkSurfaceProps*); 105 const SkSurfaceProps*);
105 106
106 /** 107 /**
107 * Used to wrap a pre-existing 3D API texture as a SkSurface. Skia will tre at the texture as 108 * Used to wrap a pre-existing 3D API texture as a SkSurface. Skia will tre at the texture as
108 * a rendering target only, but unlike NewFromBackendRenderTarget, Skia wil l manage and own 109 * a rendering target only, but unlike NewFromBackendRenderTarget, Skia wil l manage and own
109 * the associated render target objects (but not the provided texture). The kRenderTarget flag 110 * the associated render target objects (but not the provided texture). The kRenderTarget flag
110 * must be set on GrBackendTextureDesc for this to succeed. Skia will not a ssume ownership 111 * must be set on GrBackendTextureDesc for this to succeed. Skia will not a ssume ownership
111 * of the texture and the client must ensure the texture is valid for the l ifetime of the 112 * of the texture and the client must ensure the texture is valid for the l ifetime of the
112 * SkSurface. 113 * SkSurface.
113 */ 114 */
114 static sk_sp<SkSurface> MakeFromBackendTextureAsRenderTarget( 115 static sk_sp<SkSurface> MakeFromBackendTextureAsRenderTarget(
115 GrContext*, const GrBackendTextureDesc&, const SkSurfaceProps*); 116 GrContext*, const GrBackendTextureDesc&, sk_sp<SkColorSpace>, const SkSu rfaceProps*);
117
118 /**
119 * Legacy versions of the above factories, without color space support. Thes e create "legacy"
120 * surfaces that operate without gamma correction or color management.
121 */
122 static sk_sp<SkSurface> MakeFromBackendTexture(GrContext* ctx, const GrBacke ndTextureDesc& desc,
123 const SkSurfaceProps* props) {
124 return MakeFromBackendTexture(ctx, desc, nullptr, props);
125 }
126
127 static sk_sp<SkSurface> MakeFromBackendRenderTarget(GrContext* ctx,
128 const GrBackendRenderTar getDesc& desc,
129 const SkSurfaceProps* pr ops) {
130 return MakeFromBackendRenderTarget(ctx, desc, nullptr, props);
131 }
132
133 static sk_sp<SkSurface> MakeFromBackendTextureAsRenderTarget(
134 GrContext* ctx, const GrBackendTextureDesc& desc, const SkSurfacePro ps* props) {
135 return MakeFromBackendTextureAsRenderTarget(ctx, desc, nullptr, props);
136 }
137
116 138
117 /** 139 /**
118 * Return a new surface whose contents will be drawn to an offscreen 140 * Return a new surface whose contents will be drawn to an offscreen
119 * render target, allocated by the surface. 141 * render target, allocated by the surface.
120 */ 142 */
121 static sk_sp<SkSurface> MakeRenderTarget( 143 static sk_sp<SkSurface> MakeRenderTarget(
122 GrContext*, SkBudgeted, const SkImageInfo&, int sampleCount, const S kSurfaceProps*); 144 GrContext*, SkBudgeted, const SkImageInfo&, int sampleCount, const S kSurfaceProps*);
123 145
124 static sk_sp<SkSurface> MakeRenderTarget(GrContext* gr, SkBudgeted b, const SkImageInfo& info) { 146 static sk_sp<SkSurface> MakeRenderTarget(GrContext* gr, SkBudgeted b, const SkImageInfo& info) {
125 return MakeRenderTarget(gr, b, info, 0, nullptr); 147 return MakeRenderTarget(gr, b, info, 0, nullptr);
(...skipping 16 matching lines...) Expand all
142 return MakeRaster(info, rowBytes, props).release(); 164 return MakeRaster(info, rowBytes, props).release();
143 } 165 }
144 static SkSurface* NewRaster(const SkImageInfo& info, const SkSurfaceProps* p rops = NULL) { 166 static SkSurface* NewRaster(const SkImageInfo& info, const SkSurfaceProps* p rops = NULL) {
145 return MakeRaster(info, props).release(); 167 return MakeRaster(info, props).release();
146 } 168 }
147 static SkSurface* NewRasterN32Premul(int width, int height, 169 static SkSurface* NewRasterN32Premul(int width, int height,
148 const SkSurfaceProps* props = NULL) { 170 const SkSurfaceProps* props = NULL) {
149 return NewRaster(SkImageInfo::MakeN32Premul(width, height), props); 171 return NewRaster(SkImageInfo::MakeN32Premul(width, height), props);
150 } 172 }
151 static SkSurface* NewRenderTargetDirect(GrRenderTarget* rt, const SkSurfaceP rops* props) { 173 static SkSurface* NewRenderTargetDirect(GrRenderTarget* rt, const SkSurfaceP rops* props) {
152 return MakeRenderTargetDirect(rt, props).release(); 174 return MakeRenderTargetDirect(rt, nullptr, props).release();
153 } 175 }
154 static SkSurface* NewRenderTargetDirect(GrRenderTarget* target) { 176 static SkSurface* NewRenderTargetDirect(GrRenderTarget* target) {
155 return NewRenderTargetDirect(target, NULL); 177 return NewRenderTargetDirect(target, NULL);
156 } 178 }
157 static SkSurface* NewFromBackendTexture(GrContext* ctx, const GrBackendTextu reDesc& desc, 179 static SkSurface* NewFromBackendTexture(GrContext* ctx, const GrBackendTextu reDesc& desc,
158 const SkSurfaceProps* props) { 180 const SkSurfaceProps* props) {
159 return MakeFromBackendTexture(ctx, desc, props).release(); 181 return MakeFromBackendTexture(ctx, desc, props).release();
160 } 182 }
161 // Legacy alias 183 // Legacy alias
162 static SkSurface* NewWrappedRenderTarget(GrContext* ctx, const GrBackendText ureDesc& desc, 184 static SkSurface* NewWrappedRenderTarget(GrContext* ctx, const GrBackendText ureDesc& desc,
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 private: 393 private:
372 const SkSurfaceProps fProps; 394 const SkSurfaceProps fProps;
373 const int fWidth; 395 const int fWidth;
374 const int fHeight; 396 const int fHeight;
375 uint32_t fGenerationID; 397 uint32_t fGenerationID;
376 398
377 typedef SkRefCnt INHERITED; 399 typedef SkRefCnt INHERITED;
378 }; 400 };
379 401
380 #endif 402 #endif
OLDNEW
« no previous file with comments | « example/HelloWorld.h ('k') | include/gpu/GrContext.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698