5ead6da4ab
BUG=skia: Committed: https://skia.googlesource.com/skia/+/bc54fab1a4e5b51628a8c1557c62bc74e078870d Committed: https://skia.googlesource.com/skia/+/18055afb838a278b5a8436cd51dbfbb688e1e0a0 Review URL: https://codereview.chromium.org/664193002
61 lines
1.8 KiB
C++
61 lines
1.8 KiB
C++
/*
|
|
* Copyright 2013 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#ifndef GrOvalRenderer_DEFINED
|
|
#define GrOvalRenderer_DEFINED
|
|
|
|
#include "GrContext.h"
|
|
#include "GrPaint.h"
|
|
|
|
class GrContext;
|
|
class GrDrawTarget;
|
|
class GrPaint;
|
|
struct SkRect;
|
|
class SkStrokeRec;
|
|
|
|
/*
|
|
* This class wraps helper functions that draw ovals and roundrects (filled & stroked)
|
|
*/
|
|
class GrOvalRenderer : public SkRefCnt {
|
|
public:
|
|
SK_DECLARE_INST_COUNT(GrOvalRenderer)
|
|
|
|
GrOvalRenderer() : fRRectIndexBuffer(NULL), fStrokeRRectIndexBuffer(NULL) {}
|
|
~GrOvalRenderer() {
|
|
this->reset();
|
|
}
|
|
|
|
void reset();
|
|
|
|
bool drawOval(GrDrawTarget* target, const GrContext* context, bool useAA,
|
|
const SkRect& oval, const SkStrokeRec& stroke);
|
|
bool drawRRect(GrDrawTarget* target, GrContext* context, bool useAA,
|
|
const SkRRect& rrect, const SkStrokeRec& stroke);
|
|
bool drawDRRect(GrDrawTarget* target, GrContext* context, bool useAA,
|
|
const SkRRect& outer, const SkRRect& inner);
|
|
|
|
private:
|
|
bool drawEllipse(GrDrawTarget* target, const GrContext* context, bool useCoverageAA,
|
|
const SkRect& ellipse,
|
|
const SkStrokeRec& stroke);
|
|
bool drawDIEllipse(GrDrawTarget* target, const GrContext* context, bool useCoverageAA,
|
|
const SkRect& ellipse,
|
|
const SkStrokeRec& stroke);
|
|
void drawCircle(GrDrawTarget* target, const GrContext* context, bool useCoverageAA,
|
|
const SkRect& circle,
|
|
const SkStrokeRec& stroke);
|
|
|
|
GrIndexBuffer* rRectIndexBuffer(bool isStrokeOnly, GrGpu* gpu);
|
|
|
|
GrIndexBuffer* fRRectIndexBuffer;
|
|
GrIndexBuffer* fStrokeRRectIndexBuffer;
|
|
|
|
typedef SkRefCnt INHERITED;
|
|
};
|
|
|
|
#endif // GrOvalRenderer_DEFINED
|