gfx/angle/src/libGLESv2/renderer/SwapChain11.h

changeset 0
6474c204b198
     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_

mercurial