예제 #1
0
        public static BufferObject CreateBuffer(int size, IntPtr data, BufferStorageFlags flags)
        {
            BufferObject b = new BufferObject();

            b.Bind(BufferTarget.CopyWriteBuffer);
            b.immutable |= IMMUTABLE;
            if ((flags & BufferStorageFlags.DynamicStorageBit) == 0)
            {
                b.immutable |= NOT_DYNAMIC;
            }
            GL.NamedBufferStorage(b.ID, size, data, flags);
            return(b);
        }
예제 #2
0
        public static BufferObject CreateBuffer <T>(T[] data, BufferStorageFlags flags) where T : struct
        {
            BufferObject b = new BufferObject();

            b.Bind(BufferTarget.CopyWriteBuffer);
            b.immutable |= IMMUTABLE;
            if ((flags & BufferStorageFlags.DynamicStorageBit) == 0)
            {
                b.immutable |= NOT_DYNAMIC;
            }
            GL.NamedBufferStorage(b.ID, data.Length * Marshal.SizeOf(typeof(T)), data, flags);
            return(b);
        }