diff --git a/src/Graphics/Effect/EffectParameter.cs b/src/Graphics/Effect/EffectParameter.cs index 91ec318..ce09321 100644 --- a/src/Graphics/Effect/EffectParameter.cs +++ b/src/Graphics/Effect/EffectParameter.cs @@ -914,6 +914,13 @@ namespace Microsoft.Xna.Framework.Graphics dstPtr[10] = value.M33; dstPtr[11] = value.M34; } + else if (ColumnCount == 2 && RowCount == 2) + { + dstPtr[0] = value.M11; + dstPtr[1] = value.M12; + dstPtr[2] = value.M21; + dstPtr[3] = value.M22; + } else { throw new NotImplementedException( @@ -1005,6 +1012,16 @@ namespace Microsoft.Xna.Framework.Graphics dstPtr[curOffset++] = value[i].M34; } } + else if (ColumnCount == 2 && RowCount == 2) + { + for (int i = 0; i < value.Length; i += 1) + { + dstPtr[curOffset++] = value[i].M11; + dstPtr[curOffset++] = value[i].M12; + dstPtr[curOffset++] = value[i].M21; + dstPtr[curOffset++] = value[i].M22; + } + } else { throw new NotImplementedException( @@ -1083,6 +1100,13 @@ namespace Microsoft.Xna.Framework.Graphics dstPtr[10] = value.M24; dstPtr[11] = value.M34; } + else if (ColumnCount == 2 && RowCount == 2) + { + dstPtr[0] = value.M11; + dstPtr[1] = value.M21; + dstPtr[2] = value.M12; + dstPtr[3] = value.M22; + } else { throw new NotImplementedException( @@ -1174,6 +1198,16 @@ namespace Microsoft.Xna.Framework.Graphics dstPtr[curOffset++] = value[i].M34; } } + else if (ColumnCount == 2 && RowCount == 2) + { + for (int i = 0; i < value.Length; i += 1) + { + dstPtr[curOffset++] = value[i].M11; + dstPtr[curOffset++] = value[i].M21; + dstPtr[curOffset++] = value[i].M12; + dstPtr[curOffset++] = value[i].M22; + } + } else { throw new NotImplementedException(