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 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(); 28 29 static RenderTarget11 *makeRenderTarget11(RenderTarget *renderTarget); 30 31 virtual void invalidate(GLint x, GLint y, GLsizei width, GLsizei height); 32 33 ID3D11Resource *getTexture() const; 34 ID3D11RenderTargetView *getRenderTargetView() const; 35 ID3D11DepthStencilView *getDepthStencilView() const; 36 ID3D11ShaderResourceView *getShaderResourceView() const; 37 38 unsigned int getSubresourceIndex() const; 39 40 private: 41 DISALLOW_COPY_AND_ASSIGN(RenderTarget11); 42 43 unsigned int mSubresourceIndex; 44 ID3D11Resource *mTexture; 45 ID3D11RenderTargetView *mRenderTarget; 46 ID3D11DepthStencilView *mDepthStencil; 47 ID3D11ShaderResourceView *mShaderResource; 48 49 Renderer11 *mRenderer; 50 }; 51 52 } 53 54 #endif LIBGLESV2_RENDERER_RENDERTARGET11_H_ 55