From 2aa4a82499d4becd2284cdb482213d541b8804dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 16:29:10 +0200 Subject: Adding upstream version 86.0.1. Signed-off-by: Daniel Baumann --- gfx/layers/LayerScope.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 gfx/layers/LayerScope.h (limited to 'gfx/layers/LayerScope.h') diff --git a/gfx/layers/LayerScope.h b/gfx/layers/LayerScope.h new file mode 100644 index 0000000000..89c09d46a2 --- /dev/null +++ b/gfx/layers/LayerScope.h @@ -0,0 +1,68 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=4 sw=2 sts=2 et: */ +/* 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 +#include +#include "gfxMatrix.h" +#include "mozilla/gfx/Rect.h" + +namespace mozilla { + +namespace gl { +class GLContext; +} + +namespace layers { + +namespace layerscope { +class Packet; +} + +struct EffectChain; +class LayerComposite; +class TextureHost; + +class LayerScope { + public: + static void DrawBegin(); + static void SetRenderOffset(float aX, float aY); + static void SetLayerTransform(const gfx::Matrix4x4& aMatrix); + static void SetDrawRects(size_t aRects, const gfx::Rect* aLayerRects, + const gfx::Rect* aTextureRects); + static void DrawEnd(gl::GLContext* aGLContext, + const EffectChain& aEffectChain, int aWidth, int aHeight); + + static void SendLayer(LayerComposite* aLayer, int aWidth, int aHeight); + static void SendLayerDump(UniquePtr aPacket); + static bool CheckSendable(); + static void CleanLayer(); + static void SetHWComposed(); + + static void SetPixelScale(double devPixelsPerCSSPixel); + static void ContentChanged(TextureHost* host); + + private: + static void Init(); +}; + +// Perform BeginFrame and EndFrame automatically +class LayerScopeAutoFrame final { + public: + explicit LayerScopeAutoFrame(int64_t aFrameStamp); + ~LayerScopeAutoFrame(); + + private: + static void BeginFrame(int64_t aFrameStamp); + static void EndFrame(); +}; + +} // namespace layers +} // namespace mozilla + +#endif /* GFX_LAYERSCOPE_H */ -- cgit v1.2.3