diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2019-11-11 15:47:34 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2019-11-11 15:47:34 +0000 |
| commit | bb9394a46f2c541db7cfdf664bf4411a61afcba4 (patch) | |
| tree | 1ecbb909b4275f722e9518a9c2ff5a538bd0f415 /Common/NativeApp/include | |
| parent | Updated core (diff) | |
| download | DiligentEngine-bb9394a46f2c541db7cfdf664bf4411a61afcba4.tar.gz DiligentEngine-bb9394a46f2c541db7cfdf664bf4411a61afcba4.zip | |
Moved NativeApp to Tools module
Diffstat (limited to 'Common/NativeApp/include')
| -rw-r--r-- | Common/NativeApp/include/Android/AndroidAppBase.h | 112 | ||||
| -rw-r--r-- | Common/NativeApp/include/AppBase.h | 47 | ||||
| -rw-r--r-- | Common/NativeApp/include/IOS/IOSAppBase.h | 47 | ||||
| -rw-r--r-- | Common/NativeApp/include/Linux/LinuxAppBase.h | 62 | ||||
| -rw-r--r-- | Common/NativeApp/include/MacOS/MacOSAppBase.h | 45 | ||||
| -rw-r--r-- | Common/NativeApp/include/NativeAppBase.h | 81 | ||||
| -rw-r--r-- | Common/NativeApp/include/UWP/UWPAppBase.h | 76 | ||||
| -rw-r--r-- | Common/NativeApp/include/Win32/Win32AppBase.h | 52 |
8 files changed, 0 insertions, 522 deletions
diff --git a/Common/NativeApp/include/Android/AndroidAppBase.h b/Common/NativeApp/include/Android/AndroidAppBase.h deleted file mode 100644 index 607c8b6..0000000 --- a/Common/NativeApp/include/Android/AndroidAppBase.h +++ /dev/null @@ -1,112 +0,0 @@ -/* Copyright 2015-2018 Egor Yusov - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. - * - * In no event and under no legal theory, whether in tort (including negligence), - * contract, or otherwise, unless required by applicable law (such as deliberate - * and grossly negligent acts) or agreed to in writing, shall any Contributor be - * liable for any damages, including any direct, indirect, special, incidental, - * or consequential damages of any character arising as a result of this License or - * out of the use or inability to use the software (including but not limited to damages - * for loss of goodwill, work stoppage, computer failure or malfunction, or any and - * all other commercial damages or losses), even if such Contributor has been advised - * of the possibility of such damages. - */ - -#pragma once - -#include <memory> - -#include <android_native_app_glue.h> -#include "AppBase.h" - -#include "NDKHelper.h" - -struct android_app; - -namespace Diligent -{ - -class AndroidAppBase : public AppBase -{ -public: - int InitDisplay(); - void SetState(android_app* state, const char* native_activity_class_name); - void InitSensors(); - void ProcessSensors( int32_t id ); - void DrawFrame(); - bool IsReady(); - virtual void TrimMemory() = 0; - virtual void TermDisplay() = 0; - static int32_t HandleInput(android_app* app, AInputEvent* event); - static void HandleCmd(android_app* app, int32_t cmd); - bool CheckWindowSizeChanged() - { - auto new_window_width_ = ANativeWindow_getWidth(app_->window); - auto new_window_height_ = ANativeWindow_getHeight(app_->window); - if(new_window_width_ != window_width_ || new_window_height_ != window_height_) - { - window_width_ = new_window_width_; - window_height_ = new_window_height_; - return true; - } - else - return false; - } - -protected: - virtual void Initialize() - { - CheckWindowSizeChanged(); - } - - virtual int Resume(ANativeWindow* window) = 0; - - virtual int32_t HandleInput(AInputEvent* event ){return 0;} - - virtual void LoadResources() - { - //renderer_.Init(); - //renderer_.Bind( &tap_camera_ ); - } - - virtual void UnloadResources() - { - //renderer_.Unload(); - } - - ndk_helper::DoubletapDetector doubletap_detector_; - ndk_helper::PinchDetector pinch_detector_; - ndk_helper::DragDetector drag_detector_; - ndk_helper::PerfMonitor monitor_; - - //ndk_helper::TapCamera tap_camera_; - android_app* app_ = nullptr; - std::string native_activity_class_name_; - -private: - void UpdatePosition( AInputEvent* event, int32_t iIndex, float& fX, float& fY ); - void SuspendSensors(); - void ResumeSensors(); - void ShowUI(); - void UpdateFPS( float fFPS ); - - bool initialized_resources_ = false; - bool has_focus_ = false; - int32_t window_width_ = 0; - int32_t window_height_ = 0; - - ASensorManager* sensor_manager_ = nullptr; - const ASensor* accelerometer_sensor_ = nullptr; - ASensorEventQueue* sensor_event_queue_ = nullptr; -}; - -} diff --git a/Common/NativeApp/include/AppBase.h b/Common/NativeApp/include/AppBase.h deleted file mode 100644 index d3de11c..0000000 --- a/Common/NativeApp/include/AppBase.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2019 Diligent Graphics LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. - * - * In no event and under no legal theory, whether in tort (including negligence), - * contract, or otherwise, unless required by applicable law (such as deliberate - * and grossly negligent acts) or agreed to in writing, shall any Contributor be - * liable for any damages, including any direct, indirect, special, incidental, - * or consequential damages of any character arising as a result of this License or - * out of the use or inability to use the software (including but not limited to damages - * for loss of goodwill, work stoppage, computer failure or malfunction, or any and - * all other commercial damages or losses), even if such Contributor has been advised - * of the possibility of such damages. - */ - -#pragma once - -namespace Diligent -{ - -class AppBase -{ -public: - virtual ~AppBase() {} - - virtual void ProcessCommandLine(const char* CmdLine) = 0; - virtual const char* GetAppTitle()const = 0; - virtual void Update(double CurrTime, double ElapsedTime) {}; - virtual void Render() = 0; - virtual void Present() = 0; - virtual void WindowResize(int width, int height) = 0; - virtual void GetDesiredInitialWindowSize(int& width, int& height) - { - width = 0; - height = 0; - } -}; - -} diff --git a/Common/NativeApp/include/IOS/IOSAppBase.h b/Common/NativeApp/include/IOS/IOSAppBase.h deleted file mode 100644 index 847052a..0000000 --- a/Common/NativeApp/include/IOS/IOSAppBase.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2015-2018 Egor Yusov - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. - * - * In no event and under no legal theory, whether in tort (including negligence), - * contract, or otherwise, unless required by applicable law (such as deliberate - * and grossly negligent acts) or agreed to in writing, shall any Contributor be - * liable for any damages, including any direct, indirect, special, incidental, - * or consequential damages of any character arising as a result of this License or - * out of the use or inability to use the software (including but not limited to damages - * for loss of goodwill, work stoppage, computer failure or malfunction, or any and - * all other commercial damages or losses), even if such Contributor has been advised - * of the possibility of such damages. - */ - -#pragma once - -#include "AppBase.h" -#include "Timer.h" - -namespace Diligent -{ - -class IOSAppBase : public AppBase -{ -public: - using AppBase::Update; - void Update(); - virtual void Initialize(int deviceType, void* layer) = 0; - virtual void OnTouchBegan(float x, float y){} - virtual void OnTouchMoved(float x, float y){} - virtual void OnTouchEnded(float x, float y){} - -protected: - Timer timer; - double PrevTime = 0.0; -}; - -} diff --git a/Common/NativeApp/include/Linux/LinuxAppBase.h b/Common/NativeApp/include/Linux/LinuxAppBase.h deleted file mode 100644 index e4c6a3e..0000000 --- a/Common/NativeApp/include/Linux/LinuxAppBase.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright 2015-2018 Egor Yusov - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. - * - * In no event and under no legal theory, whether in tort (including negligence), - * contract, or otherwise, unless required by applicable law (such as deliberate - * and grossly negligent acts) or agreed to in writing, shall any Contributor be - * liable for any damages, including any direct, indirect, special, incidental, - * or consequential damages of any character arising as a result of this License or - * out of the use or inability to use the software (including but not limited to damages - * for loss of goodwill, work stoppage, computer failure or malfunction, or any and - * all other commercial damages or losses), even if such Contributor has been advised - * of the possibility of such damages. - */ - -#pragma once - - -#include <GL/glx.h> -#include <GL/gl.h> - -// Undef symbols defined by XLib -#ifdef Bool -# undef Bool -#endif -#ifdef True -# undef True -#endif -#ifdef False -# undef False -#endif - -#if VULKAN_SUPPORTED -#include <xcb/xcb.h> -#endif - -#include "AppBase.h" - -namespace Diligent -{ - -class LinuxAppBase : public AppBase -{ -public: - virtual void OnGLContextCreated(Display* display, Window window) = 0; - virtual int HandleXEvent(XEvent* xev){} - -#if VULKAN_SUPPORTED - virtual bool InitVulkan(xcb_connection_t* connection, uint32_t window) = 0; - virtual void HandleXCBEvent(xcb_generic_event_t* event){} -#endif -}; - -} diff --git a/Common/NativeApp/include/MacOS/MacOSAppBase.h b/Common/NativeApp/include/MacOS/MacOSAppBase.h deleted file mode 100644 index 923fcec..0000000 --- a/Common/NativeApp/include/MacOS/MacOSAppBase.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2015-2019 Egor Yusov - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. - * - * In no event and under no legal theory, whether in tort (including negligence), - * contract, or otherwise, unless required by applicable law (such as deliberate - * and grossly negligent acts) or agreed to in writing, shall any Contributor be - * liable for any damages, including any direct, indirect, special, incidental, - * or consequential damages of any character arising as a result of this License or - * out of the use or inability to use the software (including but not limited to damages - * for loss of goodwill, work stoppage, computer failure or malfunction, or any and - * all other commercial damages or losses), even if such Contributor has been advised - * of the possibility of such damages. - */ - -#pragma once - -#include "AppBase.h" -#include "Timer.h" - -namespace Diligent -{ - -class MacOSAppBase : public AppBase -{ -public: - using AppBase::Update; - void Update(); - virtual void Initialize(void* view) = 0; - virtual void HandleOSXEvent(void* event, void* view){}; - -protected: - Timer timer; - double PrevTime = 0.0; -}; - -} diff --git a/Common/NativeApp/include/NativeAppBase.h b/Common/NativeApp/include/NativeAppBase.h deleted file mode 100644 index c475e0c..0000000 --- a/Common/NativeApp/include/NativeAppBase.h +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright 2019 Diligent Graphics LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. - * - * In no event and under no legal theory, whether in tort (including negligence), - * contract, or otherwise, unless required by applicable law (such as deliberate - * and grossly negligent acts) or agreed to in writing, shall any Contributor be - * liable for any damages, including any direct, indirect, special, incidental, - * or consequential damages of any character arising as a result of this License or - * out of the use or inability to use the software (including but not limited to damages - * for loss of goodwill, work stoppage, computer failure or malfunction, or any and - * all other commercial damages or losses), even if such Contributor has been advised - * of the possibility of such damages. - */ -#pragma once - -#if PLATFORM_WIN32 - - #include "Win32AppBase.h" - namespace Diligent - { - using NativeAppBase = Win32AppBase; - } - -#elif PLATFORM_UNIVERSAL_WINDOWS - - #include "UWPAppBase.h" - namespace Diligent - { - using NativeAppBase = UWPAppBase; - } - -#elif PLATFORM_LINUX - - #include "LinuxAppBase.h" - namespace Diligent - { - using NativeAppBase = LinuxAppBase; - } - -#elif PLATFORM_ANDROID - - #include "AndroidAppBase.h" - namespace Diligent - { - using NativeAppBase = AndroidAppBase; - } - -#elif PLATFORM_MACOS - - #include "MacOSAppBase.h" - namespace Diligent - { - using NativeAppBase = MacOSAppBase; - } - -#elif PLATFORM_IOS - - #include "IOSAppBase.h" - namespace Diligent - { - using NativeAppBase = IOSAppBase; - } -#else - -# error Usnupported paltform - -#endif - -namespace Diligent -{ - extern NativeAppBase* CreateApplication(); -}
\ No newline at end of file diff --git a/Common/NativeApp/include/UWP/UWPAppBase.h b/Common/NativeApp/include/UWP/UWPAppBase.h deleted file mode 100644 index cc0c71e..0000000 --- a/Common/NativeApp/include/UWP/UWPAppBase.h +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright 2015-2018 Egor Yusov - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. - * - * In no event and under no legal theory, whether in tort (including negligence), - * contract, or otherwise, unless required by applicable law (such as deliberate - * and grossly negligent acts) or agreed to in writing, shall any Contributor be - * liable for any damages, including any direct, indirect, special, incidental, - * or consequential damages of any character arising as a result of this License or - * out of the use or inability to use the software (including but not limited to damages - * for loss of goodwill, work stoppage, computer failure or malfunction, or any and - * all other commercial damages or losses), even if such Contributor has been advised - * of the possibility of such damages. - */ - - -#pragma once - -#include <memory> - -#define NOMINIMAX -#include <wrl.h> -#include <wrl/client.h> - -#include "AppBase.h" -#include "Common/StepTimer.h" -#include "Common/DeviceResources.h" - -namespace Diligent -{ - -class UWPAppBase : public AppBase -{ -public: - UWPAppBase(); - - virtual void OnSetWindow(Windows::UI::Core::CoreWindow^ window) {} - virtual void OnWindowSizeChanged() = 0; - - using AppBase::Update; - virtual void Update(); - - // Notifies the app that it is being suspended. - virtual void OnSuspending() {} - - // Notifes the app that it is no longer suspended. - virtual void OnResuming() {} - - // Notifies renderers that device resources need to be released. - virtual void OnDeviceRemoved() {} - - bool IsFrameReady()const { return m_bFrameReady; } - - virtual std::shared_ptr<DX::DeviceResources> InitDeviceResources() = 0; - - virtual void InitWindowSizeDependentResources() = 0; - - virtual void CreateRenderers() = 0; - -protected: - std::shared_ptr<DX::DeviceResources> m_DeviceResources; - - // Rendering loop timer. - DX::StepTimer m_timer; - bool m_bFrameReady = false; -}; - -} diff --git a/Common/NativeApp/include/Win32/Win32AppBase.h b/Common/NativeApp/include/Win32/Win32AppBase.h deleted file mode 100644 index 8242ac7..0000000 --- a/Common/NativeApp/include/Win32/Win32AppBase.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2019 Diligent Graphics LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. - * - * In no event and under no legal theory, whether in tort (including negligence), - * contract, or otherwise, unless required by applicable law (such as deliberate - * and grossly negligent acts) or agreed to in writing, shall any Contributor be - * liable for any damages, including any direct, indirect, special, incidental, - * or consequential damages of any character arising as a result of this License or - * out of the use or inability to use the software (including but not limited to damages - * for loss of goodwill, work stoppage, computer failure or malfunction, or any and - * all other commercial damages or losses), even if such Contributor has been advised - * of the possibility of such damages. - */ - -#pragma once - -#ifndef NOMINMAX -# define NOMINMAX -#endif -#include <Windows.h> - -#include "AppBase.h" - -namespace Diligent -{ - -class Win32AppBase : public AppBase -{ -public: - virtual void OnWindowCreated(HWND hWnd, - LONG WindowWidth, - LONG WindowHeight) = 0; - - virtual LRESULT HandleWin32Message(HWND hWnd, - UINT message, - WPARAM wParam, - LPARAM lParam) - { - return 0; - } -}; - -} |
