Edit

kc3-lang/angle/src/libANGLE/Version.inl

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2017-10-21 16:10:02
    Hash : 29ddcc99
    Message : Add an auto-generated dispatch table for GL bindings. This will more easily allow us to extend our implementation to make a NULL or "stub" set of bindings. It also exposes a lot more function permutations via extension variations. It might improve the loading speed for bindings obtained via extensions. Instead of generating a list every time an extension is checked, we use a single std::set for a fast query. However because more extensions are checked for more entry points, it might not make a huge difference. This also fixes an issue where the "real" ANGLE GL headers were being propagated to the entry point dispatch table definitions, instead of being in a totally isolated file. This patch adds the missing typedefs to our proxy headers. It also fixes the naming of a few entry points which was inconsistent with the spec. It also makes an XML adjustment to GL_NV_path_rendering to accomodate a hole in the spec where glLoadMatrixfEXT was not ever defined in OpenGL ES. A spec oddity with the TexStorage extension is not resolved - in this case, some methods are only exposed if other extensions are present, but this information is missing from gl.xml. BUG=angleproject:2188 Change-Id: I0fd61dd32de6fadd55fa6bd79295833392d51104 Reviewed-on: https://chromium-review.googlesource.com/726949 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>

  • src/libANGLE/Version.inl
  • //
    // Copyright (c) 2015 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.
    //
    
    // Version.inl: Encapsulation of a GL version.
    
    #include <tuple>
    
    namespace gl
    {
    
    constexpr Version::Version()
        : Version(0, 0)
    {
    }
    
    // Avoid conflicts with linux system defines
    #undef major
    #undef minor
    
    constexpr Version::Version(unsigned int major_, unsigned int minor_)
        : major(major_),
          minor(minor_)
    {
    }
    
    inline bool operator==(const Version &a, const Version &b)
    {
        return std::tie(a.major, a.minor) == std::tie(b.major, b.minor);
    }
    
    inline bool operator!=(const Version &a, const Version &b)
    {
        return std::tie(a.major, a.minor) != std::tie(b.major, b.minor);
    }
    
    inline bool operator>=(const Version &a, const Version &b)
    {
        return std::tie(a.major, a.minor) >= std::tie(b.major, b.minor);
    }
    
    inline bool operator<=(const Version &a, const Version &b)
    {
        return std::tie(a.major, a.minor) <= std::tie(b.major, b.minor);
    }
    
    inline bool operator<(const Version &a, const Version &b)
    {
        return std::tie(a.major, a.minor) < std::tie(b.major, b.minor);
    }
    
    inline bool operator>(const Version &a, const Version &b)
    {
        return std::tie(a.major, a.minor) > std::tie(b.major, b.minor);
    }
    
    }  // namespace gl