Android: add ARM64 and clang support
This commit is contained in:
parent
b40d176021
commit
2c45593015
|
@ -102,6 +102,7 @@ build/android/obj
|
|||
build/android/local.properties
|
||||
build/android/.gradle
|
||||
timestamp
|
||||
.idea
|
||||
|
||||
## iOS build files
|
||||
build/iOS/MultiCraft/MultiCraft.xcodeproj/xcuserdata
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,30 +1,34 @@
|
|||
buildscript {
|
||||
repositories {
|
||||
maven { url 'https://maven.google.com' }
|
||||
jcenter()
|
||||
google()
|
||||
jcenter()
|
||||
maven { url 'https://maven.fabric.io/public' }
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.4.0'
|
||||
classpath 'com.android.tools.build:gradle:3.4.2'
|
||||
classpath 'com.google.gms:google-services:4.3.0'
|
||||
classpath 'io.fabric.tools:gradle:1.29.0'
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
maven { url 'https://maven.google.com' }
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'com.android.application'
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
buildToolsVersion "28.0.3"
|
||||
compileSdkVersion 29
|
||||
buildToolsVersion "29.0.0"
|
||||
|
||||
defaultConfig {
|
||||
applicationId 'com.multicraft.game'
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 28
|
||||
targetSdkVersion 29
|
||||
versionCode 1
|
||||
}
|
||||
Properties props = new Properties()
|
||||
|
@ -53,15 +57,13 @@ android {
|
|||
abi {
|
||||
enable true
|
||||
reset()
|
||||
include "armeabi-v7a", "x86"
|
||||
//include 'armeabi-v7a', 'arm64-v8a', 'x86'
|
||||
include "armeabi-v7a", "arm64-v8a", "x86"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// build multiple APKs for all ABI
|
||||
ext.abiCodes = ['armeabi-v7a': 0, 'x86': 1]
|
||||
//ext.abiCodes = ['armeabi-v7a': 0, 'arm64-v8a': 1, 'x86': 2]
|
||||
ext.abiCodes = ['armeabi-v7a': 0, 'arm64-v8a': 1, 'x86': 2]
|
||||
import com.android.build.OutputFile
|
||||
|
||||
android.applicationVariants.all { variant ->
|
||||
|
@ -76,10 +78,11 @@ android.applicationVariants.all { variant ->
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.0.2'
|
||||
implementation 'com.google.firebase:firebase-core:17.0.0'
|
||||
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
|
||||
// Third-party libraries
|
||||
implementation 'com.itlgl:iosdialog:1.0.0'
|
||||
implementation 'gun0912.ted:tedpermission:2.2.2'
|
||||
implementation 'org.apache.commons:commons-io:1.3.2'
|
||||
implementation group: 'commons-io', name: 'commons-io', version: '2.4'
|
||||
}
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
android.enableJetifier=true
|
||||
android.useAndroidX=true
|
|
@ -40,23 +40,7 @@ include $(PREBUILT_STATIC_LIBRARY)
|
|||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := MultiCraft
|
||||
|
||||
ifdef GPROF
|
||||
GPROF_DEF=-DGPROF
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_ABI),armeabi-v7a)
|
||||
LOCAL_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_ABI),x86)
|
||||
LOCAL_CFLAGS += -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -funroll-loops
|
||||
endif
|
||||
|
||||
ifndef NDEBUG
|
||||
LOCAL_CFLAGS := -g -D_DEBUG -O0 -fno-omit-frame-pointer
|
||||
endif
|
||||
|
||||
LOCAL_CFLAGS := \
|
||||
LOCAL_CFLAGS += \
|
||||
-DJSONCPP_NO_LOCALE_SUPPORT \
|
||||
-DHAVE_TOUCHSCREENGUI \
|
||||
-DUSE_CURL=1 \
|
||||
|
@ -68,14 +52,11 @@ LOCAL_CFLAGS := \
|
|||
-pipe
|
||||
|
||||
ifdef GPROF
|
||||
GPROF_DEF := -DGPROF
|
||||
PROFILER_LIBS := android-ndk-profiler
|
||||
LOCAL_CFLAGS += -pg
|
||||
endif
|
||||
|
||||
LOCAL_CFLAGS += -Ofast -fdata-sections -ffunction-sections -fvisibility=hidden -flto
|
||||
LOCAL_CXXFLAGS := $(LOCAL_CFLAGS)
|
||||
LOCAL_LDFLAGS := -Wl,--no-warn-mismatch,--gc-sections,--icf=safe
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
jni/src \
|
||||
jni/src/script \
|
||||
|
@ -90,6 +71,8 @@ LOCAL_C_INCLUDES := \
|
|||
deps/libvorbis-android/jni/include \
|
||||
deps/leveldb/include \
|
||||
deps/luajit/src \
|
||||
deps/libiconv/include \
|
||||
deps/libiconv/libcharset/include
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
jni/src/ban.cpp \
|
||||
|
@ -311,14 +294,6 @@ LOCAL_SRC_FILES += \
|
|||
# JSONCPP
|
||||
LOCAL_SRC_FILES += jni/lib/jsoncpp/jsoncpp.cpp
|
||||
|
||||
# libiconv
|
||||
LOCAL_CFLAGS += -D_ANDROID -DLIBDIR -DBUILDING_LIBICONV
|
||||
|
||||
LOCAL_C_INCLUDES += \
|
||||
deps/libiconv/include \
|
||||
deps/libiconv/lib \
|
||||
deps/libiconv/libcharset/include
|
||||
|
||||
LOCAL_SRC_FILES += \
|
||||
deps/libiconv/lib/iconv.c \
|
||||
deps/libiconv/libcharset/lib/localcharset.c
|
||||
|
|
|
@ -1,8 +1,39 @@
|
|||
APP_PLATFORM := ${APP_PLATFORM}
|
||||
APP_ABI := ${TARGET_ABI}
|
||||
APP_STL := gnustl_static
|
||||
NDK_TOOLCHAIN_VERSION := 4.9
|
||||
APP_DEPRECATED_HEADERS := true
|
||||
APP_STL := ${APP_STL}
|
||||
NDK_TOOLCHAIN_VERSION := ${COMPILER_VERSION}
|
||||
APP_MODULES := MultiCraft
|
||||
|
||||
APP_CPPFLAGS += -fexceptions -frtti
|
||||
APP_CPPFLAGS := -Ofast -fvisibility=hidden -fpic -fexceptions -Wno-deprecated-declarations
|
||||
|
||||
ifeq ($(COMPILER_VERSION),4.9)
|
||||
APP_CPPFLAGS += -flto
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_ABI),armeabi-v7a)
|
||||
APP_CPPFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_ABI),x86)
|
||||
APP_CPPFLAGS += -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -funroll-loops
|
||||
endif
|
||||
|
||||
ifndef NDEBUG
|
||||
APP_CPPFLAGS := -g -D_DEBUG -O0 -fno-omit-frame-pointer
|
||||
endif
|
||||
|
||||
APP_CFLAGS := $(APP_CPPFLAGS)
|
||||
APP_CXXFLAGS := $(APP_CPPFLAGS) -frtti
|
||||
APP_LDFLAGS := -Wl,--no-warn-mismatch,--gc-sections,--icf=safe
|
||||
|
||||
ifeq ($(COMPILER_VERSION),clang)
|
||||
APP_CFLAGS += $(APP_CPPFLAGS) -Wno-parentheses-equality
|
||||
APP_CXXFLAGS += $(APP_CPPFLAGS) -std=gnu++17
|
||||
ifeq ($(TARGET_ABI),arm64-v8a)
|
||||
APP_LDFLAGS := -Wl,--no-warn-mismatch,--gc-sections
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef NDEBUG
|
||||
APP_LDFLAGS :=
|
||||
endif
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
APP_PLATFORM := ${APP_PLATFORM}
|
||||
APP_ABI := ${TARGET_ABI}
|
||||
APP_STL := gnustl_static
|
||||
NDK_TOOLCHAIN_VERSION := 4.9
|
||||
APP_DEPRECATED_HEADERS := true
|
||||
APP_STL := ${APP_STL}
|
||||
NDK_TOOLCHAIN_VERSION := ${COMPILER_VERSION}
|
||||
|
||||
APP_CLAFGS += ${TARGET_CFLAGS_ADDON}
|
||||
APP_CPPFLAGS += ${TARGET_CXXFLAGS_ADDON} -fexceptions -frtti
|
||||
APP_LDFLAGS += ${TARGET_LDFLAGS_ADDON}
|
||||
APP_CFLAGS := ${TARGET_CXXFLAGS_ADDON}
|
||||
|
|
|
@ -1,8 +1,15 @@
|
|||
APP_PLATFORM := ${APP_PLATFORM}
|
||||
APP_ABI := ${TARGET_ABI}
|
||||
APP_STL := gnustl_static
|
||||
NDK_TOOLCHAIN_VERSION := 4.9
|
||||
APP_DEPRECATED_HEADERS := true
|
||||
APP_STL := ${APP_STL}
|
||||
NDK_TOOLCHAIN_VERSION := ${COMPILER_VERSION}
|
||||
APP_MODULES := Irrlicht
|
||||
|
||||
APP_CPPFLAGS += -fexceptions -frtti
|
||||
APP_CPPFLAGS := ${TARGET_CPPFLAGS_ADDON}
|
||||
|
||||
ifeq ($(COMPILER_VERSION),4.9)
|
||||
APP_CPPFLAGS += -flto
|
||||
endif
|
||||
|
||||
ifeq ($(COMPILER_VERSION),clang)
|
||||
APP_CPPFLAGS += -std=gnu++11
|
||||
endif
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
--- irrlicht/source/Irrlicht/Android/jni/Android.mk.orig 2016-02-15 05:33:03.000000000 +0200
|
||||
+++ irrlicht/source/Irrlicht/Android/jni/Android.mk 2016-02-15 05:34:34.913711815 +0200
|
||||
@@ -11,7 +11,15 @@
|
||||
ifndef NDEBUG
|
||||
LOCAL_CFLAGS += -g -D_DEBUG
|
||||
else
|
||||
-LOCAL_CFLAGS += -fexpensive-optimizations -O3
|
||||
+ifeq ($(TARGET_ABI),armeabi-v7a)
|
||||
+LOCAL_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb
|
||||
+endif
|
||||
+ifeq ($(TARGET_ABI),x86)
|
||||
+LOCAL_CFLAGS += -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -funroll-loops
|
||||
+endif
|
||||
+LOCAL_CFLAGS += -Ofast -fdata-sections -ffunction-sections -fvisibility=hidden -flto
|
||||
+LOCAL_CXXFLAGS := $(LOCAL_CFLAGS)
|
||||
+LOCAL_LDFLAGS := -Wl,--no-warn-mismatch,--gc-sections,--icf=safe
|
||||
endif
|
||||
|
||||
LOCAL_C_INCLUDES := ../../../include
|
|
@ -1,240 +0,0 @@
|
|||
--- irrlicht/source/Irrlicht/COGLESTexture.cpp.orig 2014-06-22 17:01:13.266568869 +0200
|
||||
+++ irrlicht/source/Irrlicht/COGLESTexture.cpp 2014-06-22 17:03:59.298572810 +0200
|
||||
@@ -366,112 +366,140 @@
|
||||
void(*convert)(const void*, s32, void*) = 0;
|
||||
getFormatParameters(ColorFormat, InternalFormat, filtering, PixelFormat, PixelType, convert);
|
||||
|
||||
- // make sure we don't change the internal format of existing images
|
||||
- if (!newTexture)
|
||||
- InternalFormat = oldInternalFormat;
|
||||
-
|
||||
- Driver->setActiveTexture(0, this);
|
||||
-
|
||||
- if (Driver->testGLError())
|
||||
- os::Printer::log("Could not bind Texture", ELL_ERROR);
|
||||
-
|
||||
- // mipmap handling for main texture
|
||||
- if (!level && newTexture)
|
||||
- {
|
||||
- // auto generate if possible and no mipmap data is given
|
||||
- if (!IsCompressed && HasMipMaps && !mipmapData && Driver->queryFeature(EVDF_MIP_MAP_AUTO_UPDATE))
|
||||
- {
|
||||
- if (Driver->getTextureCreationFlag(ETCF_OPTIMIZED_FOR_SPEED))
|
||||
- glHint(GL_GENERATE_MIPMAP_HINT, GL_FASTEST);
|
||||
- else if (Driver->getTextureCreationFlag(ETCF_OPTIMIZED_FOR_QUALITY))
|
||||
- glHint(GL_GENERATE_MIPMAP_HINT, GL_NICEST);
|
||||
- else
|
||||
- glHint(GL_GENERATE_MIPMAP_HINT, GL_DONT_CARE);
|
||||
+ bool retry = false;
|
||||
+
|
||||
+ do {
|
||||
+ if (retry) {
|
||||
+ InternalFormat = GL_RGBA;
|
||||
+ PixelFormat = GL_RGBA;
|
||||
+ convert = CColorConverter::convert_A8R8G8B8toA8B8G8R8;
|
||||
+ }
|
||||
+ // make sure we don't change the internal format of existing images
|
||||
+ if (!newTexture)
|
||||
+ InternalFormat = oldInternalFormat;
|
||||
|
||||
- glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
|
||||
- AutomaticMipmapUpdate=true;
|
||||
- }
|
||||
+ Driver->setActiveTexture(0, this);
|
||||
|
||||
- // enable bilinear filter without mipmaps
|
||||
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filtering);
|
||||
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filtering);
|
||||
- }
|
||||
+ if (Driver->testGLError())
|
||||
+ os::Printer::log("Could not bind Texture", ELL_ERROR);
|
||||
|
||||
- // now get image data and upload to GPU
|
||||
+ // mipmap handling for main texture
|
||||
+ if (!level && newTexture)
|
||||
+ {
|
||||
+ // auto generate if possible and no mipmap data is given
|
||||
+ if (!IsCompressed && HasMipMaps && !mipmapData && Driver->queryFeature(EVDF_MIP_MAP_AUTO_UPDATE))
|
||||
+ {
|
||||
+ if (Driver->getTextureCreationFlag(ETCF_OPTIMIZED_FOR_SPEED))
|
||||
+ glHint(GL_GENERATE_MIPMAP_HINT, GL_FASTEST);
|
||||
+ else if (Driver->getTextureCreationFlag(ETCF_OPTIMIZED_FOR_QUALITY))
|
||||
+ glHint(GL_GENERATE_MIPMAP_HINT, GL_NICEST);
|
||||
+ else
|
||||
+ glHint(GL_GENERATE_MIPMAP_HINT, GL_DONT_CARE);
|
||||
+
|
||||
+ glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
|
||||
+ AutomaticMipmapUpdate=true;
|
||||
+ }
|
||||
+
|
||||
+ // enable bilinear filter without mipmaps
|
||||
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filtering);
|
||||
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filtering);
|
||||
+ }
|
||||
|
||||
- u32 compressedImageSize = IImage::getCompressedImageSize(ColorFormat, image->getDimension().Width, image->getDimension().Height);
|
||||
+ // now get image data and upload to GPU
|
||||
|
||||
- void* source = image->lock();
|
||||
+ u32 compressedImageSize = IImage::getCompressedImageSize(ColorFormat, image->getDimension().Width, image->getDimension().Height);
|
||||
|
||||
- IImage* tmpImage = 0;
|
||||
+ void* source = image->lock();
|
||||
|
||||
- if (convert)
|
||||
- {
|
||||
- tmpImage = new CImage(image->getColorFormat(), image->getDimension());
|
||||
- void* dest = tmpImage->lock();
|
||||
- convert(source, image->getDimension().getArea(), dest);
|
||||
- image->unlock();
|
||||
- source = dest;
|
||||
- }
|
||||
+ IImage* tmpImage = 0;
|
||||
|
||||
- if (newTexture)
|
||||
- {
|
||||
- if (IsCompressed)
|
||||
+ if (convert)
|
||||
{
|
||||
- glCompressedTexImage2D(GL_TEXTURE_2D, 0, InternalFormat, image->getDimension().Width,
|
||||
- image->getDimension().Height, 0, compressedImageSize, source);
|
||||
+ tmpImage = new CImage(image->getColorFormat(), image->getDimension());
|
||||
+ void* dest = tmpImage->lock();
|
||||
+ convert(source, image->getDimension().getArea(), dest);
|
||||
+ image->unlock();
|
||||
+ source = dest;
|
||||
}
|
||||
- else
|
||||
- glTexImage2D(GL_TEXTURE_2D, level, InternalFormat, image->getDimension().Width,
|
||||
- image->getDimension().Height, 0, PixelFormat, PixelType, source);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- if (IsCompressed)
|
||||
+
|
||||
+ if (newTexture)
|
||||
{
|
||||
- glCompressedTexSubImage2D(GL_TEXTURE_2D, level, 0, 0, image->getDimension().Width,
|
||||
- image->getDimension().Height, PixelFormat, compressedImageSize, source);
|
||||
+ if (IsCompressed)
|
||||
+ {
|
||||
+ glCompressedTexImage2D(GL_TEXTURE_2D, 0, InternalFormat, image->getDimension().Width,
|
||||
+ image->getDimension().Height, 0, compressedImageSize, source);
|
||||
+ }
|
||||
+ else
|
||||
+ glTexImage2D(GL_TEXTURE_2D, level, InternalFormat, image->getDimension().Width,
|
||||
+ image->getDimension().Height, 0, PixelFormat, PixelType, source);
|
||||
}
|
||||
else
|
||||
- glTexSubImage2D(GL_TEXTURE_2D, level, 0, 0, image->getDimension().Width,
|
||||
- image->getDimension().Height, PixelFormat, PixelType, source);
|
||||
- }
|
||||
-
|
||||
- if (convert)
|
||||
- {
|
||||
- tmpImage->unlock();
|
||||
- tmpImage->drop();
|
||||
- }
|
||||
- else
|
||||
- image->unlock();
|
||||
-
|
||||
- if (!level && newTexture)
|
||||
- {
|
||||
- if (IsCompressed && !mipmapData)
|
||||
{
|
||||
- if (image->hasMipMaps())
|
||||
- mipmapData = static_cast<u8*>(image->lock())+compressedImageSize;
|
||||
+ if (IsCompressed)
|
||||
+ {
|
||||
+ glCompressedTexSubImage2D(GL_TEXTURE_2D, level, 0, 0, image->getDimension().Width,
|
||||
+ image->getDimension().Height, PixelFormat, compressedImageSize, source);
|
||||
+ }
|
||||
else
|
||||
- HasMipMaps = false;
|
||||
+ glTexSubImage2D(GL_TEXTURE_2D, level, 0, 0, image->getDimension().Width,
|
||||
+ image->getDimension().Height, PixelFormat, PixelType, source);
|
||||
}
|
||||
|
||||
- regenerateMipMapLevels(mipmapData);
|
||||
-
|
||||
- if (HasMipMaps) // might have changed in regenerateMipMapLevels
|
||||
+ if (convert)
|
||||
{
|
||||
- // enable bilinear mipmap filter
|
||||
- GLint filteringMipMaps = GL_LINEAR_MIPMAP_NEAREST;
|
||||
-
|
||||
- if (filtering != GL_LINEAR)
|
||||
- filteringMipMaps = GL_NEAREST_MIPMAP_NEAREST;
|
||||
+ tmpImage->unlock();
|
||||
+ tmpImage->drop();
|
||||
+ }
|
||||
+ else
|
||||
+ image->unlock();
|
||||
+
|
||||
+ if (glGetError() != GL_NO_ERROR) {
|
||||
+ static bool warned = false;
|
||||
+ if ((!retry) && (ColorFormat == ECF_A8R8G8B8)) {
|
||||
+
|
||||
+ if (!warned) {
|
||||
+ os::Printer::log("Your driver claims to support GL_BGRA but fails on trying to upload a texture, converting to GL_RGBA and trying again", ELL_ERROR);
|
||||
+ warned = true;
|
||||
+ }
|
||||
+ }
|
||||
+ else if (retry) {
|
||||
+ os::Printer::log("Neither uploading texture as GL_BGRA nor, converted one using GL_RGBA succeeded", ELL_ERROR);
|
||||
+ }
|
||||
+ retry = !retry;
|
||||
+ continue;
|
||||
+ } else {
|
||||
+ retry = false;
|
||||
+ }
|
||||
|
||||
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filteringMipMaps);
|
||||
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filtering);
|
||||
+ if (!level && newTexture)
|
||||
+ {
|
||||
+ if (IsCompressed && !mipmapData)
|
||||
+ {
|
||||
+ if (image->hasMipMaps())
|
||||
+ mipmapData = static_cast<u8*>(image->lock())+compressedImageSize;
|
||||
+ else
|
||||
+ HasMipMaps = false;
|
||||
+ }
|
||||
+
|
||||
+ regenerateMipMapLevels(mipmapData);
|
||||
+
|
||||
+ if (HasMipMaps) // might have changed in regenerateMipMapLevels
|
||||
+ {
|
||||
+ // enable bilinear mipmap filter
|
||||
+ GLint filteringMipMaps = GL_LINEAR_MIPMAP_NEAREST;
|
||||
+
|
||||
+ if (filtering != GL_LINEAR)
|
||||
+ filteringMipMaps = GL_NEAREST_MIPMAP_NEAREST;
|
||||
+
|
||||
+ glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filteringMipMaps);
|
||||
+ glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filtering);
|
||||
+ }
|
||||
}
|
||||
- }
|
||||
|
||||
- if (Driver->testGLError())
|
||||
- os::Printer::log("Could not glTexImage2D", ELL_ERROR);
|
||||
+ if (Driver->testGLError())
|
||||
+ os::Printer::log("Could not glTexImage2D", ELL_ERROR);
|
||||
+ }
|
||||
+ while(retry);
|
||||
}
|
||||
|
||||
|
||||
--- irrlicht/source/Irrlicht/COGLESTexture.cpp.orig 2014-06-25 00:28:50.820501856 +0200
|
||||
+++ irrlicht/source/Irrlicht/COGLESTexture.cpp 2014-06-25 00:08:37.712544692 +0200
|
||||
@@ -422,6 +422,9 @@
|
||||
source = dest;
|
||||
}
|
||||
|
||||
+ //clear old error
|
||||
+ glGetError();
|
||||
+
|
||||
if (newTexture)
|
||||
{
|
||||
if (IsCompressed)
|
|
@ -8,6 +8,7 @@ import android.content.Intent;
|
|||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
|
||||
|
@ -20,8 +21,16 @@ import static com.multicraft.game.AdManager.stopAd;*/
|
|||
|
||||
public class GameActivity extends NativeActivity {
|
||||
static {
|
||||
System.loadLibrary("MultiCraft");
|
||||
//System.loadLibrary("c++_shared");
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
if (TextUtils.join(", ", Build.SUPPORTED_ABIS).contains("64")) {
|
||||
//System.loadLibrary("c++_shared"); // uncomment when upgrading to Clang
|
||||
System.loadLibrary("MultiCraft");
|
||||
} else {
|
||||
System.loadLibrary("MultiCraft");
|
||||
}
|
||||
} else {
|
||||
System.loadLibrary("MultiCraft");
|
||||
}
|
||||
}
|
||||
|
||||
private int messageReturnCode;
|
||||
|
|
|
@ -21,7 +21,7 @@ import android.os.Bundle;
|
|||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.provider.Settings;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.view.ContextThemeWrapper;
|
||||
import android.view.Display;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<base-config cleartextTrafficPermitted="true">
|
||||
<trust-anchors>
|
||||
<certificates src="system" />
|
||||
<certificates src="user" />
|
||||
</trust-anchors>
|
||||
</base-config>
|
||||
</network-security-config>
|
26
src/config.h
26
src/config.h
|
@ -12,30 +12,17 @@
|
|||
|
||||
#if defined USE_CMAKE_CONFIG_H
|
||||
#include "cmake_config.h"
|
||||
#elif defined (__ANDROID__)
|
||||
#define PROJECT_NAME "MultiCraft"
|
||||
#define PROJECT_NAME_C "MultiCraft"
|
||||
#define STATIC_SHAREDIR ""
|
||||
#include "android_version.h"
|
||||
#ifdef NDEBUG
|
||||
#define BUILD_TYPE "Release"
|
||||
#else
|
||||
#define BUILD_TYPE "Debug"
|
||||
#endif
|
||||
#elif defined (__IOS__)
|
||||
#elif defined(__ANDROID__) || defined(__IOS__)
|
||||
#define PROJECT_NAME "MultiCraft"
|
||||
#define PROJECT_NAME_C "MultiCraft"
|
||||
#define STATIC_SHAREDIR ""
|
||||
#define VERSION_MAJOR 1
|
||||
#define VERSION_MINOR 2
|
||||
#define VERSION_PATCH 1
|
||||
#define VERSION_STRING "1.2.1"
|
||||
#ifdef NDEBUG
|
||||
#define BUILD_TYPE "Release"
|
||||
#else
|
||||
#define BUILD_TYPE "Debug"
|
||||
#endif
|
||||
#else
|
||||
#define VERSION_PATCH 2
|
||||
#define VERSION_STRING STR(VERSION_MAJOR) "." STR(VERSION_MINOR) "." STR(VERSION_PATCH)
|
||||
#endif
|
||||
|
||||
#ifndef USE_CMAKE_CONFIG_H
|
||||
#ifdef NDEBUG
|
||||
#define BUILD_TYPE "Release"
|
||||
#else
|
||||
|
@ -51,5 +38,4 @@
|
|||
" USE_FREETYPE=" STR(USE_FREETYPE) \
|
||||
" USE_LUAJIT=" STR(USE_LUAJIT) \
|
||||
" STATIC_SHAREDIR=" STR(STATIC_SHAREDIR)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -391,10 +391,11 @@ void set_default_settings(Settings *settings)
|
|||
settings->setDefault("touchscreen_threshold", "20");
|
||||
settings->setDefault("doubletap_jump", "true");
|
||||
settings->setDefault("abm_interval", "2.0");
|
||||
settings->setDefault("dedicated_server_step", "0.2");
|
||||
settings->setDefault("emergequeue_limit_diskonly", "16");
|
||||
settings->setDefault("emergequeue_limit_generate", "16");
|
||||
settings->setDefault("curl_verify_cert", "false");
|
||||
settings->setDefault("gui_scaling_filter_txr2img", "false");
|
||||
settings->setDefault("mapgens_available", "v7p, v6, flat");
|
||||
settings->setDefault("mapgens_available", "v7p, flat");
|
||||
|
||||
// FIXME: this code should be in init_gettext() ideally
|
||||
char lang[3] = {0};
|
||||
|
@ -417,8 +418,6 @@ void set_default_settings(Settings *settings)
|
|||
settings->setDefault("pause_fps_max", "10");
|
||||
settings->setDefault("smooth_lighting", "false");
|
||||
settings->setDefault("selectionbox_width", "6");
|
||||
settings->setDefault("emergequeue_limit_diskonly", "8");
|
||||
settings->setDefault("emergequeue_limit_generate", "8");
|
||||
settings->setDefault("chunksize", "3");
|
||||
settings->setDefault("active_block_range", "1");
|
||||
settings->setDefault("max_block_generate_distance", "3");
|
||||
|
@ -439,7 +438,7 @@ void set_default_settings(Settings *settings)
|
|||
settings->setDefault("mouse_sensitivity", "0.25");
|
||||
} else if (x_inches > 3.7 && x_inches < 5) {
|
||||
// all phones
|
||||
settings->setDefault("hud_scaling", "0.65");
|
||||
settings->setDefault("hud_scaling", "0.7");
|
||||
settings->setDefault("mouse_sensitivity", "0.15");
|
||||
} else if (x_inches >= 5) {
|
||||
// tablets
|
||||
|
@ -449,8 +448,6 @@ void set_default_settings(Settings *settings)
|
|||
|
||||
// iOS Settings
|
||||
#ifdef __IOS__
|
||||
settings->setDefault("emergequeue_limit_diskonly", "16");
|
||||
settings->setDefault("emergequeue_limit_generate", "16");
|
||||
settings->setDefault("debug_log_level", "none");
|
||||
// set font_path
|
||||
settings->setDefault("mono_font_path", g_settings->get("font_path"));
|
||||
|
|
|
@ -3707,14 +3707,14 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||
m_invmgr->inventoryAction(a);
|
||||
} else if (craft_amount > 0) {
|
||||
assert(s.isValid());
|
||||
|
||||
|
||||
// if there are no items selected or the selected item
|
||||
// belongs to craftresult list, proceed with crafting
|
||||
if (m_selected_item == NULL ||
|
||||
!m_selected_item->isValid() || m_selected_item->listname == "craftresult") {
|
||||
|
||||
|
||||
m_selected_content_guess = ItemStack(); // Clear
|
||||
|
||||
|
||||
assert(inv_s);
|
||||
|
||||
// Send IACTION_CRAFT
|
||||
|
@ -3829,10 +3829,11 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (event.GUIEvent.EventType == gui::EGET_EDITBOX_CHANGED) {
|
||||
if (event.GUIEvent.Caller->getID() > 257) {
|
||||
for (GUIFormSpecMenu::FieldSpec &s : m_fields) {
|
||||
|
||||
if (event.GUIEvent.EventType == gui::EGET_EDITBOX_CHANGED) {
|
||||
if (event.GUIEvent.Caller->getID() > 257) {
|
||||
for (u32 i = 0; i < m_fields.size(); i++) {
|
||||
FieldSpec &s = m_fields[i];
|
||||
if (s.ftype == f_Unknown && s.is_dynamic &&
|
||||
s.fid == event.GUIEvent.Caller->getID()) {
|
||||
s.send = true;
|
||||
|
|
|
@ -112,11 +112,7 @@ FileLogOutput file_log_output;
|
|||
|
||||
static OptionList allowed_options;
|
||||
|
||||
#ifdef __IOS__
|
||||
int real_main(int argc, char *argv[])
|
||||
#else
|
||||
int main(int argc, char *argv[])
|
||||
#endif
|
||||
{
|
||||
int retval;
|
||||
debug_set_exception_handler();
|
||||
|
|
|
@ -96,11 +96,11 @@ namespace porting {
|
|||
}
|
||||
}
|
||||
|
||||
extern int real_main(int argc, char *argv[]);
|
||||
extern int main(int argc, char *argv[]);
|
||||
|
||||
void irrlicht_main() {
|
||||
static const char *args[] = {
|
||||
PROJECT_NAME,
|
||||
};
|
||||
real_main(1, (char**) args);
|
||||
main(1, (char**) args);
|
||||
}
|
||||
|
|
|
@ -20,10 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
#include "version.h"
|
||||
#include "config.h"
|
||||
|
||||
#if defined(__ANDROID__)
|
||||
#include "android_version.h"
|
||||
#include "android_version_githash.h"
|
||||
#elif defined(USE_CMAKE_CONFIG_H)
|
||||
#if USE_CMAKE_CONFIG_H
|
||||
#include "cmake_config_githash.h"
|
||||
#endif
|
||||
|
||||
|
@ -35,4 +32,3 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
const char *g_version_string = VERSION_STRING;
|
||||
const char *g_version_hash = VERSION_GITHASH;
|
||||
const char *g_build_info = "VER=" VERSION_GITHASH " " BUILD_INFO;
|
||||
|
||||
|
|
Loading…
Reference in New Issue