Browse Source

Fix bugs in hdr->ankitex importer

Panagiotis Christopoulos Charitos 4 years ago
parent
commit
5b32c9f521
1 changed files with 26 additions and 0 deletions
  1. 26 0
      AnKi/Importer/ImageImporter.cpp

+ 26 - 0
AnKi/Importer/ImageImporter.cpp

@@ -100,6 +100,26 @@ public:
 	U32 m_dwReserved2;
 };
 
+enum D3D10ResourceDimension
+{
+	D3D10_RESOURCE_DIMENSION_UNKNOWN = 0,
+	D3D10_RESOURCE_DIMENSION_BUFFER = 1,
+	D3D10_RESOURCE_DIMENSION_TEXTURE1D = 2,
+	D3D10_RESOURCE_DIMENSION_TEXTURE2D = 3,
+	D3D10_RESOURCE_DIMENSION_TEXTURE3D = 4
+};
+
+/// Extra header for some DDS formats.
+class DdsHeaderDxt10
+{
+public:
+	U32 m_dxgiFormat;
+	D3D10ResourceDimension m_resourceDimension;
+	U32 m_miscFlag;
+	U32 m_arraySize;
+	U32 m_reserved;
+};
+
 class AstcHeader
 {
 public:
@@ -459,6 +479,12 @@ static ANKI_USE_RESULT Error compressS3tc(GenericMemoryPoolAllocator<U8> alloc,
 		return Error::FUNCTION_FAILED;
 	}
 
+	if(hdr)
+	{
+		DdsHeaderDxt10 dxt10Header;
+		ANKI_CHECK(ddsFile.read(&dxt10Header, sizeof(dxt10Header)));
+	}
+
 	ANKI_CHECK(ddsFile.read(outPixels.getBegin(), outPixels.getSizeInBytes()));
 
 	return Error::NONE;