blob: 94514870765c79fb30d4db46654eb65e6f8ec9e5 [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
24 gl::Error discard(size_t count, const GLenum *attachments) override;
25 gl::Error invalidate(size_t count, const GLenum *attachments) override;
26 gl::Error invalidateSub(size_t count,
27 const GLenum *attachments,
28 const gl::Rectangle &area) override;
29
Jamie Madillc564c072017-06-01 12:45:42 -040030 gl::Error clear(const gl::Context *context, GLbitfield mask) override;
31 gl::Error clearBufferfv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040032 GLenum buffer,
33 GLint drawbuffer,
34 const GLfloat *values) override;
Jamie Madillc564c072017-06-01 12:45:42 -040035 gl::Error clearBufferuiv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040036 GLenum buffer,
37 GLint drawbuffer,
38 const GLuint *values) override;
Jamie Madillc564c072017-06-01 12:45:42 -040039 gl::Error clearBufferiv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040040 GLenum buffer,
41 GLint drawbuffer,
42 const GLint *values) override;
Jamie Madillc564c072017-06-01 12:45:42 -040043 gl::Error clearBufferfi(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040044 GLenum buffer,
45 GLint drawbuffer,
46 GLfloat depth,
47 GLint stencil) override;
48
49 GLenum getImplementationColorReadFormat() const override;
50 GLenum getImplementationColorReadType() const override;
Jamie Madillc564c072017-06-01 12:45:42 -040051 gl::Error readPixels(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040052 const gl::Rectangle &area,
53 GLenum format,
54 GLenum type,
Jamie Madill876429b2017-04-20 15:46:24 -040055 void *pixels) const override;
Geoff Langd08f3b32016-09-23 15:56:30 -040056
Jamie Madillc564c072017-06-01 12:45:42 -040057 gl::Error blit(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040058 const gl::Rectangle &sourceArea,
59 const gl::Rectangle &destArea,
60 GLbitfield mask,
61 GLenum filter) override;
62
63 bool checkStatus() const override;
64
Jamie Madillc564c072017-06-01 12:45:42 -040065 void syncState(const gl::Context *context,
66 const gl::Framebuffer::DirtyBits &dirtyBits) override;
JiangYizhoubddc46b2016-12-09 09:50:51 +080067
68 gl::Error getSamplePosition(size_t index, GLfloat *xy) const override;
Geoff Langd08f3b32016-09-23 15:56:30 -040069};
70
71} // namespace rx
72
73#endif // LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_