1*8975f5c5SAndroid Build Coastguard Worker // 2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2016 The ANGLE Project Authors. All rights reserved. 3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file. 5*8975f5c5SAndroid Build Coastguard Worker // 6*8975f5c5SAndroid Build Coastguard Worker // FramebufferNULL.h: 7*8975f5c5SAndroid Build Coastguard Worker // Defines the class interface for FramebufferNULL, implementing FramebufferImpl. 8*8975f5c5SAndroid Build Coastguard Worker // 9*8975f5c5SAndroid Build Coastguard Worker 10*8975f5c5SAndroid Build Coastguard Worker #ifndef LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_ 11*8975f5c5SAndroid Build Coastguard Worker #define LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_ 12*8975f5c5SAndroid Build Coastguard Worker 13*8975f5c5SAndroid Build Coastguard Worker #include "libANGLE/renderer/FramebufferImpl.h" 14*8975f5c5SAndroid Build Coastguard Worker 15*8975f5c5SAndroid Build Coastguard Worker namespace rx 16*8975f5c5SAndroid Build Coastguard Worker { 17*8975f5c5SAndroid Build Coastguard Worker 18*8975f5c5SAndroid Build Coastguard Worker class FramebufferNULL : public FramebufferImpl 19*8975f5c5SAndroid Build Coastguard Worker { 20*8975f5c5SAndroid Build Coastguard Worker public: 21*8975f5c5SAndroid Build Coastguard Worker FramebufferNULL(const gl::FramebufferState &state); 22*8975f5c5SAndroid Build Coastguard Worker ~FramebufferNULL() override; 23*8975f5c5SAndroid Build Coastguard Worker 24*8975f5c5SAndroid Build Coastguard Worker angle::Result discard(const gl::Context *context, 25*8975f5c5SAndroid Build Coastguard Worker size_t count, 26*8975f5c5SAndroid Build Coastguard Worker const GLenum *attachments) override; 27*8975f5c5SAndroid Build Coastguard Worker angle::Result invalidate(const gl::Context *context, 28*8975f5c5SAndroid Build Coastguard Worker size_t count, 29*8975f5c5SAndroid Build Coastguard Worker const GLenum *attachments) override; 30*8975f5c5SAndroid Build Coastguard Worker angle::Result invalidateSub(const gl::Context *context, 31*8975f5c5SAndroid Build Coastguard Worker size_t count, 32*8975f5c5SAndroid Build Coastguard Worker const GLenum *attachments, 33*8975f5c5SAndroid Build Coastguard Worker const gl::Rectangle &area) override; 34*8975f5c5SAndroid Build Coastguard Worker 35*8975f5c5SAndroid Build Coastguard Worker angle::Result clear(const gl::Context *context, GLbitfield mask) override; 36*8975f5c5SAndroid Build Coastguard Worker angle::Result clearBufferfv(const gl::Context *context, 37*8975f5c5SAndroid Build Coastguard Worker GLenum buffer, 38*8975f5c5SAndroid Build Coastguard Worker GLint drawbuffer, 39*8975f5c5SAndroid Build Coastguard Worker const GLfloat *values) override; 40*8975f5c5SAndroid Build Coastguard Worker angle::Result clearBufferuiv(const gl::Context *context, 41*8975f5c5SAndroid Build Coastguard Worker GLenum buffer, 42*8975f5c5SAndroid Build Coastguard Worker GLint drawbuffer, 43*8975f5c5SAndroid Build Coastguard Worker const GLuint *values) override; 44*8975f5c5SAndroid Build Coastguard Worker angle::Result clearBufferiv(const gl::Context *context, 45*8975f5c5SAndroid Build Coastguard Worker GLenum buffer, 46*8975f5c5SAndroid Build Coastguard Worker GLint drawbuffer, 47*8975f5c5SAndroid Build Coastguard Worker const GLint *values) override; 48*8975f5c5SAndroid Build Coastguard Worker angle::Result clearBufferfi(const gl::Context *context, 49*8975f5c5SAndroid Build Coastguard Worker GLenum buffer, 50*8975f5c5SAndroid Build Coastguard Worker GLint drawbuffer, 51*8975f5c5SAndroid Build Coastguard Worker GLfloat depth, 52*8975f5c5SAndroid Build Coastguard Worker GLint stencil) override; 53*8975f5c5SAndroid Build Coastguard Worker 54*8975f5c5SAndroid Build Coastguard Worker angle::Result readPixels(const gl::Context *context, 55*8975f5c5SAndroid Build Coastguard Worker const gl::Rectangle &area, 56*8975f5c5SAndroid Build Coastguard Worker GLenum format, 57*8975f5c5SAndroid Build Coastguard Worker GLenum type, 58*8975f5c5SAndroid Build Coastguard Worker const gl::PixelPackState &pack, 59*8975f5c5SAndroid Build Coastguard Worker gl::Buffer *packBuffer, 60*8975f5c5SAndroid Build Coastguard Worker void *pixels) override; 61*8975f5c5SAndroid Build Coastguard Worker 62*8975f5c5SAndroid Build Coastguard Worker angle::Result blit(const gl::Context *context, 63*8975f5c5SAndroid Build Coastguard Worker const gl::Rectangle &sourceArea, 64*8975f5c5SAndroid Build Coastguard Worker const gl::Rectangle &destArea, 65*8975f5c5SAndroid Build Coastguard Worker GLbitfield mask, 66*8975f5c5SAndroid Build Coastguard Worker GLenum filter) override; 67*8975f5c5SAndroid Build Coastguard Worker 68*8975f5c5SAndroid Build Coastguard Worker gl::FramebufferStatus checkStatus(const gl::Context *context) const override; 69*8975f5c5SAndroid Build Coastguard Worker 70*8975f5c5SAndroid Build Coastguard Worker angle::Result syncState(const gl::Context *context, 71*8975f5c5SAndroid Build Coastguard Worker GLenum binding, 72*8975f5c5SAndroid Build Coastguard Worker const gl::Framebuffer::DirtyBits &dirtyBits, 73*8975f5c5SAndroid Build Coastguard Worker gl::Command command) override; 74*8975f5c5SAndroid Build Coastguard Worker 75*8975f5c5SAndroid Build Coastguard Worker angle::Result getSamplePosition(const gl::Context *context, 76*8975f5c5SAndroid Build Coastguard Worker size_t index, 77*8975f5c5SAndroid Build Coastguard Worker GLfloat *xy) const override; 78*8975f5c5SAndroid Build Coastguard Worker }; 79*8975f5c5SAndroid Build Coastguard Worker 80*8975f5c5SAndroid Build Coastguard Worker } // namespace rx 81*8975f5c5SAndroid Build Coastguard Worker 82*8975f5c5SAndroid Build Coastguard Worker #endif // LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_ 83