Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(360)

Side by Side Diff: Source/core/rendering/RenderLayerModelObject.cpp

Issue 17471008: Rework compositor touch hit testing (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Various fixes and test additions Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
7 * Copyright (C) 2010, 2012 Google Inc. All rights reserved. 7 * Copyright (C) 2010, 2012 Google Inc. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
11 * License as published by the Free Software Foundation; either 11 * License as published by the Free Software Foundation; either
12 * version 2 of the License, or (at your option) any later version. 12 * version 2 of the License, or (at your option) any later version.
13 * 13 *
14 * This library is distributed in the hope that it will be useful, 14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Library General Public License for more details. 17 * Library General Public License for more details.
18 * 18 *
19 * You should have received a copy of the GNU Library General Public License 19 * You should have received a copy of the GNU Library General Public License
20 * along with this library; see the file COPYING.LIB. If not, write to 20 * along with this library; see the file COPYING.LIB. If not, write to
21 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 21 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 * Boston, MA 02110-1301, USA. 22 * Boston, MA 02110-1301, USA.
23 */ 23 */
24 24
25 #include "config.h" 25 #include "config.h"
26 #include "core/rendering/RenderLayerModelObject.h" 26 #include "core/rendering/RenderLayerModelObject.h"
27 27
28 #include "core/rendering/RenderLayer.h" 28 #include "core/rendering/RenderLayer.h"
29 #include "core/rendering/RenderLayerBacking.h"
29 #include "core/rendering/RenderView.h" 30 #include "core/rendering/RenderView.h"
30 31
31 using namespace std; 32 using namespace std;
32 33
33 namespace WebCore { 34 namespace WebCore {
34 35
35 bool RenderLayerModelObject::s_wasFloating = false; 36 bool RenderLayerModelObject::s_wasFloating = false;
36 bool RenderLayerModelObject::s_hadLayer = false; 37 bool RenderLayerModelObject::s_hadLayer = false;
37 bool RenderLayerModelObject::s_hadTransform = false; 38 bool RenderLayerModelObject::s_hadTransform = false;
38 bool RenderLayerModelObject::s_layerWasSelfPainting = false; 39 bool RenderLayerModelObject::s_layerWasSelfPainting = false;
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 } 183 }
183 } 184 }
184 185
185 void RenderLayerModelObject::reportMemoryUsage(MemoryObjectInfo* memoryObjectInf o) const 186 void RenderLayerModelObject::reportMemoryUsage(MemoryObjectInfo* memoryObjectInf o) const
186 { 187 {
187 MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering) ; 188 MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering) ;
188 RenderObject::reportMemoryUsage(memoryObjectInfo); 189 RenderObject::reportMemoryUsage(memoryObjectInfo);
189 info.addWeakPointer(m_layer); 190 info.addWeakPointer(m_layer);
190 } 191 }
191 192
193 void RenderLayerModelObject::addLayerHitTestRects(LayerHitTestRects& rects, cons t RenderLayer* currentCompositedLayer, const LayoutPoint& layerOffset) const
194 {
195 // If we have a self painting layer then our current layer/offset is irrelev ant.
196 // TODO: I don't think this is quite the right approach in the general case.
197 // Rather than update the offset, we probably need to map quads from one lay er space
198 // to another, taking into account transforms (eg. scale) and clips (eg. ove rflow).
199 LayoutPoint adjustedLayerOffset = layerOffset;
200 if (hasSelfPaintingLayer())
201 enclosingCompositedLayerAndOffset(&currentCompositedLayer, adjustedLayer Offset);
202
203 RenderObject::addLayerHitTestRects(rects, currentCompositedLayer, adjustedLa yerOffset);
204 }
205
192 } // namespace WebCore 206 } // namespace WebCore
193 207
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698