Преглед на файлове

Fixed depth reading for specific formats

MarcoROG преди 8 години
родител
ревизия
5e52f1ba0b
променени са 1 файла, в които са добавени 5 реда и са изтрити 2 реда
  1. 5 2
      Source/BansheeCore/Source/BsPixelUtil.cpp

+ 5 - 2
Source/BansheeCore/Source/BsPixelUtil.cpp

@@ -1434,6 +1434,7 @@ namespace bs
 		}
 		
 		UINT32* color = (UINT32 *)src;
+		UINT32 masked = 0;
 		switch (format) 
 		{
 		case PF_D24S8:
@@ -1443,10 +1444,12 @@ namespace bs
 			return static_cast<float>(*color & 0xFFFF) / (float)65536;
 			break;
 		case PF_D32:
-			return static_cast<float>(*color & 0xFFFFFFFF) / (float)4294967296;
+			masked = *color & 0xFFFFFFFF;
+			return *((float*)&masked);
 			break;
 		case PF_D32_S8X24:
-			return static_cast<float>(*color & 0xFFFFFFFF) / (float)4294967296;
+			masked = *color & 0xFFFFFFFF;
+			return *( (float*) &masked );
 			break;
 		default:
 			LOGERR("Cannot unpack from " + getFormatName(format));