Line data Source code
1 : /*-*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 : * This Source Code Form is subject to the terms of the Mozilla Public
3 : * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 : * You can obtain one at http://mozilla.org/MPL/2.0/. */
5 :
6 : #include "nsDisplayListInvalidation.h"
7 : #include "nsDisplayList.h"
8 : #include "nsIFrame.h"
9 : #include "nsTableFrame.h"
10 :
11 300 : nsDisplayItemGeometry::nsDisplayItemGeometry(nsDisplayItem* aItem, nsDisplayListBuilder* aBuilder)
12 : {
13 300 : MOZ_COUNT_CTOR(nsDisplayItemGeometry);
14 : bool snap;
15 300 : mBounds = aItem->GetBounds(aBuilder, &snap);
16 300 : }
17 :
18 496 : nsDisplayItemGeometry::~nsDisplayItemGeometry()
19 : {
20 248 : MOZ_COUNT_DTOR(nsDisplayItemGeometry);
21 248 : }
22 :
23 232 : nsDisplayItemGenericGeometry::nsDisplayItemGenericGeometry(nsDisplayItem* aItem, nsDisplayListBuilder* aBuilder)
24 : : nsDisplayItemGeometry(aItem, aBuilder)
25 232 : , mBorderRect(aItem->GetBorderRect())
26 232 : {}
27 :
28 : bool
29 111 : ShouldSyncDecodeImages(nsDisplayListBuilder* aBuilder)
30 : {
31 111 : return aBuilder->ShouldSyncDecodeImages();
32 : }
33 :
34 : void
35 526 : nsDisplayItemGenericGeometry::MoveBy(const nsPoint& aOffset)
36 : {
37 526 : nsDisplayItemGeometry::MoveBy(aOffset);
38 526 : mBorderRect.MoveBy(aOffset);
39 526 : }
40 :
41 22 : nsDisplayItemBoundsGeometry::nsDisplayItemBoundsGeometry(nsDisplayItem* aItem, nsDisplayListBuilder* aBuilder)
42 22 : : nsDisplayItemGeometry(aItem, aBuilder)
43 : {
44 : nscoord radii[8];
45 22 : mHasRoundedCorners = aItem->Frame()->GetBorderRadii(radii);
46 22 : }
47 :
48 22 : nsDisplayBorderGeometry::nsDisplayBorderGeometry(nsDisplayItem* aItem, nsDisplayListBuilder* aBuilder)
49 : : nsDisplayItemGeometry(aItem, aBuilder)
50 : , nsImageGeometryMixin(aItem, aBuilder)
51 22 : , mContentRect(aItem->GetContentRect())
52 22 : {}
53 :
54 : void
55 166 : nsDisplayBorderGeometry::MoveBy(const nsPoint& aOffset)
56 : {
57 166 : nsDisplayItemGeometry::MoveBy(aOffset);
58 166 : mContentRect.MoveBy(aOffset);
59 166 : }
60 :
61 16 : nsDisplayBackgroundGeometry::nsDisplayBackgroundGeometry(nsDisplayBackgroundImage* aItem,
62 16 : nsDisplayListBuilder* aBuilder)
63 : : nsDisplayItemGeometry(aItem, aBuilder)
64 : , nsImageGeometryMixin(aItem, aBuilder)
65 : , mPositioningArea(aItem->GetPositioningArea())
66 16 : , mDestRect(aItem->GetDestRect())
67 16 : {}
68 :
69 : void
70 177 : nsDisplayBackgroundGeometry::MoveBy(const nsPoint& aOffset)
71 : {
72 177 : nsDisplayItemGeometry::MoveBy(aOffset);
73 177 : mPositioningArea.MoveBy(aOffset);
74 177 : mDestRect.MoveBy(aOffset);
75 177 : }
76 :
77 4 : nsDisplayThemedBackgroundGeometry::nsDisplayThemedBackgroundGeometry(nsDisplayThemedBackground* aItem,
78 4 : nsDisplayListBuilder* aBuilder)
79 : : nsDisplayItemGeometry(aItem, aBuilder)
80 : , mPositioningArea(aItem->GetPositioningArea())
81 4 : , mWindowIsActive(aItem->IsWindowActive())
82 4 : {}
83 :
84 : void
85 46 : nsDisplayThemedBackgroundGeometry::MoveBy(const nsPoint& aOffset)
86 : {
87 46 : nsDisplayItemGeometry::MoveBy(aOffset);
88 46 : mPositioningArea.MoveBy(aOffset);
89 46 : }
90 :
91 2 : nsDisplayBoxShadowInnerGeometry::nsDisplayBoxShadowInnerGeometry(nsDisplayItem* aItem, nsDisplayListBuilder* aBuilder)
92 : : nsDisplayItemGeometry(aItem, aBuilder)
93 2 : , mPaddingRect(aItem->GetPaddingRect())
94 2 : {}
95 :
96 : void
97 23 : nsDisplayBoxShadowInnerGeometry::MoveBy(const nsPoint& aOffset)
98 : {
99 23 : nsDisplayItemGeometry::MoveBy(aOffset);
100 23 : mPaddingRect.MoveBy(aOffset);
101 23 : }
102 :
103 8 : nsDisplayBoxShadowOuterGeometry::nsDisplayBoxShadowOuterGeometry(nsDisplayItem* aItem,
104 8 : nsDisplayListBuilder* aBuilder, float aOpacity)
105 : : nsDisplayItemGenericGeometry(aItem, aBuilder)
106 8 : , mOpacity(aOpacity)
107 8 : {}
108 :
109 : void
110 0 : nsDisplaySolidColorRegionGeometry::MoveBy(const nsPoint& aOffset)
111 : {
112 0 : nsDisplayItemGeometry::MoveBy(aOffset);
113 0 : mRegion.MoveBy(aOffset);
114 0 : }
115 :
116 2 : nsDisplaySVGEffectGeometry::nsDisplaySVGEffectGeometry(nsDisplaySVGEffects* aItem, nsDisplayListBuilder* aBuilder)
117 : : nsDisplayItemGeometry(aItem, aBuilder)
118 : , mBBox(aItem->BBoxInUserSpace())
119 : , mUserSpaceOffset(aItem->UserSpaceOffset())
120 2 : , mFrameOffsetToReferenceFrame(aItem->ToReferenceFrame())
121 2 : {}
122 :
123 : void
124 4 : nsDisplaySVGEffectGeometry::MoveBy(const nsPoint& aOffset)
125 : {
126 4 : mBounds.MoveBy(aOffset);
127 4 : mFrameOffsetToReferenceFrame += aOffset;
128 4 : }
129 :
130 2 : nsDisplayMaskGeometry::nsDisplayMaskGeometry(nsDisplayMask* aItem, nsDisplayListBuilder* aBuilder)
131 : : nsDisplaySVGEffectGeometry(aItem, aBuilder)
132 : , nsImageGeometryMixin(aItem, aBuilder)
133 2 : , mDestRects(aItem->GetDestRects())
134 2 : {}
135 :
136 0 : nsDisplayFilterGeometry::nsDisplayFilterGeometry(nsDisplayFilter* aItem, nsDisplayListBuilder* aBuilder)
137 : : nsDisplaySVGEffectGeometry(aItem, aBuilder)
138 0 : , nsImageGeometryMixin(aItem, aBuilder)
139 0 : {}
140 :
141 14 : nsCharClipGeometry::nsCharClipGeometry(nsCharClipDisplayItem* aItem, nsDisplayListBuilder* aBuilder)
142 : : nsDisplayItemGenericGeometry(aItem, aBuilder)
143 14 : , mVisIStartEdge(aItem->mVisIStartEdge)
144 28 : , mVisIEndEdge(aItem->mVisIEndEdge)
145 14 : {}
146 :
147 0 : nsDisplayTableItemGeometry::nsDisplayTableItemGeometry(nsDisplayTableItem* aItem,
148 : nsDisplayListBuilder* aBuilder,
149 0 : const nsPoint& aFrameOffsetToViewport)
150 : : nsDisplayItemGenericGeometry(aItem, aBuilder)
151 : , nsImageGeometryMixin(aItem, aBuilder)
152 0 : , mFrameOffsetToViewport(aFrameOffsetToViewport)
153 0 : {}
|