diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/ThirdParty/ANGLE/util/OSWindow.h | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/ThirdParty/ANGLE/util/OSWindow.h')
-rw-r--r-- | Source/ThirdParty/ANGLE/util/OSWindow.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/Source/ThirdParty/ANGLE/util/OSWindow.h b/Source/ThirdParty/ANGLE/util/OSWindow.h new file mode 100644 index 000000000..6cb239152 --- /dev/null +++ b/Source/ThirdParty/ANGLE/util/OSWindow.h @@ -0,0 +1,69 @@ +// +// 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 SAMPLE_UTIL_WINDOW_H +#define SAMPLE_UTIL_WINDOW_H + +#include <list> +#include <stdint.h> +#include <string> + +#include <export.h> +#include <EGL/egl.h> +#include <EGL/eglext.h> + +#include "Event.h" + +class ANGLE_EXPORT OSWindow +{ + public: + OSWindow(); + virtual ~OSWindow(); + + virtual bool initialize(const std::string &name, size_t width, size_t height) = 0; + virtual void destroy() = 0; + + int getX() const; + int getY() const; + int getWidth() const; + int getHeight() const; + + // Takes a screenshot of the window, returning the result as a mWidth * mHeight * 4 + // normalized unsigned byte BGRA array. Note that it will be used to test the window + // manager's behavior so it needs to take an actual screenshot of the screen and not + // just grab the pixels of the window. Returns if it was successful. + virtual bool takeScreenshot(uint8_t *pixelData) { return false; } + + virtual EGLNativeWindowType getNativeWindow() const = 0; + virtual EGLNativeDisplayType getNativeDisplay() const = 0; + + virtual void messageLoop() = 0; + + bool popEvent(Event *event); + virtual void pushEvent(Event event); + + virtual void setMousePosition(int x, int y) = 0; + virtual bool setPosition(int x, int y) = 0; + virtual bool resize(int width, int height) = 0; + virtual void setVisible(bool isVisible) = 0; + + virtual void signalTestEvent() = 0; + + // Pops events look for the test event + bool didTestEventFire(); + + protected: + int mX; + int mY; + int mWidth; + int mHeight; + + std::list<Event> mEvents; +}; + +ANGLE_EXPORT OSWindow *CreateOSWindow(); + +#endif // SAMPLE_UTIL_WINDOW_H |