SkImage.cpp revision 6997ebbe5cf06c938cc893e1d0217dc4048edf82
16997ebbe5cf06c938cc893e1d0217dc4048edf82reed@google.com/*
26997ebbe5cf06c938cc893e1d0217dc4048edf82reed@google.com * Copyright 2012 Google Inc.
36997ebbe5cf06c938cc893e1d0217dc4048edf82reed@google.com *
46997ebbe5cf06c938cc893e1d0217dc4048edf82reed@google.com * Use of this source code is governed by a BSD-style license that can be
56997ebbe5cf06c938cc893e1d0217dc4048edf82reed@google.com * found in the LICENSE file.
66997ebbe5cf06c938cc893e1d0217dc4048edf82reed@google.com */
76997ebbe5cf06c938cc893e1d0217dc4048edf82reed@google.com
858b21ec7f06cfa8b7d7403a6108c0216345b3510reed@google.com#include "SkImage_Base.h"
9889b09edfeb5f461ca283dfd08ee6b23560a7859reed@google.com#include "SkImagePriv.h"
10f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com#include "SkBitmap.h"
1170e359055240d0de93da4ba71bf5833164fb394cmike@reedtribe.org#include "SkCanvas.h"
12f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com
13f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.comstatic SkImage_Base* asIB(SkImage* image) {
14f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com    return static_cast<SkImage_Base*>(image);
15f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com}
16f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com
17f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.comuint32_t SkImage::NextUniqueID() {
18f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com    static int32_t gUniqueID;
19f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com
20f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com    // never return 0;
21f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com    uint32_t id;
22f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com    do {
23f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com        id = sk_atomic_inc(&gUniqueID) + 1;
24f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com    } while (0 == id);
25f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com    return id;
26f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com}
27f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com
28f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.comvoid SkImage::draw(SkCanvas* canvas, SkScalar x, SkScalar y,
29f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com                   const SkPaint* paint) {
3070e359055240d0de93da4ba71bf5833164fb394cmike@reedtribe.org    asIB(this)->onDraw(canvas, x, y, paint);
31f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com}
32f6627b78f933b77b358ac0791c520f99b0e79fcareed@google.com
33