Răsfoiți Sursa

Nothing important

Panagiotis Christopoulos Charitos 1 lună în urmă
părinte
comite
9f5625708f
68 a modificat fișierele cu 118 adăugiri și 205 ștergeri
  1. 2 7
      AnKi/Importer/GltfImporter.h
  2. 4 0
      AnKi/Importer/ImageImporter.cpp
  3. 7 11
      AnKi/Importer/ImageImporter.h
  4. 10 14
      AnKi/Resource/ImageBinary.h
  5. 8 9
      AnKi/Resource/ImageBinary.xml
  6. 8 10
      AnKi/Resource/ImageLoader.cpp
  7. 50 0
      AnKi/Resource/ImageResource.cpp
  8. 19 24
      AnKi/Resource/MeshBinary.h
  9. 0 2
      AnKi/Resource/MeshBinary.xml
  10. 4 4
      AnKi/Resource/ResourceManager.cpp
  11. 3 14
      AnKi/Util/Serializer.py
  12. 1 1
      AnKi/Window/NativeWindow.h
  13. BIN
      Samples/PhysicsPlayground/Assets/Asphalt_004_COLOR.ankitex
  14. BIN
      Samples/PhysicsPlayground/Assets/Asphalt_004_COLOR_png.ankitex
  15. BIN
      Samples/PhysicsPlayground/Assets/Asphalt_004_DISP.ankitex
  16. BIN
      Samples/PhysicsPlayground/Assets/Asphalt_004_NRM.ankitex
  17. BIN
      Samples/PhysicsPlayground/Assets/Asphalt_004_NRM_png.ankitex
  18. BIN
      Samples/PhysicsPlayground/Assets/Asphalt_004_ROUGH.ankitex
  19. BIN
      Samples/PhysicsPlayground/Assets/Asphalt_004_ROUGH_png.ankitex
  20. 0 16
      Samples/PhysicsPlayground/Assets/GpuSparks.ankimtl
  21. 0 19
      Samples/PhysicsPlayground/Assets/GpuSparks.ankipart
  22. BIN
      Samples/PhysicsPlayground/Assets/M61_model_M61_grenade_BaseColor.ankitex
  23. BIN
      Samples/PhysicsPlayground/Assets/M61_model_M61_grenade_Metalness-M61_model_M61_grenade_Roughness.ankitex
  24. 1 1
      Samples/PhysicsPlayground/Assets/Scene.lua
  25. 0 16
      Samples/PhysicsPlayground/Assets/Smoke.ankimtl
  26. 0 25
      Samples/PhysicsPlayground/Assets/Smoke.ankipart
  27. BIN
      Samples/PhysicsPlayground/Assets/Smoke.ankitex
  28. BIN
      Samples/PhysicsPlayground/Assets/Stone_Wall_007_COLOR.ankitex
  29. BIN
      Samples/PhysicsPlayground/Assets/Stone_Wall_007_COLOR_png.ankitex
  30. BIN
      Samples/PhysicsPlayground/Assets/Stone_Wall_007_DISP.ankitex
  31. BIN
      Samples/PhysicsPlayground/Assets/Stone_Wall_007_NORM.ankitex
  32. BIN
      Samples/PhysicsPlayground/Assets/Stone_Wall_007_NORM_png.ankitex
  33. BIN
      Samples/PhysicsPlayground/Assets/Stone_Wall_007_ROUGH.ankitex
  34. BIN
      Samples/PhysicsPlayground/Assets/Stone_Wall_007_ROUGH_png.ankitex
  35. BIN
      Samples/PhysicsPlayground/Assets/armColor.ankitex
  36. BIN
      Samples/PhysicsPlayground/Assets/armNormal.ankitex
  37. BIN
      Samples/PhysicsPlayground/Assets/armRoughness.ankitex
  38. BIN
      Samples/PhysicsPlayground/Assets/boomstickColor.ankitex
  39. BIN
      Samples/PhysicsPlayground/Assets/boomstickNormal.ankitex
  40. BIN
      Samples/PhysicsPlayground/Assets/boomstickmetallic-boomstickRoughness.ankitex
  41. BIN
      Samples/PhysicsPlayground/Assets/bullet_hole_decal.ankitex
  42. 0 31
      Samples/PhysicsPlayground/Assets/dynamic.ankimtl
  43. 1 1
      Samples/Sponza/Assets/Scene.lua
  44. BIN
      Samples/Sponza/Assets/Sponza_Ceiling_roughness_tga.ankitex
  45. BIN
      Samples/Sponza/Assets/Sponza_Column_b_roughness_tga.ankitex
  46. BIN
      Samples/Sponza/Assets/Sponza_Column_c_roughness_tga.ankitex
  47. BIN
      Samples/Sponza/Assets/Sponza_Curtain_Red_normal_tga_001.ankitex
  48. BIN
      Samples/Sponza/Assets/Sponza_Curtain_roughness_tga_001.ankitex
  49. BIN
      Samples/Sponza/Assets/VaseHanging_normal_tga.ankitex
  50. BIN
      Samples/Sponza/Assets/VaseHanging_roughness_tga.ankitex
  51. BIN
      Samples/Sponza/Assets/chain_texture_tga.ankitex
  52. BIN
      Samples/Sponza/Assets/sponza_arch_ddn_tga.ankitex
  53. BIN
      Samples/Sponza/Assets/sponza_arch_diff_tga.ankitex
  54. BIN
      Samples/Sponza/Assets/sponza_arch_spec_tga.ankitex
  55. BIN
      Samples/Sponza/Assets/sponza_bricks_a_ddn_tga.ankitex
  56. BIN
      Samples/Sponza/Assets/sponza_bricks_a_diff_tga.ankitex
  57. BIN
      Samples/Sponza/Assets/sponza_ceiling_a_diff_tga.ankitex
  58. BIN
      Samples/Sponza/Assets/sponza_column_a_ddn_tga.ankitex
  59. BIN
      Samples/Sponza/Assets/sponza_column_a_diff_tga.ankitex
  60. BIN
      Samples/Sponza/Assets/sponza_column_a_spec_tga.ankitex
  61. BIN
      Samples/Sponza/Assets/sponza_column_b_ddn_tga.ankitex
  62. BIN
      Samples/Sponza/Assets/sponza_column_b_diff_tga.ankitex
  63. BIN
      Samples/Sponza/Assets/sponza_column_c_ddn_tga.ankitex
  64. BIN
      Samples/Sponza/Assets/sponza_column_c_diff_tga.ankitex
  65. BIN
      Samples/Sponza/Assets/sponza_curtain_green_diff_tga.ankitex
  66. BIN
      Samples/Sponza/Assets/vase_hanging_tga.ankitex
  67. BIN
      Samples/Sponza/Assets/vase_plant_tga.ankitex
  68. BIN
      Samples/Sponza/Assets/vase_round_tga.ankitex

