mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-28 11:28:38 +00:00
fe464f5aa9
We have to create the websocket if it doesn't exist after enabling Layerscope. Therefore, we don't have to reboot the device anymore. 1. Remove the Init and DeInit in CreateCompositor and DestroyCompositor to prevent some unwanted deInits on the browser. (Our browser often calls DestroyCompositor) 2. Initize websocket only when we need it.
57 lines
1.4 KiB
C++
57 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 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();
|
|
|
|
private:
|
|
static void Init();
|
|
};
|
|
|
|
// Perform BeginFrame and EndFrame automatically
|
|
class LayerScopeAutoFrame {
|
|
public:
|
|
explicit LayerScopeAutoFrame(int64_t aFrameStamp);
|
|
~LayerScopeAutoFrame();
|
|
|
|
private:
|
|
static void BeginFrame(int64_t aFrameStamp);
|
|
static void EndFrame();
|
|
};
|
|
|
|
} /* layers */
|
|
} /* mozilla */
|
|
|
|
#endif /* GFX_LAYERSCOPE_H */
|