| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef DisplayItem_h | 5 #ifndef DisplayItem_h |
| 6 #define DisplayItem_h | 6 #define DisplayItem_h |
| 7 | 7 |
| 8 #include "platform/PlatformExport.h" | 8 #include "platform/PlatformExport.h" |
| 9 #include "platform/graphics/ContiguousContainer.h" | 9 #include "platform/graphics/ContiguousContainer.h" |
| 10 #include "platform/graphics/paint/DisplayItemClient.h" | 10 #include "platform/graphics/paint/DisplayItemClient.h" |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 ScrollbarForwardButtonStart, | 84 ScrollbarForwardButtonStart, |
| 85 ScrollbarForwardTrack, | 85 ScrollbarForwardTrack, |
| 86 ScrollbarHorizontal, // For ScrollbarThemeMacNonOverlayAPI only. | 86 ScrollbarHorizontal, // For ScrollbarThemeMacNonOverlayAPI only. |
| 87 ScrollbarThumb, | 87 ScrollbarThumb, |
| 88 ScrollbarTickmarks, | 88 ScrollbarTickmarks, |
| 89 ScrollbarTrackBackground, | 89 ScrollbarTrackBackground, |
| 90 ScrollbarVertical, // For ScrollbarThemeMacNonOverlayAPI only. | 90 ScrollbarVertical, // For ScrollbarThemeMacNonOverlayAPI only. |
| 91 SelectionGap, | 91 SelectionGap, |
| 92 SelectionTint, | 92 SelectionTint, |
| 93 TableCellBackgroundFromSelfPaintingRow, // FIXME: To be deprecated. | 93 TableCellBackgroundFromSelfPaintingRow, // FIXME: To be deprecated. |
| 94 // Table collapsed borders can be painted together (e.g., left & top) bu
t there are at most 4 phases of collapsed |
| 95 // border painting for a single cell. To disambiguate these phases of co
llapsed border painting, a mask is used. |
| 96 // TableCollapsedBorderBase can be larger than TableCollapsedBorderUnali
gnedBase to ensure the base lower bits are 0's. |
| 97 TableCollapsedBorderUnalignedBase, |
| 98 TableCollapsedBorderBase = (((TableCollapsedBorderUnalignedBase - 1) >>
4) + 1) << 4, |
| 99 TableCollapsedBorderLast = TableCollapsedBorderBase + 0x0f, |
| 94 VideoBitmap, | 100 VideoBitmap, |
| 95 WebPlugin, | 101 WebPlugin, |
| 96 WebFont, | 102 WebFont, |
| 97 DrawingLast = WebFont, | 103 DrawingLast = WebFont, |
| 98 | 104 |
| 99 CachedDrawingFirst, | 105 CachedDrawingFirst, |
| 100 CachedDrawingLast = CachedDrawingFirst + DrawingLast - DrawingFirst, | 106 CachedDrawingLast = CachedDrawingFirst + DrawingLast - DrawingFirst, |
| 101 | 107 |
| 102 ClipFirst, | 108 ClipFirst, |
| 103 ClipBoxPaintPhaseFirst = ClipFirst, | 109 ClipBoxPaintPhaseFirst = ClipFirst, |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 | 177 |
| 172 EndSubtreeFirst, | 178 EndSubtreeFirst, |
| 173 EndSubtreePaintPhaseFirst = EndSubtreeFirst, | 179 EndSubtreePaintPhaseFirst = EndSubtreeFirst, |
| 174 EndSubtreePaintPhaseLast = EndSubtreePaintPhaseFirst + PaintPhaseMax, | 180 EndSubtreePaintPhaseLast = EndSubtreePaintPhaseFirst + PaintPhaseMax, |
| 175 EndSubtreeLast = EndSubtreePaintPhaseLast, | 181 EndSubtreeLast = EndSubtreePaintPhaseLast, |
| 176 | 182 |
| 177 UninitializedType, | 183 UninitializedType, |
| 178 TypeLast = UninitializedType | 184 TypeLast = UninitializedType |
| 179 }; | 185 }; |
| 180 | 186 |
| 187 static_assert(TableCollapsedBorderBase >= TableCollapsedBorderUnalignedBase,
"TableCollapsedBorder types overlap with other types"); |
| 188 static_assert((TableCollapsedBorderBase & 0xf) == 0, "The lowest 4 bits of T
ableCollapsedBorderBase should be zero"); |
| 189 // Bits or'ed onto TableCollapsedBorderBase to generate a real table collaps
ed border type. |
| 190 enum TableCollspaedBorderSides { |
| 191 TableCollapsedBorderTop = 1 << 0, |
| 192 TableCollapsedBorderRight = 1 << 1, |
| 193 TableCollapsedBorderBottom = 1 << 2, |
| 194 TableCollapsedBorderLeft = 1 << 3, |
| 195 }; |
| 196 |
| 181 DisplayItem(const DisplayItemClientWrapper& client, Type type, size_t derive
dSize) | 197 DisplayItem(const DisplayItemClientWrapper& client, Type type, size_t derive
dSize) |
| 182 : m_client(client.displayItemClient()) | 198 : m_client(client.displayItemClient()) |
| 183 , m_scope(0) | 199 , m_scope(0) |
| 184 , m_type(type) | 200 , m_type(type) |
| 185 , m_derivedSize(derivedSize) | 201 , m_derivedSize(derivedSize) |
| 186 , m_skippedCache(false) | 202 , m_skippedCache(false) |
| 187 #ifndef NDEBUG | 203 #ifndef NDEBUG |
| 188 , m_clientDebugString(client.debugName()) | 204 , m_clientDebugString(client.debugName()) |
| 189 #endif | 205 #endif |
| 190 { | 206 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 212 && type == item.m_type | 228 && type == item.m_type |
| 213 && scope == item.m_scope; | 229 && scope == item.m_scope; |
| 214 } | 230 } |
| 215 | 231 |
| 216 const DisplayItemClient client; | 232 const DisplayItemClient client; |
| 217 const Type type; | 233 const Type type; |
| 218 const unsigned scope; | 234 const unsigned scope; |
| 219 }; | 235 }; |
| 220 | 236 |
| 221 // Convert cached type to non-cached type (e.g., Type::CachedSVGImage -> Typ
e::SVGImage). | 237 // Convert cached type to non-cached type (e.g., Type::CachedSVGImage -> Typ
e::SVGImage). |
| 222 Type nonCachedType() const | 238 static Type nonCachedType(Type type) |
| 223 { | 239 { |
| 224 if (isCachedDrawingType(m_type)) | 240 if (isCachedDrawingType(type)) |
| 225 return cachedDrawingTypeToDrawingType(m_type); | 241 return cachedDrawingTypeToDrawingType(type); |
| 226 if (isCachedSubtreeType(m_type)) | 242 if (isCachedSubtreeType(type)) |
| 227 return cachedSubtreeTypeToBeginSubtreeType(m_type); | 243 return cachedSubtreeTypeToBeginSubtreeType(type); |
| 228 return m_type; | 244 return type; |
| 229 } | 245 } |
| 230 | 246 |
| 231 // Return the Id with cached type converted to non-cached type. | 247 // Return the Id with cached type converted to non-cached type. |
| 232 Id nonCachedId() const | 248 Id nonCachedId() const |
| 233 { | 249 { |
| 234 return Id(m_client, nonCachedType(), m_scope); | 250 return Id(m_client, nonCachedType(m_type), m_scope); |
| 235 } | 251 } |
| 236 | 252 |
| 237 virtual void replay(GraphicsContext&) { } | 253 virtual void replay(GraphicsContext&) { } |
| 238 | 254 |
| 239 DisplayItemClient client() const { return m_client; } | 255 DisplayItemClient client() const { return m_client; } |
| 240 Type type() const { return m_type; } | 256 Type type() const { return m_type; } |
| 241 | 257 |
| 242 void setScope(unsigned scope) { m_scope = scope; } | 258 void setScope(unsigned scope) { m_scope = scope; } |
| 243 unsigned scope() { return m_scope; } | 259 unsigned scope() { return m_scope; } |
| 244 | 260 |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 bool isEndAndPairedWith(DisplayItem::Type otherType) const override = 0; | 399 bool isEndAndPairedWith(DisplayItem::Type otherType) const override = 0; |
| 384 #endif | 400 #endif |
| 385 | 401 |
| 386 private: | 402 private: |
| 387 bool isEnd() const final { return true; } | 403 bool isEnd() const final { return true; } |
| 388 }; | 404 }; |
| 389 | 405 |
| 390 } // namespace blink | 406 } // namespace blink |
| 391 | 407 |
| 392 #endif // DisplayItem_h | 408 #endif // DisplayItem_h |
| OLD | NEW |