blob: 93756d76ad7353b7be81bb5721ca82b74e52a469 [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
30 gl::Error clear(ContextImpl *context, GLbitfield mask) override;
31 gl::Error clearBufferfv(ContextImpl *context,
32 GLenum buffer,
33 GLint drawbuffer,
34 const GLfloat *values) override;
35 gl::Error clearBufferuiv(ContextImpl *context,
36 GLenum buffer,
37 GLint drawbuffer,
38 const GLuint *values) override;
39 gl::Error clearBufferiv(ContextImpl *context,
40 GLenum buffer,
41 GLint drawbuffer,
42 const GLint *values) override;
43 gl::Error clearBufferfi(ContextImpl *context,
44 GLenum buffer,
45 GLint drawbuffer,
46 GLfloat depth,
47 GLint stencil) override;
48
49 GLenum getImplementationColorReadFormat() const override;
50 GLenum getImplementationColorReadType() const override;
51 gl::Error readPixels(ContextImpl *context,
52 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
57 gl::Error blit(ContextImpl *context,
58 const gl::Rectangle &sourceArea,
59 const gl::Rectangle &destArea,
60 GLbitfield mask,
61 GLenum filter) override;
62
63 bool checkStatus() const override;
64
Jamie Madilldd43e6c2017-03-24 14:18:49 -040065 void syncState(ContextImpl *contextImpl, const gl::Framebuffer::DirtyBits &dirtyBits) override;
JiangYizhoubddc46b2016-12-09 09:50:51 +080066
67 gl::Error getSamplePosition(size_t index, GLfloat *xy) const override;
Geoff Langd08f3b32016-09-23 15:56:30 -040068};
69
70} // namespace rx
71
72#endif // LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_