28 if (!m.invert(&inverse)) {
35 SkM44 camera, perspective, viewport;
44 return viewport * perspective * camera * model *
inv(viewport);
66 do_draw(real_canvas, 0xFFFF0000);
74 real_canvas->drawPicture(pic);
static void do_draw(SkCanvas *canvas, SkColor color)
static SkM44 make_ctm(const Info &info, const SkM44 &model, SkSize size)
static SkM44 inv(const SkM44 &m)
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
void drawRect(const SkRect &rect, const SkPaint &paint)
void translate(SkScalar dx, SkScalar dy)
void concat(const SkMatrix &matrix)
static SkM44 LookAt(const SkV3 &eye, const SkV3 ¢er, const SkV3 &up)
static SkM44 Rotate(SkV3 axis, SkScalar radians)
@ kUninitialized_Constructor
SkM44 & setScale(SkScalar x, SkScalar y, SkScalar z=1)
static SkM44 Perspective(float near, float far, float angle)
SkCanvas * beginRecording(const SkRect &bounds, sk_sp< SkBBoxHierarchy > bbh)
sk_sp< SkPicture > finishRecordingAsPicture()
#define DEF_SIMPLE_GM(NAME, CANVAS, W, H)