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