Bug 1733977 - Remove unused gfx/layers/client/ContentClient.h. r=gfx-reviewers,nical

Differential Revision: https://phabricator.services.mozilla.com/D127516
This commit is contained in:
Tetsuharu Ohzeki 2021-10-06 00:40:06 +00:00
Родитель 64193785d4
Коммит 889748a9e9
4 изменённых файлов: 0 добавлений и 305 удалений

Просмотреть файл

@ -11702,7 +11702,6 @@ _ZN11encoding_rs3mem20convert_str_to_utf1617h5ca12bd5f45f4892E
?AsCSSTransition@CSSTransition@dom@mozilla@@UBEPBV123@XZ
?SetClipRect@Layer@layers@mozilla@@QAEXABV?$Maybe@U?$IntRectTyped@UParentLayerPixel@mozilla@@@gfx@mozilla@@@3@@Z
?SetAncestorMaskLayers@Layer@layers@mozilla@@QAEXABV?$nsTArray@V?$RefPtr@VLayer@layers@mozilla@@@@@@@Z
?ReturnDrawTarget@ContentClient@layers@mozilla@@QAEXAAPAVDrawTarget@gfx@3@@Z
?UsesTiling@gfxPlatform@@UBE_NXZ
?CreatedPaintedLayer@ShadowLayerForwarder@layers@mozilla@@QAEXPAVShadowableLayer@23@@Z
?AsLayer@ClientPaintedLayer@layers@mozilla@@UAEPAVLayer@23@XZ
@ -11768,13 +11767,10 @@ _ZN11encoding_rs3mem20convert_str_to_utf1617h5ca12bd5f45f4892E
?AddRef@ShadowLayerForwarder@layers@mozilla@@UAGKXZ
?SetLayersObserverEpoch@ShadowLayerForwarder@layers@mozilla@@QAEXULayersObserverEpoch@23@@Z
?InitIPDL@CompositableClient@layers@mozilla@@QAEXABVCompositableHandle@23@@Z
?GetTextureInfo@ContentClientDoubleBuffered@layers@mozilla@@UBE?AUTextureInfo@23@XZ
?SendNewCompositable@PLayerTransactionChild@layers@mozilla@@QAE_NABVCompositableHandle@23@ABUTextureInfo@23@@Z
??0HangEntry@mozilla@@QAE@$$QAVHangEntrySuppressed@1@@Z
?SendNewCompositable@PImageBridgeChild@layers@mozilla@@QAE_NABVCompositableHandle@23@ABUTextureInfo@23@ABW4LayersBackend@23@@Z
?Attach@ShadowLayerForwarder@layers@mozilla@@QAEXPAVCompositableClient@23@PAVShadowableLayer@23@@Z
?DrawTo@ContentClientBasic@layers@mozilla@@QAEXPAVPaintedLayer@23@PAVDrawTarget@gfx@3@MW4CompositionOp@63@PAVSourceSurface@63@PBV?$BaseMatrix@M@63@@Z
?BeginPaint@ContentClient@layers@mozilla@@UAE?AUPaintState@123@PAVPaintedLayer@23@I@Z
?CanUseOpaqueSurface@Layer@layers@mozilla@@QAE_NXZ
?EnsureValidRegionIsCurrent@PaintedLayer@layers@mozilla@@ABEXXZ
??4nsRegion@@QAEAAV0@$$QAV0@@Z
@ -11844,7 +11840,6 @@ ARGBSetRow_X86
?Read@?$IPDLParamTraits@VSurfaceDescriptor@layers@mozilla@@@ipc@mozilla@@SA_NPBVMessage@IPC@@PAVPickleIterator@@PAVIProtocol@23@PAVSurfaceDescriptor@layers@3@@Z
?GetLocalVisibleRegion@Layer@layers@mozilla@@QAEABV?$IntRegionTyped@ULayerPixel@mozilla@@@gfx@3@XZ
?AndWith@nsRegion@@QAEAAV1@ABV1@@Z
?BorrowDrawTargetForPainting@ContentClient@layers@mozilla@@UAEPAVDrawTarget@gfx@3@AAUPaintState@123@PAUDrawIterator@RotatedBuffer@23@@Z
?BorrowDrawTargetForQuadrantUpdate@RotatedBuffer@layers@mozilla@@QAEPAVDrawTarget@gfx@3@ABU?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@53@PAUDrawIterator@123@@Z
?SetTransform@DrawTargetSkia@gfx@mozilla@@UAEXABV?$BaseMatrix@M@23@@Z
?GetBackendType@DrawTargetSkia@gfx@mozilla@@UBE?AW4BackendType@23@XZ
@ -12036,7 +12031,6 @@ ARGBSetRow_X86
?ComputeEffectiveTransformsForChildren@ContainerLayer@layers@mozilla@@IAEXABV?$Matrix4x4Typed@UUnknownUnits@gfx@mozilla@@U123@M@gfx@3@@Z
??_GReadbackLayer@layers@mozilla@@UAEPAXI@Z
?JS_GetFunctionDisplayId@@YAPAVJSString@@PAVJSFunction@@@Z
??0ContentClientBasic@layers@mozilla@@QAE@W4BackendType@gfx@2@@Z
??1ReadbackProcessor@layers@mozilla@@QAE@XZ
?GetClipExtents@gfxContext@@QBE?AU?$RectTyped@UUnknownUnits@gfx@mozilla@@N@gfx@mozilla@@W4ClipExtentsSpace@1@@Z
?PopClip@gfxContext@@QAEXXZ
@ -12050,7 +12044,6 @@ ARGBSetRow_X86
?TransposeTransform4D@?$Matrix4x4Typed@UUnknownUnits@gfx@mozilla@@U123@M@gfx@mozilla@@QBE?AU?$Point4DTyped@UUnknownUnits@gfx@mozilla@@M@23@ABU423@@Z
?IsBackfaceHidden@Layer@layers@mozilla@@QAE_NXZ
?GetEffectiveMixBlendMode@Layer@layers@mozilla@@QAE?AW4CompositionOp@gfx@3@XZ
?Clear@ContentClient@layers@mozilla@@UAEXXZ
?ComputeVisibility@nsDisplayWrapList@@UAE_NPAVnsDisplayListBuilder@@PAVnsRegion@@@Z
?GetOpaqueRegion@nsDisplayWrapList@@UBE?AVnsRegion@@PAVnsDisplayListBuilder@@PA_N@Z
??$?DUUnknownUnits@gfx@mozilla@@@?$Matrix4x4TypedFlagged@UUnknownUnits@gfx@mozilla@@U123@@gfx@mozilla@@QBE?AV012@ABV012@@Z

