const GrGpu* getGpu() const { return fGpu; }
GrFontCache* getFontCache() { return fFontCache; }
GrDrawTarget* getTextTarget(const GrPaint& paint);
- void flushText();
const GrIndexBuffer* getQuadIndexBuffer() const;
void resetStats();
const GrGpuStats& getStats() const;
enum DrawCategory {
kBuffered_DrawCategory, // last draw was inserted in draw buffer
kUnbuffered_DrawCategory, // last draw was not inserted in the draw buffer
- kText_DrawCategory // text context was last to draw
};
DrawCategory fLastDrawCategory;
}
}
-void GrContext::flushText() {
- if (kText_DrawCategory == fLastDrawCategory) {
- flushDrawBuffer();
- }
-}
-
void GrContext::flushDrawBuffer() {
-#if BATCH_RECT_TO_RECT || DEFER_TEXT_RENDERING
if (fDrawBuffer) {
fDrawBuffer->flushTo(fGpu);
}
-#endif
}
void GrContext::internalWriteTexturePixels(GrTexture* texture,
this->setPaint(paint);
GrDrawTarget* target = fGpu;
switch (category) {
- case kText_DrawCategory:
-#if DEFER_TEXT_RENDERING
- target = fDrawBuffer;
- fDrawBuffer->setClip(fGpu->getClip());
-#else
- target = fGpu;
-#endif
- break;
- case kUnbuffered_DrawCategory:
- target = fGpu;
- break;
- case kBuffered_DrawCategory:
- target = fDrawBuffer;
- fDrawBuffer->setClip(fGpu->getClip());
- break;
+ case kUnbuffered_DrawCategory:
+ target = fGpu;
+ break;
+ case kBuffered_DrawCategory:
+ target = fDrawBuffer;
+ fDrawBuffer->setClip(fGpu->getClip());
+ break;
+ default:
+ GrCrash("Unexpected DrawCategory.");
+ break;
}
return target;
}
GrDrawTarget* GrContext::getTextTarget(const GrPaint& paint) {
#if DEFER_TEXT_RENDERING
- return prepareToDraw(paint, kText_DrawCategory);
+ return prepareToDraw(paint, kBuffered_DrawCategory);
#else
return prepareToDraw(paint, kUnbuffered_DrawCategory);
#endif