mozilla-disable-skia-be.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Sun, 12 Feb 2017 08:42:06 +0100
branchfirefox51
changeset 940 f63a4ac0fe06
permissions -rw-r--r--
51.0.1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
940
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
# HG changeset patch
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     3
# User Lee Salzman <lsalzman@mozilla.com>
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
# Date 1484854371 18000
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
# Node ID 42afdb8f7e6b3e8a465042f64c6c49782f231af4
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
# Parent  dfadd79c97458f898d542461033a61dd34d3a5f0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
Bug 1319374 - Wrap PaintCounter with ifdef USE_SKIA. r=mchang, a=jcristau
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
diff --git a/gfx/2d/BorrowedContext.h b/gfx/2d/BorrowedContext.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
--- a/gfx/2d/BorrowedContext.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
+++ b/gfx/2d/BorrowedContext.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
@@ -190,18 +190,28 @@ public:
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
   ~BorrowedCGContext() {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
     MOZ_ASSERT(!cg);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
   CGContextRef cg;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
 private:
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
+#ifdef USE_SKIA
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
   static CGContextRef BorrowCGContextFromDrawTarget(DrawTarget *aDT);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
   static void ReturnCGContextToDrawTarget(DrawTarget *aDT, CGContextRef cg);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
+#else
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
+  static CGContextRef BorrowCGContextFromDrawTarget(DrawTarget *aDT) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
+    MOZ_CRASH("Not supported without Skia");
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
+  }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
+  static void ReturnCGContextToDrawTarget(DrawTarget *aDT, CGContextRef cg) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    30
+    MOZ_CRASH("not supported without Skia");
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
+  }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
+#endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
   DrawTarget *mDT;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
 };
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
 #endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
 } // namespace gfx
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
 } // namespace mozilla
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
 #endif // _MOZILLA_GFX_BORROWED_CONTEXT_H
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
diff --git a/gfx/layers/composite/LayerManagerComposite.cpp b/gfx/layers/composite/LayerManagerComposite.cpp
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
--- a/gfx/layers/composite/LayerManagerComposite.cpp
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43
+++ b/gfx/layers/composite/LayerManagerComposite.cpp
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    44
@@ -7,17 +7,16 @@
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    45
 #include <stddef.h>                     // for size_t
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
 #include <stdint.h>                     // for uint16_t, uint32_t
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    47
 #include "CanvasLayerComposite.h"       // for CanvasLayerComposite
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    48
 #include "ColorLayerComposite.h"        // for ColorLayerComposite
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    49
 #include "Composer2D.h"                 // for Composer2D
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    50
 #include "CompositableHost.h"           // for CompositableHost
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    51
 #include "ContainerLayerComposite.h"    // for ContainerLayerComposite, etc
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    52
 #include "FPSCounter.h"                 // for FPSState, FPSCounter
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    53
-#include "PaintCounter.h"               // For PaintCounter
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    54
 #include "FrameMetrics.h"               // for FrameMetrics
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    55
 #include "GeckoProfiler.h"              // for profiler_set_frame_number, etc
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    56
 #include "ImageLayerComposite.h"        // for ImageLayerComposite
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    57
 #include "Layers.h"                     // for Layer, ContainerLayer, etc
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    58
 #include "LayerScope.h"                 // for LayerScope Tool
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    59
 #include "protobuf/LayerScopePacket.pb.h" // for protobuf (LayerScope)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    60
 #include "PaintedLayerComposite.h"      // for PaintedLayerComposite
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    61
 #include "TiledContentHost.h"
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    62
@@ -68,16 +67,20 @@
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    63
 #include "nsScreenManagerGonk.h"
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    64
 #include "nsWindow.h"
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    65
 #endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    66
 #include "GeckoProfiler.h"
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    67
 #include "TextRenderer.h"               // for TextRenderer
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    68
 #include "mozilla/layers/CompositorBridgeParent.h"
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    69
 #include "TreeTraversal.h"              // for ForEachNode
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    70
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    71
+#ifdef USE_SKIA
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    72
+#include "PaintCounter.h"               // For PaintCounter
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    73
+#endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    74
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    75
 class gfxContext;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    76
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    77
 namespace mozilla {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    78
 namespace layers {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    79
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    80
 class ImageLayer;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    81
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    82
 using namespace mozilla::gfx;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    83
@@ -128,16 +131,20 @@ LayerManagerComposite::LayerManagerCompo
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    84
 , mGeometryChanged(true)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    85
 , mLastFrameMissedHWC(false)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    86
 , mWindowOverlayChanged(false)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    87
 , mLastPaintTime(TimeDuration::Forever())
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    88
 , mRenderStartTime(TimeStamp::Now())
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    89
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    90
   mTextRenderer = new TextRenderer(aCompositor);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    91
   MOZ_ASSERT(aCompositor);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    92
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    93
+#ifdef USE_SKIA
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    94
+  mPaintCounter = nullptr;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    95
+#endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    96
 }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    97
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    98
 LayerManagerComposite::~LayerManagerComposite()
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    99
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   100
   Destroy();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   101
 }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   102
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   103
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   104
@@ -146,18 +153,21 @@ LayerManagerComposite::Destroy()
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   105
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   106
   if (!mDestroyed) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   107
     mCompositor->GetWidget()->CleanupWindowEffects();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   108
     if (mRoot) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   109
       RootLayer()->Destroy();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   110
     }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   111
     mRoot = nullptr;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   112
     mClonedLayerTreeProperties = nullptr;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   113
