Example #1
0
        public void SetAndGet_Array()
        {
            if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                throw new Exception("Why is this test running");
            }
            D3DVertexBuffer vb = (D3DVertexBuffer)_factory.CreateVertexBuffer(1, false);

            float[] vertexData = Enumerable.Range(0, 150).Select(i => (float)i).ToArray();
            vb.SetVertexData(vertexData, new VertexDescriptor(sizeof(float), 1, 0, IntPtr.Zero));

            float[] returned = new float[vertexData.Length];
            vb.GetData(returned, returned.Length * 4);
            Assert.Equal(vertexData, returned);
        }
Example #2
0
        public unsafe void SetAndGet_IntPtr_Offset()
        {
            D3DVertexBuffer vb = (D3DVertexBuffer)_factory.CreateVertexBuffer(1, false);

            float[] vertexData = Enumerable.Range(0, 150).Select(i => (float)i).ToArray();
            fixed(float *dataPtr = vertexData)
            {
                vb.SetVertexData(new IntPtr(dataPtr), new VertexDescriptor(4, 1, 0, IntPtr.Zero), 150, 250);
            }

            float[] returned = new float[vertexData.Length + 250];
            vb.GetData(returned, returned.Length * 4);

            for (int i = 250; i < returned.Length; i++)
            {
                Assert.Equal(vertexData[i - 250], returned[i]);
            }
        }
Example #3
0
        public void SetAndGet_Array_Offset()
        {
            D3DVertexBuffer vb = (D3DVertexBuffer)_factory.CreateVertexBuffer(1, false);

            float[] vertexData = Enumerable.Range(0, 150).Select(i => (float)i).ToArray();
            vb.SetVertexData(vertexData, new VertexDescriptor(sizeof(float), 1, 0, IntPtr.Zero), 250);

            float[] returned = new float[vertexData.Length + 250];
            vb.GetData(returned, returned.Length * 4);
            for (int i = 0; i < 250; i++)
            {
                Assert.Equal(0, returned[i]);
            }
            for (int i = 250; i < returned.Length; i++)
            {
                Assert.Equal(vertexData[i - 250], returned[i]);
            }
        }