gfx/skia/trunk/src/animator/SkDisplayBounds.cpp

branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
equal deleted inserted replaced
-1:000000000000 0:ce92650b7b4b
1
2 /*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9
10 #include "SkDisplayBounds.h"
11 #include "SkAnimateMaker.h"
12
13 #if SK_USE_CONDENSED_INFO == 0
14
15 const SkMemberInfo SkDisplayBounds::fInfo[] = {
16 SK_MEMBER_INHERITED,
17 SK_MEMBER(inval, Boolean)
18 };
19
20 #endif
21
22 DEFINE_GET_MEMBER(SkDisplayBounds);
23
24 SkDisplayBounds::SkDisplayBounds() : inval(false) {
25 }
26
27 bool SkDisplayBounds::draw(SkAnimateMaker& maker) {
28 maker.fDisplayList.fUnionBounds = SkToBool(inval);
29 maker.fDisplayList.fDrawBounds = false;
30 fBounds.setEmpty();
31 bool result = INHERITED::draw(maker);
32 maker.fDisplayList.fUnionBounds = false;
33 maker.fDisplayList.fDrawBounds = true;
34 if (inval && fBounds.isEmpty() == false) {
35 SkIRect& rect = maker.fDisplayList.fInvalBounds;
36 maker.fDisplayList.fHasUnion = true;
37 if (rect.isEmpty())
38 rect = fBounds;
39 else
40 rect.join(fBounds);
41 }
42 return result;
43 }

mercurial