Edit

kc3-lang/angle/util/ozone/OzoneWindow.cpp

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2019-01-03 13:01:08
    Hash : ad398ee8
    Message : Free OSWindow and EGLWindow through helpers. This cleans up any potential problems with allocating and freeing resources in different shared objects or DLLs. Previously we were using a dynamically linked allocation function and then calling the standard delete function. Also adds a base class helper for EGLWindow. Will base the WGL Window class on this. Needed for running ANGLE tests against native drivers. Bug: angleproject:2995 Change-Id: Ic92b447649ebb32c547605c20086c07a601842f0 Reviewed-on: https://chromium-review.googlesource.com/c/1393443 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>

  • util/ozone/OzoneWindow.cpp
  • //
    // Copyright (c) 2016 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.
    //
    
    // OzoneWindow.cpp: Implementation of OSWindow for Ozone
    
    #include "util/ozone/OzoneWindow.h"
    
    int OzoneWindow::sLastDepth = 0;
    
    OzoneWindow::OzoneWindow() {}
    
    OzoneWindow::~OzoneWindow() {}
    
    bool OzoneWindow::initialize(const std::string &name, size_t width, size_t height)
    {
        mNative.x = mX = 0;
        mNative.y = mY = 0;
        mNative.width = mWidth = width;
        mNative.height = mHeight = height;
        mNative.borderWidth      = 5;
        mNative.borderHeight     = 5;
        mNative.visible          = 0;
        mNative.depth            = sLastDepth++;
        return true;
    }
    
    void OzoneWindow::destroy() {}
    
    EGLNativeWindowType OzoneWindow::getNativeWindow() const
    {
        return reinterpret_cast<EGLNativeWindowType>(&mNative);
    }
    
    EGLNativeDisplayType OzoneWindow::getNativeDisplay() const
    {
        return EGL_DEFAULT_DISPLAY;
    }
    
    void OzoneWindow::messageLoop() {}
    
    void OzoneWindow::setMousePosition(int x, int y) {}
    
    bool OzoneWindow::setPosition(int x, int y)
    {
        mNative.x = mX = x;
        mNative.y = mY = y;
        return true;
    }
    
    bool OzoneWindow::resize(int width, int height)
    {
        mNative.width = mWidth = width;
        mNative.height = mHeight = height;
        return true;
    }
    
    void OzoneWindow::setVisible(bool isVisible)
    {
        mNative.visible = isVisible;
    }
    
    void OzoneWindow::signalTestEvent() {}
    
    // static
    OSWindow *OSWindow::New()
    {
        return new OzoneWindow();
    }