diff options
Diffstat (limited to 'gfx/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.h')
-rwxr-xr-x | gfx/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/gfx/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.h b/gfx/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.h new file mode 100755 index 000000000..c96da5ce1 --- /dev/null +++ b/gfx/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.h @@ -0,0 +1,46 @@ +// +// Copyright (c) 2012-2015 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +// RenderTargetD3D.h: Defines an abstract wrapper class to manage IDirect3DSurface9 +// and ID3D11View objects belonging to renderbuffers and renderable textures. + +#ifndef LIBANGLE_RENDERER_D3D_RENDERTARGETD3D_H_ +#define LIBANGLE_RENDERER_D3D_RENDERTARGETD3D_H_ + +#include "common/angleutils.h" +#include "libANGLE/angletypes.h" +#include "libANGLE/FramebufferAttachment.h" + +namespace rx +{ + +class RenderTargetD3D : public FramebufferAttachmentRenderTarget +{ + public: + RenderTargetD3D(); + virtual ~RenderTargetD3D(); + + virtual GLsizei getWidth() const = 0; + virtual GLsizei getHeight() const = 0; + virtual GLsizei getDepth() const = 0; + virtual GLenum getInternalFormat() const = 0; + virtual GLsizei getSamples() const = 0; + gl::Extents getExtents() const { return gl::Extents(getWidth(), getHeight(), getDepth()); } + + virtual unsigned int getSerial() const; + static unsigned int issueSerials(unsigned int count); + + // Only currently applies to D3D11. + virtual void signalDirty() {} + + private: + const unsigned int mSerial; + static unsigned int mCurrentSerial; +}; + +} + +#endif // LIBANGLE_RENDERER_D3D_RENDERTARGETD3D_H_ |