• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright 2016 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 // FramebufferAttachmentObjectImpl.h:
7 //   Common ancenstor for all implementations of FBO attachable-objects.
8 //   This means Surfaces, Textures and Renderbuffers.
9 //
10 
11 #ifndef LIBANGLE_RENDERER_FRAMEBUFFER_ATTACHMENT_OBJECT_IMPL_H_
12 #define LIBANGLE_RENDERER_FRAMEBUFFER_ATTACHMENT_OBJECT_IMPL_H_
13 
14 #include "libANGLE/ImageIndex.h"
15 #include "libANGLE/Observer.h"
16 
17 namespace gl
18 {
19 class Context;
20 }  // namespace gl
21 
22 namespace rx
23 {
24 class FramebufferAttachmentRenderTarget;
25 
26 class FramebufferAttachmentObjectImpl : public angle::Subject
27 {
28   public:
FramebufferAttachmentObjectImpl()29     FramebufferAttachmentObjectImpl() {}
~FramebufferAttachmentObjectImpl()30     ~FramebufferAttachmentObjectImpl() override {}
31 
32     virtual angle::Result getAttachmentRenderTarget(const gl::Context *context,
33                                                     GLenum binding,
34                                                     const gl::ImageIndex &imageIndex,
35                                                     GLsizei samples,
36                                                     FramebufferAttachmentRenderTarget **rtOut);
37 
38     virtual angle::Result initializeContents(const gl::Context *context,
39                                              GLenum binding,
40                                              const gl::ImageIndex &imageIndex);
41 };
42 
getAttachmentRenderTarget(const gl::Context * context,GLenum binding,const gl::ImageIndex & imageIndex,GLsizei samples,FramebufferAttachmentRenderTarget ** rtOut)43 inline angle::Result FramebufferAttachmentObjectImpl::getAttachmentRenderTarget(
44     const gl::Context *context,
45     GLenum binding,
46     const gl::ImageIndex &imageIndex,
47     GLsizei samples,
48     FramebufferAttachmentRenderTarget **rtOut)
49 {
50     UNIMPLEMENTED();
51     return angle::Result::Stop;
52 }
53 
initializeContents(const gl::Context * context,GLenum binding,const gl::ImageIndex & imageIndex)54 inline angle::Result FramebufferAttachmentObjectImpl::initializeContents(
55     const gl::Context *context,
56     GLenum binding,
57     const gl::ImageIndex &imageIndex)
58 {
59     UNIMPLEMENTED();
60     return angle::Result::Stop;
61 }
62 
63 }  // namespace rx
64 
65 #endif  // LIBANGLE_RENDERER_FRAMEBUFFER_ATTACHMENT_OBJECT_IMPL_H_
66