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

Side by Side Diff: src/gpu/SkGpuDevice.h

Issue 2249163004: Fix tile bitmap code in SkGpuDevice to compute correct local coords (Closed) Base URL: https://chromium.googlesource.com/skia.git@master
Patch Set: fix int->scalar warning on windows Created 4 years, 4 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 | « no previous file | src/gpu/SkGpuDevice.cpp » ('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 2010 Google Inc. 2 * Copyright 2010 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 SkGpuDevice_DEFINED 8 #ifndef SkGpuDevice_DEFINED
9 #define SkGpuDevice_DEFINED 9 #define SkGpuDevice_DEFINED
10 10
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 void prepareDraw(const SkDraw&); 172 void prepareDraw(const SkDraw&);
173 173
174 /** 174 /**
175 * Helper functions called by drawBitmapCommon. By the time these are called the SkDraw's 175 * Helper functions called by drawBitmapCommon. By the time these are called the SkDraw's
176 * matrix, clip, and the device's render target has already been set on GrCo ntext. 176 * matrix, clip, and the device's render target has already been set on GrCo ntext.
177 */ 177 */
178 178
179 // The tileSize and clippedSrcRect will be valid only if true is returned. 179 // The tileSize and clippedSrcRect will be valid only if true is returned.
180 bool shouldTileImageID(uint32_t imageID, const SkIRect& imageRect, 180 bool shouldTileImageID(uint32_t imageID, const SkIRect& imageRect,
181 const SkMatrix& viewMatrix, 181 const SkMatrix& viewMatrix,
182 const SkMatrix& srcToDstRectMatrix,
182 const GrTextureParams& params, 183 const GrTextureParams& params,
183 const SkRect* srcRectPtr, 184 const SkRect* srcRectPtr,
184 int maxTileSize, 185 int maxTileSize,
185 int* tileSize, 186 int* tileSize,
186 SkIRect* clippedSubset) const; 187 SkIRect* clippedSubset) const;
187 bool shouldTileBitmap(const SkBitmap& bitmap,
188 const SkMatrix& viewMatrix,
189 const GrTextureParams& sampler,
190 const SkRect* srcRectPtr,
191 int maxTileSize,
192 int* tileSize,
193 SkIRect* clippedSrcRect) const;
194 // Just returns the predicate, not the out-tileSize or out-clippedSubset, as they are not 188 // Just returns the predicate, not the out-tileSize or out-clippedSubset, as they are not
195 // needed at the moment. 189 // needed at the moment.
196 bool shouldTileImage(const SkImage* image, const SkRect* srcRectPtr, 190 bool shouldTileImage(const SkImage* image, const SkRect* srcRectPtr,
197 SkCanvas::SrcRectConstraint constraint, SkFilterQuality quality, 191 SkCanvas::SrcRectConstraint constraint, SkFilterQuality quality,
198 const SkMatrix& viewMatrix) const; 192 const SkMatrix& viewMatrix, const SkMatrix& srcToDstRec t) const;
199
200 void internalDrawBitmap(const SkBitmap&,
201 const SkMatrix& viewMatrix,
202 const SkRect&,
203 const GrTextureParams& params,
204 const SkPaint& paint,
205 SkCanvas::SrcRectConstraint,
206 bool bicubic,
207 bool needsTextureDomain);
208 193
209 sk_sp<SkSpecialImage> filterTexture(const SkDraw&, 194 sk_sp<SkSpecialImage> filterTexture(const SkDraw&,
210 SkSpecialImage*, 195 SkSpecialImage*,
211 int left, int top, 196 int left, int top,
212 SkIPoint* offset, 197 SkIPoint* offset,
213 const SkImageFilter* filter); 198 const SkImageFilter* filter);
214 199
200 // Splits bitmap into tiles of tileSize and draws them using separate textur es for each tile.
215 void drawTiledBitmap(const SkBitmap& bitmap, 201 void drawTiledBitmap(const SkBitmap& bitmap,
216 const SkMatrix& viewMatrix, 202 const SkMatrix& viewMatrix,
203 const SkMatrix& srcToDstMatrix,
217 const SkRect& srcRect, 204 const SkRect& srcRect,
218 const SkIRect& clippedSrcRect, 205 const SkIRect& clippedSrcRect,
219 const GrTextureParams& params, 206 const GrTextureParams& params,
220 const SkPaint& paint, 207 const SkPaint& paint,
221 SkCanvas::SrcRectConstraint, 208 SkCanvas::SrcRectConstraint,
222 int tileSize, 209 int tileSize,
223 bool bicubic); 210 bool bicubic);
224 211
212 // Used by drawTiledBitmap to draw each tile.
213 void drawBitmapTile(const SkBitmap&,
214 const SkMatrix& viewMatrix,
215 const SkRect& dstRect,
216 const SkRect& srcRect,
217 const GrTextureParams& params,
218 const SkPaint& paint,
219 SkCanvas::SrcRectConstraint,
220 bool bicubic,
221 bool needsTextureDomain);
222
225 void drawTextureProducer(GrTextureProducer*, 223 void drawTextureProducer(GrTextureProducer*,
226 const SkRect* srcRect, 224 const SkRect* srcRect,
227 const SkRect* dstRect, 225 const SkRect* dstRect,
228 SkCanvas::SrcRectConstraint, 226 SkCanvas::SrcRectConstraint,
229 const SkMatrix& viewMatrix, 227 const SkMatrix& viewMatrix,
230 const GrClip&, 228 const GrClip&,
231 const SkPaint&); 229 const SkPaint&);
232 230
233 void drawTextureProducerImpl(GrTextureProducer*, 231 void drawTextureProducerImpl(GrTextureProducer*,
234 const SkRect& clippedSrcRect, 232 const SkRect& clippedSrcRect,
(...skipping 19 matching lines...) Expand all
254 int sampleCount, 252 int sampleCount,
255 GrSurfaceOrigin, 253 GrSurfaceOrigin,
256 const SkSurfaceProps*); 254 const SkSurfaceProps*);
257 255
258 friend class GrAtlasTextContext; 256 friend class GrAtlasTextContext;
259 friend class SkSurface_Gpu; // for access to surfaceProps 257 friend class SkSurface_Gpu; // for access to surfaceProps
260 typedef SkBaseDevice INHERITED; 258 typedef SkBaseDevice INHERITED;
261 }; 259 };
262 260
263 #endif 261 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/SkGpuDevice.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698