예제 #1
0
파일: Widget.cs 프로젝트: Mokarski/Vagonka
        public virtual void Update(GfxRect updateArea)
        {
            if (!IsVisible)
            {
                return;
            }

            if (OnPaint != null)
            {
                OnPaint(this);
            }

            //Console.WriteLine("->> {1}: to surface: {0}", Name, DateTime.Now.ToString("mm:ss.fff"));

            var position = ScreenPosition;

            VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_IMAGE_USER_TO_SURFACE);
            VG.vgLoadIdentity();
            VG.vgTranslate(position.X, position.Y);

            mRenderBuffer.ToSurface();

            //Console.WriteLine("<<- {1}: to surface: {0}", Name, DateTime.Now.ToString("mm:ss.fff"));

            foreach (var widget in mChilds.Where(widget => !(widget is ModalWindow)))
            {
                widget.Update();
            }
        }
예제 #2
0
        public override void Update(GfxRect updateArea)
        {
            if (!IsVisible)
            {
                return;
            }

            if (OnPaint != null)
            {
                OnPaint(this);
            }

            //Console.WriteLine("->> {1}: to surface: {0}", Name, DateTime.Now.ToString("mm:ss.fff"));

            var position = ScreenPosition;

            VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_IMAGE_USER_TO_SURFACE);

            VG.vgLoadIdentity();
            VG.vgTranslate(position.X, position.Y);

            if (mRotate != 0)
            {
                VG.vgTranslate(RotateCenter.X, RotateCenter.Y);
                VG.vgRotate(mRotate);
                VG.vgTranslate(-RotateCenter.X, -RotateCenter.Y);
            }

            if (mScaleX != kAccuratePoint || mScaleY != kAccuratePoint)
            {
                var sx = mScaleX / (kAccuratePoint * 1.0f);
                var sy = mScaleY / (kAccuratePoint * 1.0f);
                VG.vgScale(sx, sy);
            }

            mRenderBuffer.ToSurface();

            Console.WriteLine("<<- {1}: to surface: {0}", Name, DateTime.Now.ToString("mm:ss.fff"));

            foreach (var widget in mChilds.Where(widget => !(widget is ModalWindow)))
            {
                widget.Update();
            }
        }
예제 #3
0
        public override void Update(GfxRect updateArea)
        {
            if (!IsVisible)
            {
                return;
            }

            if (OnPaint != null)
            {
                OnPaint(this);
            }

            //Console.WriteLine("->> {1}: to surface: {0}", Name, DateTime.Now.ToString("mm:ss.fff"));

            var position = ScreenPosition;

            VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_IMAGE_USER_TO_SURFACE);

            VG.vgLoadIdentity();
            VG.vgTranslate(position.X, position.Y);

            switch (mFixState)
            {
            // отрисовка по текущему состоянию
            case null:
                if (State == ButtonState.Released)
                {
                    if (mNormal != null)
                    {
                        mNormal.Update();
                    }
                }
                else
                {
                    if (mActive != null)
                    {
                        mActive.Update();
                    }
                }
                break;

            // заблокировано в отжатом состоянии
            case ButtonState.Released:
                if (mNormal != null)
                {
                    mNormal.Update();
                }
                break;

            // заблокировано в нажатом состоянии
            default:
                if (mActive != null)
                {
                    mActive.Update();
                }
                break;
            }

            VG.vgFinish();

            //Console.WriteLine("<<- {1}: to surface: {0}", Name, DateTime.Now.ToString("mm:ss.fff"));

            foreach (var widget in mChilds.Where(widget => !(widget is ModalWindow)))
            {
                widget.Update();
            }
        }
예제 #4
0
 public override void Update(GfxRect updateArea)
 {
     mRenderBuffer.ToSurface();
 }