static void CreateBar() { float x = mousePoint.x; float y = mousePoint.y; float x1 = x + 0.2025f; float y1 = y - 0.12f; unsafe { fixed(VertexPositionTexture *t = &buff_img[iid.bar].vertex[0]) { VertexPositionTexture *vpt = t; vpt->Position.X = x; vpt->Position.Y = y1; vpt++; vpt->Position.X = x; vpt->Position.Y = y; vpt++; vpt->Position.X = x1; vpt->Position.Y = y1; vpt++; vpt->Position.X = x1; vpt->Position.Y = y1; vpt++; vpt->Position.X = x; vpt->Position.Y = y; vpt++; vpt->Position.X = x1; vpt->Position.Y = y; } } buff_img[iid.bar].count = 2; createBar.location = mousePoint; select.menu = Target.CreateMenu; }
public void NewFrame() { lastIndex = currentIndex = currentVerts = 0; verts = (VertexPositionTexture *)vbo.BeginStreaming(); }
protected static void LoadNeedle(ref LandDate[] l, int imgid) { VertexPositionTexture[] v = buff_img[iid.needle].vertex; int count = -1; for (int i = 0; i < l.Length; i++) { if (l[i].active) { Point2[] p = new Point2[3]; float scale = l[i].w; if (scale != 0)//0==def 1 { l[i].distance = scale * 0.12f + 0.06f; float a = l[i].h; if (a != 0)//angle { p[0].x = tri_mod[0].x; p[0].y = scale * tri_mod[0].y; p[1].x = tri_mod[1].x; p[1].y = scale * tri_mod[1].y; p[2].x = tri_mod[2].x; p[2].y = scale * tri_mod[2].y; p = RotatePoint2(ref p, ref l[i].location, a, 0.5625f); l[i].points = p; } else { float x = l[i].location.x; float y = l[i].location.y; p[0].x = scale * tri_modA[0].x + x; p[0].y = y; p[1].x = x; p[1].y = scale * tri_modA[1].y + y; p[2].x = scale * tri_modA[2].x + x; p[2].y = y; l[i].points = p; } } else { l[i].distance = 0.18f; float a = l[i].h; if (a != 0)//angle { p = RotatePoint2(ref tri_mod, ref l[i].location, a, 0.5625f); l[i].points = p; } else { float x = l[i].location.x; float y = l[i].location.y; p[0].x = tri_modA[0].x + x; p[0].y = y; p[1].x = x; p[1].y = tri_modA[1].y + y; p[2].x = tri_modA[2].x + x; p[2].y = y; l[i].points = p; } } unsafe { fixed(VertexPositionTexture *t = &buff_img[imgid].vertex[i * 3]) { VertexPositionTexture *vpt = t; vpt->Position.X = p[0].x; vpt->Position.Y = p[0].y; vpt->TextureCoordinate.X = 0.25f; vpt->TextureCoordinate.Y = 1; vpt++; vpt->Position.X = p[1].x; vpt->Position.Y = p[1].y; vpt->TextureCoordinate.X = 0.375f; vpt++; vpt->Position.X = p[2].x; vpt->Position.Y = p[2].y; vpt->TextureCoordinate.X = 0.5f; vpt->TextureCoordinate.Y = 1; } } count = i; } else { int c = i * 3; for (int t = 0; t < 3; t++) { v[c].Position.X = 0; v[c].Position.Y = 0; c++; } } } buff_img[imgid].count = (count + 1); }