Add MobileCursorControl to share with iOS and android STK

This commit is contained in:
Benau 2019-07-13 13:56:42 +08:00
parent e9a6882bc3
commit b9d00dba6d
4 changed files with 52 additions and 41 deletions

View File

@ -15,6 +15,7 @@
#include "CContextEGL.h"
#include "CFileSystem.h"
#include "COGLES2Driver.h"
#include "MobileCursorControl.h"
#include "../../../../src/utils/utf8/unchecked.h"
// Call when android keyboard is opened or close, and save its height for
@ -83,7 +84,7 @@ CIrrDeviceAndroid::CIrrDeviceAndroid(const SIrrlichtCreationParameters& param)
createKeyMap();
CursorControl = new CCursorControl();
CursorControl = new gui::MobileCursorControl();
Android = (android_app*)(param.PrivateData);

View File

@ -16,7 +16,6 @@
#include "CIrrDeviceStub.h"
#include "IrrlichtDevice.h"
#include "IImagePresenter.h"
#include "ICursorControl.h"
#include <map>
@ -87,45 +86,6 @@ namespace irr
{
m_moved_height_func = height_function;
}
class CCursorControl : public gui::ICursorControl
{
public:
CCursorControl() : CursorPos(core::position2d<s32>(0, 0)) {}
virtual void setVisible(bool visible) {}
virtual bool isVisible() const {return false;}
virtual void setPosition(const core::position2d<f32> &pos)
{
setPosition(pos.X, pos.Y);
}
virtual void setPosition(f32 x, f32 y)
{
CursorPos.X = x;
CursorPos.Y = y;
}
virtual void setPosition(const core::position2d<s32> &pos)
{
setPosition(pos.X, pos.Y);
}
virtual void setPosition(s32 x, s32 y)
{
CursorPos.X = x;
CursorPos.Y = y;
}
virtual const core::position2d<s32>& getPosition()
{
return CursorPos;
}
virtual core::position2d<f32> getRelativePosition()
{
return core::position2d<f32>(0, 0);
}
virtual void setReferenceRect(core::rect<s32>* rect=0) {}
private:
core::position2d<s32> CursorPos;
};
static void onCreate();
static const AndroidApplicationInfo& getApplicationInfo(
ANativeActivity* activity);

View File

@ -12,6 +12,7 @@
#include "CTimer.h"
#include "CEAGLManager.h"
#include "COGLES2Driver.h"
#include "MobileCursorControl.h"
#import <UIKit/UIKit.h>
#import <CoreMotion/CoreMotion.h>
@ -329,6 +330,7 @@ namespace irr
return;
createGUIAndScene();
CursorControl = new gui::MobileCursorControl();
}
CIrrDeviceiOS::~CIrrDeviceiOS()

View File

@ -0,0 +1,48 @@
#ifndef __C_MOBILE_CURSOR_CONTROL_H_INCLUDED__
#define __C_MOBILE_CURSOR_CONTROL_H_INCLUDED__
#include "ICursorControl.h"
namespace irr
{
namespace gui
{
class MobileCursorControl : public ICursorControl
{
public:
MobileCursorControl() : CursorPos(core::position2d<s32>(0, 0)) {}
virtual void setVisible(bool visible) {}
virtual bool isVisible() const {return false;}
virtual void setPosition(const core::position2d<f32> &pos)
{
setPosition(pos.X, pos.Y);
}
virtual void setPosition(f32 x, f32 y)
{
CursorPos.X = x;
CursorPos.Y = y;
}
virtual void setPosition(const core::position2d<s32> &pos)
{
setPosition(pos.X, pos.Y);
}
virtual void setPosition(s32 x, s32 y)
{
CursorPos.X = x;
CursorPos.Y = y;
}
virtual const core::position2d<s32>& getPosition()
{
return CursorPos;
}
virtual core::position2d<f32> getRelativePosition()
{
return core::position2d<f32>(0, 0);
}
virtual void setReferenceRect(core::rect<s32>* rect=0) {}
private:
core::position2d<s32> CursorPos;
};
}
}
#endif