blob: 7aeefa4360945080112f0a261a80a83cb64cabf3 [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 Madill4928b7c2017-06-20 12:57:39 -040024 gl::Error discard(const gl::Context *context, size_t count, const GLenum *attachments) override;
25 gl::Error invalidate(const gl::Context *context,
26 size_t count,
27 const GLenum *attachments) override;
28 gl::Error invalidateSub(const gl::Context *context,
29 size_t count,
Geoff Langd08f3b32016-09-23 15:56:30 -040030 const GLenum *attachments,
31 const gl::Rectangle &area) override;
32
Jamie Madillc564c072017-06-01 12:45:42 -040033 gl::Error clear(const gl::Context *context, GLbitfield mask) override;
34 gl::Error clearBufferfv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040035 GLenum buffer,
36 GLint drawbuffer,
37 const GLfloat *values) override;
Jamie Madillc564c072017-06-01 12:45:42 -040038 gl::Error clearBufferuiv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040039 GLenum buffer,
40 GLint drawbuffer,
41 const GLuint *values) override;
Jamie Madillc564c072017-06-01 12:45:42 -040042 gl::Error clearBufferiv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040043 GLenum buffer,
44 GLint drawbuffer,
45 const GLint *values) override;
Jamie Madillc564c072017-06-01 12:45:42 -040046 gl::Error clearBufferfi(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040047 GLenum buffer,
48 GLint drawbuffer,
49 GLfloat depth,
50 GLint stencil) override;
51
Jamie Madill4928b7c2017-06-20 12:57:39 -040052 GLenum getImplementationColorReadFormat(const gl::Context *context) const override;
53 GLenum getImplementationColorReadType(const gl::Context *context) const override;
Jamie Madillc564c072017-06-01 12:45:42 -040054 gl::Error readPixels(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040055 const gl::Rectangle &area,
56 GLenum format,
57 GLenum type,
Jamie Madilld4826152017-09-21 11:18:59 -040058 void *pixels) override;
Geoff Langd08f3b32016-09-23 15:56:30 -040059
Jamie Madillc564c072017-06-01 12:45:42 -040060 gl::Error blit(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040061 const gl::Rectangle &sourceArea,
62 const gl::Rectangle &destArea,
63 GLbitfield mask,
64 GLenum filter) override;
65
Kenneth Russellce8602a2017-10-03 18:23:08 -070066 bool checkStatus(const gl::Context *context) const override;
Geoff Langd08f3b32016-09-23 15:56:30 -040067
Jamie Madillc564c072017-06-01 12:45:42 -040068 void syncState(const gl::Context *context,
69 const gl::Framebuffer::DirtyBits &dirtyBits) override;
JiangYizhoubddc46b2016-12-09 09:50:51 +080070
71 gl::Error getSamplePosition(size_t index, GLfloat *xy) const override;
Geoff Langd08f3b32016-09-23 15:56:30 -040072};
73
74} // namespace rx
75
76#endif // LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_