Bug 539356 - Part 6 - Add compositing paint flashing to BasicLayers. r=roc

This commit is contained in:
Matt Woodrow
2012-06-30 15:06:10 +12:00
parent c1ace87d42
commit a4e6cbbe57
3 changed files with 31 additions and 0 deletions

View File

@@ -20,6 +20,7 @@
#include "BasicLayersImpl.h"
#include "BasicThebesLayer.h"
#include "BasicContainerLayer.h"
#include "mozilla/Preferences.h"
using namespace mozilla::gfx;
@@ -425,6 +426,9 @@ BasicLayerManager::EndTransactionInternal(DrawThebesLayerCallback aCallback,
}
PaintLayer(mTarget, mRoot, aCallback, aCallbackData, nsnull);
if (mWidget) {
FlashWidgetUpdateArea(mTarget);
}
if (!mTransactionIncomplete) {
// Clear out target if we have a complete transaction.
@@ -455,6 +459,27 @@ BasicLayerManager::EndTransactionInternal(DrawThebesLayerCallback aCallback,
return !mTransactionIncomplete;
}
void
BasicLayerManager::FlashWidgetUpdateArea(gfxContext *aContext)
{
static bool sWidgetFlashingEnabled;
static bool sWidgetFlashingPrefCached = false;
if (!sWidgetFlashingPrefCached) {
sWidgetFlashingPrefCached = true;
mozilla::Preferences::AddBoolVarCache(&sWidgetFlashingEnabled,
"nglayout.debug.widget_update_flashing");
}
if (sWidgetFlashingEnabled) {
float r = float(rand()) / RAND_MAX;
float g = float(rand()) / RAND_MAX;
float b = float(rand()) / RAND_MAX;
aContext->SetColor(gfxRGBA(r, g, b, 0.2));
aContext->Paint();
}
}
bool
BasicLayerManager::EndEmptyTransaction()
{