Edit

kc3-lang/angle/src/libANGLE/renderer/BufferImpl.h

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2017-06-01 12:45:42
    Hash : c564c070
    Message : Pass gl::Context to impl methods instead of ContextImpl. In some cases we might have to call back into the GL layer, passing the Context, and if we just have a ContextImpl pointer this isn't possible. It also removes the need for SafeGetImpl. BUG=angleproject:2044 Change-Id: I6363e84b25648c992c25779d4c43f795aa2866d6 Reviewed-on: https://chromium-review.googlesource.com/516835 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>

  • src/libANGLE/renderer/BufferImpl.h
  • //
    // Copyright 2014 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.
    //
    
    // BufferImpl.h: Defines the abstract rx::BufferImpl class.
    
    #ifndef LIBANGLE_RENDERER_BUFFERIMPL_H_
    #define LIBANGLE_RENDERER_BUFFERIMPL_H_
    
    #include "common/angleutils.h"
    #include "common/mathutil.h"
    #include "libANGLE/Error.h"
    
    #include <stdint.h>
    
    namespace gl
    {
    class BufferState;
    class Context;
    }
    
    namespace rx
    {
    class BufferImpl : angle::NonCopyable
    {
      public:
        BufferImpl(const gl::BufferState &state) : mState(state) {}
        virtual ~BufferImpl() {}
        virtual void destroy(const gl::Context *context) {}
    
        virtual gl::Error setData(const gl::Context *context,
                                  GLenum target,
                                  const void *data,
                                  size_t size,
                                  GLenum usage) = 0;
        virtual gl::Error setSubData(const gl::Context *context,
                                     GLenum target,
                                     const void *data,
                                     size_t size,
                                     size_t offset) = 0;
        virtual gl::Error copySubData(const gl::Context *context,
                                      BufferImpl *source,
                                      GLintptr sourceOffset,
                                      GLintptr destOffset,
                                      GLsizeiptr size) = 0;
        virtual gl::Error map(const gl::Context *context, GLenum access, void **mapPtr) = 0;
        virtual gl::Error mapRange(const gl::Context *context,
                                   size_t offset,
                                   size_t length,
                                   GLbitfield access,
                                   void **mapPtr) = 0;
        virtual gl::Error unmap(const gl::Context *context, GLboolean *result) = 0;
    
        virtual gl::Error getIndexRange(GLenum type,
                                        size_t offset,
                                        size_t count,
                                        bool primitiveRestartEnabled,
                                        gl::IndexRange *outRange) = 0;
    
      protected:
        const gl::BufferState &mState;
    };
    }
    
    #endif  // LIBANGLE_RENDERER_BUFFERIMPL_H_