Fix for Media corruption issue with the new interface (#15)
diff --git a/Source/GmmLib/Resource/GmmResourceInfoCommon.cpp b/Source/GmmLib/Resource/GmmResourceInfoCommon.cpp index 4a08899..33d01c6 100644 --- a/Source/GmmLib/Resource/GmmResourceInfoCommon.cpp +++ b/Source/GmmLib/Resource/GmmResourceInfoCommon.cpp
@@ -181,7 +181,12 @@ Surf.OffsetInfo.Plane.Y[i] = CreateParams.PlaneOffset.Y[i]; } Surf.OffsetInfo.Plane.NoOfPlanes = CreateParams.NoOfPlanes; - Surf.OffsetInfo.Plane.ArrayQPitch = Surf.Pitch * Surf.BaseHeight; + + if (Surf.ArraySize > 1) + { + //Surf.OffsetInfo.Plane.ArrayQPitch = Surf.Size; //Not required as this new interface doesn't support arrayed surfaces. + } + UpdateUnAlignedParams(); } @@ -202,8 +207,13 @@ case RESOURCE_WGBOX_ENCODE_REFERENCE: #endif { - Surf.OffsetInfo.Texture2DOffsetInfo.ArrayQPitchRender = - Surf.OffsetInfo.Texture2DOffsetInfo.ArrayQPitchLock = Surf.Pitch * Surf.BaseHeight; + + if (Surf.ArraySize > 1) + { + // Surf.OffsetInfo.Texture2DOffsetInfo.ArrayQPitchRender = + // Surf.OffsetInfo.Texture2DOffsetInfo.ArrayQPitchLock = Surf.Pitch * Surf.BaseHeight; //Not required as this new interface doesn't support arrayed surfaces. + } + for(i = 0; i <= Surf.MaxLod; i++) { Surf.OffsetInfo.Texture2DOffsetInfo.Offset[i] = 0;