Edit

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

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2016-09-02 15:00:09
    Hash : 29639857
    Message : D3D11: Work around Intel uniform buffers bug. When copying from a staging buffer to a uniform buffer, the first upload would be incorrect. Work around this by trying to upload directly to a uniform buffer on the first BufferSubData call. BUG=chromium:593024 Change-Id: I0df3a1422b962bf3ece5d445f435df01e3544b67 Reviewed-on: https://chromium-review.googlesource.com/368774 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@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 rx
    {
    
    class BufferImpl : angle::NonCopyable
    {
      public:
        virtual ~BufferImpl() { }
    
        virtual gl::Error setData(GLenum target, const void *data, size_t size, GLenum usage)     = 0;
        virtual gl::Error setSubData(GLenum target, const void *data, size_t size, size_t offset) = 0;
        virtual gl::Error copySubData(BufferImpl *source,
                                      GLintptr sourceOffset,
                                      GLintptr destOffset,
                                      GLsizeiptr size) = 0;
        virtual gl::Error map(GLenum access, GLvoid **mapPtr) = 0;
        virtual gl::Error mapRange(size_t offset, size_t length, GLbitfield access, GLvoid **mapPtr) = 0;
        virtual gl::Error unmap(GLboolean *result) = 0;
    
        virtual gl::Error getIndexRange(GLenum type,
                                        size_t offset,
                                        size_t count,
                                        bool primitiveRestartEnabled,
                                        gl::IndexRange *outRange) = 0;
    };
    
    }
    
    #endif // LIBANGLE_RENDERER_BUFFERIMPL_H_