| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 
|  | 2 // Use of this source code is governed by a BSD-style license that can be | 
|  | 3 // found in the LICENSE file. | 
|  | 4 | 
|  | 5 #ifndef GeometryMapperTransformCache_h | 
|  | 6 #define GeometryMapperTransformCache_h | 
|  | 7 | 
|  | 8 #include "platform/PlatformExport.h" | 
|  | 9 | 
|  | 10 #include "platform/transforms/TransformationMatrix.h" | 
|  | 11 #include "wtf/Vector.h" | 
|  | 12 | 
|  | 13 namespace blink { | 
|  | 14 | 
|  | 15 class TransformPaintPropertyNode; | 
|  | 16 | 
|  | 17 // A GeometryMapperTransformCache hangs off a TransformPaintPropertyNode. It | 
|  | 18 // stores cached "transformed rects" (See GeometryMapper.h) from that node in | 
|  | 19 // ancestor spaces. | 
|  | 20 class PLATFORM_EXPORT GeometryMapperTransformCache { | 
|  | 21  public: | 
|  | 22   // Returns the transformed rect (see GeometryMapper.h) of |this| in the | 
|  | 23   // space of |ancestorTransform|, if there is one cached. Otherwise returns | 
|  | 24   // null. | 
|  | 25   const TransformationMatrix* getCachedTransform( | 
|  | 26       const TransformPaintPropertyNode* ancestorTransform); | 
|  | 27 | 
|  | 28   // Stores the "transformed rect" of |this| in the space of |ancestors|, | 
|  | 29   // into a local cache. | 
|  | 30   void setCachedTransform(const TransformPaintPropertyNode* ancestorTransform, | 
|  | 31                           const TransformationMatrix& toAncestor); | 
|  | 32 | 
|  | 33   static void clearCache(); | 
|  | 34 | 
|  | 35  private: | 
|  | 36   struct TransformCacheEntry { | 
|  | 37     const TransformPaintPropertyNode* ancestorNode; | 
|  | 38     TransformationMatrix toAncestor; | 
|  | 39     TransformCacheEntry(const TransformPaintPropertyNode* ancestorNodeArg, | 
|  | 40                         const TransformationMatrix& toAncestorArg) | 
|  | 41         : ancestorNode(ancestorNodeArg), toAncestor(toAncestorArg) {} | 
|  | 42   }; | 
|  | 43 | 
|  | 44   Vector<TransformCacheEntry>* getTransformCacheEntries(); | 
|  | 45 | 
|  | 46   std::unique_ptr<Vector<TransformCacheEntry>> m_transformCache; | 
|  | 47   unsigned m_cacheGeneration; | 
|  | 48 }; | 
|  | 49 | 
|  | 50 }  // namespace blink | 
|  | 51 | 
|  | 52 #endif  // GeometryMapperTransformCache_h | 
| OLD | NEW | 
|---|