Edit

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

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2017-10-05 12:02:30
    Hash : e159717d
    Message : Filter EGL attributes before passing them to the native driver. Adding extensions that are not native driver extensions would cause surface creation to fail. BUG=angleproject:1635 Change-Id: I2f683ee0560e463aa06f3ba92d0bf3f3d8c8927d Reviewed-on: https://chromium-review.googlesource.com/701602 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>

  • src/libANGLE/AttributeMap.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.
    //
    
    #ifndef LIBANGLE_ATTRIBUTEMAP_H_
    #define LIBANGLE_ATTRIBUTEMAP_H_
    
    
    #include <EGL/egl.h>
    
    #include <map>
    #include <vector>
    
    namespace egl
    {
    
    class AttributeMap final
    {
      public:
        AttributeMap();
    
        void insert(EGLAttrib key, EGLAttrib value);
        bool contains(EGLAttrib key) const;
        EGLAttrib get(EGLAttrib key) const;
        EGLAttrib get(EGLAttrib key, EGLAttrib defaultValue) const;
        EGLint getAsInt(EGLAttrib key) const;
        EGLint getAsInt(EGLAttrib key, EGLint defaultValue) const;
        bool isEmpty() const;
        std::vector<EGLint> toIntVector() const;
    
        typedef std::map<EGLAttrib, EGLAttrib>::const_iterator const_iterator;
    
        const_iterator begin() const;
        const_iterator end() const;
    
        static AttributeMap CreateFromIntArray(const EGLint *attributes);
        static AttributeMap CreateFromAttribArray(const EGLAttrib *attributes);
    
      private:
        std::map<EGLAttrib, EGLAttrib> mAttributes;
    };
    
    }
    
    #endif   // LIBANGLE_ATTRIBUTEMAP_H_