Skip to content

Commit b9d00db

Browse files
committed
Add MobileCursorControl to share with iOS and android STK
1 parent e9a6882 commit b9d00db

File tree

4 files changed

+52
-41
lines changed

4 files changed

+52
-41
lines changed

lib/irrlicht/source/Irrlicht/CIrrDeviceAndroid.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "CContextEGL.h"
1616
#include "CFileSystem.h"
1717
#include "COGLES2Driver.h"
18+
#include "MobileCursorControl.h"
1819
#include "../../../../src/utils/utf8/unchecked.h"
1920

2021
// Call when android keyboard is opened or close, and save its height for
@@ -83,7 +84,7 @@ CIrrDeviceAndroid::CIrrDeviceAndroid(const SIrrlichtCreationParameters& param)
8384

8485
createKeyMap();
8586

86-
CursorControl = new CCursorControl();
87+
CursorControl = new gui::MobileCursorControl();
8788

8889
Android = (android_app*)(param.PrivateData);
8990

lib/irrlicht/source/Irrlicht/CIrrDeviceAndroid.h

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#include "CIrrDeviceStub.h"
1717
#include "IrrlichtDevice.h"
1818
#include "IImagePresenter.h"
19-
#include "ICursorControl.h"
2019

2120
#include <map>
2221

@@ -87,45 +86,6 @@ namespace irr
8786
{
8887
m_moved_height_func = height_function;
8988
}
90-
91-
class CCursorControl : public gui::ICursorControl
92-
{
93-
public:
94-
95-
CCursorControl() : CursorPos(core::position2d<s32>(0, 0)) {}
96-
virtual void setVisible(bool visible) {}
97-
virtual bool isVisible() const {return false;}
98-
virtual void setPosition(const core::position2d<f32> &pos)
99-
{
100-
setPosition(pos.X, pos.Y);
101-
}
102-
virtual void setPosition(f32 x, f32 y)
103-
{
104-
CursorPos.X = x;
105-
CursorPos.Y = y;
106-
}
107-
virtual void setPosition(const core::position2d<s32> &pos)
108-
{
109-
setPosition(pos.X, pos.Y);
110-
}
111-
virtual void setPosition(s32 x, s32 y)
112-
{
113-
CursorPos.X = x;
114-
CursorPos.Y = y;
115-
}
116-
virtual const core::position2d<s32>& getPosition()
117-
{
118-
return CursorPos;
119-
}
120-
virtual core::position2d<f32> getRelativePosition()
121-
{
122-
return core::position2d<f32>(0, 0);
123-
}
124-
virtual void setReferenceRect(core::rect<s32>* rect=0) {}
125-
private:
126-
core::position2d<s32> CursorPos;
127-
};
128-
12989
static void onCreate();
13090
static const AndroidApplicationInfo& getApplicationInfo(
13191
ANativeActivity* activity);

lib/irrlicht/source/Irrlicht/CIrrDeviceiOS.mm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "CTimer.h"
1313
#include "CEAGLManager.h"
1414
#include "COGLES2Driver.h"
15+
#include "MobileCursorControl.h"
1516

1617
#import <UIKit/UIKit.h>
1718
#import <CoreMotion/CoreMotion.h>
@@ -329,6 +330,7 @@ + (Class)layerClass
329330
return;
330331

331332
createGUIAndScene();
333+
CursorControl = new gui::MobileCursorControl();
332334
}
333335

334336
CIrrDeviceiOS::~CIrrDeviceiOS()
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#ifndef __C_MOBILE_CURSOR_CONTROL_H_INCLUDED__
2+
#define __C_MOBILE_CURSOR_CONTROL_H_INCLUDED__
3+
#include "ICursorControl.h"
4+
5+
namespace irr
6+
{
7+
namespace gui
8+
{
9+
class MobileCursorControl : public ICursorControl
10+
{
11+
public:
12+
13+
MobileCursorControl() : CursorPos(core::position2d<s32>(0, 0)) {}
14+
virtual void setVisible(bool visible) {}
15+
virtual bool isVisible() const {return false;}
16+
virtual void setPosition(const core::position2d<f32> &pos)
17+
{
18+
setPosition(pos.X, pos.Y);
19+
}
20+
virtual void setPosition(f32 x, f32 y)
21+
{
22+
CursorPos.X = x;
23+
CursorPos.Y = y;
24+
}
25+
virtual void setPosition(const core::position2d<s32> &pos)
26+
{
27+
setPosition(pos.X, pos.Y);
28+
}
29+
virtual void setPosition(s32 x, s32 y)
30+
{
31+
CursorPos.X = x;
32+
CursorPos.Y = y;
33+
}
34+
virtual const core::position2d<s32>& getPosition()
35+
{
36+
return CursorPos;
37+
}
38+
virtual core::position2d<f32> getRelativePosition()
39+
{
40+
return core::position2d<f32>(0, 0);
41+
}
42+
virtual void setReferenceRect(core::rect<s32>* rect=0) {}
43+
private:
44+
core::position2d<s32> CursorPos;
45+
};
46+
}
47+
}
48+
#endif

0 commit comments

Comments
 (0)