+ 2 - 7
AnKi/Importer/GltfImporter.h

@@ -16,10 +16,6 @@
 
 namespace anki {
 
-/// @addtogroup importer
-/// @{
-
-/// @memberof GltfImporter
 class GltfImporterInitInfo
 {
 public:
@@ -37,7 +33,7 @@ public:
 	Bool m_importTextures = false;
 };
 
-/// Import GLTF and spit AnKi scenes.
+// Import GLTF and spit AnKi scenes.
 class GltfImporter
 {
 public:
@@ -75,7 +71,7 @@ private:
 	Bool m_optimizeAnimations = false;
 	ImporterString m_comment;
 
-	/// Don't generate LODs for meshes with less vertices than this number.
+	// Don't generate LODs for meshes with less vertices than this number.
 	U32 m_skipLodVertexCountThreshold = 256;
 
 	Bool m_importTextures = false;
@@ -185,7 +181,6 @@ private:
 	Error writeCamera(const cgltf_node& node, const ImporterHashMap<CString, ImporterString>& parentExtras);
 	Error writeMeshMaterialNode(const cgltf_node& node, const ImporterHashMap<CString, ImporterString>& parentExtras);
 };
-/// @}
 
 template<typename T, typename TFunc>
 void GltfImporter::visitAccessor(const cgltf_accessor& accessor, TFunc func)

+ 4 - 0
AnKi/Importer/ImageImporter.cpp

@@ -835,6 +835,10 @@ static Error storeAnkiImage(const ImageImporterConfig& config, const ImageImport
 	{
 		header.m_colorFormat = (ctx.m_channelCount == 3) ? ImageBinaryColorFormat::kRgbFloat : ImageBinaryColorFormat::kRgbaFloat;
 	}
+	else if(config.m_asSRgb)
+	{
+		header.m_colorFormat = (ctx.m_channelCount == 3) ? ImageBinaryColorFormat::kSrgb8 : ImageBinaryColorFormat::kSrgba8;
+	}
 	else
 	{
 		header.m_colorFormat = (ctx.m_channelCount == 3) ? ImageBinaryColorFormat::kRgb8 : ImageBinaryColorFormat::kRgba8;

+ 7 - 11
AnKi/Importer/ImageImporter.h

@@ -10,11 +10,7 @@
 
 namespace anki {
 
-/// @addtogroup importer
-/// @{
-
-/// Config for importImage().
-/// @relates importImage.
+// Config for importImage().
 class ImageImporterConfig
 {
 public:
@@ -26,18 +22,18 @@ public:
 	U8 m_mipmapCount = kMaxU8;
 	Bool m_noAlpha = true;
 	CString m_tempDirectory;
-	CString m_compressonatorFilename; ///< Optional.
-	CString m_astcencFilename; ///< Optional.
-	Vec3 m_hdrScale = Vec3(1.0f); ///< Scale the values of HDR textures.
-	Vec3 m_hdrBias = Vec3(0.0f); ///< Add that value to the HDR textures.
+	CString m_compressonatorFilename; // Optional.
+	CString m_astcencFilename; // Optional.
+	Vec3 m_hdrScale = Vec3(1.0f); // Scale the values of HDR textures.
+	Vec3 m_hdrBias = Vec3(0.0f); // Add that value to the HDR textures.
 	UVec2 m_astcBlockSize = UVec2(8u);
 	Bool m_sRgbToLinear = false;
 	Bool m_linearToSRgb = false;
+	Bool m_asSRgb = false; // Interpret the format as sRGB
 	Bool m_flipImage = false;
 };
 
-/// Converts images to AnKi's specific format.
+// Converts images to AnKi's specific format.
 Error importImage(const ImageImporterConfig& config);
-/// @}
 
 } // end namespace anki

+ 10 - 14
AnKi/Resource/ImageBinary.h

@@ -11,13 +11,9 @@
 
 namespace anki {
 
-/// @addtogroup resource
-/// @{
-
 inline constexpr const Char* kImageMagic = "ANKITEX1";
 
-/// Image type.
-/// @memberof ImageBinaryHeader
+// Image type.
 enum class ImageBinaryType : U32
 {
 	kNone,
@@ -27,8 +23,7 @@ enum class ImageBinaryType : U32
 	k2DArray
 };
 
-/// The acceptable color types.
-/// @memberof ImageBinaryHeader
+// The acceptable color types.
 enum class ImageBinaryColorFormat : U32
 {
 	kNone,
@@ -36,11 +31,14 @@ enum class ImageBinaryColorFormat : U32
 	kRgba8,
 	kSrgb8,
 	kRgbFloat,
-	kRgbaFloat
+	kRgbaFloat,
+	kSrgba8,
+
+	kLast = kSrgba8,
+	kFirst = kRgb8
 };
 
-/// The available data compressions.
-/// @memberof ImageBinaryHeader
+// The available data compressions.
 enum class ImageBinaryDataCompression : U32
 {
 	kNone,
@@ -51,7 +49,7 @@ enum class ImageBinaryDataCompression : U32
 };
 ANKI_ENUM_ALLOW_NUMERIC_OPERATIONS(ImageBinaryDataCompression)
 
-/// The 1st things that appears in a image binary.
+// The 1st things that appears in a image binary.
 class ImageBinaryHeader
 {
 public:
@@ -67,7 +65,7 @@ public:
 	U32 m_astcBlockSizeX;
 	U32 m_astcBlockSizeY;
 
-	/// For U8 formats from 0.0 to 1.0.
+	// For U8 formats from 0.0 to 1.0.
 	Array<F32, 4> m_averageColor;
 
 	Array<U8, 64> m_padding;
@@ -103,6 +101,4 @@ public:
 	}
 };
 
-/// @}
-
 } // end namespace anki

+ 8 - 9
AnKi/Resource/ImageBinary.xml

@@ -3,14 +3,11 @@
 		<include file="&lt;AnKi/Resource/Common.h&gt;"/>
 	</includes>
 
-	<doxygen_group name="resource"/>
-
 	<prefix_code>
 		<![CDATA[
 inline constexpr const Char* kImageMagic = "ANKITEX1";
 
-/// Image type.
-/// @memberof ImageBinaryHeader
+// Image type.
 enum class ImageBinaryType : U32
 {
 	kNone,
@@ -20,8 +17,7 @@ enum class ImageBinaryType : U32
 	k2DArray
 };
 
-/// The acceptable color types.
-/// @memberof ImageBinaryHeader
+// The acceptable color types.
 enum class ImageBinaryColorFormat : U32
 {
 	kNone,
@@ -29,11 +25,14 @@ enum class ImageBinaryColorFormat : U32
 	kRgba8,
 	kSrgb8,
 	kRgbFloat,
-	kRgbaFloat
+	kRgbaFloat,
+	kSrgba8,
+
+	kLast = kSrgba8,
+	kFirst = kRgb8
 };
 
-/// The available data compressions.
-/// @memberof ImageBinaryHeader
+// The available data compressions.
 enum class ImageBinaryDataCompression : U32
 {
 	kNone,

+ 8 - 10
AnKi/Resource/ImageLoader.cpp

@@ -19,14 +19,13 @@ static PtrSize calcRawTexelSize(const ImageBinaryColorFormat cf)
 	switch(cf)
 	{
 	case ImageBinaryColorFormat::kRgb8:
+	case ImageBinaryColorFormat::kSrgb8:
 		out = 3;
 		break;
 	case ImageBinaryColorFormat::kRgba8:
+	case ImageBinaryColorFormat::kSrgba8:
 		out = 4;
 		break;
-	case ImageBinaryColorFormat::kSrgb8:
-		out = 3;
-		break;
 	case ImageBinaryColorFormat::kRgbFloat:
 		out = 3 * sizeof(F32);
 		break;
@@ -47,14 +46,13 @@ static PtrSize calcS3tcBlockSize(const ImageBinaryColorFormat cf)
 	switch(cf)
 	{
 	case ImageBinaryColorFormat::kRgb8:
+	case ImageBinaryColorFormat::kSrgb8:
 		out = 8;
 		break;
 	case ImageBinaryColorFormat::kRgba8:
+	case ImageBinaryColorFormat::kSrgba8:
 		out = 16;
 		break;
-	case ImageBinaryColorFormat::kSrgb8:
-		out = 8;
-		break;
 	case ImageBinaryColorFormat::kRgbFloat:
 		out = 16;
 		break;
@@ -66,7 +64,7 @@ static PtrSize calcS3tcBlockSize(const ImageBinaryColorFormat cf)
 	return out;
 }
 
-/// Get the size in bytes of a single surface
+// Get the size in bytes of a single surface
 static PtrSize calcSurfaceSize(const U32 width32, const U32 height32, const ImageBinaryDataCompression comp, const ImageBinaryColorFormat cf,
 							   UVec2 astcBlockSize)
 {
@@ -99,7 +97,7 @@ static PtrSize calcSurfaceSize(const U32 width32, const U32 height32, const Imag
 	return out;
 }
 
-/// Get the size in bytes of a single volume
+// Get the size in bytes of a single volume
 static PtrSize calcVolumeSize(const U width, const U height, const U depth, const ImageBinaryDataCompression comp, const ImageBinaryColorFormat cf)
 {
 	PtrSize out = 0;
@@ -120,7 +118,7 @@ static PtrSize calcVolumeSize(const U width, const U height, const U depth, cons
 	return out;
 }
 
-/// Calculate the size of a compressed or uncomressed color data
+// Calculate the size of a compressed or uncomressed color data
 static PtrSize calcSizeOfSegment(const ImageBinaryHeader& header, ImageBinaryDataCompression comp)
 {
 	PtrSize out = 0;
@@ -267,7 +265,7 @@ Error ImageLoader::loadAnkiImage(FileInterface& file, U32 maxImageSize, ImageBin
 		return Error::kUserData;
 	}
 
-	if(header.m_colorFormat < ImageBinaryColorFormat::kRgb8 || header.m_colorFormat > ImageBinaryColorFormat::kRgbaFloat)
+	if(header.m_colorFormat < ImageBinaryColorFormat::kFirst || header.m_colorFormat > ImageBinaryColorFormat::kLast)
 	{
 		ANKI_RESOURCE_LOGE("Incorrect header: color format");
 		return Error::kUserData;

+ 50 - 0
AnKi/Resource/ImageResource.cpp

@@ -127,6 +127,31 @@ Error ImageResource::load(const ResourceFilename& filename, Bool async)
 			ANKI_ASSERT(0);
 		}
 	}
+	else if(loader.getColorFormat() == ImageBinaryColorFormat::kSrgb8)
+	{
+		switch(loader.getCompression())
+		{
+		case ImageBinaryDataCompression::kRaw:
+			init.m_format = Format::kR8G8B8_Srgb;
+			break;
+		case ImageBinaryDataCompression::kS3tc:
+			init.m_format = Format::kBC1_Rgba_Srgb_Block;
+			break;
+		case ImageBinaryDataCompression::kAstc:
+			if(loader.getAstcBlockSize() == UVec2(4u))
+			{
+				init.m_format = Format::kASTC_4x4_Srgb_Block;
+			}
+			else
+			{
+				ANKI_ASSERT(loader.getAstcBlockSize() == UVec2(8u));
+				init.m_format = Format::kASTC_8x8_Srgb_Block;
+			}
+			break;
+		default:
+			ANKI_ASSERT(0);
+		}
+	}
 	else if(loader.getColorFormat() == ImageBinaryColorFormat::kRgba8)
 	{
 		switch(loader.getCompression())
@@ -152,6 +177,31 @@ Error ImageResource::load(const ResourceFilename& filename, Bool async)
 			ANKI_ASSERT(0);
 		}
 	}
+	else if(loader.getColorFormat() == ImageBinaryColorFormat::kSrgba8)
+	{
+		switch(loader.getCompression())
+		{
+		case ImageBinaryDataCompression::kRaw:
+			init.m_format = Format::kR8G8B8A8_Srgb;
+			break;
+		case ImageBinaryDataCompression::kS3tc:
+			init.m_format = Format::kBC3_Srgb_Block;
+			break;
+		case ImageBinaryDataCompression::kAstc:
+			if(loader.getAstcBlockSize() == UVec2(4u))
+			{
+				init.m_format = Format::kASTC_4x4_Srgb_Block;
+			}
+			else
+			{
+				ANKI_ASSERT(loader.getAstcBlockSize() == UVec2(8u));
+				init.m_format = Format::kASTC_8x8_Srgb_Block;
+			}
+			break;
+		default:
+			ANKI_ASSERT(0);
+		}
+	}
 	else if(loader.getColorFormat() == ImageBinaryColorFormat::kRgbFloat)
 	{
 		switch(loader.getCompression())

+ 19 - 24
AnKi/Resource/MeshBinary.h

@@ -13,9 +13,6 @@
 
 namespace anki {
 
-/// @addtogroup resource
-/// @{
-
 inline constexpr const char* kMeshMagic = "ANKIMES8";
 
 enum class MeshBinaryFlag : U32
@@ -27,11 +24,11 @@ enum class MeshBinaryFlag : U32
 };
 ANKI_ENUM_ALLOW_NUMERIC_OPERATIONS(MeshBinaryFlag)
 
-/// Vertex buffer info.
+// Vertex buffer info.
 class MeshBinaryVertexBuffer
 {
 public:
-	/// The size of the vertex. It's zero if the buffer is not present.
+	// The size of the vertex. It's zero if the buffer is not present.
 	U32 m_vertexStride;
 
 	template<typename TSerializer, typename TClass>
@@ -53,21 +50,21 @@ public:
 	}
 };
 
-/// Vertex attribute.
+// Vertex attribute.
 class MeshBinaryVertexAttribute
 {
 public:
 	U32 m_bufferIndex;
 
-	/// If the format is kNone then the attribute is not present.
+	// If the format is kNone then the attribute is not present.
 	Format m_format;
 
 	U32 m_relativeOffset;
 
-	/// Attribute is compressed and needs to be scaled.
+	// Attribute is compressed and needs to be scaled.
 	Array<F32, 4> m_scale;
 
-	/// Attribute is compressed and needs to be translated.
+	// Attribute is compressed and needs to be translated.
 	Array<F32, 4> m_translation;
 
 	template<typename TSerializer, typename TClass>
@@ -93,20 +90,20 @@ public:
 	}
 };
 
-/// Bounding volume info.
+// Bounding volume info.
 class MeshBinaryBoundingVolume
 {
 public:
-	/// Bounding box min.
+	// Bounding box min.
 	Vec3 m_aabbMin;
 
-	/// Bounding box max.
+	// Bounding box max.
 	Vec3 m_aabbMax;
 
-	/// Bounding sphere center.
+	// Bounding sphere center.
 	Vec3 m_sphereCenter;
 
-	/// Bounding sphere radius.
+	// Bounding sphere radius.
 	F32 m_sphereRadius;
 
 	template<typename TSerializer, typename TClass>
@@ -131,11 +128,11 @@ public:
 	}
 };
 
-/// MeshBinarySubMeshLod class.
+// MeshBinarySubMeshLod class.
 class MeshBinarySubMeshLod
 {
 public:
-	/// Offset in sizeof(indexType) to the global indices buffer of the LOD this belongs to.
+	// Offset in sizeof(indexType) to the global indices buffer of the LOD this belongs to.
 	U32 m_firstIndex;
 
 	U32 m_indexCount;
@@ -164,7 +161,7 @@ public:
 	}
 };
 
-/// The 1st thing that appears in a mesh binary.
+// The 1st thing that appears in a mesh binary.
 class MeshBinaryHeader
 {
 public:
@@ -175,7 +172,7 @@ public:
 	IndexType m_indexType;
 	Array<U8, 3> m_padding;
 
-	/// The format of the 3 indices that make a primitive.
+	// The format of the 3 indices that make a primitive.
 	Format m_meshletPrimitiveFormat;
 
 	Array<U32, kMaxLodCount> m_indexCounts;
@@ -224,7 +221,7 @@ public:
 	}
 };
 
-/// The 2nd thing that appears in a mesh binary.
+// The 2nd thing that appears in a mesh binary.
 class MeshBinarySubMesh
 {
 public:
@@ -251,16 +248,16 @@ public:
 	}
 };
 
-/// The 3rd thing that appears in a mesh binary.
+// The 3rd thing that appears in a mesh binary.
 class MeshBinaryMeshlet
 {
 public:
-	/// Index of the 1st primitive.
+	// Index of the 1st primitive.
 	U32 m_firstPrimitive;
 
 	U32 m_primitiveCount;
 
-	/// Index of the first vertex.
+	// Index of the first vertex.
 	U32 m_firstVertex;
 
 	U32 m_vertexCount;
@@ -295,6 +292,4 @@ public:
 	}
 };
 
-/// @}
-
 } // end namespace anki

