Panagiotis Christopoulos Charitos 12 tahun lalu
induk
melakukan
bc81b1130b

+ 2 - 1
AndroidManifest.xml

@@ -5,7 +5,8 @@
 	package="org.godlike.ankibench">
 	<application
 		android:label="AnKi Bench"
-		android:hasCode="false">
+		android:hasCode="false"
+		android:debuggable="true">
 		<activity 
 			android:name="android.app.NativeActivity"
 			android:label="AnKi Bench"

+ 17 - 0
CMakeLists.txt

@@ -67,6 +67,23 @@ SET(ANKI_EXTRA_LIB_DIRS CACHE STRING "Some extra lib paths (Needed for some weir
 # Valgrind
 OPTION(ANKI_VALGRIND_HAPPY "Make valgrind happy" OFF)
 
+#
+# XXX
+#
+IF(${ANDROID})
+	# 1. generate Android.mk
+	FILE(WRITE ./jni/Android.mk "APP_ABI := ${ANDROID_NDK_ABI_NAME}\n")
+
+	# 2. generate gdb.setup
+	GET_DIRECTORY_PROPERTY(INCLUDE_DIRECTORIES DIRECTORY . INCLUDE_DIRECTORIES)
+	STRING(REGEX REPLACE ";" " " INCLUDE_DIRECTORIES "${INCLUDE_DIRECTORIES}")
+	FILE(WRITE ./libs/${ANDROID_NDK_ABI_NAME}/gdb.setup "set solib-search-path ./libs/${ANDROID_NDK_ABI_NAME}\n")
+	FILE(APPEND ./libs/${ANDROID_NDK_ABI_NAME}/gdb.setup "directory ${INCLUDE_DIRECTORIES}\n")
+
+	# 3. copy gdbserver executable
+	FILE(COPY ${ANDROID_NDK}/prebuilt/android-arm/gdbserver/gdbserver DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_NDK_ABI_NAME}/)
+ENDIF()
+
 #
 # Options that affect anki and extern
 #

+ 4 - 15
include/anki/resource/Material.h

@@ -177,11 +177,6 @@ class MaterialProperties
 public:
 	/// @name Accessors
 	/// @{
-	U32 getRenderingStage() const
-	{
-		return renderingStage;
-	}
-
 	const StringList& getPasses() const
 	{
 		return passes;
@@ -223,21 +218,18 @@ public:
 	{
 		return blendingSfactor != GL_ONE || blendingDfactor != GL_ZERO;
 	}
-protected:
-	U32 renderingStage = 0;
 
+protected:
 	StringList passes;
 
 	U32 levelsOfDetail = 1;
 
-	Bool shadow = true;
-
 	GLenum blendingSfactor = GL_ONE; ///< Default GL_ONE
 	GLenum blendingDfactor = GL_ZERO; ///< Default GL_ZERO
 
-	Bool depthTesting = true;
-
-	Bool wireframe = false;
+	Bool8 depthTesting = true;
+	Bool8 wireframe = false;
+	Bool8 shadow = true;
 };
 
 /// Material resource
@@ -254,8 +246,6 @@ protected:
 /// Material XML file format:
 /// @code
 /// <material>
-/// 	<renderingStage>N</renderingStage> (1)
-///
 /// 	[<passes>COLOR DEPTH</passes>]
 ///
 /// 	[<levelsOfDetail>N</levelsOfDetail>]
@@ -310,7 +300,6 @@ protected:
 /// 	</shaderProgram>
 /// </material>
 /// @endcode
-/// (1): For the moment 0 means MS, 1 BS, 2 IS (aka light)
 /// (2): The order of the shaders is crucial
 /// (3): AKA uniforms
 /// (4): The \<value\> can be left empty for build-in variables

+ 3 - 1
shaders/BsCommonFrag.glsl

@@ -26,10 +26,12 @@ void writeFais(in vec4 color)
 }
 #endif
 
-#define particleAlpha_DEFINED
+#if defined(PASS_COLOR)
+#	define particleAlpha_DEFINED
 void particleAlpha(in sampler2D tex, in float alpha)
 {
 	vec4 color = texture(tex, vTexCoord);
 	color.w *= alpha;
 	writeFais(color);
 }
+#endif

+ 3 - 0
shaders/MsCommonFrag.glsl

@@ -13,6 +13,9 @@
 #define vTexCoords_DEFINED
 in highp vec2 vTexCoords;
 
+#define vInstanceId_DEFINED
+flat in mediump uint vInstanceId;
+
 #if defined(PASS_COLOR)
 in vec3 vNormal;
 #	define vNormal_DEFINED

+ 6 - 2
shaders/MsCommonVert.glsl

@@ -14,7 +14,12 @@ layout(location = 2) in mediump vec4 tangent;
 /// @name Varyings
 /// @{
 out highp vec2 vTexCoords;
-#if defined(PASS_COLOR)
+
+#ifdef INSTANCING
+flat out uint vInstanceId;
+#endif
+
+#ifdef PASS_COLOR
 out mediump vec3 vNormal;
 out mediump vec3 vTangent;
 out mediump float vTangentW;
@@ -58,4 +63,3 @@ void setVertPosViewSpace(in mat4 modelViewMat)
 	vVertPosViewSpace = vec3(modelViewMat * vec4(position, 1.0));
 }
 #endif
-

+ 0 - 4
src/resource/Material.cpp

@@ -186,10 +186,6 @@ void Material::load(const char* filename)
 //==============================================================================
 void Material::parseMaterialTag(const XmlElement& materialEl)
 {
-	// renderingStage
-	//
-	renderingStage = materialEl.getChildElement("renderingStage").getInt();
-
 	// passes
 	//
 	XmlElement passEl = materialEl.getChildElementOptional("passes");