Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 //
2 // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
7 // SwapChain11.h: Defines a back-end specific class for the D3D11 swap chain.
9 #ifndef LIBGLESV2_RENDERER_SWAPCHAIN11_H_
10 #define LIBGLESV2_RENDERER_SWAPCHAIN11_H_
12 #include "common/angleutils.h"
13 #include "libGLESv2/renderer/SwapChain.h"
15 namespace rx
16 {
17 class Renderer11;
19 class SwapChain11 : public SwapChain
20 {
21 public:
22 SwapChain11(Renderer11 *renderer, HWND window, HANDLE shareHandle,
23 GLenum backBufferFormat, GLenum depthBufferFormat);
24 virtual ~SwapChain11();
26 EGLint resize(EGLint backbufferWidth, EGLint backbufferHeight);
27 virtual EGLint reset(EGLint backbufferWidth, EGLint backbufferHeight, EGLint swapInterval);
28 virtual EGLint swapRect(EGLint x, EGLint y, EGLint width, EGLint height);
29 virtual void recreate();
31 virtual ID3D11Texture2D *getOffscreenTexture();
32 virtual ID3D11RenderTargetView *getRenderTarget();
33 virtual ID3D11ShaderResourceView *getRenderTargetShaderResource();
35 virtual ID3D11Texture2D *getDepthStencilTexture();
36 virtual ID3D11DepthStencilView *getDepthStencil();
38 EGLint getWidth() const { return mWidth; }
39 EGLint getHeight() const { return mHeight; }
41 static SwapChain11 *makeSwapChain11(SwapChain *swapChain);
43 private:
44 DISALLOW_COPY_AND_ASSIGN(SwapChain11);
46 void release();
47 void initPassThroughResources();
48 void releaseOffscreenTexture();
49 EGLint resetOffscreenTexture(int backbufferWidth, int backbufferHeight);
51 Renderer11 *mRenderer;
52 EGLint mHeight;
53 EGLint mWidth;
54 bool mAppCreatedShareHandle;
55 unsigned int mSwapInterval;
56 bool mPassThroughResourcesInit;
58 IDXGISwapChain *mSwapChain;
60 ID3D11Texture2D *mBackBufferTexture;
61 ID3D11RenderTargetView *mBackBufferRTView;
63 ID3D11Texture2D *mOffscreenTexture;
64 ID3D11RenderTargetView *mOffscreenRTView;
65 ID3D11ShaderResourceView *mOffscreenSRView;
67 ID3D11Texture2D *mDepthStencilTexture;
68 ID3D11DepthStencilView *mDepthStencilDSView;
70 ID3D11Buffer *mQuadVB;
71 ID3D11SamplerState *mPassThroughSampler;
72 ID3D11InputLayout *mPassThroughIL;
73 ID3D11VertexShader *mPassThroughVS;
74 ID3D11PixelShader *mPassThroughPS;
75 };
77 }
78 #endif // LIBGLESV2_RENDERER_SWAPCHAIN11_H_