mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-06 00:55:37 +00:00
1188a41eb3
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.
56 lines
1.4 KiB
C++
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 */
|