Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile-Cn-Ko-En
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fallenstardust
YGOMobile-Cn-Ko-En
Commits
8ffa21a9
Commit
8ffa21a9
authored
Oct 23, 2019
by
kenan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
jni delete point
parent
559f07f0
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
150 additions
and
153 deletions
+150
-153
Classes/gframe/game.cpp
Classes/gframe/game.cpp
+22
-3
Classes/gframe/game.h
Classes/gframe/game.h
+5
-6
Classes/gframe/gframe.cpp
Classes/gframe/gframe.cpp
+3
-43
libcore/android/AndroidGameHost.cpp
libcore/android/AndroidGameHost.cpp
+12
-12
libcore/android/AndroidGameHost.h
libcore/android/AndroidGameHost.h
+1
-2
libcore/android/AndroidGameUI.cpp
libcore/android/AndroidGameUI.cpp
+16
-16
libcore/android/AndroidGameUI.h
libcore/android/AndroidGameUI.h
+1
-2
libcore/src/main/java/cn/garymb/ygomobile/YGOMobileActivity.java
.../src/main/java/cn/garymb/ygomobile/YGOMobileActivity.java
+77
-55
libcore/src/main/java/cn/garymb/ygomobile/interfaces/GameHost.java
...rc/main/java/cn/garymb/ygomobile/interfaces/GameHost.java
+2
-11
libcore/src/main/java/cn/garymb/ygomobile/interfaces/IGameActivity.java
...in/java/cn/garymb/ygomobile/interfaces/IGameActivity.java
+1
-3
libcore/src/main/java/cn/garymb/ygomobile/interfaces/IGameHost.java
...c/main/java/cn/garymb/ygomobile/interfaces/IGameHost.java
+10
-0
No files found.
Classes/gframe/game.cpp
View file @
8ffa21a9
...
@@ -44,9 +44,24 @@ void Game::process(irr::SEvent &event) {
...
@@ -44,9 +44,24 @@ void Game::process(irr::SEvent &event) {
}
}
}
}
Game
::~
Game
(){
#ifdef _IRR_ANDROID_PLATFORM_
if
(
gameHost
!=
NULL
)
{
delete
gameHost
;
gameHost
=
NULL
;
}
if
(
gameUI
!=
NULL
)
{
delete
gameUI
;
gameUI
=
NULL
;
}
#endif
if
(
soundEffectPlayer
!=
NULL
){
delete
soundEffectPlayer
;
soundEffectPlayer
=
NULL
;
}
}
#ifdef _IRR_ANDROID_PLATFORM_
#ifdef _IRR_ANDROID_PLATFORM_
AndroidGameHost
*
gameHost
;
AndroidGameUI
*
gameUI
;
bool
Game
::
Initialize
(
ANDROID_APP
app
)
{
bool
Game
::
Initialize
(
ANDROID_APP
app
)
{
this
->
appMain
=
app
;
this
->
appMain
=
app
;
#else
#else
...
@@ -57,6 +72,11 @@ bool Game::Initialize() {
...
@@ -57,6 +72,11 @@ bool Game::Initialize() {
#ifdef _IRR_ANDROID_PLATFORM_
#ifdef _IRR_ANDROID_PLATFORM_
JNIEnv
*
jni
=
android
::
getJniEnv
(
app
);
JNIEnv
*
jni
=
android
::
getJniEnv
(
app
);
gameHost
=
new
ygo
::
AndroidGameHost
(
app
);
gameHost
->
initMethods
(
jni
);
gameUI
=
new
ygo
::
AndroidGameUI
(
app
);
gameUI
->
initMethods
(
jni
);
irr
::
android
::
InitOptions
*
options
=
gameUI
->
getInitOptions
(
jni
);
irr
::
android
::
InitOptions
*
options
=
gameUI
->
getInitOptions
(
jni
);
if
(
options
==
NULL
){
if
(
options
==
NULL
){
return
false
;
return
false
;
...
@@ -1208,7 +1228,6 @@ void Game::MainLoop() {
...
@@ -1208,7 +1228,6 @@ void Game::MainLoop() {
usleep
(
500000
);
usleep
(
500000
);
#endif
#endif
SaveConfig
();
SaveConfig
();
delete
soundEffectPlayer
;
usleep
(
500000
);
usleep
(
500000
);
// device->drop();
// device->drop();
}
}
...
...
Classes/gframe/game.h
View file @
8ffa21a9
...
@@ -117,6 +117,7 @@ public:
...
@@ -117,6 +117,7 @@ public:
#else
#else
bool
Initialize
();
bool
Initialize
();
#endif
#endif
~
Game
();
void
MainLoop
();
void
MainLoop
();
void
RefreshTimeDisplay
();
void
RefreshTimeDisplay
();
void
BuildProjectionMatrix
(
irr
::
core
::
matrix4
&
mProjection
,
f32
left
,
f32
right
,
f32
bottom
,
f32
top
,
f32
znear
,
f32
zfar
);
void
BuildProjectionMatrix
(
irr
::
core
::
matrix4
&
mProjection
,
f32
left
,
f32
right
,
f32
bottom
,
f32
top
,
f32
znear
,
f32
zfar
);
...
@@ -555,7 +556,6 @@ public:
...
@@ -555,7 +556,6 @@ public:
void
setLastDeck
(
const
char
*
name
);
void
setLastDeck
(
const
char
*
name
);
int
getLocalAddr
();
int
getLocalAddr
();
void
playSoundEffect
(
const
char
*
name
);
void
playSoundEffect
(
const
char
*
name
);
JNIEnv
*
getJniEnv
();
JNIEnv
*
getJniEnv
();
...
@@ -590,18 +590,17 @@ public:
...
@@ -590,18 +590,17 @@ public:
return
y2
;
return
y2
;
}
}
void
process
(
irr
::
SEvent
&
event
);
void
process
(
irr
::
SEvent
&
event
);
#ifdef _IRR_ANDROID_PLATFORM_
ygo
::
AndroidGameHost
*
gameHost
;
ygo
::
AndroidGameUI
*
gameUI
;
#endif
private:
private:
int
touchLeft
;
int
touchLeft
;
int
touchTop
;
int
touchTop
;
io
::
path
cardImagePath
;
io
::
path
cardImagePath
;
io
::
path
resourcePath
;
io
::
path
resourcePath
;
};
};
extern
Game
*
mainGame
;
extern
Game
*
mainGame
;
#ifdef _IRR_ANDROID_PLATFORM_
extern
ygo
::
AndroidGameHost
*
gameHost
;
extern
ygo
::
AndroidGameUI
*
gameUI
;
#endif
}
}
#define CARD_IMG_WIDTH 177
#define CARD_IMG_WIDTH 177
...
...
Classes/gframe/gframe.cpp
View file @
8ffa21a9
...
@@ -12,47 +12,8 @@ bool bot_mode = false;
...
@@ -12,47 +12,8 @@ bool bot_mode = false;
#ifdef _IRR_ANDROID_PLATFORM_
#ifdef _IRR_ANDROID_PLATFORM_
ygo
::
AndroidGameHost
*
getGameHost
(
JNIEnv
*
env
,
jobject
activity
,
jclass
clazz
,
ANDROID_APP
app
)
{
jmethodID
getNativeGameHost
=
env
->
GetMethodID
(
clazz
,
"getNativeGameHost"
,
"()Lcn/garymb/ygomobile/interfaces/GameHost;"
);
jobject
jhost
=
env
->
CallObjectMethod
(
activity
,
getNativeGameHost
);
if
(
jhost
)
{
ygo
::
AndroidGameHost
*
host
=
new
ygo
::
AndroidGameHost
(
app
,
env
->
NewGlobalRef
(
jhost
));
host
->
initMethods
(
env
);
return
host
;
}
return
NULL
;
}
ygo
::
AndroidGameUI
*
getGameUI
(
JNIEnv
*
env
,
jobject
activity
,
jclass
clazz
,
ANDROID_APP
app
)
{
jmethodID
getNativeGameHost
=
env
->
GetMethodID
(
clazz
,
"getNativeGameUI"
,
"()Lcn/garymb/ygomobile/interfaces/IGameUI;"
);
jobject
jhost
=
env
->
CallObjectMethod
(
activity
,
getNativeGameHost
);
if
(
jhost
)
{
ygo
::
AndroidGameUI
*
host
=
new
ygo
::
AndroidGameUI
(
app
,
env
->
NewGlobalRef
(
jhost
));
host
->
initMethods
(
env
);
return
host
;
}
return
NULL
;
}
void
android_main
(
ANDROID_APP
app
){
void
android_main
(
ANDROID_APP
app
){
JNIEnv
*
env
=
android
::
getJniEnv
(
app
);
jobject
activity
=
app
->
activity
->
clazz
;
jclass
clazz
=
env
->
GetObjectClass
(
activity
);
ygo
::
gameHost
=
getGameHost
(
env
,
activity
,
clazz
,
app
);
ygo
::
gameUI
=
getGameUI
(
env
,
activity
,
clazz
,
app
);
env
->
DeleteLocalRef
(
clazz
);
if
(
!
ygo
::
gameHost
){
LOGE
(
"Initialize game host error"
);
return
;
}
if
(
!
ygo
::
gameUI
){
LOGE
(
"Initialize game ui error"
);
return
;
}
#else
#else
int
main
(
int
argc
,
char
*
argv
[])
{
int
main
(
int
argc
,
char
*
argv
[])
{
#endif
#endif
...
@@ -112,7 +73,8 @@ int main(int argc, char* argv[]) {
...
@@ -112,7 +73,8 @@ int main(int argc, char* argv[]) {
}
}
}
}
#else
#else
irr
::
android
::
YGOGameOptions
*
options
=
ygo
::
gameUI
->
getJoinOptions
(
env
);
JNIEnv
*
env
=
android
::
getJniEnv
(
app
);
irr
::
android
::
YGOGameOptions
*
options
=
ygo
::
mainGame
->
gameUI
->
getJoinOptions
(
env
);
if
(
options
!=
NULL
){
if
(
options
!=
NULL
){
irr
::
SEvent
event
;
irr
::
SEvent
event
;
wchar_t
wbuff
[
256
];
wchar_t
wbuff
[
256
];
...
@@ -145,6 +107,7 @@ int main(int argc, char* argv[]) {
...
@@ -145,6 +107,7 @@ int main(int argc, char* argv[]) {
#endif
#endif
game
->
MainLoop
();
game
->
MainLoop
();
delete
game
;
delete
game
;
game
=
NULL
;
LOGI
(
"end game"
);
LOGI
(
"end game"
);
#ifdef _WIN32
#ifdef _WIN32
WSACleanup
();
WSACleanup
();
...
@@ -152,9 +115,6 @@ int main(int argc, char* argv[]) {
...
@@ -152,9 +115,6 @@ int main(int argc, char* argv[]) {
#endif //_WIN32
#endif //_WIN32
#ifdef _IRR_ANDROID_PLATFORM_
#ifdef _IRR_ANDROID_PLATFORM_
LOGI
(
"clean host"
);
delete
ygo
::
gameUI
;
delete
ygo
::
gameHost
;
return
;
return
;
#else
#else
return
EXIT_SUCCESS
;
return
EXIT_SUCCESS
;
...
...
libcore/android/AndroidGameHost.cpp
View file @
8ffa21a9
...
@@ -10,24 +10,24 @@
...
@@ -10,24 +10,24 @@
using
namespace
ygo
;
using
namespace
ygo
;
AndroidGameHost
::
AndroidGameHost
(
ANDROID_APP
_app
,
jobject
_host
)
{
AndroidGameHost
::
AndroidGameHost
(
ANDROID_APP
_app
)
{
host
=
_host
;
app
=
_app
;
app
=
_app
;
}
}
AndroidGameHost
::~
AndroidGameHost
()
{
AndroidGameHost
::~
AndroidGameHost
()
{
JNIEnv
*
env
=
irr
::
android
::
getJniEnv
(
app
);
app
=
NULL
;
env
->
DeleteGlobalRef
(
host
);
// JNIEnv *env = irr::android::getJniEnv(app);
// env->DeleteGlobalRef(app->activity->clazz);
}
}
void
AndroidGameHost
::
initMethods
(
JNIEnv
*
env
)
{
void
AndroidGameHost
::
initMethods
(
JNIEnv
*
env
)
{
jclass
clazz
=
env
->
GetObjectClass
(
host
);
jclass
clazz
=
env
->
GetObjectClass
(
app
->
activity
->
clazz
);
java_getSetting
=
env
->
GetMethodID
(
clazz
,
"getSetting"
,
java_getSetting
=
env
->
GetMethodID
(
clazz
,
"getSetting"
,
"(Ljava/lang/String;)Ljava/lang/String;"
);
"(Ljava/lang/String;)Ljava/lang/String;"
);
java_getIntSetting
=
env
->
GetMethodID
(
clazz
,
"getIntSetting"
,
"(Ljava/lang/String;I)I"
);
java_getIntSetting
=
env
->
GetMethodID
(
clazz
,
"getIntSetting"
,
"(Ljava/lang/String;I)I"
);
java_saveIntSetting
=
env
->
GetMethodID
(
clazz
,
"saveIntSetting"
,
"(Ljava/lang/String;I)V"
);
java_saveIntSetting
=
env
->
GetMethodID
(
clazz
,
"saveIntSetting"
,
"(Ljava/lang/String;I)V"
);
java_runWindbot
=
env
->
GetMethodID
(
clazz
,
"runWindbot"
,
"(Ljava/lang/String;)V"
);
java_saveSetting
=
env
->
GetMethodID
(
clazz
,
"saveSetting"
,
"(Ljava/lang/String;Ljava/lang/String;)V"
);
java_saveSetting
=
env
->
GetMethodID
(
clazz
,
"saveSetting"
,
"(Ljava/lang/String;Ljava/lang/String;)V"
);
java_runWindbot
=
env
->
GetMethodID
(
clazz
,
"runWindbot"
,
"(Ljava/lang/String;)V"
);
java_getLocalAddr
=
env
->
GetMethodID
(
clazz
,
"getLocalAddr"
,
"()I"
);
java_getLocalAddr
=
env
->
GetMethodID
(
clazz
,
"getLocalAddr"
,
"()I"
);
env
->
DeleteLocalRef
(
clazz
);
env
->
DeleteLocalRef
(
clazz
);
}
}
...
@@ -38,7 +38,7 @@ irr::io::path AndroidGameHost::getSetting(JNIEnv *env, const char *_key) {
...
@@ -38,7 +38,7 @@ irr::io::path AndroidGameHost::getSetting(JNIEnv *env, const char *_key) {
return
ret
;
return
ret
;
}
}
jstring
key
=
env
->
NewStringUTF
(
_key
);
jstring
key
=
env
->
NewStringUTF
(
_key
);
jstring
value
=
(
jstring
)
env
->
CallObjectMethod
(
host
,
java_getSetting
,
key
);
jstring
value
=
(
jstring
)
env
->
CallObjectMethod
(
app
->
activity
->
clazz
,
java_getSetting
,
key
);
if
(
key
)
{
if
(
key
)
{
env
->
DeleteLocalRef
(
key
);
env
->
DeleteLocalRef
(
key
);
}
}
...
@@ -55,7 +55,7 @@ int AndroidGameHost::getIntSetting(JNIEnv *env, const char *_key, int defvalue)
...
@@ -55,7 +55,7 @@ int AndroidGameHost::getIntSetting(JNIEnv *env, const char *_key, int defvalue)
return
0
;
return
0
;
}
}
jstring
key
=
env
->
NewStringUTF
(
_key
);
jstring
key
=
env
->
NewStringUTF
(
_key
);
jint
value
=
env
->
CallIntMethod
(
host
,
java_getIntSetting
,
key
,
defvalue
);
jint
value
=
env
->
CallIntMethod
(
app
->
activity
->
clazz
,
java_getIntSetting
,
key
,
defvalue
);
if
(
key
)
{
if
(
key
)
{
env
->
DeleteLocalRef
(
key
);
env
->
DeleteLocalRef
(
key
);
}
}
...
@@ -67,7 +67,7 @@ void AndroidGameHost::saveIntSetting(JNIEnv *env, const char *_key, int value) {
...
@@ -67,7 +67,7 @@ void AndroidGameHost::saveIntSetting(JNIEnv *env, const char *_key, int value) {
return
;
return
;
}
}
jstring
key
=
env
->
NewStringUTF
(
_key
);
jstring
key
=
env
->
NewStringUTF
(
_key
);
env
->
CallVoidMethod
(
host
,
java_saveIntSetting
,
key
,
value
);
env
->
CallVoidMethod
(
app
->
activity
->
clazz
,
java_saveIntSetting
,
key
,
value
);
if
(
key
)
{
if
(
key
)
{
env
->
DeleteLocalRef
(
key
);
env
->
DeleteLocalRef
(
key
);
}
}
...
@@ -78,7 +78,7 @@ void AndroidGameHost::runWindbot(JNIEnv *env, const char* _cmd) {
...
@@ -78,7 +78,7 @@ void AndroidGameHost::runWindbot(JNIEnv *env, const char* _cmd) {
return
;
return
;
}
}
jstring
cmd
=
env
->
NewStringUTF
(
_cmd
);
jstring
cmd
=
env
->
NewStringUTF
(
_cmd
);
env
->
CallVoidMethod
(
host
,
java_runWindbot
,
cmd
);
env
->
CallVoidMethod
(
app
->
activity
->
clazz
,
java_runWindbot
,
cmd
);
if
(
cmd
)
{
if
(
cmd
)
{
env
->
DeleteLocalRef
(
cmd
);
env
->
DeleteLocalRef
(
cmd
);
}
}
...
@@ -90,7 +90,7 @@ void AndroidGameHost::saveSetting(JNIEnv *env, const char *_key, const char *_va
...
@@ -90,7 +90,7 @@ void AndroidGameHost::saveSetting(JNIEnv *env, const char *_key, const char *_va
}
}
jstring
key
=
env
->
NewStringUTF
(
_key
);
jstring
key
=
env
->
NewStringUTF
(
_key
);
jstring
value
=
env
->
NewStringUTF
(
_value
);
jstring
value
=
env
->
NewStringUTF
(
_value
);
env
->
CallVoidMethod
(
host
,
java_saveSetting
,
key
,
value
);
env
->
CallVoidMethod
(
app
->
activity
->
clazz
,
java_saveSetting
,
key
,
value
);
if
(
key
)
{
if
(
key
)
{
env
->
DeleteLocalRef
(
key
);
env
->
DeleteLocalRef
(
key
);
}
}
...
@@ -119,6 +119,6 @@ int AndroidGameHost::getLocalAddr(JNIEnv *env) {
...
@@ -119,6 +119,6 @@ int AndroidGameHost::getLocalAddr(JNIEnv *env) {
if
(
!
java_getLocalAddr
)
{
if
(
!
java_getLocalAddr
)
{
return
0
;
return
0
;
}
}
return
env
->
CallIntMethod
(
host
,
java_getLocalAddr
);
return
env
->
CallIntMethod
(
app
->
activity
->
clazz
,
java_getLocalAddr
);
}
}
libcore/android/AndroidGameHost.h
View file @
8ffa21a9
...
@@ -12,7 +12,6 @@
...
@@ -12,7 +12,6 @@
namespace
ygo
{
namespace
ygo
{
class
AndroidGameHost
{
class
AndroidGameHost
{
private:
private:
jobject
host
;
jmethodID
java_getSetting
;
jmethodID
java_getSetting
;
jmethodID
java_getIntSetting
;
jmethodID
java_getIntSetting
;
jmethodID
java_saveIntSetting
;
jmethodID
java_saveIntSetting
;
...
@@ -22,7 +21,7 @@ namespace ygo {
...
@@ -22,7 +21,7 @@ namespace ygo {
ANDROID_APP
app
;
ANDROID_APP
app
;
public:
public:
AndroidGameHost
(
ANDROID_APP
app
,
jobject
host
);
AndroidGameHost
(
ANDROID_APP
app
);
//! destructor
//! destructor
virtual
~
AndroidGameHost
();
virtual
~
AndroidGameHost
();
...
...
libcore/android/AndroidGameUI.cpp
View file @
8ffa21a9
...
@@ -6,18 +6,18 @@
...
@@ -6,18 +6,18 @@
using
namespace
ygo
;
using
namespace
ygo
;
AndroidGameUI
::
AndroidGameUI
(
ANDROID_APP
_app
,
jobject
_host
)
{
AndroidGameUI
::
AndroidGameUI
(
ANDROID_APP
_app
)
{
host
=
_host
;
app
=
_app
;
app
=
_app
;
}
}
AndroidGameUI
::~
AndroidGameUI
()
{
AndroidGameUI
::~
AndroidGameUI
()
{
JNIEnv
*
env
=
irr
::
android
::
getJniEnv
(
app
);
app
=
NULL
;
env
->
DeleteGlobalRef
(
host
);
//JNIEnv *env = irr::android::getJniEnv(app);
//env->DeleteGlobalRef(app->activity->clazz);
}
}
void
AndroidGameUI
::
initMethods
(
JNIEnv
*
env
)
{
void
AndroidGameUI
::
initMethods
(
JNIEnv
*
env
)
{
jclass
clazz
=
env
->
GetObjectClass
(
host
);
jclass
clazz
=
env
->
GetObjectClass
(
app
->
activity
->
clazz
);
java_toggleIME
=
env
->
GetMethodID
(
clazz
,
"toggleIME"
,
"(ZLjava/lang/String;)V"
);
java_toggleIME
=
env
->
GetMethodID
(
clazz
,
"toggleIME"
,
"(ZLjava/lang/String;)V"
);
java_performHapticFeedback
=
env
->
GetMethodID
(
clazz
,
"performHapticFeedback"
,
"()V"
);
java_performHapticFeedback
=
env
->
GetMethodID
(
clazz
,
"performHapticFeedback"
,
"()V"
);
java_showComboBoxCompat
=
env
->
GetMethodID
(
clazz
,
"showComboBoxCompat"
,
java_showComboBoxCompat
=
env
->
GetMethodID
(
clazz
,
"showComboBoxCompat"
,
...
@@ -38,7 +38,7 @@ void AndroidGameUI::toggleIME(JNIEnv *env, bool show, const char *_msg) {
...
@@ -38,7 +38,7 @@ void AndroidGameUI::toggleIME(JNIEnv *env, bool show, const char *_msg) {
return
;
return
;
}
}
jstring
msg
=
env
->
NewStringUTF
(
_msg
);
jstring
msg
=
env
->
NewStringUTF
(
_msg
);
env
->
CallVoidMethod
(
host
,
java_toggleIME
,
(
jboolean
)
show
,
msg
);
env
->
CallVoidMethod
(
app
->
activity
->
clazz
,
java_toggleIME
,
(
jboolean
)
show
,
msg
);
if
(
msg
)
{
if
(
msg
)
{
env
->
DeleteLocalRef
(
msg
);
env
->
DeleteLocalRef
(
msg
);
}
}
...
@@ -48,7 +48,7 @@ void AndroidGameUI::performHapticFeedback(JNIEnv *env) {
...
@@ -48,7 +48,7 @@ void AndroidGameUI::performHapticFeedback(JNIEnv *env) {
if
(
!
java_performHapticFeedback
)
{
if
(
!
java_performHapticFeedback
)
{
return
;
return
;
}
}
env
->
CallVoidMethod
(
host
,
java_performHapticFeedback
);
env
->
CallVoidMethod
(
app
->
activity
->
clazz
,
java_performHapticFeedback
);
}
}
void
void
...
@@ -64,7 +64,7 @@ AndroidGameUI::showAndroidComboBoxCompat(JNIEnv *env, bool pShow, char **pConten
...
@@ -64,7 +64,7 @@ AndroidGameUI::showAndroidComboBoxCompat(JNIEnv *env, bool pShow, char **pConten
str
=
env
->
NewStringUTF
(
*
(
pContents
+
i
));
str
=
env
->
NewStringUTF
(
*
(
pContents
+
i
));
env
->
SetObjectArrayElement
(
array
,
i
,
str
);
env
->
SetObjectArrayElement
(
array
,
i
,
str
);
}
}
env
->
CallVoidMethod
(
host
,
java_showComboBoxCompat
,
array
,
(
jboolean
)
pShow
,
env
->
CallVoidMethod
(
app
->
activity
->
clazz
,
java_showComboBoxCompat
,
array
,
(
jboolean
)
pShow
,
(
jint
)
mode
);
(
jint
)
mode
);
}
}
...
@@ -73,21 +73,21 @@ int AndroidGameUI::getWindowWidth(JNIEnv *env) {
...
@@ -73,21 +73,21 @@ int AndroidGameUI::getWindowWidth(JNIEnv *env) {
if
(
!
java_getWindowWidth
)
{
if
(
!
java_getWindowWidth
)
{
return
0
;
return
0
;
}
}
return
env
->
CallIntMethod
(
host
,
java_getWindowWidth
);
return
env
->
CallIntMethod
(
app
->
activity
->
clazz
,
java_getWindowWidth
);
}
}
int
AndroidGameUI
::
getWindowHeight
(
JNIEnv
*
env
)
{
int
AndroidGameUI
::
getWindowHeight
(
JNIEnv
*
env
)
{
if
(
!
java_getWindowHeight
)
{
if
(
!
java_getWindowHeight
)
{
return
0
;
return
0
;
}
}
return
env
->
CallIntMethod
(
host
,
java_getWindowHeight
);
return
env
->
CallIntMethod
(
app
->
activity
->
clazz
,
java_getWindowHeight
);
}
}
irr
::
android
::
InitOptions
*
AndroidGameUI
::
getInitOptions
(
JNIEnv
*
env
)
{
irr
::
android
::
InitOptions
*
AndroidGameUI
::
getInitOptions
(
JNIEnv
*
env
)
{
if
(
!
java_getInitOptions
)
{
if
(
!
java_getInitOptions
)
{
return
nullptr
;
return
nullptr
;
}
}
jobject
buffer
=
env
->
CallObjectMethod
(
host
,
java_getInitOptions
);
jobject
buffer
=
env
->
CallObjectMethod
(
app
->
activity
->
clazz
,
java_getInitOptions
);
if
(
buffer
)
{
if
(
buffer
)
{
void
*
data
=
env
->
GetDirectBufferAddress
(
buffer
);
void
*
data
=
env
->
GetDirectBufferAddress
(
buffer
);
return
new
irr
::
android
::
InitOptions
(
data
);
return
new
irr
::
android
::
InitOptions
(
data
);
...
@@ -100,7 +100,7 @@ irr::android::YGOGameOptions* AndroidGameUI::getJoinOptions(JNIEnv *env) {
...
@@ -100,7 +100,7 @@ irr::android::YGOGameOptions* AndroidGameUI::getJoinOptions(JNIEnv *env) {
if
(
!
java_getJoinOptions
)
{
if
(
!
java_getJoinOptions
)
{
return
nullptr
;
return
nullptr
;
}
}
jobject
buffer
=
env
->
CallObjectMethod
(
host
,
java_getJoinOptions
);
jobject
buffer
=
env
->
CallObjectMethod
(
app
->
activity
->
clazz
,
java_getJoinOptions
);
if
(
buffer
)
{
if
(
buffer
)
{
void
*
data
=
env
->
GetDirectBufferAddress
(
buffer
);
void
*
data
=
env
->
GetDirectBufferAddress
(
buffer
);
return
new
irr
::
android
::
YGOGameOptions
(
data
);
return
new
irr
::
android
::
YGOGameOptions
(
data
);
...
@@ -116,21 +116,21 @@ void AndroidGameUI::attachNativeDevice(JNIEnv*env, void* device){
...
@@ -116,21 +116,21 @@ void AndroidGameUI::attachNativeDevice(JNIEnv*env, void* device){
}
}
jint
value
=
(
int
)
device
;
jint
value
=
(
int
)
device
;
LOGI
(
"attachNativeDevice %d"
,
value
);
LOGI
(
"attachNativeDevice %d"
,
value
);
env
->
CallVoidMethod
(
host
,
java_attachNativeDevice
,
value
);
env
->
CallVoidMethod
(
app
->
activity
->
clazz
,
java_attachNativeDevice
,
value
);
}
}
int
AndroidGameUI
::
getWindowLeft
(
JNIEnv
*
env
)
{
int
AndroidGameUI
::
getWindowLeft
(
JNIEnv
*
env
)
{
if
(
!
java_getWindowLeft
)
{
if
(
!
java_getWindowLeft
)
{
return
0
;
return
0
;
}
}
return
env
->
CallIntMethod
(
host
,
java_getWindowLeft
);
return
env
->
CallIntMethod
(
app
->
activity
->
clazz
,
java_getWindowLeft
);
}
}
int
AndroidGameUI
::
getWindowTop
(
JNIEnv
*
env
)
{
int
AndroidGameUI
::
getWindowTop
(
JNIEnv
*
env
)
{
if
(
!
java_getWindowTop
)
{
if
(
!
java_getWindowTop
)
{
return
0
;
return
0
;
}
}
return
env
->
CallIntMethod
(
host
,
java_getWindowTop
);
return
env
->
CallIntMethod
(
app
->
activity
->
clazz
,
java_getWindowTop
);
}
}
void
AndroidGameUI
::
playSoundEffect
(
JNIEnv
*
env
,
const
char
*
_name
)
{
void
AndroidGameUI
::
playSoundEffect
(
JNIEnv
*
env
,
const
char
*
_name
)
{
...
@@ -138,7 +138,7 @@ void AndroidGameUI::playSoundEffect(JNIEnv *env, const char *_name) {
...
@@ -138,7 +138,7 @@ void AndroidGameUI::playSoundEffect(JNIEnv *env, const char *_name) {
return
;
return
;
}
}
jstring
name
=
env
->
NewStringUTF
(
_name
);
jstring
name
=
env
->
NewStringUTF
(
_name
);
env
->
CallVoidMethod
(
host
,
java_playSoundEffect
,
name
);
env
->
CallVoidMethod
(
app
->
activity
->
clazz
,
java_playSoundEffect
,
name
);
if
(
name
)
{
if
(
name
)
{
env
->
DeleteLocalRef
(
name
);
env
->
DeleteLocalRef
(
name
);
}
}
...
...
libcore/android/AndroidGameUI.h
View file @
8ffa21a9
...
@@ -14,7 +14,6 @@
...
@@ -14,7 +14,6 @@
namespace
ygo
{
namespace
ygo
{
class
AndroidGameUI
{
class
AndroidGameUI
{
private:
private:
jobject
host
;
jmethodID
java_toggleIME
;
jmethodID
java_toggleIME
;
jmethodID
java_performHapticFeedback
;
jmethodID
java_performHapticFeedback
;
jmethodID
java_showComboBoxCompat
;
jmethodID
java_showComboBoxCompat
;
...
@@ -29,7 +28,7 @@ namespace ygo {
...
@@ -29,7 +28,7 @@ namespace ygo {
ANDROID_APP
app
;
ANDROID_APP
app
;
public:
public:
AndroidGameUI
(
ANDROID_APP
app
,
jobject
obj
);
AndroidGameUI
(
ANDROID_APP
app
);
//! destructor
//! destructor
virtual
~
AndroidGameUI
();
virtual
~
AndroidGameUI
();
...
...
libcore/src/main/java/cn/garymb/ygomobile/YGOMobileActivity.java
View file @
8ffa21a9
This diff is collapsed.
Click to expand it.
libcore/src/main/java/cn/garymb/ygomobile/interfaces/GameHost.java
View file @
8ffa21a9
...
@@ -13,23 +13,14 @@ import cn.garymb.ygomobile.tool.GameSoundPlayer;
...
@@ -13,23 +13,14 @@ import cn.garymb.ygomobile.tool.GameSoundPlayer;
import
cn.garymb.ygomobile.tool.NetworkController
;
import
cn.garymb.ygomobile.tool.NetworkController
;
@Keep
@Keep
public
abstract
class
GameHost
{
public
abstract
class
GameHost
implements
IGameHost
{
private
final
NetworkController
mNetworkController
;
private
final
NetworkController
mNetworkController
;
public
GameHost
(
Context
context
)
{
public
GameHost
(
Context
context
)
{
mNetworkController
=
new
NetworkController
(
context
);
mNetworkController
=
new
NetworkController
(
context
);
}
}
public
abstract
String
getSetting
(
String
key
);
@Override
public
abstract
int
getIntSetting
(
String
key
,
int
def
);
public
abstract
void
saveIntSetting
(
String
key
,
int
value
);
public
abstract
void
saveSetting
(
String
key
,
String
value
);
public
abstract
void
runWindbot
(
String
cmd
);
public
int
getLocalAddr
()
{
public
int
getLocalAddr
()
{
return
mNetworkController
.
getIPAddress
();
return
mNetworkController
.
getIPAddress
();
}
}
...
...
libcore/src/main/java/cn/garymb/ygomobile/interfaces/IGameActivity.java
View file @
8ffa21a9
...
@@ -4,7 +4,5 @@ package cn.garymb.ygomobile.interfaces;
...
@@ -4,7 +4,5 @@ package cn.garymb.ygomobile.interfaces;
import
androidx.annotation.Keep
;
import
androidx.annotation.Keep
;
@Keep
@Keep
public
interface
IGameActivity
{
public
interface
IGameActivity
extends
IGameUI
,
IGameHost
{
GameHost
getNativeGameHost
();
IGameUI
getNativeGameUI
();
}
}
libcore/src/main/java/cn/garymb/ygomobile/interfaces/IGameHost.java
0 → 100644
View file @
8ffa21a9
package
cn.garymb.ygomobile.interfaces
;
public
interface
IGameHost
{
String
getSetting
(
String
key
);
int
getIntSetting
(
String
key
,
int
def
);
void
saveIntSetting
(
String
key
,
int
value
);
void
saveSetting
(
String
key
,
String
value
);
void
runWindbot
(
String
cmd
);
int
getLocalAddr
();
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment