Browse Source

Misc improvements

Panagiotis Christopoulos Charitos 6 years ago
parent
commit
8242ebce7b

+ 13 - 2
samples/physics_playground/assets/scene.lua

@@ -512,7 +512,7 @@ trf:setOrigin(Vec4.new(-0.068372, 9.192602, -0.126609, 0))
 rot = Mat3x4.new()
 rot = Mat3x4.new()
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
 trf:setRotation(rot)
 trf:setRotation(rot)
-trf:setScale(128.498062)
+trf:setScale(1.000000)
 node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
 node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
 
 
 node = scene:newReflectionProbeNode("refl_probe", Vec4.new(-134.111938, -134.111938, -134.111938, 0), Vec4.new(134.111938, 134.111938, 134.111938, 0))
 node = scene:newReflectionProbeNode("refl_probe", Vec4.new(-134.111938, -134.111938, -134.111938, 0), Vec4.new(134.111938, 134.111938, 134.111938, 0))
@@ -521,5 +521,16 @@ trf:setOrigin(Vec4.new(0.000000, 9.113202, 0.000000, 0))
 rot = Mat3x4.new()
 rot = Mat3x4.new()
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
 trf:setRotation(rot)
 trf:setRotation(rot)
-trf:setScale(134.111938)
+trf:setScale(1.000000)
+node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
+
+node = scene:newGlobalIlluminationProbeNode("Cube.045")
+comp = node:getSceneNodeBase():getGlobalIlluminationProbeComponent()
+comp:setBoundingBox(Vec4.new(-7.512932, -3.476489, -6.451754, 0), Vec4.new(7.512932, 3.476490, 6.451752, 0))
+trf = Transform.new()
+trf:setOrigin(Vec4.new(39.731613, 2.915391, -28.049887, 0))
+rot = Mat3x4.new()
+rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
+trf:setRotation(rot)
+trf:setScale(1.000000)
 node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
 node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)

BIN
samples/physics_playground/assets/unbacked/physics_playground.blend


+ 22 - 9
src/anki/util/Logger.cpp

@@ -57,12 +57,17 @@ void Logger::removeMessageHandler(void* data, LoggerMessageHandlerCallback callb
 	}
 	}
 }
 }
 
 
-void Logger::write(
-	const char* file, int line, const char* func, const char* subsystem, LoggerMessageType type, const char* msg)
+void Logger::write(const char* file,
+	int line,
+	const char* func,
+	const char* subsystem,
+	LoggerMessageType type,
+	ThreadId tid,
+	const char* msg)
 {
 {
 	m_mutex.lock();
 	m_mutex.lock();
 
 
-	LoggerMessageInfo inf = {file, line, func, type, msg, subsystem};
+	LoggerMessageInfo inf = {file, line, func, type, msg, subsystem, tid};
 
 
 	U count = m_handlersCount;
 	U count = m_handlersCount;
 	while(count-- != 0)
 	while(count-- != 0)
@@ -78,8 +83,14 @@ void Logger::write(
 	}
 	}
 }
 }
 
 
-void Logger::writeFormated(
-	const char* file, int line, const char* func, const char* subsystem, LoggerMessageType type, const char* fmt, ...)
+void Logger::writeFormated(const char* file,
+	int line,
+	const char* func,
+	const char* subsystem,
+	LoggerMessageType type,
+	ThreadId tid,
+	const char* fmt,
+	...)
 {
 {
 	char buffer[1024 * 10];
 	char buffer[1024 * 10];
 	va_list args;
 	va_list args;
@@ -93,7 +104,7 @@ void Logger::writeFormated(
 	}
 	}
 	else if(len < I(sizeof(buffer)))
 	else if(len < I(sizeof(buffer)))
 	{
 	{
-		write(file, line, func, subsystem, type, buffer);
+		write(file, line, func, subsystem, type, tid, buffer);
 		va_end(args);
 		va_end(args);
 	}
 	}
 	else
 	else
@@ -107,7 +118,7 @@ void Logger::writeFormated(
 		char* newBuffer = static_cast<char*>(malloc(newSize));
 		char* newBuffer = static_cast<char*>(malloc(newSize));
 		len = vsnprintf(newBuffer, newSize, fmt, args);
 		len = vsnprintf(newBuffer, newSize, fmt, args);
 
 
-		write(file, line, func, subsystem, type, newBuffer);
+		write(file, line, func, subsystem, type, tid, newBuffer);
 
 
 		free(newBuffer);
 		free(newBuffer);
 		va_end(args);
 		va_end(args);
@@ -148,7 +159,7 @@ void Logger::defaultSystemMessageHandler(void*, const LoggerMessageInfo& info)
 		ANKI_ASSERT(0);
 		ANKI_ASSERT(0);
 	}
 	}
 
 
