| OLD | NEW |
| 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 GrContext_DEFINED | 8 #ifndef GrContext_DEFINED |
| 9 #define GrContext_DEFINED | 9 #define GrContext_DEFINED |
| 10 | 10 |
| 11 #include "GrClip.h" | 11 #include "GrClip.h" |
| 12 #include "GrColor.h" | 12 #include "GrColor.h" |
| 13 #include "GrPaint.h" | 13 #include "GrPaint.h" |
| 14 #include "GrPathRendererChain.h" | 14 #include "GrPathRendererChain.h" |
| 15 #include "GrRenderTarget.h" | 15 #include "GrRenderTarget.h" |
| 16 #include "GrTextureProvider.h" | 16 #include "GrTextureProvider.h" |
| 17 #include "SkMatrix.h" | 17 #include "SkMatrix.h" |
| 18 #include "SkPathEffect.h" | 18 #include "SkPathEffect.h" |
| 19 #include "SkTypes.h" | 19 #include "SkTypes.h" |
| 20 | 20 |
| 21 class GrAARectRenderer; | 21 class GrAARectRenderer; |
| 22 class GrBatchFontCache; | 22 class GrBatchFontCache; |
| 23 struct GrContextOptions; | 23 struct GrContextOptions; |
| 24 class GrDrawContext; |
| 24 class GrDrawTarget; | 25 class GrDrawTarget; |
| 25 class GrFragmentProcessor; | 26 class GrFragmentProcessor; |
| 26 class GrGpu; | 27 class GrGpu; |
| 27 class GrGpuTraceMarker; | 28 class GrGpuTraceMarker; |
| 28 class GrIndexBuffer; | 29 class GrIndexBuffer; |
| 29 class GrLayerCache; | 30 class GrLayerCache; |
| 30 class GrOvalRenderer; | 31 class GrOvalRenderer; |
| 31 class GrPath; | 32 class GrPath; |
| 32 class GrPathRenderer; | 33 class GrPathRenderer; |
| 33 class GrPipelineBuilder; | 34 class GrPipelineBuilder; |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 * Purge all the unlocked resources from the cache. | 152 * Purge all the unlocked resources from the cache. |
| 152 * This entry point is mainly meant for timing texture uploads | 153 * This entry point is mainly meant for timing texture uploads |
| 153 * and is not defined in normal builds of Skia. | 154 * and is not defined in normal builds of Skia. |
| 154 */ | 155 */ |
| 155 void purgeAllUnlockedResources(); | 156 void purgeAllUnlockedResources(); |
| 156 | 157 |
| 157 ////////////////////////////////////////////////////////////////////////// | 158 ////////////////////////////////////////////////////////////////////////// |
| 158 /// Texture and Render Target Queries | 159 /// Texture and Render Target Queries |
| 159 | 160 |
| 160 /** | 161 /** |
| 162 * Are shader derivatives supported? |
| 163 */ |
| 164 bool shaderDerivativeSupport() const; |
| 165 |
| 166 /** |
| 161 * Can the provided configuration act as a texture? | 167 * Can the provided configuration act as a texture? |
| 162 */ | 168 */ |
| 163 bool isConfigTexturable(GrPixelConfig) const; | 169 bool isConfigTexturable(GrPixelConfig) const; |
| 164 | 170 |
| 165 /** | 171 /** |
| 166 * Can non-power-of-two textures be used with tile modes other than clamp? | 172 * Can non-power-of-two textures be used with tile modes other than clamp? |
| 167 */ | 173 */ |
| 168 bool npotTextureTileSupport() const; | 174 bool npotTextureTileSupport() const; |
| 169 | 175 |
| 170 /** | 176 /** |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 * | 210 * |
| 205 * @param config the configuration of the render target. | 211 * @param config the configuration of the render target. |
| 206 * @param dpi the display density in dots per inch. | 212 * @param dpi the display density in dots per inch. |
| 207 * | 213 * |
| 208 * @return sample count that should be perform well and have good enough | 214 * @return sample count that should be perform well and have good enough |
| 209 * rendering quality for the display. Alternatively returns 0 if | 215 * rendering quality for the display. Alternatively returns 0 if |
| 210 * MSAA is not supported or recommended to be used by default. | 216 * MSAA is not supported or recommended to be used by default. |
| 211 */ | 217 */ |
| 212 int getRecommendedSampleCount(GrPixelConfig config, SkScalar dpi) const; | 218 int getRecommendedSampleCount(GrPixelConfig config, SkScalar dpi) const; |
| 213 | 219 |
| 214 /////////////////////////////////////////////////////////////////////////// | |
| 215 // Draws | |
| 216 | |
| 217 /** | 220 /** |
| 218 * Clear the entire or rect of the render target, ignoring any clips. | 221 * Returns a helper object to orchestrate draws. |
| 219 * @param rect the rect to clear or the whole thing if rect is NULL. | 222 * |
| 220 * @param color the color to clear to. | 223 * @return a draw context |
| 221 * @param canIgnoreRect allows partial clears to be converted to whole | |
| 222 * clears on platforms for which that is cheap | |
| 223 * @param target The render target to clear. | |
| 224 */ | 224 */ |
| 225 void clear(const SkIRect* rect, GrColor color, bool canIgnoreRect, GrRenderT
arget* target); | 225 GrDrawContext* drawContext() { |
| 226 | 226 return fDrawingMgr.drawContext(); |
| 227 /** | |
| 228 * Draw everywhere (respecting the clip) with the paint. | |
| 229 */ | |
| 230 void drawPaint(GrRenderTarget*, const GrClip&, const GrPaint&, const SkMatri
x& viewMatrix); | |
| 231 | |
| 232 /** | |
| 233 * Draw the rect using a paint. | |
| 234 * @param paint describes how to color pixels. | |
| 235 * @param viewMatrix transformation matrix | |
| 236 * @param strokeInfo the stroke information (width, join, cap), and. | |
| 237 * the dash information (intervals, count, phase). | |
| 238 * If strokeInfo == NULL, then the rect is filled. | |
| 239 * Otherwise, if stroke width == 0, then the stroke | |
| 240 * is always a single pixel thick, else the rect is | |
| 241 * mitered/beveled stroked based on stroke width. | |
| 242 * The rects coords are used to access the paint (through texture matrix) | |
| 243 */ | |
| 244 void drawRect(GrRenderTarget*, | |
| 245 const GrClip&, | |
| 246 const GrPaint& paint, | |
| 247 const SkMatrix& viewMatrix, | |
| 248 const SkRect&, | |
| 249 const GrStrokeInfo* strokeInfo = NULL); | |
| 250 | |
| 251 /** | |
| 252 * Maps a rectangle of shader coordinates to a rectangle and draws that rect
angle | |
| 253 * | |
| 254 * @param paint describes how to color pixels. | |
| 255 * @param viewMatrix transformation matrix which applies to rectToDraw | |
| 256 * @param rectToDraw the rectangle to draw | |
| 257 * @param localRect the rectangle of shader coordinates applied to rectT
oDraw | |
| 258 * @param localMatrix an optional matrix to transform the shader coordinat
es before applying | |
| 259 * to rectToDraw | |
| 260 */ | |
| 261 void drawNonAARectToRect(GrRenderTarget*, | |
| 262 const GrClip&, | |
| 263 const GrPaint& paint, | |
| 264 const SkMatrix& viewMatrix, | |
| 265 const SkRect& rectToDraw, | |
| 266 const SkRect& localRect, | |
| 267 const SkMatrix* localMatrix = NULL); | |
| 268 | |
| 269 /** | |
| 270 * Draws a non-AA rect with paint and a localMatrix | |
| 271 */ | |
| 272 void drawNonAARectWithLocalMatrix(GrRenderTarget* rt, | |
| 273 const GrClip& clip, | |
| 274 const GrPaint& paint, | |
| 275 const SkMatrix& viewMatrix, | |
| 276 const SkRect& rect, | |
| 277 const SkMatrix& localMatrix) { | |
| 278 this->drawNonAARectToRect(rt, clip, paint, viewMatrix, rect, rect, &loca
lMatrix); | |
| 279 } | 227 } |
| 280 | 228 |
| 281 /** | |
| 282 * Draw a roundrect using a paint. | |
| 283 * | |
| 284 * @param paint describes how to color pixels. | |
| 285 * @param viewMatrix transformation matrix | |
| 286 * @param rrect the roundrect to draw | |
| 287 * @param strokeInfo the stroke information (width, join, cap) and | |
| 288 * the dash information (intervals, count, phase). | |
| 289 */ | |
| 290 void drawRRect(GrRenderTarget*, | |
| 291 const GrClip&, | |
| 292 const GrPaint&, | |
| 293 const SkMatrix& viewMatrix, | |
| 294 const SkRRect& rrect, | |
| 295 const GrStrokeInfo&); | |
| 296 | |
| 297 /** | |
| 298 * Shortcut for drawing an SkPath consisting of nested rrects using a paint
. | |
| 299 * Does not support stroking. The result is undefined if outer does not con
tain | |
| 300 * inner. | |
| 301 * | |
| 302 * @param paint describes how to color pixels. | |
| 303 * @param viewMatrix transformation matrix | |
| 304 * @param outer the outer roundrect | |
| 305 * @param inner the inner roundrect | |
| 306 */ | |
| 307 void drawDRRect(GrRenderTarget*, | |
| 308 const GrClip&, | |
| 309 const GrPaint&, | |
| 310 const SkMatrix& viewMatrix, | |
| 311 const SkRRect& outer, | |
| 312 const SkRRect& inner); | |
| 313 | |
| 314 | |
| 315 /** | |
| 316 * Draws a path. | |
| 317 * | |
| 318 * @param paint describes how to color pixels. | |
| 319 * @param viewMatrix transformation matrix | |
| 320 * @param path the path to draw | |
| 321 * @param strokeInfo the stroke information (width, join, cap) and | |
| 322 * the dash information (intervals, count, phase). | |
| 323 */ | |
| 324 void drawPath(GrRenderTarget*, | |
| 325 const GrClip&, | |
| 326 const GrPaint&, | |
| 327 const SkMatrix& viewMatrix, | |
| 328 const SkPath&, | |
| 329 const GrStrokeInfo&); | |
| 330 | |
| 331 /** | |
| 332 * Draws vertices with a paint. | |
| 333 * | |
| 334 * @param paint describes how to color pixels. | |
| 335 * @param viewMatrix transformation matrix | |
| 336 * @param primitiveType primitives type to draw. | |
| 337 * @param vertexCount number of vertices. | |
| 338 * @param positions array of vertex positions, required. | |
| 339 * @param texCoords optional array of texture coordinates used | |
| 340 * to access the paint. | |
| 341 * @param colors optional array of per-vertex colors, supercedes | |
| 342 * the paint's color field. | |
| 343 * @param indices optional array of indices. If NULL vertices | |
| 344 * are drawn non-indexed. | |
| 345 * @param indexCount if indices is non-null then this is the | |
| 346 * number of indices. | |
| 347 */ | |
| 348 void drawVertices(GrRenderTarget*, | |
| 349 const GrClip&, | |
| 350 const GrPaint& paint, | |
| 351 const SkMatrix& viewMatrix, | |
| 352 GrPrimitiveType primitiveType, | |
| 353 int vertexCount, | |
| 354 const SkPoint positions[], | |
| 355 const SkPoint texs[], | |
| 356 const GrColor colors[], | |
| 357 const uint16_t indices[], | |
| 358 int indexCount); | |
| 359 | |
| 360 /** | |
| 361 * Draws an oval. | |
| 362 * | |
| 363 * @param paint describes how to color pixels. | |
| 364 * @param viewMatrix transformation matrix | |
| 365 * @param oval the bounding rect of the oval. | |
| 366 * @param strokeInfo the stroke information (width, join, cap) and | |
| 367 * the dash information (intervals, count, phase). | |
| 368 */ | |
| 369 void drawOval(GrRenderTarget*, | |
| 370 const GrClip&, | |
| 371 const GrPaint& paint, | |
| 372 const SkMatrix& viewMatrix, | |
| 373 const SkRect& oval, | |
| 374 const GrStrokeInfo& strokeInfo); | |
| 375 | |
| 376 /////////////////////////////////////////////////////////////////////////// | 229 /////////////////////////////////////////////////////////////////////////// |
| 377 // Misc. | 230 // Misc. |
| 378 | 231 |
| 379 /** | 232 /** |
| 380 * Flags that affect flush() behavior. | 233 * Flags that affect flush() behavior. |
| 381 */ | 234 */ |
| 382 enum FlushBits { | 235 enum FlushBits { |
| 383 /** | 236 /** |
| 384 * A client may reach a point where it has partially rendered a frame | 237 * A client may reach a point where it has partially rendered a frame |
| 385 * through a GrContext that it knows the user will never see. This flag | 238 * through a GrContext that it knows the user will never see. This flag |
| 386 * causes the flush to skip submission of deferred content to the 3D API | 239 * causes the flush to skip submission of deferred content to the 3D API |
| 387 * during the flush. | 240 * during the flush. |
| 388 */ | 241 */ |
| 389 kDiscard_FlushBit = 0x2, | 242 kDiscard_FlushBit = 0x2, |
| 390 }; | 243 }; |
| 391 | 244 |
| 392 /** | 245 /** |
| 393 * Call to ensure all drawing to the context has been issued to the | 246 * Call to ensure all drawing to the context has been issued to the |
| 394 * underlying 3D API. | 247 * underlying 3D API. |
| 395 * @param flagsBitfield flags that control the flushing behavior. See | 248 * @param flagsBitfield flags that control the flushing behavior. See |
| 396 * FlushBits. | 249 * FlushBits. |
| 397 */ | 250 */ |
| 398 void flush(int flagsBitfield = 0); | 251 void flush(int flagsBitfield = 0); |
| 399 | 252 |
| 253 void flushIfNecessary() { |
| 254 if (fFlushToReduceCacheSize) { |
| 255 this->flush(); |
| 256 } |
| 257 } |
| 258 |
| 400 /** | 259 /** |
| 401 * These flags can be used with the read/write pixels functions below. | 260 * These flags can be used with the read/write pixels functions below. |
| 402 */ | 261 */ |
| 403 enum PixelOpsFlags { | 262 enum PixelOpsFlags { |
| 404 /** The GrContext will not be flushed before the surface read or write.
This means that | 263 /** The GrContext will not be flushed before the surface read or write.
This means that |
| 405 the read or write may occur before previous draws have executed. */ | 264 the read or write may occur before previous draws have executed. */ |
| 406 kDontFlush_PixelOpsFlag = 0x1, | 265 kDontFlush_PixelOpsFlag = 0x1, |
| 407 /** Any surface writes should be flushed to the backend 3D API after the
surface operation | 266 /** Any surface writes should be flushed to the backend 3D API after the
surface operation |
| 408 is complete */ | 267 is complete */ |
| 409 kFlushWrites_PixelOp = 0x2, | 268 kFlushWrites_PixelOp = 0x2, |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 493 * used to make the surface contents available to be read in the backend 3D
API, usually for a | 352 * used to make the surface contents available to be read in the backend 3D
API, usually for a |
| 494 * compositing step external to Skia. | 353 * compositing step external to Skia. |
| 495 * | 354 * |
| 496 * It is not necessary to call this before reading the render target via Ski
a/GrContext. | 355 * It is not necessary to call this before reading the render target via Ski
a/GrContext. |
| 497 * GrContext will detect when it must perform a resolve before reading pixel
s back from the | 356 * GrContext will detect when it must perform a resolve before reading pixel
s back from the |
| 498 * surface or using it as a texture. | 357 * surface or using it as a texture. |
| 499 */ | 358 */ |
| 500 void prepareSurfaceForExternalRead(GrSurface*); | 359 void prepareSurfaceForExternalRead(GrSurface*); |
| 501 | 360 |
| 502 /** | 361 /** |
| 503 * Provides a perfomance hint that the render target's contents are allowed | |
| 504 * to become undefined. | |
| 505 */ | |
| 506 void discardRenderTarget(GrRenderTarget*); | |
| 507 | |
| 508 /** | |
| 509 * An ID associated with this context, guaranteed to be unique. | 362 * An ID associated with this context, guaranteed to be unique. |
| 510 */ | 363 */ |
| 511 uint32_t uniqueID() { return fUniqueID; } | 364 uint32_t uniqueID() { return fUniqueID; } |
| 512 | 365 |
| 513 /////////////////////////////////////////////////////////////////////////// | 366 /////////////////////////////////////////////////////////////////////////// |
| 514 // Functions intended for internal use only. | 367 // Functions intended for internal use only. |
| 515 GrGpu* getGpu() { return fGpu; } | 368 GrGpu* getGpu() { return fGpu; } |
| 516 const GrGpu* getGpu() const { return fGpu; } | 369 const GrGpu* getGpu() const { return fGpu; } |
| 517 GrBatchFontCache* getBatchFontCache() { return fBatchFontCache; } | 370 GrBatchFontCache* getBatchFontCache() { return fBatchFontCache; } |
| 518 GrLayerCache* getLayerCache() { return fLayerCache.get(); } | 371 GrLayerCache* getLayerCache() { return fLayerCache.get(); } |
| 519 GrTextBlobCache* getTextBlobCache() { return fTextBlobCache; } | 372 GrTextBlobCache* getTextBlobCache() { return fTextBlobCache; } |
| 520 GrDrawTarget* getTextTarget(); | 373 bool abandoned() const { return fDrawingMgr.abandoned(); } |
| 521 GrAARectRenderer* getAARectRenderer() { return fAARectRenderer; } | |
| 522 GrResourceProvider* resourceProvider() { return fResourceProvider; } | 374 GrResourceProvider* resourceProvider() { return fResourceProvider; } |
| 523 const GrResourceProvider* resourceProvider() const { return fResourceProvide
r; } | 375 const GrResourceProvider* resourceProvider() const { return fResourceProvide
r; } |
| 524 GrResourceCache* getResourceCache() { return fResourceCache; } | 376 GrResourceCache* getResourceCache() { return fResourceCache; } |
| 525 | 377 |
| 526 // Called by tests that draw directly to the context via GrDrawTarget | 378 // Called by tests that draw directly to the context via GrDrawTarget |
| 527 void getTestTarget(GrTestTarget*); | 379 void getTestTarget(GrTestTarget*); |
| 528 | 380 |
| 529 void addGpuTraceMarker(const GrGpuTraceMarker* marker); | 381 void addGpuTraceMarker(const GrGpuTraceMarker* marker); |
| 530 void removeGpuTraceMarker(const GrGpuTraceMarker* marker); | 382 void removeGpuTraceMarker(const GrGpuTraceMarker* marker); |
| 531 | 383 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 557 GrTextureProvider* fTextureProvider; | 409 GrTextureProvider* fTextureProvider; |
| 558 }; | 410 }; |
| 559 | 411 |
| 560 GrBatchFontCache* fBatchFontCache; | 412 GrBatchFontCache* fBatchFontCache; |
| 561 SkAutoTDelete<GrLayerCache> fLayerCache; | 413 SkAutoTDelete<GrLayerCache> fLayerCache; |
| 562 SkAutoTDelete<GrTextBlobCache> fTextBlobCache; | 414 SkAutoTDelete<GrTextBlobCache> fTextBlobCache; |
| 563 | 415 |
| 564 GrPathRendererChain* fPathRendererChain; | 416 GrPathRendererChain* fPathRendererChain; |
| 565 GrSoftwarePathRenderer* fSoftwarePathRenderer; | 417 GrSoftwarePathRenderer* fSoftwarePathRenderer; |
| 566 | 418 |
| 567 GrDrawTarget* fDrawBuffer; | |
| 568 | |
| 569 // Set by OverbudgetCB() to request that GrContext flush before exiting a dr
aw. | 419 // Set by OverbudgetCB() to request that GrContext flush before exiting a dr
aw. |
| 570 bool fFlushToReduceCacheSize; | 420 bool fFlushToReduceCacheSize; |
| 571 GrAARectRenderer* fAARectRenderer; | |
| 572 GrOvalRenderer* fOvalRenderer; | |
| 573 | |
| 574 bool fDidTestPMConversions; | 421 bool fDidTestPMConversions; |
| 575 int fPMToUPMConversion; | 422 int fPMToUPMConversion; |
| 576 int fUPMToPMConversion; | 423 int fUPMToPMConversion; |
| 577 | 424 |
| 578 struct CleanUpData { | 425 struct CleanUpData { |
| 579 PFCleanUpFunc fFunc; | 426 PFCleanUpFunc fFunc; |
| 580 void* fInfo; | 427 void* fInfo; |
| 581 }; | 428 }; |
| 582 | 429 |
| 583 SkTDArray<CleanUpData> fCleanUpData; | 430 SkTDArray<CleanUpData> fCleanUpData; |
| 584 | 431 |
| 585 int fMaxTextureSizeOverride; | 432 int fMaxTextureSizeOverride; |
| 586 | 433 |
| 587 const uint32_t fUniqueID; | 434 const uint32_t fUniqueID; |
| 588 | 435 |
| 589 GrContext(); // init must be called after the constructor. | 436 GrContext(); // init must be called after the constructor. |
| 590 bool init(GrBackend, GrBackendContext, const GrContextOptions& options); | 437 bool init(GrBackend, GrBackendContext, const GrContextOptions& options); |
| 438 |
| 439 // Currently the DrawingMgr just wraps the single GrDrawTarget in a single |
| 440 // GrDrawContext and hands it out. In the future this class will allocate |
| 441 // a new GrDrawContext for each GrRenderTarget/GrDrawTarget and manage |
| 442 // the DAG. |
| 443 class DrawingMgr { |
| 444 public: |
| 445 DrawingMgr() |
| 446 : fDrawTarget(NULL) |
| 447 , fDrawContext(NULL) { |
| 448 } |
| 449 |
| 450 ~DrawingMgr(); |
| 451 |
| 452 void init(GrContext* context); |
| 453 |
| 454 void abandon(); |
| 455 bool abandoned() const { return NULL == fDrawTarget; } |
| 456 |
| 457 void purgeResources(); |
| 458 void reset(); |
| 459 void flush(); |
| 460 |
| 461 // Callers should take a ref if they rely on the GrDrawContext sticking
around. |
| 462 // NULL will be returned if the context has been abandoned. |
| 463 GrDrawContext* drawContext(); |
| 464 |
| 465 private: |
| 466 friend class GrContext; // for access to fDrawTarget for testing |
| 467 |
| 468 GrDrawTarget* fDrawTarget; |
| 469 |
| 470 GrDrawContext* fDrawContext; |
| 471 }; |
| 472 |
| 473 DrawingMgr fDrawingMgr; |
| 474 |
| 591 void initMockContext(); | 475 void initMockContext(); |
| 592 void initCommon(); | 476 void initCommon(); |
| 593 | 477 |
| 594 class AutoCheckFlush; | |
| 595 // Sets the paint and returns the target to draw into. | |
| 596 GrDrawTarget* prepareToDraw(GrPipelineBuilder*, | |
| 597 GrRenderTarget* rt, | |
| 598 const GrClip&, | |
| 599 const GrPaint* paint, | |
| 600 const AutoCheckFlush*); | |
| 601 | |
| 602 // A simpler version of the above which just returns the draw target. Clip
is *NOT* set | |
| 603 GrDrawTarget* prepareToDraw(); | |
| 604 | |
| 605 void internalDrawPath(GrDrawTarget*, | |
| 606 GrPipelineBuilder*, | |
| 607 const SkMatrix& viewMatrix, | |
| 608 GrColor, | |
| 609 bool useAA, | |
| 610 const SkPath&, | |
| 611 const GrStrokeInfo&); | |
| 612 | |
| 613 /** | 478 /** |
| 614 * Creates a new text rendering context that is optimal for the | 479 * Creates a new text rendering context that is optimal for the |
| 615 * render target and the context. Caller assumes the ownership | 480 * render target and the context. Caller assumes the ownership |
| 616 * of the returned object. The returned object must be deleted | 481 * of the returned object. The returned object must be deleted |
| 617 * before the context is destroyed. | 482 * before the context is destroyed. |
| 618 * TODO we can possibly bury this behind context, but we need to be able to
use the | 483 * TODO we can possibly bury this behind context, but we need to be able to
use the |
| 619 * drawText_asPaths logic on SkGpuDevice | 484 * drawText_asPaths logic on SkGpuDevice |
| 620 */ | 485 */ |
| 621 GrTextContext* createTextContext(GrRenderTarget*, | 486 GrTextContext* createTextContext(GrRenderTarget*, |
| 622 SkGpuDevice*, | 487 SkGpuDevice*, |
| (...skipping 21 matching lines...) Expand all Loading... |
| 644 */ | 509 */ |
| 645 static void TextBlobCacheOverBudgetCB(void* data); | 510 static void TextBlobCacheOverBudgetCB(void* data); |
| 646 | 511 |
| 647 // TODO see note on createTextContext | 512 // TODO see note on createTextContext |
| 648 friend class SkGpuDevice; | 513 friend class SkGpuDevice; |
| 649 | 514 |
| 650 typedef SkRefCnt INHERITED; | 515 typedef SkRefCnt INHERITED; |
| 651 }; | 516 }; |
| 652 | 517 |
| 653 #endif | 518 #endif |
| OLD | NEW |