コード例 #1
0
        public BufferObject SetAttributeData(StandardAttribute attribute, AttributeBuffer data, bool normalize)
        {
            var attrIndex = (uint)attribute;

            Bind();

            if (data == null)
            {
                Context.DisableVertexAttribArray(attrIndex);
                Disposer.Dispose(ref _attributeBuffers[attrIndex]);
                return(null);
            }

            BufferObject buffer;

            if (_attributeBuffers[attrIndex] == null)
            {
                buffer = new BufferObject(BufferObjectTypes.Vertex);
                _attributeBuffers[attrIndex] = buffer;
            }
            else
            {
                buffer = _attributeBuffers[attrIndex];
            }

            Context.EnableVertexAttribArray((uint)attribute);
            buffer.BufferData(data);
            Context.VertexAttribPointer(attrIndex, data.StructInLine, data.DataType, normalize, 0, 0);

            return(buffer);
        }
コード例 #2
0
        public void SetIndices(AttributeBuffer data)
        {
            if (data == null)
            {
                Disposer.Dispose(ref _indexBuffer);
                return;
            }

            Bind();
            if (_indexBuffer == null)
            {
                _indexBuffer = new BufferObject(BufferObjectTypes.Index);
            }

            _indexBuffer.BufferData(data);
        }