echo = $(if $(1),echo $(1))
touch = $(if $(1),@cmd /c "for %%I in ($(call sys_path,$(1))) do @(cd %%~pI && type nul >> %%~nxI && copy /by %%~nxI+,, > nul 2>&1 && cd %%cd%%)")
cpq = $(if $(1),@cmd /c "for %%I in ($(call sys_path,$(1))) do copy /by %%I $(call sys_path,$(2))" > nul 2>&1)
+ cpv = $(if $(1),@cmd /c "for %%I in ($(call sys_path,$(1))) do copy /by %%I $(call sys_path,$(2))")
rmq = $(if $(1),-del /f /q $(call sys_path,$(call sys_path_list,$(1))) > nul 2>&1)
rmrq = $(if $(1),-rmdir /q /s $(call sys_path,$(1)) > nul 2>&1)
mkdirq = $(if $(1),-mkdir $(call sys_path,$(1)) > nul 2>&1)
echo = $(if $(1),echo "$(1)")
touch = $(if $(1),touch $(1))
cpq = $(if $(1),cp $(1) $(2))
+ cpv = cp $(1) $(2)
rmq = $(if $(1),-rm -f $(1))
rmrq = $(if $(1),-rm -f -r $(1))
mkdirq = $(if $(1),-mkdir -p $(1))
import "Object"
+#if !defined(__ANDROID__)
+#define USE_32_BIT_INDICES true
+#define indicesMember indices32
+#define uintindex uint32
+#else
+#define USE_32_BIT_INDICES false
+#define indicesMember indices
+#define uintindex uint16
+#endif
+
#define MAXNAMELEN 64
// RGB Chunks
PrimitiveSingle * triangle;
triangle = &mesh.primitives[mesh.nPrimitives++];
- if(mesh.AllocatePrimitive(triangle, { triangles, indices32bit = true }, 3))
+ if(mesh.AllocatePrimitive(triangle, { triangles, indices32bit = USE_32_BIT_INDICES }, 3))
{
- triangle->indices32[0] = face->indices[0];
- triangle->indices32[1] = face->indices[1];
- triangle->indices32[2] = face->indices[2];
- triangle->middle.Add(mesh.vertices[triangle->indices32[0]], mesh.vertices[triangle->indices32[1]]);
- triangle->middle.Add(triangle->middle, mesh.vertices[triangle->indices32[2]]);
+ triangle->indicesMember[0] = (uintindex)face->indices[0];
+ triangle->indicesMember[1] = (uintindex)face->indices[1];
+ triangle->indicesMember[2] = (uintindex)face->indices[2];
+ triangle->middle.Add(mesh.vertices[triangle->indicesMember[0]], mesh.vertices[triangle->indicesMember[1]]);
+ triangle->middle.Add(triangle->middle, mesh.vertices[triangle->indicesMember[2]]);
triangle->plane.FromPointsf(
- mesh.vertices[triangle->indices32[2]],
- mesh.vertices[triangle->indices32[1]],
- mesh.vertices[triangle->indices32[0]]);
+ mesh.vertices[triangle->indicesMember[2]],
+ mesh.vertices[triangle->indicesMember[1]],
+ mesh.vertices[triangle->indicesMember[0]]);
mesh.UnlockPrimitive(triangle);
}
}
else
{
- PrimitiveGroup group = mesh.AddPrimitiveGroup({ triangles, indices32bit = true }, faces.count * 3);
+ PrimitiveGroup group = mesh.AddPrimitiveGroup({ triangles, indices32bit = USE_32_BIT_INDICES }, faces.count * 3);
if(group)
{
c = 0;
if(object.flags.flipWindings)
{
- group.indices32[c*3] = face->indices[2];
- group.indices32[c*3+1] = face->indices[1];
- group.indices32[c*3+2] = face->indices[0];
+ group.indicesMember[c*3] = (uintindex)face->indices[2];
+ group.indicesMember[c*3+1] = (uintindex)face->indices[1];
+ group.indicesMember[c*3+2] = (uintindex)face->indices[0];
}
else
{
- group.indices32[c*3] = face->indices[0];
- group.indices32[c*3+1] = face->indices[1];
- group.indices32[c*3+2] = face->indices[2];
+ group.indicesMember[c*3] = (uintindex)face->indices[0];
+ group.indicesMember[c*3+1] = (uintindex)face->indices[1];
+ group.indicesMember[c*3+2] = (uintindex)face->indices[2];
}
face->done = true;
c++;
count++;
if(count)
{
- PrimitiveGroup group = mesh.AddPrimitiveGroup({ triangles, indices32bit = true }, count * 3);
+ PrimitiveGroup group = mesh.AddPrimitiveGroup({ triangles, indices32bit = USE_32_BIT_INDICES }, count * 3);
if(group)
{
for(c = 0; c<nFaces; c++)
Face * face = &info->faces[c];
if(!face->done)
{
- group.indices32[c*3] = face->indices[0];
- group.indices32[c*3+1] = face->indices[1];
- group.indices32[c*3+2] = face->indices[2];
+ group.indicesMember[c*3] = (uintindex)face->indices[0];
+ group.indicesMember[c*3+1] = (uintindex)face->indices[1];
+ group.indicesMember[c*3+2] = (uintindex)face->indices[2];
}
}
mesh.UnlockPrimitiveGroup(group);
-#define __statement __extension__ // To compile for Android/X86 (Need to add support to eC)
- // Also had to add __extension__ to __swap16md macro in endian.h
+#ifdef __statement
+#undef __statement
+#endif
+#define __statement(x) __extension__(x) // To compile for Android/X86 (Need to add support to eC)
+ // Also had to add __extension__ to __swap16md macro in endian.h
namespace net;
#ifndef ECERE_NONET
ide.projectView.Update(null);
Save();
}
+ ide.AdjustDebugMenus();
}
bool FindPath(ProjectNode node, const char * path)
"PostbuildCommands" : [
"$(call mkdirq,$(OBJ)apk/lib/x86)",
"$(call mkdirq,$(OBJ)apk/lib/armeabi)",
- "$(call cpq,/sdk/ecere/obj/android.linux.$(COMPILER)/libecere.so,$(OBJ)apk/lib/armeabi)",
+ "$(call cpv,../../../ecere/obj/android.linux.$(COMPILER)/libecere.so,$(OBJ)apk/lib/armeabi)",
"$(call cpq,$(TARGET),$(OBJ)apk/lib/armeabi)",
- "aapt package -v -f -m -M android/AndroidManifest.xml -F $(OBJ)$(MODULE)-unsigned.apk -I C:/android-sdk/platforms/android-16/android.jar -S android/res $(OBJ)apk",
- "jarsigner -storepass mypassword -sigalg MD5withRSA -digestalg SHA1 $(OBJ)$(MODULE)-unsigned.apk mykey -signedjar $(OBJ)$(MODULE).apk",
+ "aapt package -v -f -m -M android/AndroidManifest.xml -F $(OBJ)$(MODULE)-unsigned.apk -I C:/android-sdk/platforms/android-20/android.jar -S android/res $(OBJ)apk",
+ "jarsigner -storepass android -sigalg MD5withRSA -digestalg SHA1 $(OBJ)$(MODULE)-unsigned.apk androiddebugkey -keystore c:/users/jerome/debug.keystore -signedjar $(OBJ)$(MODULE).apk",
"adb uninstall com.ecere.$(MODULE)",
"adb install $(OBJ)$(MODULE).apk",
"adb shell am start -a android.intent.action.MAIN -n com.ecere.$(MODULE)/android.app.NativeActivity"
{
"Version" : 0.2,
- "ModuleName" : "HelloAndroid",
+ "ModuleName" : "Hello",
"Options" : {
"Warnings" : "All",
"TargetType" : "SharedLibrary",
"PostbuildCommands" : [
"$(call mkdirq,$(OBJ)apk/lib/armeabi)",
"$(call mkdirq,$(OBJ)apk/lib/x86)",
- "$(call cpq,/ecere-sdk/ecere/obj/android.linux.$(COMPILER)/libecere.so,$(OBJ)apk/lib/x86)",
- "$(call cpq,$(TARGET),$(OBJ)apk/lib/x86)",
- "aapt package -v -f -m -M android/AndroidManifest.xml -F $(OBJ)$(MODULE)-unsigned.apk -I C:/android-sdk/platforms/android-16/android.jar -S android/res $(OBJ)apk",
- "jarsigner -storepass mypassword -sigalg MD5withRSA -digestalg SHA1 $(OBJ)$(MODULE)-unsigned.apk mykey -signedjar $(OBJ)$(MODULE).apk",
+ "$(call cpv,../../ecere/obj/android.linux.$(COMPILER)/libecere.so,$(OBJ)apk/lib/armeabi)",
+ "$(call cpv,$(TARGET),$(OBJ)apk/lib/armeabi)",
+ "aapt package -v -f -m -M android/AndroidManifest.xml -F $(OBJ)$(MODULE)-unsigned.apk -I C:/android-sdk/platforms/android-20/android.jar -S android/res $(OBJ)apk",
+ "jarsigner -storepass android -sigalg MD5withRSA -digestalg SHA1 $(OBJ)$(MODULE)-unsigned.apk -keystore C:/Users/Jerome/debug.keystore androiddebugkey -signedjar $(OBJ)$(MODULE).apk",
"adb uninstall com.ecere.Hello",
"adb install $(OBJ)$(MODULE).apk",
"adb shell am start -a android.intent.action.MAIN -n com.ecere.Hello/android.app.NativeActivity"
"Name" : "Release",
"Options" : {
"Debug" : false,
- "Optimization" : "Speed",
- "TargetType" : "Executable"
+ "Optimization" : "Speed"
}
}
],
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- BEGIN_INCLUDE(manifest) -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.ecere.Chess"
+ android:versionCode="1"
+ android:versionName="1.0">
+
+ <!-- This is the platform API where NativeActivity was introduced. -->
+ <uses-sdk android:minSdkVersion="9" />
+ <uses-permission android:name="android.permission.INTERNET" />
+
+ <!-- This .apk has no Java code itself, so set hasCode to false. -->
+ <application android:label="@string/app_name" android:hasCode="false" android:icon="@drawable/icon">
+
+ <!-- Our activity is the built-in NativeActivity framework class. This will take care of integrating with our NDK code. -->
+ <activity android:name="android.app.NativeActivity"
+ android:label="@string/app_name"
+ android:configChanges="orientation|keyboardHidden">
+ <!-- Tell NativeActivity the name of our .so -->
+ <meta-data android:name="android.app.lib_name"
+ android:value="ecere" />
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest>
+<!-- END_INCLUDE(manifest) -->
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Ecere Chess</string>
+</resources>
"PostbuildCommands" : [
"$(call mkdirq,$(OBJ)apk/lib/x86)",
"$(call mkdirq,$(OBJ)apk/lib/armeabi)",
- "$(call cpq,/sdk/ecere/obj/android.linux.$(COMPILER)/libecere.so,$(OBJ)apk/lib/armeabi)",
- "$(call cpq,$(TARGET),$(OBJ)apk/lib/armeabi)",
- "aapt package -v -f -m -M android/AndroidManifest.xml -F $(OBJ)$(MODULE)-unsigned.apk -I C:/android-sdk/platforms/android-16/android.jar -S android/res $(OBJ)apk",
- "jarsigner -storepass mypassword -sigalg MD5withRSA -digestalg SHA1 $(OBJ)$(MODULE)-unsigned.apk mykey -signedjar $(OBJ)$(MODULE).apk",
+ "$(call cpv,../../../ecere/obj/android.linux.$(COMPILER)/libecere.so,$(OBJ)apk/lib/armeabi)",
+ "$(call cpv,$(TARGET),$(OBJ)apk/lib/armeabi)",
+ "aapt package -v -f -m -M android/AndroidManifest.xml -F $(OBJ)$(MODULE)-unsigned.apk -I C:/android-sdk/platforms/android-20/android.jar -S android/res $(OBJ)apk",
+ "jarsigner -storepass android -sigalg MD5withRSA -digestalg SHA1 $(OBJ)$(MODULE)-unsigned.apk androiddebugkey -keystore C:/users/jerome/debug.keystore -signedjar $(OBJ)$(MODULE).apk",
"adb uninstall com.ecere.$(MODULE)",
"adb install $(OBJ)$(MODULE).apk",
"adb shell am start -a android.intent.action.MAIN -n com.ecere.$(MODULE)/android.app.NativeActivity"
"Options" : {
"Warnings" : "All",
"TargetType" : "Executable",
- "TargetFileName" : "CornerBlock",
+ "TargetFileName" : "CornerBlocks",
"Libraries" : [
"ecere"
]
"PostbuildCommands" : [
"$(call mkdirq,$(OBJ)apk/lib/x86)",
"$(call mkdirq,$(OBJ)apk/lib/armeabi)",
- "$(call cpq,/sdk/ecere/obj/android.linux.$(COMPILER)/libecere.so,$(OBJ)apk/lib/armeabi)",
- "$(call cpq,$(TARGET),$(OBJ)apk/lib/armeabi)",
- "aapt package -v -f -m -M android/AndroidManifest.xml -F $(OBJ)$(MODULE)-unsigned.apk -I C:/android-sdk/platforms/android-16/android.jar -S android/res $(OBJ)apk",
- "jarsigner -storepass mypassword -sigalg MD5withRSA -digestalg SHA1 $(OBJ)$(MODULE)-unsigned.apk mykey -signedjar $(OBJ)$(MODULE).apk",
+ "$(call cpv,../../../ecere/obj/android.linux.$(COMPILER)/libecere.so,$(OBJ)apk/lib/armeabi)",
+ "$(call cpv,$(TARGET),$(OBJ)apk/lib/armeabi)",
+ "aapt package -v -f -m -M android/AndroidManifest.xml -F $(OBJ)$(MODULE)-unsigned.apk -I C:/android-sdk/platforms/android-20/android.jar -S android/res $(OBJ)apk",
+ "jarsigner -storepass android -sigalg MD5withRSA -digestalg SHA1 $(OBJ)$(MODULE)-unsigned.apk -keystore C:/Users/Jerome/debug.keystore androiddebugkey -signedjar $(OBJ)$(MODULE).apk",
"adb uninstall com.ecere.$(MODULE)",
"adb install $(OBJ)$(MODULE).apk",
"adb shell am start -a android.intent.action.MAIN -n com.ecere.$(MODULE)/android.app.NativeActivity"