コード例 #1
0
        static unsafe void Reset(MyGeneratedTexture tex, byte[] data, int nchannels)
        {
            if (data == null)
            {
                tex.Reset(null);
            }
            else
            {
                fixed(byte *dptr = data)
                {
                    int numMiplevels = tex.NumMipLevels;

                    DataBox[] dataBox = new DataBox[numMiplevels];

                    int width  = tex.Size.X;
                    int height = tex.Size.Y;

                    int offset = 0;

                    for (int i = 0; i < numMiplevels; ++i)
                    {
                        dataBox[i].DataPointer = new IntPtr(dptr + offset);
                        dataBox[i].RowPitch    = width * nchannels;
                        offset += width * height * nchannels;

                        width  >>= 1;
                        height >>= 1;
                    }
                    tex.Reset(dataBox);
                }
            }
        }
コード例 #2
0
        static unsafe void Reset(MyGeneratedTexture tex, int data)
        {
            void *ptr = &data;

            m_tmpDataBoxArray1[0].DataPointer = new IntPtr(ptr);
            m_tmpDataBoxArray1[0].RowPitch    = 4;
            tex.Reset(m_tmpDataBoxArray1);
        }
コード例 #3
0
 static unsafe void Reset(MyGeneratedTexture tex, float[] data, int rowlength, int nchannels)
 {
     fixed(float *dptr = data)
     {
         m_tmpDataBoxArray1[0].DataPointer = new IntPtr(dptr);
         m_tmpDataBoxArray1[0].RowPitch    = rowlength * nchannels * 4;
         tex.Reset(m_tmpDataBoxArray1);
     }
 }
コード例 #4
0
        static unsafe void ResetCube(MyGeneratedTexture tex, int data)
        {
            void *ptr = &data;

            for (int i = 0; i < 6; i++)
            {
                m_tmpDataBoxArray6[i].DataPointer = new IntPtr(ptr);
                m_tmpDataBoxArray6[i].RowPitch    = 4;
            }
            tex.Reset(m_tmpDataBoxArray6);
        }
コード例 #5
0
 static unsafe void Reset(MyGeneratedTexture tex, float[] data, int rowlength, int nchannels)
 {
     fixed (float* dptr = data)
     {
         m_tmpDataBoxArray1[0].DataPointer = new IntPtr(dptr);
         m_tmpDataBoxArray1[0].RowPitch = rowlength * nchannels * 4;
         tex.Reset(m_tmpDataBoxArray1);
     }
 }
コード例 #6
0
        static unsafe void Reset(MyGeneratedTexture tex, byte[] data, int nchannels)
        {
            if (data == null)
            {
                tex.Reset(null);
            }
            else
            {
                fixed (byte* dptr = data)
                {
                    int numMiplevels = tex.NumMipLevels;
                    DataBox[] dataBox = new DataBox[numMiplevels];

                    int width = tex.Size.X;
                    int height = tex.Size.Y;

                    int offset = 0;
                    for (int i = 0; i < numMiplevels; ++i)
                    {
                        dataBox[i].DataPointer = new IntPtr(dptr + offset);
                        dataBox[i].RowPitch = width * nchannels;
                        offset += width * height * nchannels;

                        width >>= 1;
                        height >>= 1;
                    }
                    tex.Reset(dataBox);
                }
            }
        }
コード例 #7
0
 static unsafe void ResetCube(MyGeneratedTexture tex, int data)
 {
     void* ptr = &data;
     for (int i = 0; i < 6; i++)
     {
         m_tmpDataBoxArray6[i].DataPointer = new IntPtr(ptr);
         m_tmpDataBoxArray6[i].RowPitch = 4;
     }
     tex.Reset(m_tmpDataBoxArray6);
 }
コード例 #8
0
 static unsafe void Reset(MyGeneratedTexture tex, int data)
 {
     void* ptr = &data;
     m_tmpDataBoxArray1[0].DataPointer = new IntPtr(ptr);
     m_tmpDataBoxArray1[0].RowPitch = 4;
     tex.Reset(m_tmpDataBoxArray1);
 }