michael@0: // michael@0: // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. michael@0: // Use of this source code is governed by a BSD-style license that can be michael@0: // found in the LICENSE file. michael@0: // michael@0: michael@0: // RenderTarget11.h: Defines a DX11-specific wrapper for ID3D11View pointers michael@0: // retained by Renderbuffers. michael@0: michael@0: #ifndef LIBGLESV2_RENDERER_RENDERTARGET11_H_ michael@0: #define LIBGLESV2_RENDERER_RENDERTARGET11_H_ michael@0: michael@0: #include "libGLESv2/renderer/RenderTarget.h" michael@0: michael@0: namespace rx michael@0: { michael@0: class Renderer; michael@0: class Renderer11; michael@0: michael@0: class RenderTarget11 : public RenderTarget michael@0: { michael@0: public: michael@0: RenderTarget11(Renderer *renderer, ID3D11RenderTargetView *rtv, ID3D11Texture2D *tex, ID3D11ShaderResourceView *srv, GLsizei width, GLsizei height); michael@0: RenderTarget11(Renderer *renderer, ID3D11DepthStencilView *dsv, ID3D11Texture2D *tex, ID3D11ShaderResourceView *srv, GLsizei width, GLsizei height); michael@0: RenderTarget11(Renderer *renderer, GLsizei width, GLsizei height, GLenum format, GLsizei samples, bool depth); michael@0: virtual ~RenderTarget11(); michael@0: michael@0: static RenderTarget11 *makeRenderTarget11(RenderTarget *renderTarget); michael@0: michael@0: ID3D11Texture2D *getTexture() const; michael@0: ID3D11RenderTargetView *getRenderTargetView() const; michael@0: ID3D11DepthStencilView *getDepthStencilView() const; michael@0: ID3D11ShaderResourceView *getShaderResourceView() const; michael@0: michael@0: unsigned int getSubresourceIndex() const; michael@0: michael@0: private: michael@0: DISALLOW_COPY_AND_ASSIGN(RenderTarget11); michael@0: michael@0: unsigned int mSubresourceIndex; michael@0: ID3D11Texture2D *mTexture; michael@0: ID3D11RenderTargetView *mRenderTarget; michael@0: ID3D11DepthStencilView *mDepthStencil; michael@0: ID3D11ShaderResourceView *mShaderResource; michael@0: michael@0: Renderer11 *mRenderer; michael@0: }; michael@0: michael@0: } michael@0: michael@0: #endif LIBGLESV2_RENDERER_RENDERTARGET11_H_