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