blob: b64dd2ad668f32850105faebb068fcc8a648d155 [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
Jamie Madill4928b7c2017-06-20 12:57:39 -040027gl::Error FramebufferNULL::discard(const gl::Context *context,
28 size_t count,
29 const GLenum *attachments)
Geoff Langd08f3b32016-09-23 15:56:30 -040030{
Geoff Lang76cdbd52016-09-23 16:51:04 -040031 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040032}
33
Jamie Madill4928b7c2017-06-20 12:57:39 -040034gl::Error FramebufferNULL::invalidate(const gl::Context *context,
35 size_t count,
36 const GLenum *attachments)
Geoff Langd08f3b32016-09-23 15:56:30 -040037{
Geoff Lang76cdbd52016-09-23 16:51:04 -040038 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040039}
40
Jamie Madill4928b7c2017-06-20 12:57:39 -040041gl::Error FramebufferNULL::invalidateSub(const gl::Context *context,
42 size_t count,
Geoff Langd08f3b32016-09-23 15:56:30 -040043 const GLenum *attachments,
44 const gl::Rectangle &area)
45{
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::clear(const gl::Context *context, GLbitfield mask)
Geoff Langd08f3b32016-09-23 15:56:30 -040050{
Geoff Lang76cdbd52016-09-23 16:51:04 -040051 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040052}
53
Jamie Madillc564c072017-06-01 12:45:42 -040054gl::Error FramebufferNULL::clearBufferfv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040055 GLenum buffer,
56 GLint drawbuffer,
57 const GLfloat *values)
58{
Geoff Lang76cdbd52016-09-23 16:51:04 -040059 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040060}
61
Jamie Madillc564c072017-06-01 12:45:42 -040062gl::Error FramebufferNULL::clearBufferuiv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040063 GLenum buffer,
64 GLint drawbuffer,
65 const GLuint *values)
66{
Geoff Lang76cdbd52016-09-23 16:51:04 -040067 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040068}
69
Jamie Madillc564c072017-06-01 12:45:42 -040070gl::Error FramebufferNULL::clearBufferiv(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040071 GLenum buffer,
72 GLint drawbuffer,
73 const GLint *values)
74{
Geoff Lang76cdbd52016-09-23 16:51:04 -040075 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040076}
77
Jamie Madillc564c072017-06-01 12:45:42 -040078gl::Error FramebufferNULL::clearBufferfi(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -040079 GLenum buffer,
80 GLint drawbuffer,
81 GLfloat depth,
82 GLint stencil)
83{
Geoff Lang76cdbd52016-09-23 16:51:04 -040084 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -040085}
86
Jamie Madill4928b7c2017-06-20 12:57:39 -040087GLenum FramebufferNULL::getImplementationColorReadFormat(const gl::Context *context) const
Geoff Langd08f3b32016-09-23 15:56:30 -040088{
Geoff Lang2291c932016-11-18 14:10:17 -050089 const gl::FramebufferAttachment *readAttachment = mState.getReadAttachment();
90 if (readAttachment == nullptr)
91 {
92 return GL_NONE;
93 }
94
95 const gl::Format &format = readAttachment->getFormat();
96 ASSERT(format.info != nullptr);
97 return format.info->getReadPixelsFormat();
Geoff Langd08f3b32016-09-23 15:56:30 -040098}
99
Jamie Madill4928b7c2017-06-20 12:57:39 -0400100GLenum FramebufferNULL::getImplementationColorReadType(const gl::Context *context) const
Geoff Langd08f3b32016-09-23 15:56:30 -0400101{
Geoff Lang2291c932016-11-18 14:10:17 -0500102 const gl::FramebufferAttachment *readAttachment = mState.getReadAttachment();
103 if (readAttachment == nullptr)
104 {
105 return GL_NONE;
106 }
107
108 const gl::Format &format = readAttachment->getFormat();
109 ASSERT(format.info != nullptr);
110 return format.info->getReadPixelsType();
Geoff Langd08f3b32016-09-23 15:56:30 -0400111}
112
Jamie Madillc564c072017-06-01 12:45:42 -0400113gl::Error FramebufferNULL::readPixels(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -0400114 const gl::Rectangle &area,
115 GLenum format,
116 GLenum type,
Jamie Madill876429b2017-04-20 15:46:24 -0400117 void *pixels) const
Geoff Langd08f3b32016-09-23 15:56:30 -0400118{
Geoff Lang76cdbd52016-09-23 16:51:04 -0400119 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -0400120}
121
Jamie Madillc564c072017-06-01 12:45:42 -0400122gl::Error FramebufferNULL::blit(const gl::Context *context,
Geoff Langd08f3b32016-09-23 15:56:30 -0400123 const gl::Rectangle &sourceArea,
124 const gl::Rectangle &destArea,
125 GLbitfield mask,
126 GLenum filter)
127{
Geoff Lang76cdbd52016-09-23 16:51:04 -0400128 return gl::NoError();
Geoff Langd08f3b32016-09-23 15:56:30 -0400129}
130
131bool FramebufferNULL::checkStatus() const
132{
Geoff Lang76cdbd52016-09-23 16:51:04 -0400133 return true;
Geoff Langd08f3b32016-09-23 15:56:30 -0400134}
135
Jamie Madillc564c072017-06-01 12:45:42 -0400136void FramebufferNULL::syncState(const gl::Context *context,
Jamie Madilldd43e6c2017-03-24 14:18:49 -0400137 const gl::Framebuffer::DirtyBits &dirtyBits)
Geoff Langd08f3b32016-09-23 15:56:30 -0400138{
Geoff Langd08f3b32016-09-23 15:56:30 -0400139}
140
JiangYizhoubddc46b2016-12-09 09:50:51 +0800141gl::Error FramebufferNULL::getSamplePosition(size_t index, GLfloat *xy) const
142{
143 return gl::NoError();
144}
145
Geoff Langd08f3b32016-09-23 15:56:30 -0400146} // namespace rx