blob: 41f1650e499db0fb30a17916f361d6c5e25b6b40 [file] [log] [blame]
Geoff Langd08f3b32016-09-23 15:56:30 -04001//
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// FramebufferNULL.h:
7// Defines the class interface for FramebufferNULL, implementing FramebufferImpl.
8//
9
10#ifndef LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_
11#define LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_
12
13#include "libANGLE/renderer/FramebufferImpl.h"
14
15namespace rx
16{
17
18class FramebufferNULL : public FramebufferImpl
19{
20 public:
21 FramebufferNULL(const gl::FramebufferState &state);
22 ~FramebufferNULL() override;
23
Jamie Madill64b7c4f2018-10-19 11:38:04 -040024 angle::Result discard(const gl::Context *context,
25 size_t count,
26 const GLenum *attachments) override;
27 angle::Result invalidate(const gl::Context *context,
28 size_t count,
29 const GLenum *attachments) override;
30 angle::Result invalidateSub(const gl::Context *context,
31 size_t count,
32 const GLenum *attachments,
33 const gl::Rectangle &area) override;
Geoff Langd08f3b32016-09-23 15:56:30 -040034
Jamie Madill64b7c4f2018-10-19 11:38:04 -040035 angle::Result clear(const gl::Context *context, GLbitfield mask) override;
36 angle::Result clearBufferfv(const gl::Context *context,
37 GLenum buffer,
38 GLint drawbuffer,
39 const GLfloat *values) override;
40 angle::Result clearBufferuiv(const gl::Context *context,
41 GLenum buffer,
42 GLint drawbuffer,
43 const GLuint *values) override;
44 angle::Result clearBufferiv(const gl::Context *context,
45 GLenum buffer,
46 GLint drawbuffer,
47 const GLint *values) override;
48 angle::Result clearBufferfi(const gl::Context *context,
49 GLenum buffer,
50 GLint drawbuffer,
51 GLfloat depth,
52 GLint stencil) override;
Geoff Langd08f3b32016-09-23 15:56:30 -040053
Jamie Madill4928b7c2017-06-20 12:57:39 -040054 GLenum getImplementationColorReadFormat(const gl::Context *context) const override;
55 GLenum getImplementationColorReadType(const gl::Context *context) const override;
Jamie Madill64b7c4f2018-10-19 11:38:04 -040056 angle::Result readPixels(const gl::Context *context,
57 const gl::Rectangle &area,
58 GLenum format,
59 GLenum type,
60 void *pixels) override;
Geoff Langd08f3b32016-09-23 15:56:30 -040061
Jamie Madill64b7c4f2018-10-19 11:38:04 -040062 angle::Result blit(const gl::Context *context,
63 const gl::Rectangle &sourceArea,
64 const gl::Rectangle &destArea,
65 GLbitfield mask,
66 GLenum filter) override;
Geoff Langd08f3b32016-09-23 15:56:30 -040067
Kenneth Russellce8602a2017-10-03 18:23:08 -070068 bool checkStatus(const gl::Context *context) const override;
Geoff Langd08f3b32016-09-23 15:56:30 -040069
Jamie Madill6f755b22018-10-09 12:48:54 -040070 angle::Result syncState(const gl::Context *context,
71 const gl::Framebuffer::DirtyBits &dirtyBits) override;
JiangYizhoubddc46b2016-12-09 09:50:51 +080072
Jamie Madill64b7c4f2018-10-19 11:38:04 -040073 angle::Result getSamplePosition(const gl::Context *context,
74 size_t index,
75 GLfloat *xy) const override;
Geoff Langd08f3b32016-09-23 15:56:30 -040076};
77
78} // namespace rx
79
80#endif // LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_