gecko-dev/gfx/layers/LayerScope.h
Boris Chiou 1188a41eb3 Bug 959118 - Dump layer tree with layer scope on the viewer. r=dglastonbury
We also want to dump layer tree on the viewer, so we
can check the layer tree and layerscope together
in the viewer. This can help us resolve more gfx bugs.

In this patch, I only add a part of the layer data to
the protocol buffer packet, and you can check the
.proto file for more information if you want to add
more layer data.

By the way, as Jeff's suggestion, use auto & MakeUnique<>()
to make the UniquePtr initialization more concise.
2014-07-27 22:32:00 +02:00

56 lines
1.4 KiB
C++

/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef GFX_LAYERSCOPE_H
#define GFX_LAYERSCOPE_H
#include <stdint.h>
#include <mozilla/UniquePtr.h>
struct nsIntSize;
namespace mozilla {
namespace gl { class GLContext; }
namespace layers {
namespace layerscope { class Packet; }
struct EffectChain;
class LayerComposite;
class LayerScope {
public:
static void Init();
static void DeInit();
static void SendEffectChain(gl::GLContext* aGLContext,
const EffectChain& aEffectChain,
int aWidth,
int aHeight);
static void SendLayer(LayerComposite* aLayer,
int aWidth,
int aHeight);
static void SendLayerDump(UniquePtr<layerscope::Packet> aPacket);
static bool CheckSendable();
static void CleanLayer();
};
// Perform BeginFrame and EndFrame automatically
class LayerScopeAutoFrame {
public:
LayerScopeAutoFrame(int64_t aFrameStamp);
~LayerScopeAutoFrame();
private:
static void BeginFrame(int64_t aFrameStamp);
static void EndFrame();
};
} /* layers */
} /* mozilla */
#endif /* GFX_LAYERSCOPE_H */