1f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com 2f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com/* 3f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com * Copyright 2012 Google Inc. 4f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com * 5f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com * Use of this source code is governed by a BSD-style license that can be 6f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com * found in the LICENSE file. 7f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com */ 8f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com 9f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com#ifndef GrSoftwarePathRenderer_DEFINED 10f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com#define GrSoftwarePathRenderer_DEFINED 11f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com 12f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com#include "GrPathRenderer.h" 13f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com 14b4f06d7605081e1e0ce794621063f37aee41b1d4robertphillips@google.comclass GrContext; 15b4f06d7605081e1e0ce794621063f37aee41b1d4robertphillips@google.comclass GrAutoScratchTexture; 16b4f06d7605081e1e0ce794621063f37aee41b1d4robertphillips@google.com 17b4f06d7605081e1e0ce794621063f37aee41b1d4robertphillips@google.com/** 18b4f06d7605081e1e0ce794621063f37aee41b1d4robertphillips@google.com * This class uses the software side to render a path to an SkBitmap and 19b4f06d7605081e1e0ce794621063f37aee41b1d4robertphillips@google.com * then uploads the result to the gpu 20b4f06d7605081e1e0ce794621063f37aee41b1d4robertphillips@google.com */ 21f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.comclass GrSoftwarePathRenderer : public GrPathRenderer { 22f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.compublic: 23d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com GrSoftwarePathRenderer(GrContext* context) 24f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com : fContext(context) { 25f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com } 26f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com 27e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com virtual bool canDrawPath(const SkPath&, 28e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com const SkStrokeRec&, 2945a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com const GrDrawTarget*, 3012b4e27ae1a29460e91a59f38122483e1faec697sugoi@google.com bool antiAlias) const SK_OVERRIDE; 31f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.comprotected: 32e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com virtual StencilSupport onGetStencilSupport(const SkPath&, 33e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com const SkStrokeRec&, 3445a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com const GrDrawTarget*) const SK_OVERRIDE; 3545a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com 36e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com virtual bool onDrawPath(const SkPath&, 37e79f320ed6c5ec9f6164ba84be1ff586532e6517robertphillips@google.com const SkStrokeRec&, 3845a15f551b5b3c6c747d8eaf6466b7d3b76a8faebsalomon@google.com GrDrawTarget*, 39f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com bool antiAlias) SK_OVERRIDE; 40d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com 41f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.comprivate: 42f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com GrContext* fContext; 43f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com 44f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com typedef GrPathRenderer INHERITED; 45f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com}; 46f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com 47f4c2c527dd3cab979621fdfbc07eb22fee103472robertphillips@google.com#endif 48