private void CommandTri2(uint w0, uint w1) { /* Tri2 */ int[] idxs = new int[] { (int)((w0 & 0x00FF0000) >> 16) >> 1, (int)((w0 & 0x0000FF00) >> 8) >> 1, (int)(w0 & 0x000000FF) >> 1, (int)((w1 & 0x00FF0000) >> 16) >> 1, (int)((w1 & 0x0000FF00) >> 8) >> 1, (int)(w1 & 0x000000FF) >> 1 }; foreach (int idx in idxs) { if (idx >= VertexBuffer.Length) { return; } } General.RenderTriangles(this, idxs); if (ActiveGLDL != null) { if (ActiveGLDL.Peek() != null) { ActiveGLDL.Peek().Triangles.Add(new OpenGLHelpers.DisplayListEx.Triangle(VertexBuffer[idxs[0]], VertexBuffer[idxs[1]], VertexBuffer[idxs[2]])); } if (ActiveGLDL.Peek() != null) { ActiveGLDL.Peek().Triangles.Add(new OpenGLHelpers.DisplayListEx.Triangle(VertexBuffer[idxs[3]], VertexBuffer[idxs[4]], VertexBuffer[idxs[5]])); } } LastTriList.Add(new SimpleTriangle(VertexBuffer[idxs[0]].Position, VertexBuffer[idxs[1]].Position, VertexBuffer[idxs[2]].Position)); LastTriList.Add(new SimpleTriangle(VertexBuffer[idxs[3]].Position, VertexBuffer[idxs[4]].Position, VertexBuffer[idxs[5]].Position)); }
public void ResetCaches() { ResetTextureCache(); if (Configuration.CombinerType == CombinerTypes.ArbCombiner && arbCombiner != null) { arbCombiner.ResetFragmentCache(); } if (LastTriList != null) { LastTriList.Clear(); } }