summaryrefslogtreecommitdiff
path: root/Source/ThirdParty/ANGLE/util/OSWindow.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/ThirdParty/ANGLE/util/OSWindow.h
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/ThirdParty/ANGLE/util/OSWindow.h')
-rw-r--r--Source/ThirdParty/ANGLE/util/OSWindow.h69
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