1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */ 8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkDisplayBounds.h" 118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkAnimateMaker.h" 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkDisplayBounds::fInfo[] = { 168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_INHERITED, 178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(inval, Boolean) 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkDisplayBounds); 238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSkDisplayBounds::SkDisplayBounds() : inval(false) { 258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkDisplayBounds::draw(SkAnimateMaker& maker) { 288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com maker.fDisplayList.fUnionBounds = SkToBool(inval); 298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com maker.fDisplayList.fDrawBounds = false; 308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fBounds.setEmpty(); 318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com bool result = INHERITED::draw(maker); 328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com maker.fDisplayList.fUnionBounds = false; 338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com maker.fDisplayList.fDrawBounds = true; 348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com if (inval && fBounds.isEmpty() == false) { 358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkIRect& rect = maker.fDisplayList.fInvalBounds; 368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com maker.fDisplayList.fHasUnion = true; 378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com if (rect.isEmpty()) 388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com rect = fBounds; 39d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com else 408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com rect.join(fBounds); 418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com } 428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return result; 438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 44