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.
7 // RenderTarget11.h: Defines a DX11-specific wrapper for ID3D11View pointers
8 // retained by Renderbuffers.
10 #ifndef LIBGLESV2_RENDERER_RENDERTARGET11_H_
11 #define LIBGLESV2_RENDERER_RENDERTARGET11_H_
13 #include "libGLESv2/renderer/RenderTarget.h"
20 class RenderTarget11 : public RenderTarget
23 // RenderTarget11 takes ownership of any D3D11 resources it is given and will AddRef them
24 RenderTarget11(Renderer *renderer, ID3D11RenderTargetView *rtv, ID3D11Resource *resource, ID3D11ShaderResourceView *srv, GLsizei width, GLsizei height, GLsizei depth);
25 RenderTarget11(Renderer *renderer, ID3D11DepthStencilView *dsv, ID3D11Resource *resource, ID3D11ShaderResourceView *srv, GLsizei width, GLsizei height, GLsizei depth);
26 RenderTarget11(Renderer *renderer, GLsizei width, GLsizei height, GLenum internalFormat, GLsizei samples);
27 virtual ~RenderTarget11();
29 static RenderTarget11 *makeRenderTarget11(RenderTarget *renderTarget);
31 virtual void invalidate(GLint x, GLint y, GLsizei width, GLsizei height);
33 ID3D11Resource *getTexture() const;
34 ID3D11RenderTargetView *getRenderTargetView() const;
35 ID3D11DepthStencilView *getDepthStencilView() const;
36 ID3D11ShaderResourceView *getShaderResourceView() const;
38 unsigned int getSubresourceIndex() const;
41 DISALLOW_COPY_AND_ASSIGN(RenderTarget11);
43 unsigned int mSubresourceIndex;
44 ID3D11Resource *mTexture;
45 ID3D11RenderTargetView *mRenderTarget;
46 ID3D11DepthStencilView *mDepthStencil;
47 ID3D11ShaderResourceView *mShaderResource;
49 Renderer11 *mRenderer;
54 #endif LIBGLESV2_RENDERER_RENDERTARGET11_H_