Просмотреть файл

@ -11637,7 +11637,6 @@ ZN5style7stylist7Stylist17remove_stylesheet17h3ad60902102208fbE
?Add@?$TiledRegion@V?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@mozilla@@@gfx@mozilla@@QEAAXAEBV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@23@@Z
?SetClipRect@Layer@layers@mozilla@@QEAAXAEBV?$Maybe@U?$IntRectTyped@UParentLayerPixel@mozilla@@@gfx@mozilla@@@3@@Z
?SetAncestorMaskLayers@Layer@layers@mozilla@@QEAAXAEBV?$nsTArray@V?$RefPtr@VLayer@layers@mozilla@@@@@@@Z
?ReturnDrawTarget@ContentClient@layers@mozilla@@QEAAXAEAPEAVDrawTarget@gfx@3@@Z
?UsesTiling@gfxPlatform@@UEBA_NXZ
?CreatedPaintedLayer@ShadowLayerForwarder@layers@mozilla@@QEAAXPEAVShadowableLayer@23@@Z
?AsLayer@ClientPaintedLayer@layers@mozilla@@UEAAPEAVLayer@23@XZ
@ -11654,7 +11653,6 @@ ZN5style7stylist7Stylist17remove_stylesheet17h3ad60902102208fbE
?SetVisibleRegion@Layer@layers@mozilla@@UEAAXAEBV?$IntRegionTyped@ULayerPixel@mozilla@@@gfx@3@@Z
?GetCombinedClipRect@Layer@layers@mozilla@@QEBA?AV?$Maybe@U?$IntRectTyped@UParentLayerPixel@mozilla@@@gfx@mozilla@@@3@XZ
?GetType@PaintedLayer@layers@mozilla@@UEBA?AW4LayerType@Layer@23@XZ
?GetTextureInfo@TiledContentClient@layers@mozilla@@UEBA?AUTextureInfo@23@XZ
?InsertAfter@ContainerLayer@layers@mozilla@@UEAA_NPEAVLayer@23@0@Z
?InsertAfter@ShadowLayerForwarder@layers@mozilla@@QEAAXPEAVShadowableLayer@23@00@Z
?GetRootMetadata@nsLayoutUtils@@SA?AV?$Maybe@UScrollMetadata@layers@mozilla@@@mozilla@@PEAVnsDisplayListBuilder@@PEAVLayerManager@layers@3@AEBUContainerLayerParameters@3@AEBV?$function@$$A6A_NAEA_K@Z@std@@@Z
@ -11702,13 +11700,10 @@ ZN5style7stylist7Stylist17remove_stylesheet17h3ad60902102208fbE
?AddRef@ShadowLayerForwarder@layers@mozilla@@UEAAKXZ
?SetLayersObserverEpoch@ShadowLayerForwarder@layers@mozilla@@QEAAXULayersObserverEpoch@23@@Z
?InitIPDL@CompositableClient@layers@mozilla@@QEAAXAEBVCompositableHandle@23@@Z
?GetTextureInfo@ContentClientDoubleBuffered@layers@mozilla@@UEBA?AUTextureInfo@23@XZ
?SendNewCompositable@PLayerTransactionChild@layers@mozilla@@QEAA_NAEBVCompositableHandle@23@AEBUTextureInfo@23@@Z
?Read@?$IPDLParamTraits@VGfxInfoFeatureStatus@gfx@mozilla@@@ipc@mozilla@@SA_NPEBVMessage@IPC@@PEAVPickleIterator@@PEAVIProtocol@23@PEAVGfxInfoFeatureStatus@gfx@3@@Z
?SendNewCompositable@PImageBridgeChild@layers@mozilla@@QEAA_NAEBVCompositableHandle@23@AEBUTextureInfo@23@AEBW4LayersBackend@23@@Z
?Attach@ShadowLayerForwarder@layers@mozilla@@QEAAXPEAVCompositableClient@23@PEAVShadowableLayer@23@@Z
?DrawTo@ContentClientBasic@layers@mozilla@@QEAAXPEAVPaintedLayer@23@PEAVDrawTarget@gfx@3@MW4CompositionOp@63@PEAVSourceSurface@63@PEBV?$BaseMatrix@M@63@@Z
?BeginPaint@ContentClient@layers@mozilla@@UEAA?AUPaintState@123@PEAVPaintedLayer@23@I@Z
?CanUseOpaqueSurface@Layer@layers@mozilla@@QEAA_NXZ
?EnsureValidRegionIsCurrent@PaintedLayer@layers@mozilla@@AEBAXXZ
??4nsRegion@@QEAAAEAV0@$$QEAV0@@Z
@ -11777,7 +11772,6 @@ ARGBSetRow_X86
?SubWith@nsRegion@@QEAAAEAV1@AEBV1@@Z
?GetLocalVisibleRegion@Layer@layers@mozilla@@QEAAAEBV?$IntRegionTyped@ULayerPixel@mozilla@@@gfx@3@XZ
?AndWith@nsRegion@@QEAAAEAV1@AEBV1@@Z
?BorrowDrawTargetForPainting@ContentClient@layers@mozilla@@UEAAPEAVDrawTarget@gfx@3@AEAUPaintState@123@PEAUDrawIterator@RotatedBuffer@23@@Z
?BorrowDrawTargetForQuadrantUpdate@RotatedBuffer@layers@mozilla@@QEAAPEAVDrawTarget@gfx@3@AEBU?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@53@PEAUDrawIterator@123@@Z
?GetBackendType@DrawTargetSkia@gfx@mozilla@@UEBA?AW4BackendType@23@XZ
?SetAntialiasingFlags@layers@mozilla@@YAXPEAVLayer@12@PEAVDrawTarget@gfx@2@@Z
@ -13272,7 +13266,6 @@ ZN5style10properties9longhands11caret_color16cascade_property17hc6f704988876f49c
?HasMultipleChildren@ContainerLayer@layers@mozilla@@QEAA_NXZ
?ComputeEffectiveTransformsForChildren@ContainerLayer@layers@mozilla@@IEAAXAEBV?$Matrix4x4Typed@UUnknownUnits@gfx@mozilla@@U123@M@gfx@3@@Z
??_GReadbackLayer@layers@mozilla@@UEAAPEAXI@Z
??0ContentClientBasic@layers@mozilla@@QEAA@W4BackendType@gfx@2@@Z
?GetClipExtents@gfxContext@@QEBA?AU?$RectTyped@UUnknownUnits@gfx@mozilla@@N@gfx@mozilla@@W4ClipExtentsSpace@1@@Z
?GetRect@DrawTarget@gfx@mozilla@@UEBA?AU?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@23@XZ
?ToOutsideIntRect@layers@mozilla@@YA?AU?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@gfx@2@AEBU?$RectTyped@UUnknownUnits@gfx@mozilla@@N@42@@Z
@ -13280,7 +13273,6 @@ ZN5style10properties9longhands11caret_color16cascade_property17hc6f704988876f49c
?GetEffectiveTransformForBuffer@Layer@layers@mozilla@@UEBAAEBV?$Matrix4x4Typed@UUnknownUnits@gfx@mozilla@@U123@M@gfx@3@XZ
?EndEmptyTransaction@BasicLayerManager@layers@mozilla@@UEAA_NW4EndTransactionFlags@LayerManager@23@@Z
?TransposeTransform4D@?$Matrix4x4Typed@UUnknownUnits@gfx@mozilla@@U123@M@gfx@mozilla@@QEBA?AU?$Point4DTyped@UUnknownUnits@gfx@mozilla@@M@23@AEBU423@@Z
?Clear@ContentClient@layers@mozilla@@UEAAXXZ
?ComputeVisibility@nsDisplayWrapList@@UEAA_NPEAVnsDisplayListBuilder@@PEAVnsRegion@@@Z
??$?DUUnknownUnits@gfx@mozilla@@@?$Matrix4x4TypedFlagged@UUnknownUnits@gfx@mozilla@@U123@@gfx@mozilla@@QEBA?AV012@AEBV012@@Z
?GetCSSPxToDevPxMatrix@SVGUtils@mozilla@@SA?AV?$BaseMatrix@N@gfx@2@PEAVnsIFrame@@@Z

