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_