-	const char* fmt = "%s[%s][%s]%s%s %s (%s:%d %s)%s\n";
+	const char* fmt = "%s[%s][%s][%" PRIx64 "]%s%s %s (%s:%d %s)%s\n";
 	if(!runningFromATerminal())
 	if(!runningFromATerminal())
 	{
 	{
 		terminalColor = "";
 		terminalColor = "";
@@ -161,6 +172,7 @@ void Logger::defaultSystemMessageHandler(void*, const LoggerMessageInfo& info)
 		terminalColorBg,
 		terminalColorBg,
 		MSG_TEXT[static_cast<U>(info.m_type)],
 		MSG_TEXT[static_cast<U>(info.m_type)],
 		info.m_subsystem ? info.m_subsystem : "N/A ",
 		info.m_subsystem ? info.m_subsystem : "N/A ",
+		info.m_tid,
 		endTerminalColor,
 		endTerminalColor,
 		terminalColor,
 		terminalColor,
 		info.m_msg,
 		info.m_msg,
@@ -214,9 +226,10 @@ void Logger::defaultSystemMessageHandler(void*, const LoggerMessageInfo& info)
 	}
 	}
 
 
 	fprintf(out,
 	fprintf(out,
-		"[%s][%s] %s (%s:%d %s)\n",
+		"[%s][%s][%" PRIx64 "] %s (%s:%d %s)\n",
 		MSG_TEXT[static_cast<U>(info.m_type)],
 		MSG_TEXT[static_cast<U>(info.m_type)],
 		info.m_subsystem ? info.m_subsystem : "N/A ",
 		info.m_subsystem ? info.m_subsystem : "N/A ",
+		info.m_tid,
 		info.m_msg,
 		info.m_msg,
 		info.m_file,
 		info.m_file,
 		info.m_line,
 		info.m_line,

+ 16 - 4
src/anki/util/Logger.h

@@ -40,6 +40,7 @@ public:
 	LoggerMessageType m_type;
 	LoggerMessageType m_type;
 	const char* m_msg;
 	const char* m_msg;
 	const char* m_subsystem;
 	const char* m_subsystem;
+	ThreadId m_tid;
 };
 };
 
 
 /// The message handler callback.
 /// The message handler callback.
@@ -68,8 +69,13 @@ public:
 	void addFileMessageHandler(File* file);
 	void addFileMessageHandler(File* file);
 
 
 	/// Send a message
 	/// Send a message
-	void write(
-		const char* file, int line, const char* func, const char* subsystem, LoggerMessageType type, const char* msg);
+	void write(const char* file,
+		int line,
+		const char* func,
+		const char* subsystem,
+		LoggerMessageType type,
+		ThreadId tid,
+		const char* msg);
 
 
 	/// Send a formated message
 	/// Send a formated message
 	void writeFormated(const char* file,
 	void writeFormated(const char* file,
@@ -77,6 +83,7 @@ public:
 		const char* func,
 		const char* func,
 		const char* subsystem,
 		const char* subsystem,
 		LoggerMessageType type,
 		LoggerMessageType type,
+		ThreadId tid,
 		const char* fmt,
 		const char* fmt,
 		...);
 		...);
 
 
@@ -111,8 +118,13 @@ typedef Singleton<Logger> LoggerSingleton;
 #define ANKI_LOG(subsystem_, t, ...) \
 #define ANKI_LOG(subsystem_, t, ...) \
 	do \
 	do \
 	{ \
 	{ \
-		LoggerSingleton::get().writeFormated( \
-			ANKI_FILE, __LINE__, ANKI_FUNC, subsystem_, LoggerMessageType::t, __VA_ARGS__); \
+		LoggerSingleton::get().writeFormated(ANKI_FILE, \
+			__LINE__, \
+			ANKI_FUNC, \
+			subsystem_, \
+			LoggerMessageType::t, \
+			Thread::getCurrentThreadId(), \
+			__VA_ARGS__); \
 	} while(false);
 	} while(false);
 /// @}
 /// @}
 
 

+ 12 - 8
tools/gltf_importer/Importer.cpp

@@ -185,11 +185,12 @@ Error Importer::writeAll()
 	ANKI_CHECK(m_sceneFile.writeText("local scene = getSceneGraph()\nlocal events = getEventManager()\n"));
 	ANKI_CHECK(m_sceneFile.writeText("local scene = getSceneGraph()\nlocal events = getEventManager()\n"));
 
 
 	// Nodes
 	// Nodes
