| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 CCRenderPass_h | 5 #ifndef CCRenderPass_h |
| 6 #define CCRenderPass_h | 6 #define CCRenderPass_h |
| 7 | 7 |
| 8 #include "CCDrawQuad.h" | 8 #include "CCDrawQuad.h" |
| 9 #include "CCOcclusionTracker.h" | 9 #include "CCOcclusionTracker.h" |
| 10 #include "CCSharedQuadState.h" | 10 #include "CCSharedQuadState.h" |
| 11 #include "FloatRect.h" |
| 11 #include "SkColor.h" | 12 #include "SkColor.h" |
| 12 #include <public/WebFilterOperations.h> | 13 #include <public/WebFilterOperations.h> |
| 13 #include <public/WebTransformationMatrix.h> | 14 #include <public/WebTransformationMatrix.h> |
| 14 #include <wtf/HashMap.h> | 15 #include <wtf/HashMap.h> |
| 15 #include <wtf/PassOwnPtr.h> | 16 #include <wtf/PassOwnPtr.h> |
| 16 #include <wtf/Vector.h> | 17 #include <wtf/Vector.h> |
| 17 | 18 |
| 18 namespace WebCore { | 19 namespace cc { |
| 19 | 20 |
| 20 class CCLayerImpl; | 21 class CCLayerImpl; |
| 21 class CCRenderSurface; | 22 class CCRenderSurface; |
| 22 | 23 |
| 23 struct CCAppendQuadsData; | 24 struct CCAppendQuadsData; |
| 24 | 25 |
| 25 // A list of CCDrawQuad objects, sorted internally in front-to-back order. | 26 // A list of CCDrawQuad objects, sorted internally in front-to-back order. |
| 26 class CCQuadList : public Vector<OwnPtr<CCDrawQuad> > { | 27 class CCQuadList : public Vector<OwnPtr<CCDrawQuad> > { |
| 27 public: | 28 public: |
| 28 typedef reverse_iterator backToFrontIterator; | 29 typedef reverse_iterator backToFrontIterator; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 CCSharedQuadStateList m_sharedQuadStateList; | 97 CCSharedQuadStateList m_sharedQuadStateList; |
| 97 WebKit::WebTransformationMatrix m_transformToRootTarget; | 98 WebKit::WebTransformationMatrix m_transformToRootTarget; |
| 98 IntRect m_outputRect; | 99 IntRect m_outputRect; |
| 99 FloatRect m_damageRect; | 100 FloatRect m_damageRect; |
| 100 bool m_hasTransparentBackground; | 101 bool m_hasTransparentBackground; |
| 101 bool m_hasOcclusionFromOutsideTargetSurface; | 102 bool m_hasOcclusionFromOutsideTargetSurface; |
| 102 WebKit::WebFilterOperations m_filters; | 103 WebKit::WebFilterOperations m_filters; |
| 103 WebKit::WebFilterOperations m_backgroundFilters; | 104 WebKit::WebFilterOperations m_backgroundFilters; |
| 104 }; | 105 }; |
| 105 | 106 |
| 106 } // namespace WebCore | 107 } // namespace cc |
| 107 | 108 |
| 108 namespace WTF { | 109 namespace WTF { |
| 109 template<> struct HashTraits<WebCore::CCRenderPass::Id> : GenericHashTraits<WebC
ore::CCRenderPass::Id> { | 110 template<> struct HashTraits<cc::CCRenderPass::Id> : GenericHashTraits<cc::CCRen
derPass::Id> { |
| 110 static const bool emptyValueIsZero = false; | 111 static const bool emptyValueIsZero = false; |
| 111 static const bool needsDestruction = false; | 112 static const bool needsDestruction = false; |
| 112 static WebCore::CCRenderPass::Id emptyValue() { return WebCore::CCRenderPass
::Id(0, 0); } | 113 static cc::CCRenderPass::Id emptyValue() { return cc::CCRenderPass::Id(0, 0)
; } |
| 113 static void constructDeletedValue(WebCore::CCRenderPass::Id& slot) { slot =
WebCore::CCRenderPass::Id(-1, -1); } | 114 static void constructDeletedValue(cc::CCRenderPass::Id& slot) { slot = cc::C
CRenderPass::Id(-1, -1); } |
| 114 static bool isDeletedValue(WebCore::CCRenderPass::Id value) { return value.l
ayerId == -1 && value.index == -1; } | 115 static bool isDeletedValue(cc::CCRenderPass::Id value) { return value.layerI
d == -1 && value.index == -1; } |
| 115 }; | 116 }; |
| 116 template<> struct IntHash<WebCore::CCRenderPass::Id> { | 117 template<> struct IntHash<cc::CCRenderPass::Id> { |
| 117 static unsigned hash(const WebCore::CCRenderPass::Id& key) { return PairHash
<int, int>::hash(std::make_pair(key.layerId, key.index)); } | 118 static unsigned hash(const cc::CCRenderPass::Id& key) { return PairHash<int,
int>::hash(std::make_pair(key.layerId, key.index)); } |
| 118 static bool equal(const WebCore::CCRenderPass::Id& a, const WebCore::CCRende
rPass::Id& b) { return a == b; } | 119 static bool equal(const cc::CCRenderPass::Id& a, const cc::CCRenderPass::Id&
b) { return a == b; } |
| 119 static const bool safeToCompareToEmptyOrDeleted = true; | 120 static const bool safeToCompareToEmptyOrDeleted = true; |
| 120 }; | 121 }; |
| 121 template<> struct DefaultHash<WebCore::CCRenderPass::Id> { | 122 template<> struct DefaultHash<cc::CCRenderPass::Id> { |
| 122 typedef IntHash<WebCore::CCRenderPass::Id> Hash; | 123 typedef IntHash<cc::CCRenderPass::Id> Hash; |
| 123 }; | 124 }; |
| 124 } // namespace WTF | 125 } // namespace WTF |
| 125 | 126 |
| 126 namespace WebCore { | 127 namespace cc { |
| 127 typedef Vector<CCRenderPass*> CCRenderPassList; | 128 typedef Vector<CCRenderPass*> CCRenderPassList; |
| 128 typedef HashMap<CCRenderPass::Id, OwnPtr<CCRenderPass> > CCRenderPassIdHashMap; | 129 typedef HashMap<CCRenderPass::Id, OwnPtr<CCRenderPass> > CCRenderPassIdHashMap; |
| 129 } // namespace WebCore | 130 } // namespace cc |
| 130 | 131 |
| 131 #endif | 132 #endif |
| OLD | NEW |