blob: eb02b959d994b465af2c81a16593d796d9fb3ae0 [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
Jamie Madillc564c072017-06-01 12:45:42 -040044gl::Error FramebufferNULL::clear(const gl::Context *context, GLbitfield mask)
Geoff Langd08f3b32016-09-23 15:56:30 -040045{
Geoff Lang76cdbd52016-09-23 16:51:04 -040046 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040047}
48
Jamie Madillc564c072017-06-01 12:45:42 -040049gl::Error FramebufferNULL::clearBufferfv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040050 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
Jamie Madillc564c072017-06-01 12:45:42 -040057gl::Error FramebufferNULL::clearBufferuiv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040058 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
Jamie Madillc564c072017-06-01 12:45:42 -040065gl::Error FramebufferNULL::clearBufferiv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040066 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
Jamie Madillc564c072017-06-01 12:45:42 -040073gl::Error FramebufferNULL::clearBufferfi(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040074 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
Jamie Madillc564c072017-06-01 12:45:42 -0400108gl::Error FramebufferNULL::readPixels(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -0400109 const gl::Rectangle &area,
110 GLenum format,
111 GLenum type,
Jamie Madill876429b2017-04-20 15:46:24 -0400112 void *pixels) const
Geoff Langd08f3b32016-09-23 15:56:30 -0400113{
Geoff Lang76cdbd52016-09-23 16:51:04 -0400114 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -0400115}
116
Jamie Madillc564c072017-06-01 12:45:42 -0400117gl::Error FramebufferNULL::blit(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -0400118 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
Jamie Madillc564c072017-06-01 12:45:42 -0400131void FramebufferNULL::syncState(const gl::Context *context,
Jamie Madilldd43e6c2017-03-24 14:18:49 -0400132 const gl::Framebuffer::DirtyBits &dirtyBits)
Geoff Langd08f3b32016-09-23 15:56:30 -0400133{
Geoff Langd08f3b32016-09-23 15:56:30 -0400134}
135
JiangYizhoubddc46b2016-12-09 09:50:51 +0800136gl::Error FramebufferNULL::getSamplePosition(size_t index, GLfloat *xy) const
137{
138 return gl::NoError();
139}
140
Geoff Langd08f3b32016-09-23 15:56:30 -0400141} // namespace rx