Просмотреть файл

@ -1,289 +0,0 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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 MOZILLA_GFX_CONTENTCLIENT_H
#define MOZILLA_GFX_CONTENTCLIENT_H
#include <stdint.h> // for uint32_t
#include "gfxTypes.h"
#include "gfxPlatform.h" // for gfxPlatform
#include "mozilla/Assertions.h" // for MOZ_CRASH
#include "mozilla/Attributes.h" // for override
#include "mozilla/RefPtr.h" // for RefPtr, already_AddRefed
#include "mozilla/gfx/Point.h" // for IntSize
#include "mozilla/layers/CompositableClient.h" // for CompositableClient
#include "mozilla/layers/CompositableForwarder.h"
#include "mozilla/layers/CompositorTypes.h" // for TextureInfo, etc
#include "mozilla/layers/ISurfaceAllocator.h"
#include "mozilla/layers/LayersSurfaces.h" // for SurfaceDescriptor
#include "mozilla/layers/LayersTypes.h" // for TextureDumpMode
#include "mozilla/layers/TextureClient.h" // for TextureClient
#include "mozilla/Maybe.h" // for Maybe
#include "mozilla/mozalloc.h" // for operator delete
#include "mozilla/UniquePtr.h" // for UniquePtr
#include "ReadbackProcessor.h" // For ReadbackProcessor::Update
#include "nsCOMPtr.h" // for already_AddRefed
#include "nsPoint.h" // for nsIntPoint
#include "nsRect.h" // for mozilla::gfx::IntRect
#include "nsRegion.h" // for nsIntRegion
#include "nsTArray.h" // for nsTArray
namespace mozilla {
namespace gfx {
class DrawTarget;
} // namespace gfx
namespace layers {
/**
* A compositable client for PaintedLayers. These are different to Image/Canvas
* clients due to sending a valid region across IPC and because we do a lot more
* optimisation work, encapsulated in RotatedBuffers.
*
* We use content clients for OMTC and non-OMTC, basic rendering so that
* BasicPaintedLayer has only one interface to deal with. We support single and
* double buffered flavours. For tiled layers, we do not use a ContentClient
* although we do have a ContentHost, and we do use texture clients and texture
* hosts.
*
* The interface presented by ContentClient is used by the BasicPaintedLayer
* methods - PaintThebes, which is the same for MT and OMTC, and PaintBuffer
* which is different (the OMTC one does a little more).
*/
class ContentClient : public CompositableClient {
public:
typedef gfxContentType ContentType;
/**
* Creates, configures, and returns a new content client. If necessary, a
* message will be sent to the compositor to create a corresponding content
* host.
*/
static already_AddRefed<ContentClient> CreateContentClient(
CompositableForwarder* aFwd);
/**
* Controls the size of the backing buffer of this.
* - SizedToVisibleBounds: the backing buffer is exactly the same
* size as the bounds of PaintedLayer's visible region
* - ContainsVisibleBounds: the backing buffer is large enough to
* fit visible bounds. May be larger.
*/
enum BufferSizePolicy { SizedToVisibleBounds, ContainsVisibleBounds };
ContentClient(CompositableForwarder* aForwarder,
BufferSizePolicy aBufferSizePolicy)
: CompositableClient(aForwarder), mBufferSizePolicy(aBufferSizePolicy) {}
virtual void PrintInfo(std::stringstream& aStream, const char* aPrefix);
virtual void Clear();
/**
* This is returned by BeginPaint. The caller should draw into mTarget.
* mRegionToDraw must be drawn. mRegionToInvalidate has been invalidated
* by ContentClient and must be redrawn on the screen.
* mRegionToInvalidate is set when the buffer has changed from
* opaque to transparent or vice versa, since the details of rendering can
* depend on the buffer type.
*/
struct PaintState {
PaintState()
: mRegionToDraw(),
mRegionToInvalidate(),
mMode(SurfaceMode::SURFACE_NONE),
mClip(DrawRegionClip::NONE),
mContentType(gfxContentType::SENTINEL) {}
nsIntRegion mRegionToDraw;
nsIntRegion mRegionToInvalidate;
SurfaceMode mMode;
DrawRegionClip mClip;
gfxContentType mContentType;
};
enum {
PAINT_WILL_RESAMPLE = 0x01,
PAINT_NO_ROTATION = 0x02,
PAINT_CAN_DRAW_ROTATED = 0x04,
PAINT_ASYNC = 0x08,
};
/**
* Start a drawing operation. This returns a PaintState describing what
* needs to be drawn to bring the buffer up to date in the visible region.
* This queries aLayer to get the currently valid and visible regions.
* The returned mTarget may be null if mRegionToDraw is empty.
* Otherwise it must not be null.
* mRegionToInvalidate will contain mRegionToDraw.
* @param aFlags when PAINT_WILL_RESAMPLE is passed, this indicates that
* buffer will be resampled when rendering (i.e the effective transform
* combined with the scale for the resolution is not just an integer
* translation). This will disable buffer rotation (since we don't want
* to resample across the rotation boundary) and will ensure that we
* make the entire buffer contents valid (since we don't want to sample
* invalid pixels outside the visible region, if the visible region doesn't
* fill the buffer bounds).
* PAINT_CAN_DRAW_ROTATED can be passed if the caller supports drawing
* rotated content that crosses the physical buffer boundary. The caller
* will need to call BorrowDrawTargetForPainting multiple times to achieve
* this.
*/
virtual PaintState BeginPaint(PaintedLayer* aLayer, uint32_t aFlags);
virtual void EndPaint(
PaintState& aPaintState,
nsTArray<ReadbackProcessor::Update>* aReadbackUpdates = nullptr);
void ReturnDrawTarget(gfx::DrawTarget*& aReturned);
enum {
BUFFER_COMPONENT_ALPHA = 0x02 // Dual buffers should be created for drawing
// with component alpha.
};
protected:
struct BufferDecision {
nsIntRegion mNeededRegion;
nsIntRegion mValidRegion;
gfx::IntRect mBufferRect;
SurfaceMode mBufferMode;
gfxContentType mBufferContentType;
bool mCanReuseBuffer;
bool mCanKeepBufferContents;
};
/**
* Decide whether we can keep our current buffer and its contents,
* and return a struct containing the regions to paint, invalidate,
* the new buffer rect, surface mode, and content type.
*/
BufferDecision CalculateBufferForPaint(PaintedLayer* aLayer, uint32_t aFlags);
static bool ValidBufferSize(BufferSizePolicy aPolicy,
const gfx::IntSize& aBufferSize,
const gfx::IntSize& aVisibleBoundsSize);
/**
* Any actions that should be performed at the last moment before we begin
* rendering the next frame. I.e., after we calculate what we will draw,
* but before we rotate the buffer and possibly create new buffers.
* aRegionToDraw is the region which is guaranteed to be overwritten when
* drawing the next frame.
*/
virtual void FinalizeFrame(PaintState& aPaintState) {}
BufferSizePolicy mBufferSizePolicy;
};
/**
* A ContentClient backed by a RemoteRotatedBuffer.
*
* When using a ContentClientRemoteBuffer, SurfaceDescriptors are created on
* the rendering side and destroyed on the compositing side. They are only
* passed from one side to the other when the TextureClient/Hosts are created.
* *Ownership* of the SurfaceDescriptor moves from the rendering side to the
* compositing side with the create message (send from CreateBuffer) which
* tells the compositor that TextureClients have been created and that the
* compositor should assign the corresponding TextureHosts to our corresponding
* ContentHost.
*
* If the size or type of our buffer(s) change(s), then we simply destroy and
* create them.
*/
class ContentClientRemoteBuffer : public ContentClient {
public:
explicit ContentClientRemoteBuffer(CompositableForwarder* aForwarder)
: ContentClient(aForwarder, ContainsVisibleBounds), mIsNewBuffer(false) {}
void Dump(std::stringstream& aStream, const char* aPrefix = "",
bool aDumpHtml = false,
TextureDumpMode aCompress = TextureDumpMode::Compress) override;
void EndPaint(
PaintState& aPaintState,
nsTArray<ReadbackProcessor::Update>* aReadbackUpdates = nullptr) override;
void Updated(const nsIntRegion& aRegionToDraw,
const nsIntRegion& aVisibleRegion);
TextureFlags ExtraTextureFlags() const {
return TextureFlags::IMMEDIATE_UPLOAD;
}
protected:
/**
* Called when we have been updated and should swap references to our
* buffers.
*/
virtual void SwapBuffers(const nsIntRegion& aFrontUpdatedRegion) {}
virtual nsIntRegion GetUpdatedRegion(const nsIntRegion& aRegionToDraw,
const nsIntRegion& aVisibleRegion);
bool mIsNewBuffer;
};
/**
* A double buffered ContentClientRemoteBuffer. mBuffer is the back buffer,
* which we draw into. mFrontBuffer is the front buffer which we may read from,
* but not write to, when the compositor does not have the 'soft' lock.
*
* The ContentHost keeps a reference to both corresponding texture hosts, in
* response to our UpdateTextureRegion message, the compositor swaps its
* references.
*/
class ContentClientDoubleBuffered : public ContentClientRemoteBuffer {
public:
explicit ContentClientDoubleBuffered(CompositableForwarder* aFwd)
: ContentClientRemoteBuffer(aFwd), mFrontAndBackBufferDiffer(false) {}
void Dump(std::stringstream& aStream, const char* aPrefix = "",
bool aDumpHtml = false,
TextureDumpMode aCompress = TextureDumpMode::Compress) override;
void Clear() override;
void SwapBuffers(const nsIntRegion& aFrontUpdatedRegion) override;
PaintState BeginPaint(PaintedLayer* aLayer, uint32_t aFlags) override;
void FinalizeFrame(PaintState& aPaintState) override;
TextureInfo GetTextureInfo() const override {
return TextureInfo(CompositableType::CONTENT_DOUBLE, mTextureFlags);
}
private:
void EnsureBackBufferIfFrontBuffer();
nsIntRegion mFrontUpdatedRegion;
bool mFrontAndBackBufferDiffer;
};
/**
* A single buffered ContentClientRemoteBuffer. We have a single
* TextureClient/Host which we update and then send a message to the
* compositor that we are done updating. It is not safe for the compositor
* to use the corresponding TextureHost's memory directly, it must upload
* it to video memory of some kind. We are free to modify the TextureClient
* once we receive reply from the compositor.
*/
class ContentClientSingleBuffered : public ContentClientRemoteBuffer {
public:
explicit ContentClientSingleBuffered(CompositableForwarder* aFwd)
: ContentClientRemoteBuffer(aFwd) {}
TextureInfo GetTextureInfo() const override {
return TextureInfo(CompositableType::CONTENT_SINGLE,
mTextureFlags | ExtraTextureFlags());
}
};
} // namespace layers
} // namespace mozilla
#endif

Просмотреть файл

@ -113,7 +113,6 @@ EXPORTS.mozilla.layers += [
"CanvasRenderer.h",
"client/CanvasClient.h",
"client/CompositableClient.h",
"client/ContentClient.h",
"client/GPUVideoTextureClient.h",
"client/ImageClient.h",
"client/TextureClient.h",