Пример #1
0
 public void Draw(DrawInfo drawInfo)
 {
     if (BeginDrawing != null)
     {
         BeginDrawing(this, new DrawEventArgs(drawInfo));
     }
     rwLock.EnterWrite();
     try
     {
         graphics.RemoveExpired();
         lock (syncRoot)
         {
             graphics.AddPending();
         }
         graphics.CheckZOrder();
         List <Graphic> graphics1 = graphics.Items;
         for (int index = 0; index < graphics1.Count; ++index)
         {
             Graphic graphic = graphics1[index];
             if (graphic.IsVisible)
             {
                 graphic.Draw(drawInfo);
             }
         }
     }
     finally
     {
         rwLock.ExitWrite();
     }
     if (EndDrawing != null)
     {
         EndDrawing(this, new DrawEventArgs(drawInfo));
     }
 }
Пример #2
0
        private void DrawWithChildren(DrawInfo drawInfo)
        {
            children.RemoveExpired();
            lock (syncRoot)
            {
                children.AddPending();
            }
            children.CheckZOrder();
            hasChildren = children.Items.Count > 0;
            PreDraw(drawInfo);
            int            index     = 0;
            List <Graphic> children2 = children.Items;

            for (; index < children2.Count && children2[index].ZOrder < this.ZOrder; ++index)
            {
                Gl.glPushMatrix();
                children2[index].Draw(drawInfo);
                Gl.glPopMatrix();
            }
            drawable.Draw(drawInfo, drawableState);
            for (; index < children2.Count; ++index)
            {
                Gl.glPushMatrix();
                children2[index].Draw(drawInfo);
                Gl.glPopMatrix();
            }
            PostDraw(drawInfo);
        }
Пример #3
0
 void Draw(Scalar dt, Scalar trueDt)
 {
     rwLock.EnterWrite();
     try
     {
         viewports.RemoveExpired();
         lock (syncRoot)
         {
             viewports.AddPending();
         }
         viewports.CheckZOrder();
         drawCount++;
         DrawInfo drawInfo = new DrawInfo(dt, trueDt, drawCount, refreshCount);
         foreach (Viewport viewport in viewports.Items)
         {
             viewport.Draw(drawInfo);
         }
     }
     finally
     {
         rwLock.ExitWrite();
     }
 }