|
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 |
|
15 namespace rx |
|
16 { |
|
17 class Renderer; |
|
18 class Renderer11; |
|
19 |
|
20 class 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_ |