/// <summary> /// Link GLBuffer to existing OpenGL buffer. Used /// to provide debug information in the debug view. /// </summary> /// <param name="name">Name of the object.</param> /// <param name="anno">Annotation of the object.</param> /// <param name="glname">OpenGL object to like to.</param> public GLBuffer(string name, string anno, int glname) : base(name, anno) { this.glname = glname; GL.GetNamedBufferParameter(glname, ParameterName.BufferSize, out int s); GL.GetNamedBufferParameter(glname, ParameterName.BufferUsage, out int u); Size = s; Usage = (UsageHint)u; }
/// <summary> /// Link GLBuffer to existing OpenGL buffer. Used /// to provide debug information in the debug view. /// </summary> /// <param name="name">Name of the object.</param> /// <param name="anno">Annotation of the object.</param> /// <param name="glname">OpenGL object to like to.</param> public GLBuffer(string name, string anno, int glname) : base(name, anno) { int s, u; this.glname = glname; GL.GetNamedBufferParameter(glname, ParameterName.BufferSize, out s); GL.GetNamedBufferParameter(glname, ParameterName.BufferUsage, out u); Size = s; Usage = (UsageHint)u; }
/// <summary> /// Construct GLBuffer object. /// </summary> /// <param name="name">Name of the object.</param> /// <param name="anno">Annotation of the object.</param> /// <param name="usage">How the buffer should be used by the program.</param> /// <param name="size">The memory size to be allocated in bytes.</param> /// <param name="data">Optionally initialize the buffer object with the specified data.</param> public GLBuffer(string name, string anno, UsageHint usage, int size, byte[] data = null) : base(name, anno) { var err = new CompileException($"buffer '{name}'"); Size = size; Usage = usage; // CREATE OPENGL OBJECT CreateBuffer(data); if (HasErrorOrGlError(err, "", -1)) throw err; }
/// <summary> /// Construct GLBuffer object. /// </summary> /// <param name="name">Name of the object.</param> /// <param name="anno">Annotation of the object.</param> /// <param name="usage">How the buffer should be used by the program.</param> /// <param name="size">The memory size to be allocated in bytes.</param> /// <param name="data">Optionally initialize the buffer object with the specified data.</param> public GLBuffer(string name, string anno, UsageHint usage, int size, byte[] data = null) : base(name, anno) { var err = new CompileException($"buffer '{name}'"); Size = size; Usage = usage; // CREATE OPENGL OBJECT CreateBuffer(data); if (HasErrorOrGlError(err, "", -1)) { throw err; } }