+ 0 - 2
AnKi/Resource/MeshBinary.xml

@@ -5,8 +5,6 @@
 		<include file="&lt;AnKi/Gr/Common.h&gt;"/>
 	</includes>
 
-	<doxygen_group name="resource"/>
-
 	<prefix_code><![CDATA[
 inline constexpr const char* kMeshMagic = "ANKIMES8";
 

+ 4 - 4
AnKi/Resource/ResourceManager.cpp

@@ -143,11 +143,11 @@ Error ResourceManager::loadResource(CString filename, ResourcePtr<T>& out, Bool
 			else
 			{
 				entry->m_resources.emplaceBack(rsrc);
-			}
 
-			if(m_trackFileUpdateTimes)
-			{
-				entry->m_fileUpdateTime = ResourceFilesystem::getSingleton().getFileUpdateTime(filename);
+				if(m_trackFileUpdateTimes)
+				{
+					entry->m_fileUpdateTime = ResourceFilesystem::getSingleton().getFileUpdateTime(filename);
+				}
 			}
 		}
 		else

+ 3 - 14
AnKi/Util/Serializer.py

@@ -91,9 +91,9 @@ def gen_class(root_el):
 
     # Write doxygen
     if not root_el.get("comment"):
-        writeln("/// %s class." % name)
+        writeln("// %s class." % name)
     else:
-        writeln("/// %s." % root_el.get("comment"))
+        writeln("// %s." % root_el.get("comment"))
 
     # Body start
     writeln("class %s" % name)
@@ -131,7 +131,7 @@ def gen_class(root_el):
     for member in member_arr:
         if member.comment:
             writeln("")
-            writeln("/// %s." % member.comment)
+            writeln("// %s." % member.comment)
 
         if member.constructor:
             constructor = " %s" % member.constructor
@@ -218,13 +218,6 @@ def gen_file(filename):
     writeln("{")
     writeln("")
 
-    doxygen_group_el = root.find("doxygen_group")
-    if doxygen_group_el is not None:
-        doxygen_group = doxygen_group_el.get("name")
-        writeln("/// @addtogroup %s" % doxygen_group)
-        writeln("/// @{")
-        writeln("")
-
     prefix_code = root.find("prefix_code")
     if prefix_code is not None:
         writeln("%s" % prefix_code.text)
@@ -233,10 +226,6 @@ def gen_file(filename):
         for cl in cls.iter("class"):
             gen_class(cl)
 
-    if doxygen_group_el is not None:
-        writeln("/// @}")
-        writeln("")
-
     writeln("} // end namespace anki")
 
 

+ 1 - 1
AnKi/Window/NativeWindow.h

@@ -16,7 +16,7 @@ ANKI_CVAR(NumericCVar<U32>, Window, Width, 1920, 16, 16 * 1024, "Width")
 ANKI_CVAR(NumericCVar<U32>, Window, Height, 1080, 16, 16 * 1024, "Height")
 ANKI_CVAR(NumericCVar<U32>, Window, Fullscreen, 1, 0, 2, "0: windowed, 1: borderless fullscreen, 2: exclusive fullscreen")
 ANKI_CVAR(BoolCVar, Window, Maximized, false, "Maximize")
-ANKI_CVAR(BoolCVar, Window, Borderless, false, "Borderless")
+ANKI_CVAR(BoolCVar, Window, Borderless, true, "Borderless")
 
 /// Native window.
 class NativeWindow : public MakeSingletonPtr<NativeWindow>

BIN
Samples/PhysicsPlayground/Assets/Asphalt_004_COLOR.ankitex


BIN
Samples/PhysicsPlayground/Assets/Asphalt_004_COLOR_png.ankitex


BIN
Samples/PhysicsPlayground/Assets/Asphalt_004_DISP.ankitex


BIN
Samples/PhysicsPlayground/Assets/Asphalt_004_NRM.ankitex


BIN
Samples/PhysicsPlayground/Assets/Asphalt_004_NRM_png.ankitex


BIN
Samples/PhysicsPlayground/Assets/Asphalt_004_ROUGH.ankitex


BIN
Samples/PhysicsPlayground/Assets/Asphalt_004_ROUGH_png.ankitex


+ 0 - 16
Samples/PhysicsPlayground/Assets/GpuSparks.ankimtl

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<material shadow="0">
-	<shaderPrograms>
-		<shaderProgram name="GBufferGpuParticles"/>
-	</shaderPrograms>
-
-	<inputs>
-		<input name="m_diffColor" value="0.0 0.0 0.0"/>
-		<input name="m_specColor" value="0.04 0.04 0.04"/>
-		<input name="m_roughness" value="1.0"/>
-		<input name="m_metallic" value="0.0"/>
-		<input name="m_initialEmission" value="200 0 0"/>
-		<input name="m_finalEmission" value="1 0 0"/>
-	</inputs>
-</material>
-

+ 0 - 19
Samples/PhysicsPlayground/Assets/GpuSparks.ankipart

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<particleEmitter>
-	<life min="0.7" max="1.1"/>
-	<gravity value="0.0 -9 0.0"/>
-	<mass value="0.1"/>
-
-	<startingPosition min="-0.4 0.0 -0.4" max="0.4 0.0 0.4"/>
-
-	<forceDirection min="-0.1 1 -0.1" max="0.1 1 0.1"/>
-	<forceMagnitude min="100" max="100"/>
-
-	<maxNumberOfParticles value="10"/>
-	<emissionPeriod value="0.05"/>
-	<particlesPerEmission value="1"/>
-	<material value="Assets/GpuSparks.ankimtl"/>
-
-	<emitterBoundingVolume min="-1.0 0.0 -1.0" max="1 2 1" />
-</particleEmitter>

BIN
Samples/PhysicsPlayground/Assets/M61_model_M61_grenade_BaseColor.ankitex


BIN
Samples/PhysicsPlayground/Assets/M61_model_M61_grenade_Metalness-M61_model_M61_grenade_Roughness.ankitex


+ 1 - 1
Samples/PhysicsPlayground/Assets/Scene.lua

@@ -1,4 +1,4 @@
--- Generated by: C:\src\anki\build_rel_vk\Binaries\GltfImporter.exe PhysicsPlayground.gltf C:/src/anki/Samples/PhysicsPlayground/Assets/ -rpath Assets -texrpath Assets -v -light-scale 0.00116 -import-textures 0
+-- Generated by: C:\src\anki\build_rel_vk\Binaries\GltfImporter.exe PhysicsPlayground.gltf C:/src/anki/Samples/PhysicsPlayground/Assets/ -rpath Assets -texrpath Assets -v -light-scale 0.00116 -import-textures 1
 local scene = getSceneGraph()
 local events = getEventManager()
 

+ 0 - 16
Samples/PhysicsPlayground/Assets/Smoke.ankimtl

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<material shadow="0">
-	<shaderProgram name="ForwardShadingParticles">
-		<mutation>
-			<mutator name="ANIMATED_TEXTURE" value="0"/>
-			<mutator name="LIGHT" value="1"/>
-		</mutation>
-	</shaderProgram>
-
-	<inputs>
-		<input name="m_diffuseMap" value="Assets/Smoke.ankitex"/>
-		<input name="m_colorScale" value="1.0 1.0 1.0 1.0"/>
-		<input name="m_colorBias" value="0 0 0 0"/>
-	</inputs>
-</material>
-

+ 0 - 25
Samples/PhysicsPlayground/Assets/Smoke.ankipart

@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<particleEmitter>
-	<life value="7.5"/>
-
-	<mass value="2"/>
-
-	<gravity value="0.0 -9.5 0.0"/>
-	
-	<initialAlpha min="0.8" max="0.9"/>
-	<finalAlpha value="0"/>
-	
-	<startingPosition min="-1.5 -1.5 0.8" max="1.5 1.5 0.8"/>
-
-	<size value="2.4"/>
-
-	<forceDirection min="-0.5 -0.5 1" max="0.5 0.5 1"/>
-	<forceMagnitude min="700" max="900"/>
-
-	<maxNumberOfParticles value="8"/>
-	<emissionPeriod value="0.001"/>
-	<particlesPerEmission value="8"/>
-	<material value="Assets/Smoke.ankimtl"/>
-	<usePhysicsEngine value="1"/>
-</particleEmitter>

BIN
Samples/PhysicsPlayground/Assets/Smoke.ankitex


BIN
Samples/PhysicsPlayground/Assets/Stone_Wall_007_COLOR.ankitex


BIN
Samples/PhysicsPlayground/Assets/Stone_Wall_007_COLOR_png.ankitex


BIN
Samples/PhysicsPlayground/Assets/Stone_Wall_007_DISP.ankitex


BIN
Samples/PhysicsPlayground/Assets/Stone_Wall_007_NORM.ankitex


BIN
Samples/PhysicsPlayground/Assets/Stone_Wall_007_NORM_png.ankitex


BIN
Samples/PhysicsPlayground/Assets/Stone_Wall_007_ROUGH.ankitex


BIN
Samples/PhysicsPlayground/Assets/Stone_Wall_007_ROUGH_png.ankitex


BIN
Samples/PhysicsPlayground/Assets/armColor.ankitex


BIN
Samples/PhysicsPlayground/Assets/armNormal.ankitex


BIN
Samples/PhysicsPlayground/Assets/armRoughness.ankitex


BIN
Samples/PhysicsPlayground/Assets/boomstickColor.ankitex


BIN
Samples/PhysicsPlayground/Assets/boomstickNormal.ankitex


BIN
Samples/PhysicsPlayground/Assets/boomstickmetallic-boomstickRoughness.ankitex


BIN
Samples/PhysicsPlayground/Assets/bullet_hole_decal.ankitex


+ 0 - 31
Samples/PhysicsPlayground/Assets/dynamic.ankimtl

@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!-- This file is auto generated by ImporterMaterial.cpp -->
-<material>
-	<shaderPrograms>
-		<shaderProgram filename="AnKi/Shaders/GBufferGeneric.ankiprog">
-			<mutation>
-				<mutator name="DIFFUSE_TEX" value="0"/>
-				<mutator name="SPECULAR_TEX" value="0"/>
-				<mutator name="ROUGHNESS_TEX" value="0"/>
-				<mutator name="METAL_TEX" value="0"/>
-				<mutator name="NORMAL_TEX" value="0"/>
-				<mutator name="PARALLAX" value="0"/>
-				<mutator name="EMISSIVE_TEX" value="0"/>
-				<mutator name="ALPHA_TEST" value="0"/>
-			</mutation>
-		</shaderProgram>
-	</shaderPrograms>
-
-	<inputs>
-		
-
-		<input name="m_diffColor" value="0.097887 0.273263 0.800000"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughness" value="0.000000"/>
-		<input name="m_metallic" value="0.609091"/>
-		
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
-		<input name="m_subsurface" value="0.000000"/>
-		
-	</inputs>
-</material>

+ 1 - 1
Samples/Sponza/Assets/Scene.lua

@@ -1,4 +1,4 @@
--- Generated by: C:\src\anki\build_rel_vk\Binaries\GltfImporter.exe sponza_crytek_7_pbr_3.0.gltf C:/src/anki/Samples/Sponza/Assets/ -rpath Assets -texrpath Assets -lod-count 2 -light-scale 0.0001839 -import-textures 0 -v
+-- Generated by: C:\src\anki\build_rel_vk\Binaries\GltfImporter.exe sponza_crytek_7_pbr_3.0.gltf C:/src/anki/Samples/Sponza/Assets/ -rpath Assets -texrpath Assets -lod-count 2 -light-scale 0.0001839 -import-textures 1 -v
 local scene = getSceneGraph()
 local events = getEventManager()
 

BIN
Samples/Sponza/Assets/Sponza_Ceiling_roughness_tga.ankitex


BIN
Samples/Sponza/Assets/Sponza_Column_b_roughness_tga.ankitex


BIN
Samples/Sponza/Assets/Sponza_Column_c_roughness_tga.ankitex


BIN
Samples/Sponza/Assets/Sponza_Curtain_Red_normal_tga_001.ankitex


BIN
Samples/Sponza/Assets/Sponza_Curtain_roughness_tga_001.ankitex


BIN
Samples/Sponza/Assets/VaseHanging_normal_tga.ankitex


BIN
Samples/Sponza/Assets/VaseHanging_roughness_tga.ankitex


BIN
Samples/Sponza/Assets/chain_texture_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_arch_ddn_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_arch_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_arch_spec_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_bricks_a_ddn_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_bricks_a_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_ceiling_a_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_a_ddn_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_a_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_a_spec_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_b_ddn_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_b_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_c_ddn_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_c_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_curtain_green_diff_tga.ankitex


BIN
Samples/Sponza/Assets/vase_hanging_tga.ankitex


BIN
Samples/Sponza/Assets/vase_plant_tga.ankitex


BIN
Samples/Sponza/Assets/vase_round_tga.ankitex