a3a704afa3
This completes pushing through the new virtual didConcat44() to our subclasses, and introduces didScale() for future optimizations. We don't call didScale yet, until external subclasses are also updated. This was derived from https://skia-review.googlesource.com/c/skia/+/263349 bug: skia: 9768 Change-Id: Ia26b48e76e323037082e8f2ee83673c26b99ebed Reviewed-on: https://skia-review.googlesource.com/c/skia/+/263702 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
76 lines
2.9 KiB
C++
76 lines
2.9 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 SkLuaCanvas_DEFINED
|
|
#define SkLuaCanvas_DEFINED
|
|
|
|
#include "include/core/SkCanvas.h"
|
|
#include "include/core/SkString.h"
|
|
#include "include/core/SkVertices.h"
|
|
|
|
struct lua_State;
|
|
|
|
class SkLuaCanvas : public SkCanvas {
|
|
public:
|
|
void pushThis();
|
|
|
|
SkLuaCanvas(int width, int height, lua_State*, const char function[]);
|
|
~SkLuaCanvas() override;
|
|
|
|
protected:
|
|
void willSave() override;
|
|
SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec&) override;
|
|
bool onDoSaveBehind(const SkRect*) override;
|
|
void willRestore() override;
|
|
|
|
void didConcat44(const SkScalar[16]) override;
|
|
void didConcat(const SkMatrix&) override;
|
|
void didSetMatrix(const SkMatrix&) override;
|
|
void didScale(SkScalar, SkScalar) override;
|
|
void didTranslate(SkScalar, SkScalar) override;
|
|
|
|
void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) override;
|
|
virtual void onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y,
|
|
const SkPaint& paint) override;
|
|
|
|
void onDrawPaint(const SkPaint&) override;
|
|
void onDrawPoints(PointMode, size_t count, const SkPoint pts[], const SkPaint&) override;
|
|
void onDrawRect(const SkRect&, const SkPaint&) override;
|
|
void onDrawOval(const SkRect&, const SkPaint&) override;
|
|
void onDrawArc(const SkRect&, SkScalar, SkScalar, bool, const SkPaint&) override;
|
|
void onDrawRRect(const SkRRect&, const SkPaint&) override;
|
|
void onDrawPath(const SkPath&, const SkPaint&) override;
|
|
void onDrawBitmap(const SkBitmap&, SkScalar left, SkScalar top, const SkPaint*) override;
|
|
void onDrawBitmapRect(const SkBitmap&, const SkRect* src, const SkRect& dst, const SkPaint*,
|
|
SrcRectConstraint) override;
|
|
void onDrawImage(const SkImage*, SkScalar left, SkScalar top, const SkPaint*) override;
|
|
void onDrawImageRect(const SkImage*, const SkRect* src, const SkRect& dst,
|
|
const SkPaint*, SrcRectConstraint) override;
|
|
void onDrawBitmapNine(const SkBitmap&, const SkIRect& center, const SkRect& dst,
|
|
const SkPaint*) override;
|
|
void onDrawVerticesObject(const SkVertices*, const SkVertices::Bone bones[], int boneCount,
|
|
SkBlendMode, const SkPaint&) override;
|
|
|
|
void onClipRect(const SkRect&, SkClipOp, ClipEdgeStyle) override;
|
|
void onClipRRect(const SkRRect&, SkClipOp, ClipEdgeStyle) override;
|
|
void onClipPath(const SkPath&, SkClipOp, ClipEdgeStyle) override;
|
|
void onClipRegion(const SkRegion&, SkClipOp) override;
|
|
|
|
void onDrawPicture(const SkPicture*, const SkMatrix*, const SkPaint*) override;
|
|
void onDrawDrawable(SkDrawable*, const SkMatrix*) override;
|
|
|
|
private:
|
|
lua_State* fL;
|
|
SkString fFunc;
|
|
|
|
void sendverb(const char verb[]);
|
|
|
|
typedef SkCanvas INHERITED;
|
|
};
|
|
|
|
#endif
|