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//
6
7// RenderTarget11.h: Defines a DX11-specific wrapper for ID3D11View pointers
8// retained by Renderbuffers.
9
10#ifndef LIBGLESV2_RENDERER_RENDERTARGET11_H_
11#define LIBGLESV2_RENDERER_RENDERTARGET11_H_
12
13#include "libGLESv2/renderer/RenderTarget.h"
14
15namespace rx
16{
17class Renderer;
18class Renderer11;
19
20class RenderTarget11 : public RenderTarget
21{
22  public:
23    RenderTarget11(Renderer *renderer, ID3D11RenderTargetView *rtv, ID3D11Texture2D *tex, ID3D11ShaderResourceView *srv, GLsizei width, GLsizei height);
24    RenderTarget11(Renderer *renderer, ID3D11DepthStencilView *dsv, ID3D11Texture2D *tex, ID3D11ShaderResourceView *srv, GLsizei width, GLsizei height);
25    RenderTarget11(Renderer *renderer, GLsizei width, GLsizei height, GLenum format, GLsizei samples, bool depth);
26    virtual ~RenderTarget11();
27
28    static RenderTarget11 *makeRenderTarget11(RenderTarget *renderTarget);
29
30    ID3D11Texture2D *getTexture() const;
31    ID3D11RenderTargetView *getRenderTargetView() const;
32    ID3D11DepthStencilView *getDepthStencilView() const;
33    ID3D11ShaderResourceView *getShaderResourceView() const;
34
35    unsigned int getSubresourceIndex() const;
36
37  private:
38    DISALLOW_COPY_AND_ASSIGN(RenderTarget11);
39
40    unsigned int mSubresourceIndex;
41    ID3D11Texture2D *mTexture;
42    ID3D11RenderTargetView *mRenderTarget;
43    ID3D11DepthStencilView *mDepthStencil;
44    ID3D11ShaderResourceView *mShaderResource;
45
46    Renderer11 *mRenderer;
47};
48
49}
50
51#endif LIBGLESV2_RENDERER_RENDERTARGET11_H_