+    mDestroyed = true;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   114
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   115
+#ifdef USE_SKIA
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   116
     mPaintCounter = nullptr;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   117
-    mDestroyed = true;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   118
+#endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   119
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   120
 }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   121
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   122
 void
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   123
 LayerManagerComposite::UpdateRenderBounds(const IntRect& aRect)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   124
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   125
   mRenderBounds = aRect;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   126
 }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   127
@@ -559,48 +569,52 @@ LayerManagerComposite::RootLayer() const
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   128
 #endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   129
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   130
 void
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   131
 LayerManagerComposite::InvalidateDebugOverlay(nsIntRegion& aInvalidRegion, const IntRect& aBounds)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   132
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   133
   bool drawFps = gfxPrefs::LayersDrawFPS();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   134
   bool drawFrameCounter = gfxPrefs::DrawFrameCounter();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   135
   bool drawFrameColorBars = gfxPrefs::CompositorDrawColorBars();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   136
-  bool drawPaintTimes = gfxPrefs::AlwaysPaint();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   137
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   138
   if (drawFps || drawFrameCounter) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   139
     aInvalidRegion.Or(aInvalidRegion, nsIntRect(0, 0, 256, 256));
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   140
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   141
   if (drawFrameColorBars) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   142
     aInvalidRegion.Or(aInvalidRegion, nsIntRect(0, 0, 10, aBounds.height));
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   143
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   144
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   145
+#ifdef USE_SKIA
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   146
+  bool drawPaintTimes = gfxPrefs::AlwaysPaint();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   147
   if (drawPaintTimes) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   148
     aInvalidRegion.Or(aInvalidRegion, nsIntRect(PaintCounter::GetPaintRect()));
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   149
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   150
+#endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   151
 }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   152
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   153
+#ifdef USE_SKIA
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   154
 void
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   155
 LayerManagerComposite::DrawPaintTimes(Compositor* aCompositor)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   156
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   157
   if (!mPaintCounter) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   158
     mPaintCounter = new PaintCounter();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   159
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   160
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   161
   TimeDuration compositeTime = TimeStamp::Now() - mRenderStartTime;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   162
   mPaintCounter->Draw(aCompositor, mLastPaintTime, compositeTime);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   163
 }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   164
+#endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   165
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   166
 static uint16_t sFrameCount = 0;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   167
 void
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   168
 LayerManagerComposite::RenderDebugOverlay(const IntRect& aBounds)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   169
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   170
   bool drawFps = gfxPrefs::LayersDrawFPS();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   171
   bool drawFrameCounter = gfxPrefs::DrawFrameCounter();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   172
   bool drawFrameColorBars = gfxPrefs::CompositorDrawColorBars();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   173
-  bool drawPaintTimes = gfxPrefs::AlwaysPaint();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   174
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   175
   TimeStamp now = TimeStamp::Now();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   176
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   177
   if (drawFps) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   178
     if (!mFPS) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   179
       mFPS = MakeUnique<FPSState>();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   180
     }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   181
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   182
@@ -731,19 +745,22 @@ LayerManagerComposite::RenderDebugOverla
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   183
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   184
 #endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   185
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   186
   if (drawFrameColorBars || drawFrameCounter) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   187
     // We intentionally overflow at 2^16.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   188
     sFrameCount++;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   189
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   190
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   191
+#ifdef USE_SKIA
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   192
+  bool drawPaintTimes = gfxPrefs::AlwaysPaint();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   193
   if (drawPaintTimes) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   194
     DrawPaintTimes(mCompositor);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   195
   }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   196
