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