xref: /aosp_15_r20/external/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker //
2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2012 The ANGLE Project Authors. All rights reserved.
3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file.
5*8975f5c5SAndroid Build Coastguard Worker //
6*8975f5c5SAndroid Build Coastguard Worker 
7*8975f5c5SAndroid Build Coastguard Worker // RenderTargetD3D.h: Defines an abstract wrapper class to manage IDirect3DSurface9
8*8975f5c5SAndroid Build Coastguard Worker // and ID3D11View objects belonging to renderbuffers and renderable textures.
9*8975f5c5SAndroid Build Coastguard Worker 
10*8975f5c5SAndroid Build Coastguard Worker #ifndef LIBANGLE_RENDERER_D3D_RENDERTARGETD3D_H_
11*8975f5c5SAndroid Build Coastguard Worker #define LIBANGLE_RENDERER_D3D_RENDERTARGETD3D_H_
12*8975f5c5SAndroid Build Coastguard Worker 
13*8975f5c5SAndroid Build Coastguard Worker #include "common/angleutils.h"
14*8975f5c5SAndroid Build Coastguard Worker #include "libANGLE/FramebufferAttachment.h"
15*8975f5c5SAndroid Build Coastguard Worker #include "libANGLE/angletypes.h"
16*8975f5c5SAndroid Build Coastguard Worker 
17*8975f5c5SAndroid Build Coastguard Worker namespace rx
18*8975f5c5SAndroid Build Coastguard Worker {
19*8975f5c5SAndroid Build Coastguard Worker 
20*8975f5c5SAndroid Build Coastguard Worker class RenderTargetD3D : public FramebufferAttachmentRenderTarget
21*8975f5c5SAndroid Build Coastguard Worker {
22*8975f5c5SAndroid Build Coastguard Worker   public:
23*8975f5c5SAndroid Build Coastguard Worker     RenderTargetD3D();
24*8975f5c5SAndroid Build Coastguard Worker     ~RenderTargetD3D() override;
25*8975f5c5SAndroid Build Coastguard Worker 
26*8975f5c5SAndroid Build Coastguard Worker     virtual GLsizei getWidth() const         = 0;
27*8975f5c5SAndroid Build Coastguard Worker     virtual GLsizei getHeight() const        = 0;
28*8975f5c5SAndroid Build Coastguard Worker     virtual GLsizei getDepth() const         = 0;
29*8975f5c5SAndroid Build Coastguard Worker     virtual GLenum getInternalFormat() const = 0;
30*8975f5c5SAndroid Build Coastguard Worker     virtual GLsizei getSamples() const       = 0;
getExtents()31*8975f5c5SAndroid Build Coastguard Worker     gl::Extents getExtents() const { return gl::Extents(getWidth(), getHeight(), getDepth()); }
isMultisampled()32*8975f5c5SAndroid Build Coastguard Worker     bool isMultisampled() const { return getSamples() > 0; }
33*8975f5c5SAndroid Build Coastguard Worker 
34*8975f5c5SAndroid Build Coastguard Worker     virtual unsigned int getSerial() const;
35*8975f5c5SAndroid Build Coastguard Worker     static unsigned int issueSerials(unsigned int count);
36*8975f5c5SAndroid Build Coastguard Worker 
37*8975f5c5SAndroid Build Coastguard Worker   private:
38*8975f5c5SAndroid Build Coastguard Worker     const unsigned int mSerial;
39*8975f5c5SAndroid Build Coastguard Worker     static unsigned int mCurrentSerial;
40*8975f5c5SAndroid Build Coastguard Worker };
41*8975f5c5SAndroid Build Coastguard Worker 
42*8975f5c5SAndroid Build Coastguard Worker }  // namespace rx
43*8975f5c5SAndroid Build Coastguard Worker 
44*8975f5c5SAndroid Build Coastguard Worker #endif  // LIBANGLE_RENDERER_D3D_RENDERTARGETD3D_H_
45