Home | History | Annotate | Download | only in d3d11
      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