blob: b6fc4899da717c9e4cd34d1a44e01d5e547646f8 [file] [log] [blame]
reed@google.com6997ebb2012-07-30 19:50:31 +00001/*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
reed@google.com58b21ec2012-07-30 18:20:12 +00008#include "SkImage_Base.h"
reed@google.com889b09e2012-07-27 21:10:42 +00009#include "SkImagePriv.h"
reed@google.comf6627b72012-07-27 18:02:50 +000010#include "SkBitmap.h"
mike@reedtribe.org70e35902012-07-29 20:38:16 +000011#include "SkCanvas.h"
reed@google.comf6627b72012-07-27 18:02:50 +000012
robertphillips@google.coma22e2112012-08-16 14:58:06 +000013SK_DEFINE_INST_COUNT(SkImage)
14
reed@google.comf6627b72012-07-27 18:02:50 +000015static SkImage_Base* asIB(SkImage* image) {
16 return static_cast<SkImage_Base*>(image);
17}
18
reed@google.comf6627b72012-07-27 18:02:50 +000019uint32_t SkImage::NextUniqueID() {
20 static int32_t gUniqueID;
21
22 // never return 0;
23 uint32_t id;
24 do {
25 id = sk_atomic_inc(&gUniqueID) + 1;
26 } while (0 == id);
27 return id;
28}
29
30void SkImage::draw(SkCanvas* canvas, SkScalar x, SkScalar y,
31 const SkPaint* paint) {
mike@reedtribe.org70e35902012-07-29 20:38:16 +000032 asIB(this)->onDraw(canvas, x, y, paint);
reed@google.comf6627b72012-07-27 18:02:50 +000033}
34