Edit

kc3-lang/angle/src/libANGLE/params.cpp

Branch :

  • Show log

    Commit

  • Author : Corentin Wallez
    Date : 2017-04-28 14:42:07
    Hash : 180973c7
    Message : Fix params.h compilation. The ANGLE_PARAM_TYPE_INFO macro was referencing the TypeInfo static member that was only added when release asserts are enabled. BUG=angleproject:747 BUG=chromium:716323 Change-Id: I0657dde69c62ab697b3c095fe19f38c130188cef Reviewed-on: https://chromium-review.googlesource.com/490687 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>

  • src/libANGLE/params.cpp
  • //
    // Copyright 2017 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.
    //
    // params:
    //   Parameter wrapper structs for OpenGL ES. These helpers cache re-used values
    //   in entry point routines.
    
    #include "libANGLE/params.h"
    
    #include "common/utilities.h"
    #include "libANGLE/Context.h"
    #include "libANGLE/VertexArray.h"
    
    namespace gl
    {
    
    // static
    constexpr ParamTypeInfo ParamsBase::TypeInfo;
    constexpr ParamTypeInfo HasIndexRange::TypeInfo;
    
    ParamsBase::ParamsBase(Context *context, ...)
    {
    }
    
    HasIndexRange::HasIndexRange(Context *context, GLsizei count, GLenum type, const void *indices)
        : ParamsBase(context), mContext(context), mCount(count), mType(type), mIndices(indices)
    {
    }
    
    const Optional<IndexRange> &HasIndexRange::getIndexRange() const
    {
        if (mIndexRange.valid())
        {
            return mIndexRange;
        }
    
        const State &state = mContext->getGLState();
    
        const gl::VertexArray *vao     = state.getVertexArray();
        gl::Buffer *elementArrayBuffer = vao->getElementArrayBuffer().get();
    
        if (elementArrayBuffer)
        {
            uintptr_t offset = reinterpret_cast<uintptr_t>(mIndices);
            IndexRange indexRange;
            Error error =
                elementArrayBuffer->getIndexRange(mType, static_cast<size_t>(offset), mCount,
                                                  state.isPrimitiveRestartEnabled(), &indexRange);
            if (error.isError())
            {
                mContext->handleError(error);
                return mIndexRange;
            }
    
            mIndexRange = indexRange;
        }
        else
        {
            mIndexRange = ComputeIndexRange(mType, mIndices, mCount, state.isPrimitiveRestartEnabled());
        }
    
        return mIndexRange;
    }
    
    }  // namespace gl