Axiom.RenderSystems.OpenGL.GLHardwareVertexBuffer.WriteData C# (CSharp) Метод

WriteData() публичный Метод

public WriteData ( int offset, int length, IntPtr src, bool discardWholeBuffer ) : void
offset int
length int
src System.IntPtr
discardWholeBuffer bool
Результат void
		public override void WriteData( int offset, int length, IntPtr src, bool discardWholeBuffer )
		{
			Gl.glBindBufferARB( Gl.GL_ARRAY_BUFFER_ARB, bufferID );

			if ( useShadowBuffer )
			{
				// lock the buffer for reading
				IntPtr dest = shadowBuffer.Lock( offset, length,
					discardWholeBuffer ? BufferLocking.Discard : BufferLocking.Normal );

				// copy that data in there
				Memory.Copy( src, dest, length );

				// unlock the buffer
				shadowBuffer.Unlock();
			}

			if ( discardWholeBuffer )
			{
				Gl.glBufferDataARB( Gl.GL_ARRAY_BUFFER_ARB,
					new IntPtr( sizeInBytes ),
					IntPtr.Zero,
					GLHelper.ConvertEnum( usage ) ); // TAO 2.0
				//Gl.glBufferDataARB( Gl.GL_ARRAY_BUFFER_ARB,
				//    sizeInBytes,
				//    IntPtr.Zero,
				//    GLHelper.ConvertEnum( usage ) );
			}

			Gl.glBufferSubDataARB(
				Gl.GL_ARRAY_BUFFER_ARB,
				new IntPtr( offset ),
				new IntPtr( length ),
				src ); // TAO 2.0
			//Gl.glBufferSubDataARB(
			//    Gl.GL_ARRAY_BUFFER_ARB,
			//    offset,
			//    length,
			//    src );
		}