Edit

kc3-lang/angle/src/libANGLE/queryconversions.h

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2015-09-11 13:25:51
    Hash : 62d31cb6
    Message : Re^6-land "Move Uniform and UBO info to the gl::Program layer." This data was previously stored entirely in the Impl level. Move as much as possible to the GL level, using a read-only view in the Impl level. Some information in D3D-specific, and should be stored separately in the Impl. This patch has a lot of refactoring that splits the D3D and GL info, and moves as much validation as possible to the GL layer, where it is shared between the back-ends. Re-land with fix for dEQP unused uniforms. The fix involves storing a local copy of all uniform data in the GL layer. This will also let us validate sampler indexes during draw calls at the GL layer. Re-re-land with a fix for multiply defined symbols on Clang. Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f. Re^4-land with a fix for boolean uniform arrays and UBO uniforms. Re^5-land with a fix for a test warning on Linux. Re^6-land with a fix for transposed matrix uniform arrays. BUG=angleproject:1123 TEST=end2end_tests, bots, dEQP GLES3.ubo and GLES2.uniform_api Change-Id: Ie6fcde1c16eb05d67191b629338b88302a2563f5 Reviewed-on: https://chromium-review.googlesource.com/298971 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>

  • src/libANGLE/queryconversions.h
  • //
    // Copyright (c) 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.
    //
    
    // queryconversions.h: Declaration of state query cast conversions
    
    #ifndef LIBANGLE_QUERY_CONVERSIONS_H_
    #define LIBANGLE_QUERY_CONVERSIONS_H_
    
    #include "angle_gl.h"
    #include "common/angleutils.h"
    
    namespace gl
    {
    class Context;
    
    // Helper class for converting a GL type to a GLenum:
    // We can't use CastStateValueEnum generally, because of GLboolean + GLubyte overlap.
    // We restrict our use to CastStateValue, where it eliminates duplicate parameters.
    
    template <typename GLType>
    struct GLTypeToGLenum
    {
        static GLenum value;
    };
    
    // The GL state query API types are: bool, int, uint, float, int64
    template <typename QueryT>
    void CastStateValues(Context *context, GLenum nativeType, GLenum pname,
                         unsigned int numParams, QueryT *outParams);
    
    }
    
    #endif  // LIBANGLE_QUERY_CONVERSIONS_H_