1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gfx/angle/src/libGLESv2/renderer/SwapChain11.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,78 @@ 1.4 +// 1.5 +// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. 1.6 +// Use of this source code is governed by a BSD-style license that can be 1.7 +// found in the LICENSE file. 1.8 +// 1.9 + 1.10 +// SwapChain11.h: Defines a back-end specific class for the D3D11 swap chain. 1.11 + 1.12 +#ifndef LIBGLESV2_RENDERER_SWAPCHAIN11_H_ 1.13 +#define LIBGLESV2_RENDERER_SWAPCHAIN11_H_ 1.14 + 1.15 +#include "common/angleutils.h" 1.16 +#include "libGLESv2/renderer/SwapChain.h" 1.17 + 1.18 +namespace rx 1.19 +{ 1.20 +class Renderer11; 1.21 + 1.22 +class SwapChain11 : public SwapChain 1.23 +{ 1.24 + public: 1.25 + SwapChain11(Renderer11 *renderer, HWND window, HANDLE shareHandle, 1.26 + GLenum backBufferFormat, GLenum depthBufferFormat); 1.27 + virtual ~SwapChain11(); 1.28 + 1.29 + EGLint resize(EGLint backbufferWidth, EGLint backbufferHeight); 1.30 + virtual EGLint reset(EGLint backbufferWidth, EGLint backbufferHeight, EGLint swapInterval); 1.31 + virtual EGLint swapRect(EGLint x, EGLint y, EGLint width, EGLint height); 1.32 + virtual void recreate(); 1.33 + 1.34 + virtual ID3D11Texture2D *getOffscreenTexture(); 1.35 + virtual ID3D11RenderTargetView *getRenderTarget(); 1.36 + virtual ID3D11ShaderResourceView *getRenderTargetShaderResource(); 1.37 + 1.38 + virtual ID3D11Texture2D *getDepthStencilTexture(); 1.39 + virtual ID3D11DepthStencilView *getDepthStencil(); 1.40 + 1.41 + EGLint getWidth() const { return mWidth; } 1.42 + EGLint getHeight() const { return mHeight; } 1.43 + 1.44 + static SwapChain11 *makeSwapChain11(SwapChain *swapChain); 1.45 + 1.46 + private: 1.47 + DISALLOW_COPY_AND_ASSIGN(SwapChain11); 1.48 + 1.49 + void release(); 1.50 + void initPassThroughResources(); 1.51 + void releaseOffscreenTexture(); 1.52 + EGLint resetOffscreenTexture(int backbufferWidth, int backbufferHeight); 1.53 + 1.54 + Renderer11 *mRenderer; 1.55 + EGLint mHeight; 1.56 + EGLint mWidth; 1.57 + bool mAppCreatedShareHandle; 1.58 + unsigned int mSwapInterval; 1.59 + bool mPassThroughResourcesInit; 1.60 + 1.61 + IDXGISwapChain *mSwapChain; 1.62 + 1.63 + ID3D11Texture2D *mBackBufferTexture; 1.64 + ID3D11RenderTargetView *mBackBufferRTView; 1.65 + 1.66 + ID3D11Texture2D *mOffscreenTexture; 1.67 + ID3D11RenderTargetView *mOffscreenRTView; 1.68 + ID3D11ShaderResourceView *mOffscreenSRView; 1.69 + 1.70 + ID3D11Texture2D *mDepthStencilTexture; 1.71 + ID3D11DepthStencilView *mDepthStencilDSView; 1.72 + 1.73 + ID3D11Buffer *mQuadVB; 1.74 + ID3D11SamplerState *mPassThroughSampler; 1.75 + ID3D11InputLayout *mPassThroughIL; 1.76 + ID3D11VertexShader *mPassThroughVS; 1.77 + ID3D11PixelShader *mPassThroughPS; 1.78 +}; 1.79 + 1.80 +} 1.81 +#endif // LIBGLESV2_RENDERER_SWAPCHAIN11_H_