Edit

kc3-lang/angle/src/libANGLE/renderer/null/FramebufferNULL.h

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2021-05-11 13:53:05
    Hash : bccb0d56
    Message : Add messages for framebuffer completeness errors. This also creates a common code path for all framebuffer completeness errors (FramebufferStatus::Incomplete) which helps for adding a debug breakpoint. Bug: angleproject:5949 Change-Id: Ib102dbf86e020777e56c6dc6b78dda8ebdba2127 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2888110 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>

  • src/libANGLE/renderer/null/FramebufferNULL.h
  • //
    // Copyright 2016 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    // FramebufferNULL.h:
    //    Defines the class interface for FramebufferNULL, implementing FramebufferImpl.
    //
    
    #ifndef LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_
    #define LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_
    
    #include "libANGLE/renderer/FramebufferImpl.h"
    
    namespace rx
    {
    
    class FramebufferNULL : public FramebufferImpl
    {
      public:
        FramebufferNULL(const gl::FramebufferState &state);
        ~FramebufferNULL() override;
    
        angle::Result discard(const gl::Context *context,
                              size_t count,
                              const GLenum *attachments) override;
        angle::Result invalidate(const gl::Context *context,
                                 size_t count,
                                 const GLenum *attachments) override;
        angle::Result invalidateSub(const gl::Context *context,
                                    size_t count,
                                    const GLenum *attachments,
                                    const gl::Rectangle &area) override;
    
        angle::Result clear(const gl::Context *context, GLbitfield mask) override;
        angle::Result clearBufferfv(const gl::Context *context,
                                    GLenum buffer,
                                    GLint drawbuffer,
                                    const GLfloat *values) override;
        angle::Result clearBufferuiv(const gl::Context *context,
                                     GLenum buffer,
                                     GLint drawbuffer,
                                     const GLuint *values) override;
        angle::Result clearBufferiv(const gl::Context *context,
                                    GLenum buffer,
                                    GLint drawbuffer,
                                    const GLint *values) override;
        angle::Result clearBufferfi(const gl::Context *context,
                                    GLenum buffer,
                                    GLint drawbuffer,
                                    GLfloat depth,
                                    GLint stencil) override;
    
        angle::Result readPixels(const gl::Context *context,
                                 const gl::Rectangle &area,
                                 GLenum format,
                                 GLenum type,
                                 const gl::PixelPackState &pack,
                                 gl::Buffer *packBuffer,
                                 void *pixels) override;
    
        angle::Result blit(const gl::Context *context,
                           const gl::Rectangle &sourceArea,
                           const gl::Rectangle &destArea,
                           GLbitfield mask,
                           GLenum filter) override;
    
        gl::FramebufferStatus checkStatus(const gl::Context *context) const override;
    
        angle::Result syncState(const gl::Context *context,
                                GLenum binding,
                                const gl::Framebuffer::DirtyBits &dirtyBits,
                                gl::Command command) override;
    
        angle::Result getSamplePosition(const gl::Context *context,
                                        size_t index,
                                        GLfloat *xy) const override;
    };
    
    }  // namespace rx
    
    #endif  // LIBANGLE_RENDERER_NULL_FRAMEBUFFERNULL_H_