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 --- .../src/libANGLE/renderer/d3d/SwapChainD3D.h | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 gfx/angle/checkout/src/libANGLE/renderer/d3d/SwapChainD3D.h (limited to 'gfx/angle/checkout/src/libANGLE/renderer/d3d/SwapChainD3D.h') diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/SwapChainD3D.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/SwapChainD3D.h new file mode 100644 index 0000000000..443cadd680 --- /dev/null +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/SwapChainD3D.h @@ -0,0 +1,83 @@ +// +// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +// SwapChainD3D.h: Defines a back-end specific class that hides the details of the +// implementation-specific swapchain. + +#ifndef LIBANGLE_RENDERER_D3D_SWAPCHAIND3D_H_ +#define LIBANGLE_RENDERER_D3D_SWAPCHAIND3D_H_ + +#include +#include +#include + +#include "common/angleutils.h" +#include "common/platform.h" +#include "libANGLE/Error.h" + +#if !defined(ANGLE_FORCE_VSYNC_OFF) +# define ANGLE_FORCE_VSYNC_OFF 0 +#endif + +namespace gl +{ +class Context; +} // namespace gl + +namespace egl +{ +class Display; +} // namespace egl + +namespace rx +{ +class DisplayD3D; +class RenderTargetD3D; + +class SwapChainD3D : angle::NonCopyable +{ + public: + SwapChainD3D(HANDLE shareHandle, + IUnknown *d3dTexture, + GLenum backBufferFormat, + GLenum depthBufferFormat); + virtual ~SwapChainD3D(); + + virtual EGLint resize(DisplayD3D *displayD3D, + EGLint backbufferWidth, + EGLint backbufferSize) = 0; + virtual EGLint reset(DisplayD3D *displayD3D, + EGLint backbufferWidth, + EGLint backbufferHeight, + EGLint swapInterval) = 0; + virtual EGLint swapRect(DisplayD3D *displayD3D, + EGLint x, + EGLint y, + EGLint width, + EGLint height) = 0; + virtual void recreate() = 0; + + virtual RenderTargetD3D *getColorRenderTarget() = 0; + virtual RenderTargetD3D *getDepthStencilRenderTarget() = 0; + + GLenum getRenderTargetInternalFormat() const { return mOffscreenRenderTargetFormat; } + GLenum getDepthBufferInternalFormat() const { return mDepthBufferFormat; } + + HANDLE getShareHandle() { return mShareHandle; } + virtual void *getKeyedMutex() = 0; + + virtual egl::Error getSyncValues(EGLuint64KHR *ust, EGLuint64KHR *msc, EGLuint64KHR *sbc) = 0; + + protected: + const GLenum mOffscreenRenderTargetFormat; + const GLenum mDepthBufferFormat; + + HANDLE mShareHandle; + IUnknown *mD3DTexture; +}; + +} // namespace rx +#endif // LIBANGLE_RENDERER_D3D_SWAPCHAIND3D_H_ -- cgit v1.2.3