Edit

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

Branch :

  • Show log

    Commit

  • Author : Corentin Wallez
    Date : 2015-08-20 14:19:46
    Hash : 37c3979e
    Message : Revert "Revert "Make the default framebuffer owned by Surface"" Reland the commit after fixing a bug in FramebufferAttachment. This reverts commit 18fdcbcf1d02d3b3b4b5c712f05058f2e8d629c6. BUG=angleproject:891 Change-Id: I07e08de52bfce8d84d070fc7bc15883009298a4d Reviewed-on: https://chromium-review.googlesource.com/294831 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@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);
        surface->onDestroy();
    }
    
    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;
    }
    
    }