public RenderVertexBufferHelper(GSVertexBuffer vb) { this.vb = vb; if (vb == null) { return; } GS.RenderStart(true); }
public static unsafe void LoadVertexBuffer(GSVertexBuffer vertexBuffer) { IntPtr ptr = IntPtr.Zero; if (vertexBuffer != null) { ptr = vertexBuffer.GetPointer(); } libobs.gs_load_vertexbuffer(ptr); }
public static unsafe GSVertexBuffer RenderSave() { IntPtr ptr = libobs.gs_render_save(); if (ptr == null) { return(null); } GSVertexBuffer vb = new GSVertexBuffer(ptr); return(vb); }
public void Dispose() { if (vb == null) { return; } GSVertexBuffer newvb = GS.RenderSave(); // transfer the internal pointer to old object vb.Dispose(); vb.instance = newvb.instance; newvb.instance = IntPtr.Zero; newvb.Dispose(); }
public RenderVertexBufferHelper(GSVertexBuffer vb) { this.vb = vb; if (vb == null) return; GS.RenderStart(true); }
/// <summary> /// Render data to vertex buffer, used with using pattern (RAII). /// Calls RenderStart, and RenderSave at the end of the using block. /// </summary> /// <example> /// GSVertexBuffer vb = new GSVertexBuffer(); /// using (GS.RenderVertexBuffer(vb)) /// { /// ... /// } /// </example> public static RenderVertexBufferHelper RenderVertexBuffer(GSVertexBuffer vb) { return new RenderVertexBufferHelper(vb); }
public static unsafe GSVertexBuffer RenderSave() { IntPtr ptr = libobs.gs_render_save(); if (ptr == null) return null; GSVertexBuffer vb = new GSVertexBuffer(ptr); return vb; }
public static unsafe void LoadVertexBuffer(GSVertexBuffer vertexBuffer) { IntPtr ptr = IntPtr.Zero; if (vertexBuffer != null) ptr = vertexBuffer.GetPointer(); libobs.gs_load_vertexbuffer(ptr); }
/// <summary> /// Render data to vertex buffer, used with using pattern (RAII). /// Calls RenderStart, and RenderSave at the end of the using block. /// </summary> /// <example> /// GSVertexBuffer vb = new GSVertexBuffer(); /// using (GS.RenderVertexBuffer(vb)) /// { /// ... /// } /// </example> public static RenderVertexBufferHelper RenderVertexBuffer(GSVertexBuffer vb) { return(new RenderVertexBufferHelper(vb)); }
private void InitPrimitives() { using (GS.GraphicsContext()) { // box from vertices boxPrimitive = new GSVertexBuffer(); using (GS.RenderVertexBuffer(boxPrimitive)) { GS.Vertex2f(0.0f, 0.0f); GS.Vertex2f(0.0f, 1.0f); GS.Vertex2f(1.0f, 1.0f); GS.Vertex2f(1.0f, 1.0f); GS.Vertex2f(1.0f, 0.0f); GS.Vertex2f(0.0f, 0.0f); } // circle from vertices circlePrimitive = new GSVertexBuffer(); using (GS.RenderVertexBuffer(circlePrimitive)) { for (int i = 0; i <= 360; i += 360 / 20) { double pos = Math.PI * (double)i / 180.0; GS.Vertex2f((float)Math.Cos(pos), (float)Math.Sin(pos)); } } } }
public void Load(GSVertexBuffer vertexBuffer) { libobs.gs_load_vertexbuffer(vertexBuffer.GetPointer()); }
public void Flush(GSVertexBuffer vertexBuffer) { libobs.gs_vertexbuffer_flush(vertexBuffer.GetPointer()); }