blob: 49ec9b96a29aa5d7b410d1c271628a1180268af6 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
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
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
10#include "SkDisplayBounds.h"
11#include "SkAnimateMaker.h"
12
13#if SK_USE_CONDENSED_INFO == 0
14
15const SkMemberInfo SkDisplayBounds::fInfo[] = {
16 SK_MEMBER_INHERITED,
17 SK_MEMBER(inval, Boolean)
18};
19
20#endif
21
22DEFINE_GET_MEMBER(SkDisplayBounds);
23
24SkDisplayBounds::SkDisplayBounds() : inval(false) {
25}
26
27bool 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;
rmistry@google.comd6176b02012-08-23 18:14:13 +000039 else
reed@android.com8a1c16f2008-12-17 15:59:43 +000040 rect.join(fBounds);
41 }
42 return result;
43}