コード例 #1
0
        public unsafe void Matrix3x2FieldOffsetTest()
        {
            Matrix3x2 *ptr = (Matrix3x2 *)0;

            Assert.Equal(new IntPtr(0), new IntPtr(&ptr->M11));
            Assert.Equal(new IntPtr(4), new IntPtr(&ptr->M12));

            Assert.Equal(new IntPtr(8), new IntPtr(&ptr->M21));
            Assert.Equal(new IntPtr(12), new IntPtr(&ptr->M22));

            Assert.Equal(new IntPtr(16), new IntPtr(&ptr->M31));
            Assert.Equal(new IntPtr(20), new IntPtr(&ptr->M32));
        }
コード例 #2
0
        public unsafe void Matrix3x2FieldOffsetTest()
        {
            Matrix3x2  mat     = new Matrix3x2();
            Single *   basePtr = &mat.M11; // Take address of first element
            Matrix3x2 *matPtr  = &mat;     // Take address of whole matrix

            Assert.Equal(new IntPtr(basePtr), new IntPtr(matPtr));

            Assert.Equal(new IntPtr(basePtr + 0), new IntPtr(&mat.M11));
            Assert.Equal(new IntPtr(basePtr + 1), new IntPtr(&mat.M12));

            Assert.Equal(new IntPtr(basePtr + 2), new IntPtr(&mat.M21));
            Assert.Equal(new IntPtr(basePtr + 3), new IntPtr(&mat.M22));

            Assert.Equal(new IntPtr(basePtr + 4), new IntPtr(&mat.M31));
            Assert.Equal(new IntPtr(basePtr + 5), new IntPtr(&mat.M32));
        }