Edit

kc3-lang/angle/src/libANGLE/renderer/DisplayImpl.cpp

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2015-01-06 15:19:35
    Hash : 5c39f688
    Message : Have the DisplayImpl create the Renderer and Contexts. BUG=angle:658 Change-Id: I726d87b90be8382c5dd8964e4d8686711e404ffe Reviewed-on: https://chromium-review.googlesource.com/238861 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>

  • src/libANGLE/renderer/DisplayImpl.cpp
  • //
    // 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.
    //
    
    // DisplayImpl.cpp: Implementation methods of egl::Display
    
    #include "libANGLE/renderer/DisplayImpl.h"
    
    #include "libANGLE/Surface.h"
    
    namespace rx
    {
    
    DisplayImpl::DisplayImpl()
        : mExtensionsInitialized(false),
          mCapsInitialized(false)
    {
    }
    
    DisplayImpl::~DisplayImpl()
    {
        while (!mSurfaceSet.empty())
        {
            destroySurface(*mSurfaceSet.begin());
        }
    }
    
    void DisplayImpl::destroySurface(egl::Surface *surface)
    {
        mSurfaceSet.erase(surface);
        SafeDelete(surface);
    }
    
    const egl::DisplayExtensions &DisplayImpl::getExtensions() const
    {
        if (!mExtensionsInitialized)
        {
            generateExtensions(&mExtensions);
            mExtensionsInitialized = true;
        }
    
        return mExtensions;
    }
    
    const egl::Caps &DisplayImpl::getCaps() const
    {
        if (!mCapsInitialized)
        {
            generateCaps(&mCaps);
            mCapsInitialized = true;
        }
    
        return mCaps;
    }
    
    }