-	for(const cgltf_scene* scene = m_gltf->scenes; scene < m_gltf->scenes + m_gltf->scenes_count; ++scene)
+	Error err = Error::NONE;
+	for(const cgltf_scene* scene = m_gltf->scenes; scene < m_gltf->scenes + m_gltf->scenes_count && !err; ++scene)
 	{
 	{
-		for(cgltf_node* const* node = scene->nodes; node < scene->nodes + scene->nodes_count; ++node)
+		for(cgltf_node* const* node = scene->nodes; node < scene->nodes + scene->nodes_count && !err; ++node)
 		{
 		{
-			ANKI_CHECK(visitNode(*(*node), Transform::getIdentity(), HashMapAuto<CString, StringAuto>(m_alloc)));
+			err = visitNode(*(*node), Transform::getIdentity(), HashMapAuto<CString, StringAuto>(m_alloc));
 		}
 		}
 	}
 	}
 
 
@@ -203,7 +204,7 @@ Error Importer::writeAll()
 		return threadErr;
 		return threadErr;
 	}
 	}
 
 
-	return Error::NONE;
+	return err;
 }
 }
 
 
 Error Importer::getExtras(const cgltf_extras& extras, HashMapAuto<CString, StringAuto>& out)
 Error Importer::getExtras(const cgltf_extras& extras, HashMapAuto<CString, StringAuto>& out)
@@ -451,7 +452,6 @@ Error Importer::visitNode(
 				aabbMax.z()));
 				aabbMax.z()));
 
 
 			Transform localTrf = Transform(tsl.xyz0(), Mat3x4(rot), 1.0f);
 			Transform localTrf = Transform(tsl.xyz0(), Mat3x4(rot), 1.0f);
-			ANKI_CHECK(getNodeTransform(node, localTrf));
 			ANKI_CHECK(writeTransform(parentTrf.combineTransformations(localTrf)));
 			ANKI_CHECK(writeTransform(parentTrf.combineTransformations(localTrf)));
 		}
 		}
 		else if((it = extras.find("gi_probe")) != extras.getEnd() && *it == "true")
 		else if((it = extras.find("gi_probe")) != extras.getEnd() && *it == "true")
@@ -500,7 +500,6 @@ Error Importer::visitNode(
 			}
 			}
 
 
 			Transform localTrf = Transform(tsl.xyz0(), Mat3x4(rot), 1.0f);
 			Transform localTrf = Transform(tsl.xyz0(), Mat3x4(rot), 1.0f);
-			ANKI_CHECK(getNodeTransform(node, localTrf));
 			ANKI_CHECK(writeTransform(parentTrf.combineTransformations(localTrf)));
 			ANKI_CHECK(writeTransform(parentTrf.combineTransformations(localTrf)));
 		}
 		}
 		else if((it = extras.find("decal")) != extras.getEnd() && *it == "true")
 		else if((it = extras.find("decal")) != extras.getEnd() && *it == "true")
@@ -564,7 +563,6 @@ Error Importer::visitNode(
 			Vec3 scale;
 			Vec3 scale;
 			getNodeTransform(node, tsl, rot, scale);
 			getNodeTransform(node, tsl, rot, scale);
 			Transform localTrf = Transform(tsl.xyz0(), Mat3x4(rot), 1.0f);
 			Transform localTrf = Transform(tsl.xyz0(), Mat3x4(rot), 1.0f);
-			ANKI_CHECK(getNodeTransform(node, localTrf));
 			ANKI_CHECK(writeTransform(parentTrf.combineTransformations(localTrf)));
 			ANKI_CHECK(writeTransform(parentTrf.combineTransformations(localTrf)));
 		}
 		}
 		else
 		else
@@ -649,7 +647,13 @@ Error Importer::visitNode(
 
 
 	// Visit children
 	// Visit children
 	Transform nodeTrf;
 	Transform nodeTrf;
-	ANKI_CHECK(getNodeTransform(node, nodeTrf));
+	{
+		Vec3 tsl;
+		Mat3 rot;
+		Vec3 scale;
+		getNodeTransform(node, tsl, rot, scale);
+		nodeTrf = Transform(tsl.xyz0(), Mat3x4(rot), scale.x());
+	}
 	for(cgltf_node* const* c = node.children; c < node.children + node.children_count; ++c)
 	for(cgltf_node* const* c = node.children; c < node.children + node.children_count; ++c)
 	{
 	{
 		ANKI_CHECK(visitNode(*(*c), nodeTrf, outExtras));
 		ANKI_CHECK(visitNode(*(*c), nodeTrf, outExtras));