diff options
author | 2011-10-12 19:53:16 +0000 | |
---|---|---|
committer | 2011-10-12 19:53:16 +0000 | |
commit | d38f137e9b813f8193675ebd3dfbfe8bc42639e9 (patch) | |
tree | 1e670c378d7b31a4538fde3c2b3e4e29b72c05b5 /src/gpu/GrPathRendererChain.h | |
parent | 4d5cb45f3e3e62633304b4911d131cdd02dfd541 (diff) |
Move gpu/include/* to include/gpu and gpu/src/* to src/gpu
Review URL: http://codereview.appspot.com/5250070/
git-svn-id: http://skia.googlecode.com/svn/trunk@2471 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/gpu/GrPathRendererChain.h')
-rw-r--r-- | src/gpu/GrPathRendererChain.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/gpu/GrPathRendererChain.h b/src/gpu/GrPathRendererChain.h new file mode 100644 index 0000000000..5719484921 --- /dev/null +++ b/src/gpu/GrPathRendererChain.h @@ -0,0 +1,63 @@ + +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + + +#ifndef GrPathRendererChain_DEFINED +#define GrPathRendererChain_DEFINED + +#include "GrRefCnt.h" +#include "SkTArray.h" + +class GrContext; +class GrDrawTarget; +class SkPath; +class GrPathRenderer; + +/** + * Keeps track of a ordered list of path renderers. When a path needs to be + * drawn this list is scanned to find the most preferred renderer. To add your + * path renderer to the list implement the GrPathRenderer::AddPathRenderers + * function. + */ +class GrPathRendererChain : public SkRefCnt { +public: + + enum UsageFlags { + kNone_UsageFlag = 0, + kNonAAOnly_UsageFlag = 1, + }; + + GrPathRendererChain(GrContext* context, UsageFlags flags); + + ~GrPathRendererChain(); + + // takes a ref and unrefs in destructor + GrPathRenderer* addPathRenderer(GrPathRenderer* pr); + + GrPathRenderer* getPathRenderer(const GrDrawTarget* target, + const SkPath& path, + GrPathFill fill); + +private: + + GrPathRendererChain(); + + void init(); + + enum { + kPreAllocCount = 8, + }; + bool fInit; + GrContext* fOwner; + UsageFlags fFlags; + SkSTArray<kPreAllocCount, GrPathRenderer*, true> fChain; +}; + +GR_MAKE_BITFIELD_OPS(GrPathRendererChain::UsageFlags) + +#endif |