internal override uint[] Search(RenderEventArgs arg, int x, int y, uint lastVertexId, ZeroIndexRenderer modernRenderer) { ZeroIndexBufferPtr zeroIndexBufferPtr = modernRenderer.IndexBufferPtr; ZeroIndexBufferPtr indexBufferPtr = null; // when the temp index buffer could be long, it's no longer needed. // what a great OpenGL API design! using (var buffer = new ZeroIndexBuffer(DrawMode.LineLoop, zeroIndexBufferPtr.FirstVertex, zeroIndexBufferPtr.VertexCount)) { indexBufferPtr = buffer.GetBufferPtr() as ZeroIndexBufferPtr; } modernRenderer.Render4InnerPicking(arg, indexBufferPtr); uint id = ColorCodedPicking.ReadPixel(x, arg.CanvasRect.Height - y - 1); indexBufferPtr.Dispose(); if (id == zeroIndexBufferPtr.FirstVertex) { return(new uint[] { (uint)(zeroIndexBufferPtr.FirstVertex + zeroIndexBufferPtr.VertexCount - 1), id, }); } else { return(new uint[] { id - 1, id, }); } }
public IndexBufferPtr GetIndex() { if (indexBufferPtr == null) { using (var buffer = new ZeroIndexBuffer(DrawMode.TriangleFan, 0, 4)) { indexBufferPtr = buffer.GetBufferPtr() as ZeroIndexBufferPtr; } } return(indexBufferPtr); }
public IndexBufferPtr GetIndex() { if (indexBufferPtr == null) { using (var buffer = new ZeroIndexBuffer(DrawMode.Points, 0, particleCount)) { indexBufferPtr = buffer.GetBufferPtr() as IndexBufferPtr; } } return(indexBufferPtr); }
/// <summary> /// /// </summary> /// <returns></returns> public IndexBufferPtr GetIndexBufferPtr() { if (indexBufferPtr == null) { using (var buffer = new ZeroIndexBuffer(this.model.GetDrawModel(), 0, this.model.positions.Length)) { indexBufferPtr = buffer.GetBufferPtr(); } } return(indexBufferPtr); }
/// <summary> /// /// </summary> /// <returns></returns> public IndexBufferPtr GetIndexBufferPtr() { if (indexBufferPtr == null) { using (var buffer = new ZeroIndexBuffer( DrawMode.QuadStrip, 0, (this.quadCount + 1) * 2)) { indexBufferPtr = buffer.GetBufferPtr(); } } return(indexBufferPtr); }
/// <summary> /// /// </summary> /// <returns></returns> public IndexBufferPtr GetIndexBufferPtr() { if (indexBufferPtr == null) { using (var buffer = new ZeroIndexBuffer( DrawMode.Lines, 0, this.markerCount * 2)) { indexBufferPtr = buffer.GetBufferPtr(); } } return(indexBufferPtr); }
public IndexBufferPtr GetIndex() { if (indexBufferPtr == null) { using (var buffer = new ZeroIndexBuffer( DrawMode.Lines, 0, positions.Length)) { indexBufferPtr = buffer.GetBufferPtr() as IndexBufferPtr; } } return(indexBufferPtr); }
public IndexBufferPtr GetIndexBufferPtr() { if (indexBufferPtr == null) { using (var buffer = new ZeroIndexBuffer( DrawMode.TriangleFan, 0, vertsData.Length)) { indexBufferPtr = buffer.GetBufferPtr(); } } return(indexBufferPtr); }
public IndexBufferPtr GetIndex() { if (this.indexBufferPtr == null) { using (var buffer = new ZeroIndexBuffer(DrawMode.TriangleFan, 0, this.model.positions.Length)) { this.indexBufferPtr = buffer.GetBufferPtr() as IndexBufferPtr; } return(this.indexBufferPtr); } return(indexBufferPtr); }
public IndexBufferPtr GetIndex() { if (this.indexBufferPtr != null) { return(this.indexBufferPtr); } using (var buffer = new ZeroIndexBuffer(DrawMode.Points, 0, this.positions.Count)) { this.indexBufferPtr = buffer.GetBufferPtr() as IndexBufferPtr; } return(this.indexBufferPtr); }
public IndexBufferPtr GetIndex() { if (indexBufferPtr == null) { using (var buffer = new ZeroIndexBuffer( DrawMode.Points, 0, particleCount)) { indexBufferPtr = buffer.GetBufferPtr() as IndexBufferPtr; } } return indexBufferPtr; }
public IndexBufferPtr GetIndex() { if (indexBufferPtr == null) { using (var buffer = new ZeroIndexBuffer(DrawMode.TriangleFan, 0, 4)) { indexBufferPtr = buffer.GetBufferPtr() as ZeroIndexBufferPtr; } } return indexBufferPtr; }