Add server only irrlicht device
This commit is contained in:
parent
128ef93abf
commit
fa8665a360
@ -129,11 +129,9 @@ source/Irrlicht/CImageLoaderPNG.cpp
|
||||
source/Irrlicht/CImageWriterBMP.cpp
|
||||
source/Irrlicht/CImageWriterJPG.cpp
|
||||
source/Irrlicht/CImageWriterPNG.cpp
|
||||
source/Irrlicht/CIrrDeviceAndroid.cpp
|
||||
source/Irrlicht/CIrrDeviceLinux.cpp
|
||||
source/Irrlicht/CIrrDeviceSDL.cpp
|
||||
source/Irrlicht/CIrrDeviceServer.cpp
|
||||
source/Irrlicht/CIrrDeviceStub.cpp
|
||||
source/Irrlicht/CIrrDeviceWin32.cpp
|
||||
source/Irrlicht/CLightSceneNode.cpp
|
||||
source/Irrlicht/CLimitReadFile.cpp
|
||||
source/Irrlicht/CLogger.cpp
|
||||
@ -260,11 +258,9 @@ source/Irrlicht/CImageLoaderPNG.h
|
||||
source/Irrlicht/CImageWriterBMP.h
|
||||
source/Irrlicht/CImageWriterJPG.h
|
||||
source/Irrlicht/CImageWriterPNG.h
|
||||
source/Irrlicht/CIrrDeviceAndroid.h
|
||||
source/Irrlicht/CIrrDeviceLinux.h
|
||||
source/Irrlicht/CIrrDeviceSDL.h
|
||||
source/Irrlicht/CIrrDeviceServer.h
|
||||
source/Irrlicht/CIrrDeviceStub.h
|
||||
source/Irrlicht/CIrrDeviceWin32.h
|
||||
source/Irrlicht/CLightSceneNode.h
|
||||
source/Irrlicht/CLimitReadFile.h
|
||||
source/Irrlicht/CLogger.h
|
||||
@ -537,26 +533,6 @@ include/vector2d.h
|
||||
include/vector3d.h
|
||||
)
|
||||
|
||||
if(APPLE AND NOT IOS)
|
||||
set(IRRLICHT_SOURCES
|
||||
${IRRLICHT_SOURCES}
|
||||
source/Irrlicht/MacOSX/AppDelegate.mm
|
||||
source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm
|
||||
source/Irrlicht/MacOSX/OSXClipboard.mm)
|
||||
|
||||
#list(APPEND CMAKE_C_SOURCE_FILE_EXTENSIONS mm)
|
||||
#set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS cpp)
|
||||
|
||||
set_source_files_properties(source/Irrlicht/MacOSX/AppDelegate.mm PROPERTIES COMPILE_FLAGS "-x objective-c++ -O3 -fno-rtti")
|
||||
set_source_files_properties(source/Irrlicht/MacOSX/AppDelegate.mm PROPERTIES LANGUAGE C)
|
||||
|
||||
set_source_files_properties(source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm PROPERTIES COMPILE_FLAGS "-x objective-c++ -O3 -fno-rtti")
|
||||
set_source_files_properties(source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm PROPERTIES LANGUAGE C)
|
||||
|
||||
set_source_files_properties(source/Irrlicht/MacOSX/OSXClipboard.mm PROPERTIES COMPILE_FLAGS "-x objective-c++ -O3 -fno-rtti")
|
||||
set_source_files_properties(source/Irrlicht/MacOSX/OSXClipboard.mm PROPERTIES LANGUAGE C)
|
||||
endif()
|
||||
|
||||
if(IOS)
|
||||
set(IRRLICHT_SOURCES
|
||||
${IRRLICHT_SOURCES}
|
||||
@ -579,5 +555,5 @@ if(NOT SERVER_ONLY)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(stkirrlicht imm32)
|
||||
target_link_libraries(stkirrlicht)
|
||||
endif()
|
||||
|
@ -64,7 +64,9 @@ namespace irr
|
||||
/** Best used with embedded devices and mobile systems.
|
||||
Does not need X11 or other graphical subsystems.
|
||||
May support hw-acceleration via OpenGL-ES */
|
||||
EIDT_ANDROID,
|
||||
EIDT_ANDROID,
|
||||
//! A device for STK server only compilation
|
||||
EIDT_SERVER,
|
||||
};
|
||||
|
||||
} // end namespace irr
|
||||
|
@ -45,23 +45,19 @@
|
||||
|
||||
//! Uncomment this line to compile with the SDL device
|
||||
//#define _IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#ifdef NO_IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
// Always use SDL2 in STK unless server only compilation
|
||||
#if defined(NO_IRR_COMPILE_WITH_SDL_DEVICE_) || defined(ANDROID)
|
||||
#undef _IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#else
|
||||
#define _IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#endif
|
||||
|
||||
|
||||
//! WIN32 for Windows32
|
||||
//! WIN64 for Windows64
|
||||
// The windows platform and API support SDL and WINDOW device
|
||||
#if defined(_WIN32) || defined(_WIN64) || defined(WIN32) || defined(WIN64)
|
||||
#define _IRR_WINDOWS_
|
||||
#define _IRR_WINDOWS_API_
|
||||
#ifndef NO_IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#define _IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#undef _IRR_COMPILE_WITH_WINDOWS_DEVICE_
|
||||
#else
|
||||
#define _IRR_COMPILE_WITH_WINDOWS_DEVICE_
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@ -74,10 +70,6 @@
|
||||
#undef _IRR_WINDOWS_
|
||||
#define _IRR_XBOX_PLATFORM_
|
||||
#define _IRR_WINDOWS_API_
|
||||
//#define _IRR_COMPILE_WITH_WINDOWS_DEVICE_
|
||||
#undef _IRR_COMPILE_WITH_WINDOWS_DEVICE_
|
||||
//#define _IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
|
||||
#include <xtl.h>
|
||||
#endif
|
||||
|
||||
@ -93,19 +85,8 @@
|
||||
#define _IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#define _IRR_COMPILE_WITH_OGLES2_
|
||||
#else
|
||||
#ifndef NO_IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#define _IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#undef _IRR_COMPILE_WITH_OSX_DEVICE_
|
||||
#else
|
||||
#define _IRR_COMPILE_WITH_OSX_DEVICE_
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Disable macOS/OSX device
|
||||
#ifdef NO_IRR_COMPILE_WITH_OSX_DEVICE_
|
||||
#undef _IRR_COMPILE_WITH_OSX_DEVICE_
|
||||
#endif
|
||||
|
||||
#if defined(ANDROID)
|
||||
#define _IRR_ANDROID_PLATFORM_
|
||||
@ -123,12 +104,6 @@
|
||||
#define _IRR_LINUX_PLATFORM_
|
||||
#endif
|
||||
#define _IRR_POSIX_API_
|
||||
#ifndef NO_IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#define _IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#else
|
||||
// For server only STK
|
||||
#define _IRR_COMPILE_WITH_X11_DEVICE_
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef NO_IRR_COMPILE_WITH_WAYLAND_DEVICE_
|
||||
|
33
lib/irrlicht/source/Irrlicht/CIrrDeviceServer.cpp
Normal file
33
lib/irrlicht/source/Irrlicht/CIrrDeviceServer.cpp
Normal file
@ -0,0 +1,33 @@
|
||||
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
||||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
|
||||
#ifdef SERVER_ONLY
|
||||
|
||||
#include "CIrrDeviceServer.h"
|
||||
#include "MobileCursorControl.h"
|
||||
#include "SIrrCreationParameters.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
|
||||
//! constructor
|
||||
CIrrDeviceServer::CIrrDeviceServer(const SIrrlichtCreationParameters& param)
|
||||
: CIrrDeviceStub(param)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
setDebugName("CIrrDeviceServer");
|
||||
#endif
|
||||
|
||||
Operator = 0;
|
||||
CursorControl = new gui::MobileCursorControl();
|
||||
VideoDriver = video::createNullDriver(FileSystem, CreationParams.WindowSize);
|
||||
createGUIAndScene();
|
||||
}
|
||||
|
||||
} // end namespace irr
|
||||
|
||||
#endif // SERVER_ONLY
|
||||
|
79
lib/irrlicht/source/Irrlicht/CIrrDeviceServer.h
Normal file
79
lib/irrlicht/source/Irrlicht/CIrrDeviceServer.h
Normal file
@ -0,0 +1,79 @@
|
||||
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
||||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
// This device code is based on the original SDL device implementation
|
||||
// contributed by Shane Parker (sirshane).
|
||||
|
||||
#ifndef __C_IRR_DEVICE_SERVER_H_INCLUDED__
|
||||
#define __C_IRR_DEVICE_SERVER_H_INCLUDED__
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
|
||||
#ifdef SERVER_ONLY
|
||||
|
||||
#include "IrrlichtDevice.h"
|
||||
#include "CIrrDeviceStub.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
|
||||
class CIrrDeviceServer : public CIrrDeviceStub
|
||||
{
|
||||
public:
|
||||
//! constructor
|
||||
CIrrDeviceServer(const SIrrlichtCreationParameters& param);
|
||||
|
||||
//! runs the device. Returns false if device wants to be deleted
|
||||
virtual bool run() { return !Close; }
|
||||
|
||||
//! pause execution temporarily
|
||||
virtual void yield() {}
|
||||
|
||||
//! pause execution for a specified time
|
||||
virtual void sleep(u32 timeMs, bool pauseTimer) {}
|
||||
|
||||
//! sets the caption of the window
|
||||
virtual void setWindowCaption(const wchar_t* text) {}
|
||||
|
||||
//! sets the class of the window
|
||||
virtual void setWindowClass(const char* text) {}
|
||||
|
||||
//! returns if window is active. if not, nothing need to be drawn
|
||||
virtual bool isWindowActive() const { return true; }
|
||||
|
||||
//! returns if window has focus.
|
||||
bool isWindowFocused() const { return true; }
|
||||
|
||||
//! returns if window is minimized.
|
||||
bool isWindowMinimized() const { return false; }
|
||||
|
||||
//! notifies the device that it should close itself
|
||||
virtual void closeDevice() { Close = true; }
|
||||
|
||||
//! Sets if the window should be resizable in windowed mode.
|
||||
virtual void setResizable(bool resize=false) {}
|
||||
|
||||
//! Minimizes the window.
|
||||
virtual void minimizeWindow() {}
|
||||
|
||||
//! Maximizes the window.
|
||||
virtual void maximizeWindow() {}
|
||||
|
||||
//! Restores the window size.
|
||||
virtual void restoreWindow() {}
|
||||
|
||||
//! Move window to requested position
|
||||
virtual bool moveWindow(int x, int y) { return true; }
|
||||
|
||||
//! Get current window position.
|
||||
virtual bool getWindowPosition(int* x, int* y) { return true; }
|
||||
|
||||
//! Get the device type
|
||||
virtual E_DEVICE_TYPE getType() const { return EIDT_SERVER; }
|
||||
};
|
||||
|
||||
} // end namespace irr
|
||||
|
||||
#endif // _IRR_COMPILE_WITH_SDL_DEVICE_
|
||||
#endif // __C_IRR_DEVICE_SDL_H_INCLUDED__
|
||||
|
@ -34,6 +34,10 @@
|
||||
#include "CIrrDeviceSDL.h"
|
||||
#endif
|
||||
|
||||
#ifdef SERVER_ONLY
|
||||
#include "CIrrDeviceServer.h"
|
||||
#endif
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_IOS_DEVICE_
|
||||
#include "CIrrDeviceiOS.h"
|
||||
#endif
|
||||
@ -120,9 +124,8 @@ namespace irr
|
||||
SIrrlichtCreationParameters creation_params = params;
|
||||
overrideDeviceType(creation_params.DeviceType);
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_IOS_DEVICE_
|
||||
if (creation_params.DeviceType == EIDT_IOS || (!dev && creation_params.DeviceType == EIDT_BEST))
|
||||
dev = new CIrrDeviceiOS(creation_params);
|
||||
#ifdef SERVER_ONLY
|
||||
dev = new CIrrDeviceServer(creation_params);
|
||||
#endif
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_
|
||||
|
Loading…
Reference in New Issue
Block a user