Edit

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

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2020-11-22 09:05:06
    Hash : fb82b119
    Message : EGL: Add const to several methods. This is in preparatino for auto-generating the EGL validation header. The auto-generation script will force multiple parameters to const. Bug: angleproject:2621 Change-Id: I04e442c6ff118fd7c296341f12f442901f6fb8c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552979 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>

  • src/libANGLE/renderer/DisplayImpl.cpp
  • //
    // Copyright 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/Display.h"
    #include "libANGLE/Surface.h"
    #include "libANGLE/renderer/DeviceImpl.h"
    
    namespace rx
    {
    namespace
    {
    // For back-ends that do not implement EGLDevice.
    class MockDevice : public DeviceImpl
    {
      public:
        MockDevice() = default;
        egl::Error initialize() override { return egl::NoError(); }
        egl::Error getAttribute(const egl::Display *display, EGLint attribute, void **outValue) override
        {
            UNREACHABLE();
            return egl::EglBadAttribute();
        }
        EGLint getType() override
        {
            UNREACHABLE();
            return EGL_NONE;
        }
        void generateExtensions(egl::DeviceExtensions *outExtensions) const override
        {
            *outExtensions = egl::DeviceExtensions();
        }
    };
    }  // anonymous namespace
    
    DisplayImpl::DisplayImpl(const egl::DisplayState &state)
        : mState(state), mExtensionsInitialized(false), mCapsInitialized(false), mBlobCache(nullptr)
    {}
    
    DisplayImpl::~DisplayImpl()
    {
        ASSERT(mState.surfaceSet.empty());
    }
    
    egl::Error DisplayImpl::prepareForCall()
    {
        return egl::NoError();
    }
    
    egl::Error DisplayImpl::releaseThread()
    {
        return egl::NoError();
    }
    
    const egl::DisplayExtensions &DisplayImpl::getExtensions() const
    {
        if (!mExtensionsInitialized)
        {
            generateExtensions(&mExtensions);
            mExtensionsInitialized = true;
        }
    
        return mExtensions;
    }
    
    egl::Error DisplayImpl::handleGPUSwitch()
    {
        return egl::NoError();
    }
    
    egl::Error DisplayImpl::validateClientBuffer(const egl::Config *configuration,
                                                 EGLenum buftype,
                                                 EGLClientBuffer clientBuffer,
                                                 const egl::AttributeMap &attribs) const
    {
        UNREACHABLE();
        return egl::EglBadDisplay() << "DisplayImpl::validateClientBuffer unimplemented.";
    }
    
    egl::Error DisplayImpl::validateImageClientBuffer(const gl::Context *context,
                                                      EGLenum target,
                                                      EGLClientBuffer clientBuffer,
                                                      const egl::AttributeMap &attribs) const
    {
        UNREACHABLE();
        return egl::EglBadDisplay() << "DisplayImpl::validateImageClientBuffer unimplemented.";
    }
    
    egl::Error DisplayImpl::validatePixmap(const egl::Config *config,
                                           EGLNativePixmapType pixmap,
                                           const egl::AttributeMap &attributes) const
    {
        UNREACHABLE();
        return egl::EglBadDisplay() << "DisplayImpl::valdiatePixmap unimplemented.";
    }
    
    const egl::Caps &DisplayImpl::getCaps() const
    {
        if (!mCapsInitialized)
        {
            generateCaps(&mCaps);
            mCapsInitialized = true;
        }
    
        return mCaps;
    }
    
    DeviceImpl *DisplayImpl::createDevice()
    {
        return new MockDevice();
    }
    }  // namespace rx