1685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com 2685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com/* 3685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * Copyright 2006 The Android Open Source Project 4685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * 5685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * found in the LICENSE file. 7685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com */ 8685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com 9bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 10bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkDisplayBounds.h" 11bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkAnimateMaker.h" 12bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 13bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#if SK_USE_CONDENSED_INFO == 0 14bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 15bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comconst SkMemberInfo SkDisplayBounds::fInfo[] = { 16bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SK_MEMBER_INHERITED, 17bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SK_MEMBER(inval, Boolean) 18bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com}; 19bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 20bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#endif 21bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 22bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comDEFINE_GET_MEMBER(SkDisplayBounds); 23bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 24bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comSkDisplayBounds::SkDisplayBounds() : inval(false) { 25bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com} 26bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 27bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.combool SkDisplayBounds::draw(SkAnimateMaker& maker) { 28bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com maker.fDisplayList.fUnionBounds = SkToBool(inval); 29bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com maker.fDisplayList.fDrawBounds = false; 30bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com fBounds.setEmpty(); 31bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com bool result = INHERITED::draw(maker); 32bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com maker.fDisplayList.fUnionBounds = false; 33bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com maker.fDisplayList.fDrawBounds = true; 34bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com if (inval && fBounds.isEmpty() == false) { 35bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkIRect& rect = maker.fDisplayList.fInvalBounds; 36bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com maker.fDisplayList.fHasUnion = true; 37bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com if (rect.isEmpty()) 38bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com rect = fBounds; 39dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com else 40bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com rect.join(fBounds); 41bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com } 42bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com return result; 43bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com} 44