Exemple #1
0
        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();
 }
Exemple #3
0
        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);
        }