+#endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   197
 }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   198
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   199
 RefPtr<CompositingRenderTarget>
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   200
 LayerManagerComposite::PushGroupForLayerEffects()
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   201
 {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   202
   // This is currently true, so just making sure that any new use of this
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   203
   // method is flagged for investigation
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   204
   MOZ_ASSERT(gfxPrefs::LayersEffectInvert() ||
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   205
diff --git a/gfx/layers/composite/LayerManagerComposite.h b/gfx/layers/composite/LayerManagerComposite.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   206
--- a/gfx/layers/composite/LayerManagerComposite.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   207
+++ b/gfx/layers/composite/LayerManagerComposite.h
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   208
@@ -326,21 +326,16 @@ private:
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   209
    * Render the current layer tree to the active target.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   210
    */
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   211
   void Render(const nsIntRegion& aInvalidRegion, const nsIntRegion& aOpaqueRegion);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   212
 #if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_WIDGET_GONK)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   213
   void RenderToPresentationSurface();
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   214
 #endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   215
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   216
   /**
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   217
-   * Render paint and composite times above the frame.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   218
-   */
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   219
-  void DrawPaintTimes(Compositor* aCompositor);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   220
-
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   221
-  /**
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   222
    * We need to know our invalid region before we're ready to render.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   223
    */
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   224
   void InvalidateDebugOverlay(nsIntRegion& aInvalidRegion, const gfx::IntRect& aBounds);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   225
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   226
   /**
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   227
    * Render debug overlays such as the FPS/FrameCounter above the frame.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   228
    */
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   229
   void RenderDebugOverlay(const gfx::IntRect& aBounds);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   230
@@ -386,19 +381,26 @@ private:
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   231
   RefPtr<TextRenderer> mTextRenderer;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   232
   bool mGeometryChanged;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   233
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   234
   // Testing property. If hardware composer is supported, this will return
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   235
   // true if the last frame was deemed 'too complicated' to be rendered.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   236
   bool mLastFrameMissedHWC;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   237
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   238
   bool mWindowOverlayChanged;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   239
-  RefPtr<PaintCounter> mPaintCounter;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   240
   TimeDuration mLastPaintTime;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   241
   TimeStamp mRenderStartTime;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   242
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   243
+#ifdef USE_SKIA
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   244
+  /**
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   245
+   * Render paint and composite times above the frame.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   246
+   */
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   247
+  void DrawPaintTimes(Compositor* aCompositor);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   248
+  RefPtr<PaintCounter> mPaintCounter;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   249
+#endif
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   250
 };
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   251
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   252
 /**
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   253
  * Composite layers are for use with OMTC on the compositor thread only. There
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   254
  * must be corresponding Basic layers on the content thread. For composite
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   255
  * layers, the layer manager only maintains the layer tree, all rendering is
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   256
  * done by a Compositor (see Compositor.h). As such, composite layers are
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   257
  * platform-independent and can be used on any platform for which there is a
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   258
diff --git a/gfx/layers/moz.build b/gfx/layers/moz.build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   259
--- a/gfx/layers/moz.build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   260
+++ b/gfx/layers/moz.build
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   261
@@ -335,17 +335,16 @@ UNIFIED_SOURCES += [
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   262
     'composite/CompositableHost.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   263
     'composite/ContainerLayerComposite.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   264
     'composite/ContentHost.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   265
     'composite/FPSCounter.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   266
     'composite/FrameUniformityData.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   267
     'composite/ImageHost.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   268
     'composite/ImageLayerComposite.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   269
     'composite/LayerManagerComposite.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   270
-    'composite/PaintCounter.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   271
     'composite/PaintedLayerComposite.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   272
     'composite/TextRenderer.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   273
     'composite/TextureHost.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   274
     'composite/TiledContentHost.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   275
     'Compositor.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   276
     'CopyableCanvasLayer.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   277
     'Effects.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   278
     'FrameMetrics.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   279
@@ -480,8 +479,13 @@ MOCHITEST_CHROME_MANIFESTS += ['apz/test
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   280
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   281
 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   282
 CXXFLAGS += CONFIG['TK_CFLAGS']
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   283
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   284
 LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   285
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   286
 if CONFIG['GNU_CXX']:
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   287
     CXXFLAGS += ['-Wno-error=shadow']
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   288
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   289
+if CONFIG['MOZ_ENABLE_SKIA']:
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   290
+  UNIFIED_SOURCES += [
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   291
+    'composite/PaintCounter.cpp',
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   292
+  ]