Edit

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

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2015-06-05 10:59:04
    Hash : d5451f11
    Message : Inline comparison operators of several small ANGLE structs. Improves draw call overhead of RendererGL. DrawCallPerf_gl: Before: 129779 score After: 136973 score Improvement: 5.543% No noticeable difference in DLL size or draw call perf of the D3D renderers. BUG=angleproject:959 Change-Id: Id54d49e9e2cfb69431ee26d632c58fee2c42b82c Reviewed-on: https://chromium-review.googlesource.com/275408 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>

  • src/libANGLE/angletypes.inl
  • //
    // Copyright (c) 2012-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.
    //
    
    // angletypes.inl : Inline definitions of some functions from angletypes.h
    
    namespace gl
    {
    
    template <typename T>
    bool operator==(const Color<T> &a, const Color<T> &b)
    {
        return a.red == b.red &&
               a.green == b.green &&
               a.blue == b.blue &&
               a.alpha == b.alpha;
    }
    
    template <typename T>
    bool operator!=(const Color<T> &a, const Color<T> &b)
    {
        return !(a == b);
    }
    
    inline bool operator==(const Rectangle &a, const Rectangle &b)
    {
        return a.x == b.x &&
               a.y == b.y &&
               a.width == b.width &&
               a.height == b.height;
    }
    
    inline bool operator!=(const Rectangle &a, const Rectangle &b)
    {
        return !(a == b);
    }
    
    inline bool operator==(const SamplerState &a, const SamplerState &b)
    {
        return a.minFilter == b.minFilter &&
               a.magFilter == b.magFilter &&
               a.wrapS == b.wrapS &&
               a.wrapT == b.wrapT &&
               a.wrapR == b.wrapR &&
               a.maxAnisotropy == b.maxAnisotropy &&
               a.baseLevel == b.baseLevel &&
               a.maxLevel == b.maxLevel &&
               a.minLod == b.minLod &&
               a.maxLod == b.maxLod &&
               a.compareMode == b.compareMode &&
               a.compareFunc == b.compareFunc &&
               a.swizzleRed == b.swizzleRed &&
               a.swizzleGreen == b.swizzleGreen &&
               a.swizzleBlue == b.swizzleBlue &&
               a.swizzleAlpha == b.swizzleAlpha;
    }
    
    inline bool operator!=(const SamplerState &a, const SamplerState &b)
    {
        return !(a == b);
    }
    
    }