diff --git a/ChangeLog.md b/ChangeLog.md index 4dfee067f..7dc258795 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -85,6 +85,7 @@ Nazara Engine: - Fixed Sound copy which was not copying looping state - Fixed Billboard bounding volume - Fixed Directory::GetResultSize and Directory::IsResultDirectory on Posix systems +- Fixed Quaternion::Inverse which was not correctly normalizing quaternions - Graphics module now register "White2D" and "WhiteCubemap" textures to the TextureLibrary (respectively a 1x1 texture 2D and a 1x1 texture cubemap) - Added AbstractTextDrawer::GetLineGlyphCount, which returns the number of glyph part of the line - Fixed Font handling of whitespace glyphs (which were triggering an error) diff --git a/build/gmake/Makefile b/build/gmake/Makefile new file mode 100644 index 000000000..89fb090b6 --- /dev/null +++ b/build/gmake/Makefile @@ -0,0 +1,365 @@ +# GNU Make workspace makefile autogenerated by Premake + +ifndef config + config=debugdynamic_x64 +endif + +ifndef verbose + SILENT = @ +endif + +ifeq ($(config),debugdynamic_x64) + chipmunk_config = debugdynamic_x64 + lua_config = debugdynamic_x64 + stb_image_config = debugdynamic_x64 + NazaraAudio_config = debugdynamic_x64 + NazaraCore_config = debugdynamic_x64 + NazaraGraphics_config = debugdynamic_x64 + NazaraLua_config = debugdynamic_x64 + NazaraNetwork_config = debugdynamic_x64 + NazaraNoise_config = debugdynamic_x64 + NazaraPhysics2D_config = debugdynamic_x64 + NazaraPhysics3D_config = debugdynamic_x64 + NazaraPlatform_config = debugdynamic_x64 + NazaraRenderer_config = debugdynamic_x64 + NazaraUtility_config = debugdynamic_x64 + PluginAssimp_config = debugdynamic_x64 + NazaraSDK_config = debugdynamic_x64 + NazaraSDKServer_config = debugdynamic_x64 + NazaraUnitTests_config = debugdynamic_x64 + NazaraUnitTestsServer_config = debugdynamic_x64 + DemoDopplerEffect_config = debugdynamic_x64 + DemoFirstScene_config = debugdynamic_x64 + DemoHardwareInfo_config = debugdynamic_x64 + DemoMeshInfos_config = debugdynamic_x64 + DemoParticles_config = debugdynamic_x64 + DemoTut00_EmptyProject_config = debugdynamic_x64 + DemoTut01_HelloWorld_config = debugdynamic_x64 + DemoTut02_Events_config = debugdynamic_x64 +endif +ifeq ($(config),debugdynamic_x86) + chipmunk_config = debugdynamic_x86 + lua_config = debugdynamic_x86 + stb_image_config = debugdynamic_x86 + NazaraAudio_config = debugdynamic_x86 + NazaraCore_config = debugdynamic_x86 + NazaraGraphics_config = debugdynamic_x86 + NazaraLua_config = debugdynamic_x86 + NazaraNetwork_config = debugdynamic_x86 + NazaraNoise_config = debugdynamic_x86 + NazaraPhysics2D_config = debugdynamic_x86 + NazaraPhysics3D_config = debugdynamic_x86 + NazaraPlatform_config = debugdynamic_x86 + NazaraRenderer_config = debugdynamic_x86 + NazaraUtility_config = debugdynamic_x86 + PluginAssimp_config = debugdynamic_x86 + NazaraSDK_config = debugdynamic_x86 + NazaraSDKServer_config = debugdynamic_x86 + NazaraUnitTests_config = debugdynamic_x86 + NazaraUnitTestsServer_config = debugdynamic_x86 + DemoDopplerEffect_config = debugdynamic_x86 + DemoFirstScene_config = debugdynamic_x86 + DemoHardwareInfo_config = debugdynamic_x86 + DemoMeshInfos_config = debugdynamic_x86 + DemoParticles_config = debugdynamic_x86 + DemoTut00_EmptyProject_config = debugdynamic_x86 + DemoTut01_HelloWorld_config = debugdynamic_x86 + DemoTut02_Events_config = debugdynamic_x86 +endif +ifeq ($(config),releasedynamic_x64) + chipmunk_config = releasedynamic_x64 + lua_config = releasedynamic_x64 + stb_image_config = releasedynamic_x64 + NazaraAudio_config = releasedynamic_x64 + NazaraCore_config = releasedynamic_x64 + NazaraGraphics_config = releasedynamic_x64 + NazaraLua_config = releasedynamic_x64 + NazaraNetwork_config = releasedynamic_x64 + NazaraNoise_config = releasedynamic_x64 + NazaraPhysics2D_config = releasedynamic_x64 + NazaraPhysics3D_config = releasedynamic_x64 + NazaraPlatform_config = releasedynamic_x64 + NazaraRenderer_config = releasedynamic_x64 + NazaraUtility_config = releasedynamic_x64 + PluginAssimp_config = releasedynamic_x64 + NazaraSDK_config = releasedynamic_x64 + NazaraSDKServer_config = releasedynamic_x64 + NazaraUnitTests_config = releasedynamic_x64 + NazaraUnitTestsServer_config = releasedynamic_x64 + DemoDopplerEffect_config = releasedynamic_x64 + DemoFirstScene_config = releasedynamic_x64 + DemoHardwareInfo_config = releasedynamic_x64 + DemoMeshInfos_config = releasedynamic_x64 + DemoParticles_config = releasedynamic_x64 + DemoTut00_EmptyProject_config = releasedynamic_x64 + DemoTut01_HelloWorld_config = releasedynamic_x64 + DemoTut02_Events_config = releasedynamic_x64 +endif +ifeq ($(config),releasedynamic_x86) + chipmunk_config = releasedynamic_x86 + lua_config = releasedynamic_x86 + stb_image_config = releasedynamic_x86 + NazaraAudio_config = releasedynamic_x86 + NazaraCore_config = releasedynamic_x86 + NazaraGraphics_config = releasedynamic_x86 + NazaraLua_config = releasedynamic_x86 + NazaraNetwork_config = releasedynamic_x86 + NazaraNoise_config = releasedynamic_x86 + NazaraPhysics2D_config = releasedynamic_x86 + NazaraPhysics3D_config = releasedynamic_x86 + NazaraPlatform_config = releasedynamic_x86 + NazaraRenderer_config = releasedynamic_x86 + NazaraUtility_config = releasedynamic_x86 + PluginAssimp_config = releasedynamic_x86 + NazaraSDK_config = releasedynamic_x86 + NazaraSDKServer_config = releasedynamic_x86 + NazaraUnitTests_config = releasedynamic_x86 + NazaraUnitTestsServer_config = releasedynamic_x86 + DemoDopplerEffect_config = releasedynamic_x86 + DemoFirstScene_config = releasedynamic_x86 + DemoHardwareInfo_config = releasedynamic_x86 + DemoMeshInfos_config = releasedynamic_x86 + DemoParticles_config = releasedynamic_x86 + DemoTut00_EmptyProject_config = releasedynamic_x86 + DemoTut01_HelloWorld_config = releasedynamic_x86 + DemoTut02_Events_config = releasedynamic_x86 +endif + +PROJECTS := chipmunk lua stb_image NazaraAudio NazaraCore NazaraGraphics NazaraLua NazaraNetwork NazaraNoise NazaraPhysics2D NazaraPhysics3D NazaraPlatform NazaraRenderer NazaraUtility PluginAssimp NazaraSDK NazaraSDKServer NazaraUnitTests NazaraUnitTestsServer DemoDopplerEffect DemoFirstScene DemoHardwareInfo DemoMeshInfos DemoParticles DemoTut00_EmptyProject DemoTut01_HelloWorld DemoTut02_Events + +.PHONY: all clean help $(PROJECTS) + +all: $(PROJECTS) + +chipmunk: +ifneq (,$(chipmunk_config)) + @echo "==== Building chipmunk ($(chipmunk_config)) ====" + @${MAKE} --no-print-directory -C thirdparty -f chipmunk.make config=$(chipmunk_config) +endif + +lua: +ifneq (,$(lua_config)) + @echo "==== Building lua ($(lua_config)) ====" + @${MAKE} --no-print-directory -C thirdparty -f lua.make config=$(lua_config) +endif + +stb_image: +ifneq (,$(stb_image_config)) + @echo "==== Building stb_image ($(stb_image_config)) ====" + @${MAKE} --no-print-directory -C thirdparty -f stb_image.make config=$(stb_image_config) +endif + +NazaraAudio: NazaraCore +ifneq (,$(NazaraAudio_config)) + @echo "==== Building NazaraAudio ($(NazaraAudio_config)) ====" + @${MAKE} --no-print-directory -C modules -f NazaraAudio.make config=$(NazaraAudio_config) +endif + +NazaraCore: +ifneq (,$(NazaraCore_config)) + @echo "==== Building NazaraCore ($(NazaraCore_config)) ====" + @${MAKE} --no-print-directory -C modules -f NazaraCore.make config=$(NazaraCore_config) +endif + +NazaraGraphics: NazaraCore NazaraUtility NazaraPlatform NazaraRenderer +ifneq (,$(NazaraGraphics_config)) + @echo "==== Building NazaraGraphics ($(NazaraGraphics_config)) ====" + @${MAKE} --no-print-directory -C modules -f NazaraGraphics.make config=$(NazaraGraphics_config) +endif + +NazaraLua: lua NazaraCore +ifneq (,$(NazaraLua_config)) + @echo "==== Building NazaraLua ($(NazaraLua_config)) ====" + @${MAKE} --no-print-directory -C modules -f NazaraLua.make config=$(NazaraLua_config) +endif + +NazaraNetwork: NazaraCore +ifneq (,$(NazaraNetwork_config)) + @echo "==== Building NazaraNetwork ($(NazaraNetwork_config)) ====" + @${MAKE} --no-print-directory -C modules -f NazaraNetwork.make config=$(NazaraNetwork_config) +endif + +NazaraNoise: NazaraCore +ifneq (,$(NazaraNoise_config)) + @echo "==== Building NazaraNoise ($(NazaraNoise_config)) ====" + @${MAKE} --no-print-directory -C modules -f NazaraNoise.make config=$(NazaraNoise_config) +endif + +NazaraPhysics2D: chipmunk NazaraCore +ifneq (,$(NazaraPhysics2D_config)) + @echo "==== Building NazaraPhysics2D ($(NazaraPhysics2D_config)) ====" + @${MAKE} --no-print-directory -C modules -f NazaraPhysics2D.make config=$(NazaraPhysics2D_config) +endif + +NazaraPhysics3D: NazaraCore +ifneq (,$(NazaraPhysics3D_config)) + @echo "==== Building NazaraPhysics3D ($(NazaraPhysics3D_config)) ====" + @${MAKE} --no-print-directory -C modules -f NazaraPhysics3D.make config=$(NazaraPhysics3D_config) +endif + +NazaraPlatform: NazaraCore NazaraUtility +ifneq (,$(NazaraPlatform_config)) + @echo "==== Building NazaraPlatform ($(NazaraPlatform_config)) ====" + @${MAKE} --no-print-directory -C modules -f NazaraPlatform.make config=$(NazaraPlatform_config) +endif + +NazaraRenderer: NazaraCore NazaraUtility NazaraPlatform +ifneq (,$(NazaraRenderer_config)) + @echo "==== Building NazaraRenderer ($(NazaraRenderer_config)) ====" + @${MAKE} --no-print-directory -C modules -f NazaraRenderer.make config=$(NazaraRenderer_config) +endif + +NazaraUtility: stb_image NazaraCore +ifneq (,$(NazaraUtility_config)) + @echo "==== Building NazaraUtility ($(NazaraUtility_config)) ====" + @${MAKE} --no-print-directory -C modules -f NazaraUtility.make config=$(NazaraUtility_config) +endif + +PluginAssimp: NazaraCore NazaraUtility +ifneq (,$(PluginAssimp_config)) + @echo "==== Building PluginAssimp ($(PluginAssimp_config)) ====" + @${MAKE} --no-print-directory -C tools -f PluginAssimp.make config=$(PluginAssimp_config) +endif + +NazaraSDK: NazaraAudio NazaraCore NazaraGraphics NazaraLua NazaraNetwork NazaraNoise NazaraPhysics2D NazaraPhysics3D NazaraPlatform NazaraRenderer NazaraUtility +ifneq (,$(NazaraSDK_config)) + @echo "==== Building NazaraSDK ($(NazaraSDK_config)) ====" + @${MAKE} --no-print-directory -C tools -f NazaraSDK.make config=$(NazaraSDK_config) +endif + +NazaraSDKServer: NazaraCore NazaraLua NazaraNetwork NazaraNoise NazaraPhysics2D NazaraPhysics3D NazaraUtility +ifneq (,$(NazaraSDKServer_config)) + @echo "==== Building NazaraSDKServer ($(NazaraSDKServer_config)) ====" + @${MAKE} --no-print-directory -C tools -f NazaraSDKServer.make config=$(NazaraSDKServer_config) +endif + +NazaraUnitTests: NazaraSDK NazaraAudio NazaraCore NazaraGraphics NazaraLua NazaraNetwork NazaraNoise NazaraPhysics2D NazaraPhysics3D NazaraPlatform NazaraRenderer NazaraUtility +ifneq (,$(NazaraUnitTests_config)) + @echo "==== Building NazaraUnitTests ($(NazaraUnitTests_config)) ====" + @${MAKE} --no-print-directory -C tools -f NazaraUnitTests.make config=$(NazaraUnitTests_config) +endif + +NazaraUnitTestsServer: NazaraSDKServer NazaraCore NazaraLua NazaraNetwork NazaraNoise NazaraPhysics2D NazaraPhysics3D NazaraUtility +ifneq (,$(NazaraUnitTestsServer_config)) + @echo "==== Building NazaraUnitTestsServer ($(NazaraUnitTestsServer_config)) ====" + @${MAKE} --no-print-directory -C tools -f NazaraUnitTestsServer.make config=$(NazaraUnitTestsServer_config) +endif + +DemoDopplerEffect: NazaraAudio NazaraCore NazaraPlatform NazaraUtility +ifneq (,$(DemoDopplerEffect_config)) + @echo "==== Building DemoDopplerEffect ($(DemoDopplerEffect_config)) ====" + @${MAKE} --no-print-directory -C examples -f DemoDopplerEffect.make config=$(DemoDopplerEffect_config) +endif + +DemoFirstScene: NazaraAudio NazaraCore NazaraGraphics NazaraLua NazaraNetwork NazaraNoise NazaraPhysics2D NazaraPhysics3D NazaraPlatform NazaraRenderer NazaraUtility NazaraSDK +ifneq (,$(DemoFirstScene_config)) + @echo "==== Building DemoFirstScene ($(DemoFirstScene_config)) ====" + @${MAKE} --no-print-directory -C examples -f DemoFirstScene.make config=$(DemoFirstScene_config) +endif + +DemoHardwareInfo: NazaraCore NazaraPlatform NazaraRenderer NazaraUtility +ifneq (,$(DemoHardwareInfo_config)) + @echo "==== Building DemoHardwareInfo ($(DemoHardwareInfo_config)) ====" + @${MAKE} --no-print-directory -C examples -f DemoHardwareInfo.make config=$(DemoHardwareInfo_config) +endif + +DemoMeshInfos: NazaraCore NazaraPlatform NazaraUtility +ifneq (,$(DemoMeshInfos_config)) + @echo "==== Building DemoMeshInfos ($(DemoMeshInfos_config)) ====" + @${MAKE} --no-print-directory -C examples -f DemoMeshInfos.make config=$(DemoMeshInfos_config) +endif + +DemoParticles: NazaraAudio NazaraCore NazaraGraphics NazaraLua NazaraNetwork NazaraNoise NazaraPhysics2D NazaraPhysics3D NazaraPlatform NazaraRenderer NazaraUtility NazaraSDK +ifneq (,$(DemoParticles_config)) + @echo "==== Building DemoParticles ($(DemoParticles_config)) ====" + @${MAKE} --no-print-directory -C examples -f DemoParticles.make config=$(DemoParticles_config) +endif + +DemoTut00_EmptyProject: NazaraAudio NazaraCore NazaraGraphics NazaraLua NazaraNetwork NazaraNoise NazaraPhysics2D NazaraPhysics3D NazaraPlatform NazaraRenderer NazaraUtility NazaraSDK +ifneq (,$(DemoTut00_EmptyProject_config)) + @echo "==== Building DemoTut00_EmptyProject ($(DemoTut00_EmptyProject_config)) ====" + @${MAKE} --no-print-directory -C examples -f DemoTut00_EmptyProject.make config=$(DemoTut00_EmptyProject_config) +endif + +DemoTut01_HelloWorld: NazaraAudio NazaraCore NazaraGraphics NazaraLua NazaraNetwork NazaraNoise NazaraPhysics2D NazaraPhysics3D NazaraPlatform NazaraRenderer NazaraUtility NazaraSDK +ifneq (,$(DemoTut01_HelloWorld_config)) + @echo "==== Building DemoTut01_HelloWorld ($(DemoTut01_HelloWorld_config)) ====" + @${MAKE} --no-print-directory -C examples -f DemoTut01_HelloWorld.make config=$(DemoTut01_HelloWorld_config) +endif + +DemoTut02_Events: NazaraAudio NazaraCore NazaraGraphics NazaraLua NazaraNetwork NazaraNoise NazaraPhysics2D NazaraPhysics3D NazaraPlatform NazaraRenderer NazaraUtility NazaraSDK +ifneq (,$(DemoTut02_Events_config)) + @echo "==== Building DemoTut02_Events ($(DemoTut02_Events_config)) ====" + @${MAKE} --no-print-directory -C examples -f DemoTut02_Events.make config=$(DemoTut02_Events_config) +endif + +clean: + @${MAKE} --no-print-directory -C thirdparty -f chipmunk.make clean + @${MAKE} --no-print-directory -C thirdparty -f lua.make clean + @${MAKE} --no-print-directory -C thirdparty -f stb_image.make clean + @${MAKE} --no-print-directory -C modules -f NazaraAudio.make clean + @${MAKE} --no-print-directory -C modules -f NazaraCore.make clean + @${MAKE} --no-print-directory -C modules -f NazaraGraphics.make clean + @${MAKE} --no-print-directory -C modules -f NazaraLua.make clean + @${MAKE} --no-print-directory -C modules -f NazaraNetwork.make clean + @${MAKE} --no-print-directory -C modules -f NazaraNoise.make clean + @${MAKE} --no-print-directory -C modules -f NazaraPhysics2D.make clean + @${MAKE} --no-print-directory -C modules -f NazaraPhysics3D.make clean + @${MAKE} --no-print-directory -C modules -f NazaraPlatform.make clean + @${MAKE} --no-print-directory -C modules -f NazaraRenderer.make clean + @${MAKE} --no-print-directory -C modules -f NazaraUtility.make clean + @${MAKE} --no-print-directory -C tools -f PluginAssimp.make clean + @${MAKE} --no-print-directory -C tools -f NazaraSDK.make clean + @${MAKE} --no-print-directory -C tools -f NazaraSDKServer.make clean + @${MAKE} --no-print-directory -C tools -f NazaraUnitTests.make clean + @${MAKE} --no-print-directory -C tools -f NazaraUnitTestsServer.make clean + @${MAKE} --no-print-directory -C examples -f DemoDopplerEffect.make clean + @${MAKE} --no-print-directory -C examples -f DemoFirstScene.make clean + @${MAKE} --no-print-directory -C examples -f DemoHardwareInfo.make clean + @${MAKE} --no-print-directory -C examples -f DemoMeshInfos.make clean + @${MAKE} --no-print-directory -C examples -f DemoParticles.make clean + @${MAKE} --no-print-directory -C examples -f DemoTut00_EmptyProject.make clean + @${MAKE} --no-print-directory -C examples -f DemoTut01_HelloWorld.make clean + @${MAKE} --no-print-directory -C examples -f DemoTut02_Events.make clean + +help: + @echo "Usage: make [config=name] [target]" + @echo "" + @echo "CONFIGURATIONS:" + @echo " debugdynamic_x64" + @echo " debugdynamic_x86" + @echo " releasedynamic_x64" + @echo " releasedynamic_x86" + @echo "" + @echo "TARGETS:" + @echo " all (default)" + @echo " clean" + @echo " chipmunk" + @echo " lua" + @echo " stb_image" + @echo " NazaraAudio" + @echo " NazaraCore" + @echo " NazaraGraphics" + @echo " NazaraLua" + @echo " NazaraNetwork" + @echo " NazaraNoise" + @echo " NazaraPhysics2D" + @echo " NazaraPhysics3D" + @echo " NazaraPlatform" + @echo " NazaraRenderer" + @echo " NazaraUtility" + @echo " PluginAssimp" + @echo " NazaraSDK" + @echo " NazaraSDKServer" + @echo " NazaraUnitTests" + @echo " NazaraUnitTestsServer" + @echo " DemoDopplerEffect" + @echo " DemoFirstScene" + @echo " DemoHardwareInfo" + @echo " DemoMeshInfos" + @echo " DemoParticles" + @echo " DemoTut00_EmptyProject" + @echo " DemoTut01_HelloWorld" + @echo " DemoTut02_Events" + @echo "" + @echo "For more information, see http://industriousone.com/premake/quick-start" \ No newline at end of file diff --git a/include/Nazara/Math/Quaternion.inl b/include/Nazara/Math/Quaternion.inl index e65be083a..59099f3b8 100644 --- a/include/Nazara/Math/Quaternion.inl +++ b/include/Nazara/Math/Quaternion.inl @@ -220,7 +220,7 @@ namespace Nz T norm = SquaredMagnitude(); if (norm > F(0.0)) { - T invNorm = F(1.0) / norm; + T invNorm = F(1.0) / std::sqrt(norm); w *= invNorm; x *= -invNorm;