/// <summary> /// Constructor, sets up transform parameters. /// See <href>https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glBeginTransformFeedback.xhtml</href> /// </summary> /// <param name="primitivetype">Primitive type for transform feedback (Points/Lines/Triangles) </param> /// <param name="transformfeedback">The GLTransformfeedback instance, previously created. Created externally as it does not have to be created per render</param> /// <param name="buffers">An array of buffers to receive the transform feedback into, starting at index 0. Must be created and allocated with DynamicCopy. See <href>https://www.khronos.org/opengl/wiki/Transform_Feedback</href> for details on how to use multiple buffers</param> /// <param name="offset">Offset into buffer if size != -1</param> /// <param name="size">Buffer area allocated. If size == -1, all of buffer</param> public GLOperationTransformFeedback(TransformFeedbackPrimitiveType primitivetype, GLTransformFeedback transformfeedback, GLBuffer[] buffers, int[] offset = null, int[] size = null) { this.PrimitiveType = primitivetype; this.TransformFeedback = transformfeedback; this.Id = TransformFeedback.Id; // mirror the ID, we are the same this.VaryingBuffers = buffers; this.Offsets = offset; this.Sizes = size; }
public void BeginTransformFeedback(PrimitiveTopology topology) { GL.BeginTransformFeedback(_tfTopology = topology.ConvertToTfType()); _tfEnabled = true; }
// use to start/end up the bound transform (either default or this one) /// <summary> Start feedback on the primitive type </summary> public static void Begin(TransformFeedbackPrimitiveType t) { GL.BeginTransformFeedback(t); }
/// <summary> /// Start transform feedback operation. /// </summary> /// <param name="primitiveMode">Specify the output type of the primitives that will be recorded into the buffer objects that are bound for transform feedback.</param> public void Begin(TransformFeedbackPrimitiveType primitiveMode) { AssertActive(); GL.BeginTransformFeedback(primitiveMode); }