LCOV - code coverage report
Current view: top level - gfx/2d - InlineTranslator.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 80 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 27 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #ifndef mozilla_layout_InlineTranslator_h
       8             : #define mozilla_layout_InlineTranslator_h
       9             : 
      10             : #include <istream>
      11             : 
      12             : #include "mozilla/gfx/2D.h"
      13             : #include "mozilla/gfx/Filters.h"
      14             : #include "mozilla/gfx/RecordedEvent.h"
      15             : #include "nsRefPtrHashtable.h"
      16             : 
      17             : namespace mozilla {
      18             : namespace gfx {
      19             : 
      20             : using gfx::Translator;
      21             : using gfx::ReferencePtr;
      22             : using gfx::DrawTarget;
      23             : using gfx::Path;
      24             : using gfx::SourceSurface;
      25             : using gfx::FilterNode;
      26             : using gfx::GradientStops;
      27             : using gfx::ScaledFont;
      28             : using gfx::NativeFontResource;
      29             : 
      30           0 : class InlineTranslator final : public Translator
      31             : {
      32             : public:
      33             :   explicit InlineTranslator(DrawTarget* aDT, void* aFontContext = nullptr);
      34             : 
      35             :   bool TranslateRecording(char *, size_t len);
      36             : 
      37           0 :   DrawTarget* LookupDrawTarget(ReferencePtr aRefPtr) final
      38             :   {
      39           0 :     DrawTarget* result = mDrawTargets.GetWeak(aRefPtr);
      40           0 :     MOZ_ASSERT(result);
      41           0 :     return result;
      42             :   }
      43             : 
      44           0 :   Path* LookupPath(ReferencePtr aRefPtr) final
      45             :   {
      46           0 :     Path* result = mPaths.GetWeak(aRefPtr);
      47           0 :     MOZ_ASSERT(result);
      48           0 :     return result;
      49             :   }
      50             : 
      51           0 :   SourceSurface* LookupSourceSurface(ReferencePtr aRefPtr) final
      52             :   {
      53           0 :     SourceSurface* result = mSourceSurfaces.GetWeak(aRefPtr);
      54           0 :     MOZ_ASSERT(result);
      55           0 :     return result;
      56             :   }
      57             : 
      58           0 :   FilterNode* LookupFilterNode(ReferencePtr aRefPtr) final
      59             :   {
      60           0 :     FilterNode* result = mFilterNodes.GetWeak(aRefPtr);
      61           0 :     MOZ_ASSERT(result);
      62           0 :     return result;
      63             :   }
      64             : 
      65           0 :   GradientStops* LookupGradientStops(ReferencePtr aRefPtr) final
      66             :   {
      67           0 :     GradientStops* result =  mGradientStops.GetWeak(aRefPtr);
      68           0 :     MOZ_ASSERT(result);
      69           0 :     return result;
      70             :   }
      71             : 
      72           0 :   ScaledFont* LookupScaledFont(ReferencePtr aRefPtr) final
      73             :   {
      74           0 :     ScaledFont* result = mScaledFonts.GetWeak(aRefPtr);
      75           0 :     MOZ_ASSERT(result);
      76           0 :     return result;
      77             :   }
      78             : 
      79           0 :   UnscaledFont* LookupUnscaledFont(ReferencePtr aRefPtr) final
      80             :   {
      81           0 :     UnscaledFont* result = mUnscaledFonts.GetWeak(aRefPtr);
      82           0 :     MOZ_ASSERT(result);
      83           0 :     return result;
      84             :   }
      85             : 
      86           0 :   NativeFontResource* LookupNativeFontResource(uint64_t aKey) final
      87             :   {
      88           0 :     NativeFontResource* result = mNativeFontResources.GetWeak(aKey);
      89           0 :     MOZ_ASSERT(result);
      90           0 :     return result;
      91             :   }
      92             : 
      93           0 :   void AddDrawTarget(ReferencePtr aRefPtr, DrawTarget *aDT) final
      94             :   {
      95           0 :     mDrawTargets.Put(aRefPtr, aDT);
      96           0 :   }
      97             : 
      98           0 :   void AddPath(ReferencePtr aRefPtr, Path *aPath) final
      99             :   {
     100           0 :     mPaths.Put(aRefPtr, aPath);
     101           0 :   }
     102             : 
     103           0 :   void AddSourceSurface(ReferencePtr aRefPtr, SourceSurface *aSurface) final
     104             :   {
     105           0 :     mSourceSurfaces.Put(aRefPtr, aSurface);
     106           0 :   }
     107             : 
     108           0 :   void AddFilterNode(ReferencePtr aRefPtr, FilterNode *aFilter) final
     109             :   {
     110           0 :     mFilterNodes.Put(aRefPtr, aFilter);
     111           0 :   }
     112             : 
     113           0 :   void AddGradientStops(ReferencePtr aRefPtr, GradientStops *aStops) final
     114             :   {
     115           0 :     mGradientStops.Put(aRefPtr, aStops);
     116           0 :   }
     117             : 
     118           0 :   void AddScaledFont(ReferencePtr aRefPtr, ScaledFont *aScaledFont) final
     119             :   {
     120           0 :     mScaledFonts.Put(aRefPtr, aScaledFont);
     121           0 :   }
     122             : 
     123           0 :   void AddUnscaledFont(ReferencePtr aRefPtr, UnscaledFont *aUnscaledFont) final
     124             :   {
     125           0 :     mUnscaledFonts.Put(aRefPtr, aUnscaledFont);
     126           0 :   }
     127             : 
     128           0 :   void AddNativeFontResource(uint64_t aKey,
     129             :                              NativeFontResource *aScaledFontResouce) final
     130             :   {
     131           0 :     mNativeFontResources.Put(aKey, aScaledFontResouce);
     132           0 :   }
     133             : 
     134           0 :   void RemoveDrawTarget(ReferencePtr aRefPtr) final
     135             :   {
     136           0 :     mDrawTargets.Remove(aRefPtr);
     137           0 :   }
     138             : 
     139           0 :   void RemovePath(ReferencePtr aRefPtr) final
     140             :   {
     141           0 :     mPaths.Remove(aRefPtr);
     142           0 :   }
     143             : 
     144           0 :   void RemoveSourceSurface(ReferencePtr aRefPtr) final
     145             :   {
     146           0 :     mSourceSurfaces.Remove(aRefPtr);
     147           0 :   }
     148             : 
     149           0 :   void RemoveFilterNode(ReferencePtr aRefPtr) final
     150             :   {
     151           0 :     mFilterNodes.Remove(aRefPtr);
     152           0 :   }
     153             : 
     154           0 :   void RemoveGradientStops(ReferencePtr aRefPtr) final
     155             :   {
     156           0 :     mGradientStops.Remove(aRefPtr);
     157           0 :   }
     158             : 
     159           0 :   void RemoveScaledFont(ReferencePtr aRefPtr) final
     160             :   {
     161           0 :     mScaledFonts.Remove(aRefPtr);
     162           0 :   }
     163             : 
     164           0 :   void RemoveUnscaledFont(ReferencePtr aRefPtr) final
     165             :   {
     166           0 :     mUnscaledFonts.Remove(aRefPtr);
     167           0 :   }
     168             : 
     169             : 
     170             :   already_AddRefed<DrawTarget> CreateDrawTarget(ReferencePtr aRefPtr,
     171             :                                                 const gfx::IntSize &aSize,
     172             :                                                 gfx::SurfaceFormat aFormat) final;
     173             : 
     174           0 :   mozilla::gfx::DrawTarget* GetReferenceDrawTarget() final { return mBaseDT; }
     175             : 
     176           0 :   void* GetFontContext() final { return mFontContext; }
     177             : 
     178             : private:
     179             :   RefPtr<DrawTarget> mBaseDT;
     180             :   void*              mFontContext;
     181             : 
     182             :   nsRefPtrHashtable<nsPtrHashKey<void>, DrawTarget> mDrawTargets;
     183             :   nsRefPtrHashtable<nsPtrHashKey<void>, Path> mPaths;
     184             :   nsRefPtrHashtable<nsPtrHashKey<void>, SourceSurface> mSourceSurfaces;
     185             :   nsRefPtrHashtable<nsPtrHashKey<void>, FilterNode> mFilterNodes;
     186             :   nsRefPtrHashtable<nsPtrHashKey<void>, GradientStops> mGradientStops;
     187             :   nsRefPtrHashtable<nsPtrHashKey<void>, ScaledFont> mScaledFonts;
     188             :   nsRefPtrHashtable<nsPtrHashKey<void>, UnscaledFont> mUnscaledFonts;
     189             :   nsRefPtrHashtable<nsUint64HashKey, NativeFontResource> mNativeFontResources;
     190             : };
     191             : 
     192             : } // namespace gfx
     193             : } // namespace mozilla
     194             : 
     195             : #endif // mozilla_layout_InlineTranslator_h

Generated by: LCOV version 1.13