diff --git a/examples/OpenGLWindow/EGLOpenGLWindow.cpp b/examples/OpenGLWindow/EGLOpenGLWindow.cpp new file mode 100644 index 000000000..d5a8c70df --- /dev/null +++ b/examples/OpenGLWindow/EGLOpenGLWindow.cpp @@ -0,0 +1,207 @@ + +//portions of this file are copied from GLFW egl_context.c/egl_context.h + +//======================================================================== +// GLFW 3.3 EGL - www.glfw.org +//------------------------------------------------------------------------ +// Copyright (c) 2002-2006 Marcus Geelnard +// Copyright (c) 2006-2016 Camilla Löwy +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would +// be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, and must not +// be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source +// distribution. +// +//======================================================================== + +#ifdef BT_USE_EGL + +#include "EGLOpenGLWindow.h" + + +struct EGLInternalData2 +{ + bool m_isInitialized; + + int m_windowWidth; + int m_windowHeight; + + b3KeyboardCallback m_keyboardCallback; + b3WheelCallback m_wheelCallback; + b3ResizeCallback m_resizeCallback; + b3MouseButtonCallback m_mouseButtonCallback; + b3MouseMoveCallback m_mouseMoveCallback; + + EGLInternalData2() + :m_isInitialized(false), + m_windowWidth(0), + m_windowHeight(0), + m_keyboardCallback(0), + m_wheelCallback(0), + m_resizeCallback(0), + m_mouseButtonCallback(0), + m_mouseMoveCallback(0) + { + + } +}; + +EGLOpenGLWindow::EGLOpenGLWindow() +{ + m_data = new EGLInternalData2(); + +} + +EGLOpenGLWindow::~EGLOpenGLWindow() +{ + delete m_data; +} + + +void EGLOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci) +{ + +} + +void EGLOpenGLWindow::closeWindow() +{ + +} + +void EGLOpenGLWindow::runMainLoop() +{ + +} + +float EGLOpenGLWindow::getTimeInSeconds() +{ + return 0.; +} + +bool EGLOpenGLWindow::requestedExit() const +{ + return false; +} + +void EGLOpenGLWindow::setRequestExit() +{ + +} + +void EGLOpenGLWindow::startRendering() +{ + +} + +void EGLOpenGLWindow::endRendering() +{ + +} + +bool EGLOpenGLWindow::isModifierKeyPressed(int key) +{ + return false; +} + +void EGLOpenGLWindow::setMouseMoveCallback(b3MouseMoveCallback mouseCallback) +{ + m_data->m_mouseMoveCallback = mouseCallback; +} + +b3MouseMoveCallback EGLOpenGLWindow::getMouseMoveCallback() +{ + return m_data->m_mouseMoveCallback; +} + + +void EGLOpenGLWindow::setMouseButtonCallback(b3MouseButtonCallback mouseCallback) +{ + m_data->m_mouseButtonCallback = mouseCallback; +} + +b3MouseButtonCallback EGLOpenGLWindow::getMouseButtonCallback() +{ + return m_data->m_mouseButtonCallback; +} + +void EGLOpenGLWindow::setResizeCallback(b3ResizeCallback resizeCallback) +{ + m_data->m_resizeCallback = resizeCallback; +} + +b3ResizeCallback EGLOpenGLWindow::getResizeCallback() +{ + return m_data->m_resizeCallback; +} + +void EGLOpenGLWindow::setWheelCallback(b3WheelCallback wheelCallback) +{ + m_data->m_wheelCallback = wheelCallback; +} + +b3WheelCallback EGLOpenGLWindow::getWheelCallback() +{ + return m_data->m_wheelCallback; +} + +void EGLOpenGLWindow::setKeyboardCallback( b3KeyboardCallback keyboardCallback) +{ + m_data->m_keyboardCallback = keyboardCallback; +} + +b3KeyboardCallback EGLOpenGLWindow::getKeyboardCallback() +{ + return m_data->m_keyboardCallback; +} + +void EGLOpenGLWindow::setRenderCallback( b3RenderCallback renderCallback) +{ + +} +void EGLOpenGLWindow::setWindowTitle(const char* title) +{ + +} + +float EGLOpenGLWindow::getRetinaScale() const +{ + return 1.f; +} + +void EGLOpenGLWindow::setAllowRetina(bool allow) +{ + +} + + +int EGLOpenGLWindow::getWidth() const +{ + return m_data->m_windowWidth; +} + +int EGLOpenGLWindow::getHeight() const +{ + return m_data->m_windowHeight; +} + +int EGLOpenGLWindow::fileOpenDialog(char* fileName, int maxFileNameLength) +{ + return 0; +} + +#endif //BT_USE_EGL + diff --git a/examples/OpenGLWindow/EGLOpenGLWindow.h b/examples/OpenGLWindow/EGLOpenGLWindow.h new file mode 100644 index 000000000..66ffb3148 --- /dev/null +++ b/examples/OpenGLWindow/EGLOpenGLWindow.h @@ -0,0 +1,76 @@ +#ifndef EGL_OPENGL_WINDOW_H +#define EGL_OPENGL_WINDOW_H + +#ifdef BT_USE_EGL + +#define b3gDefaultOpenGLWindow EGLOpenGLWindow + +#include "../CommonInterfaces/CommonWindowInterface.h" + +class EGLOpenGLWindow : public CommonWindowInterface +{ + struct EGLInternalData2* m_data; + bool m_OpenGLInitialized; + bool m_requestedExit; +public: + + EGLOpenGLWindow(); + virtual ~EGLOpenGLWindow(); + + virtual void createDefaultWindow(int width, int height, const char* title) + { + b3gWindowConstructionInfo ci(width,height); + ci.m_title = title; + createWindow(ci); + } + + virtual void createWindow(const b3gWindowConstructionInfo& ci); + + virtual void closeWindow(); + + virtual void runMainLoop(); + virtual float getTimeInSeconds(); + + virtual bool requestedExit() const; + virtual void setRequestExit(); + + virtual void startRendering(); + + virtual void endRendering(); + + virtual bool isModifierKeyPressed(int key); + + virtual void setMouseMoveCallback(b3MouseMoveCallback mouseCallback); + virtual b3MouseMoveCallback getMouseMoveCallback(); + + virtual void setMouseButtonCallback(b3MouseButtonCallback mouseCallback); + virtual b3MouseButtonCallback getMouseButtonCallback(); + + virtual void setResizeCallback(b3ResizeCallback resizeCallback); + virtual b3ResizeCallback getResizeCallback(); + + virtual void setWheelCallback(b3WheelCallback wheelCallback); + virtual b3WheelCallback getWheelCallback(); + + virtual void setKeyboardCallback( b3KeyboardCallback keyboardCallback); + virtual b3KeyboardCallback getKeyboardCallback(); + + virtual void setRenderCallback( b3RenderCallback renderCallback); + + virtual void setWindowTitle(const char* title); + + virtual float getRetinaScale() const; + virtual void setAllowRetina(bool allow); + + virtual int getWidth() const; + virtual int getHeight() const; + + virtual int fileOpenDialog(char* fileName, int maxFileNameLength); + + +}; + +#endif //BT_USE_EGL + +#endif //EGL_OPENGL_WINDOW_H +