blob: d0deef647ef5dd6ad01cc0b5a484ac271f08e176 [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.cpp:
7// Implements the class methods for FramebufferNULL.
8//
9
10#include "libANGLE/renderer/null/FramebufferNULL.h"
11
Geoff Lang2291c932016-11-18 14:10:17 -050012#include "libANGLE/formatutils.h"
13
Geoff Langd08f3b32016-09-23 15:56:30 -040014#include "common/debug.h"
15
16namespace rx
17{
18
19FramebufferNULL::FramebufferNULL(const gl::FramebufferState &state) : FramebufferImpl(state)
20{
21}
22
23FramebufferNULL::~FramebufferNULL()
24{
25}
26
27gl::Error FramebufferNULL::discard(size_t count, const GLenum *attachments)
28{
Geoff Lang76cdbd52016-09-23 16:51:04 -040029 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040030}
31
32gl::Error FramebufferNULL::invalidate(size_t count, const GLenum *attachments)
33{
Geoff Lang76cdbd52016-09-23 16:51:04 -040034 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040035}
36
37gl::Error FramebufferNULL::invalidateSub(size_t count,
38 const GLenum *attachments,
39 const gl::Rectangle &area)
40{
Geoff Lang76cdbd52016-09-23 16:51:04 -040041 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040042}
43
44gl::Error FramebufferNULL::clear(ContextImpl *context, GLbitfield mask)
45{
Geoff Lang76cdbd52016-09-23 16:51:04 -040046 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040047}
48
49gl::Error FramebufferNULL::clearBufferfv(ContextImpl *context,
50 GLenum buffer,
51 GLint drawbuffer,
52 const GLfloat *values)
53{
Geoff Lang76cdbd52016-09-23 16:51:04 -040054 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040055}
56
57gl::Error FramebufferNULL::clearBufferuiv(ContextImpl *context,
58 GLenum buffer,
59 GLint drawbuffer,
60 const GLuint *values)
61{
Geoff Lang76cdbd52016-09-23 16:51:04 -040062 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040063}
64
65gl::Error FramebufferNULL::clearBufferiv(ContextImpl *context,
66 GLenum buffer,
67 GLint drawbuffer,
68 const GLint *values)
69{
Geoff Lang76cdbd52016-09-23 16:51:04 -040070 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040071}
72
73gl::Error FramebufferNULL::clearBufferfi(ContextImpl *context,
74 GLenum buffer,
75 GLint drawbuffer,
76 GLfloat depth,
77 GLint stencil)
78{
Geoff Lang76cdbd52016-09-23 16:51:04 -040079 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040080}
81
82GLenum FramebufferNULL::getImplementationColorReadFormat() const
83{
Geoff Lang2291c932016-11-18 14:10:17 -050084 const gl::FramebufferAttachment *readAttachment = mState.getReadAttachment();
85 if (readAttachment == nullptr)
86 {
87 return GL_NONE;
88 }
89
90 const gl::Format &format = readAttachment->getFormat();
91 ASSERT(format.info != nullptr);
92 return format.info->getReadPixelsFormat();
Geoff Langd08f3b32016-09-23 15:56:30 -040093}
94
95GLenum FramebufferNULL::getImplementationColorReadType() const
96{
Geoff Lang2291c932016-11-18 14:10:17 -050097 const gl::FramebufferAttachment *readAttachment = mState.getReadAttachment();
98 if (readAttachment == nullptr)
99 {
100 return GL_NONE;
101 }
102
103 const gl::Format &format = readAttachment->getFormat();
104 ASSERT(format.info != nullptr);
105 return format.info->getReadPixelsType();
Geoff Langd08f3b32016-09-23 15:56:30 -0400106}
107
108gl::Error FramebufferNULL::readPixels(ContextImpl *context,
109 const gl::Rectangle &area,
110 GLenum format,
111 GLenum type,
112 GLvoid *pixels) const
113{
Geoff Lang76cdbd52016-09-23 16:51:04 -0400114 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -0400115}
116
117gl::Error FramebufferNULL::blit(ContextImpl *context,
118 const gl::Rectangle &sourceArea,
119 const gl::Rectangle &destArea,
120 GLbitfield mask,
121 GLenum filter)
122{
Geoff Lang76cdbd52016-09-23 16:51:04 -0400123 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -0400124}
125
126bool FramebufferNULL::checkStatus() const
127{
Geoff Lang76cdbd52016-09-23 16:51:04 -0400128 return true;
Geoff Langd08f3b32016-09-23 15:56:30 -0400129}
130
131void FramebufferNULL::syncState(const gl::Framebuffer::DirtyBits &dirtyBits)
132{
Geoff Langd08f3b32016-09-23 15:56:30 -0400133}
134
JiangYizhoubddc46b2016-12-09 09:50:51 +0800135gl::Error FramebufferNULL::getSamplePosition(size_t index, GLfloat *xy) const
136{
137 return gl::NoError();
138}
139
Geoff Langd08f3b32016-09-23 15:56:30 -0400140} // namespace rx