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(); } }
protected override void Draw() { //VG.vgSetfv(VGParamType.VG_CLEAR_COLOR, 4, new[] { 0.0f, 1.0f, 0.0f, 0.5f }); //VG.vgClear(0, 0, Width, Height); //VG.vgFinish(); VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_PATH_USER_TO_SURFACE); VG.vgLoadIdentity(); #region draw text if (Text == null) { return; } VG.vgSetParameteri(mPaint, (int)VGPaintParamType.VG_PAINT_TYPE, (int)VGPaintType.VG_PAINT_TYPE_COLOR); VG.vgSetParameterfv(mPaint, (int)VGPaintParamType.VG_PAINT_COLOR, 4, FontColor.Value); VG.vgSetPaint(mPaint, VGPaintMode.VG_FILL_PATH); float[] glyphOrigin = { 0.0f, 0.0f }; // set glyph matrices VG.vgSetfv(VGParamType.VG_GLYPH_ORIGIN, 2, glyphOrigin); VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_GLYPH_USER_TO_SURFACE); VG.vgLoadIdentity(); var widthText = (TextWidth > Width) ? Width : TextWidth; switch (TextAlign) { case Align.Left: VG.vgTranslate(TextOffset.X, TextOffset.Y); break; case Align.Center: VG.vgTranslate((Width - widthText + TextOffset.X) / 2f, TextOffset.Y); break; case Align.Right: VG.vgTranslate((Width - widthText - TextOffset.X), TextOffset.Y); break; } VG.vgTranslate(RotateCenter.X, RotateCenter.Y); VG.vgRotate(mRotate); VG.vgTranslate(-RotateCenter.X, -RotateCenter.Y); VG.vgScale(FontSize, FontSize); mFontRender.RenderText(Text); VG.vgFinish(); #endregion }
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(); } }
protected override void Draw() { // draw bg if (Background != null) { VG.vgSetfv(VGParamType.VG_CLEAR_COLOR, 4, Background.Value); VG.vgClear(X, Y, Width, Height); } if (Grid != null) { Grid.Update(); } if (Arrows != null) { Arrows.Update(); } // draw line if (mGrapihcs.Count > 0) { foreach (var data in from data in mGrapihcs where data != null where data.Data != null where data.Data.Length > 0 select data) { VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_PATH_USER_TO_SURFACE); VG.vgLoadIdentity(); VG.vgTranslate(X + data.Position.X, Y + data.Position.Y); // (40, 20) VG.vgSetf(VGParamType.VG_STROKE_LINE_WIDTH, data.StrokeWidth); VG.vgSetParameterfv(mPaint, (int)VGPaintParamType.VG_PAINT_COLOR, 4, data.Color != null ? data.Color.Value : Palette.Black.Value); VG.vgSetPaint(mPaint, VGPaintMode.VG_STROKE_PATH); VG.vgClearPath(mPath, VGPathCapabilities.VG_PATH_CAPABILITY_ALL); var size = (data.Data.Length - 1) > (Width - data.Position.X) ? (Width - data.Position.X) : (data.Data.Length - 1); for (var i = 0; i < size; i++) { VGU.vguLine(mPath, i, data.Data[i], i + 1, data.Data[i + 1]); } VG.vgDrawPath(mPath, VGPaintMode.VG_STROKE_PATH); } } }
public override void Update() { VG.vgSeti(VGParamType.VG_IMAGE_MODE, (int)VGImageMode.VG_DRAW_IMAGE_NORMAL); VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_IMAGE_USER_TO_SURFACE); VG.vgLoadIdentity(); VG.vgTranslate(X, Y); // draw bg int width, height; var image = CopyImageToVgBuffer(File.ReadAllBytes(Path.Combine(mRootImageDirUrl, @"generic/progressbar/bg.raw")), out width, out height); VG.vgDrawImage(image); VG.vgDestroyImage(image); // draw left border if (Percent > 0) { image = CopyImageToVgBuffer(File.ReadAllBytes(Path.Combine(mRootImageDirUrl, @"generic/progressbar/left.raw")), out width, out height); VG.vgDrawImage(image); VG.vgDestroyImage(image); } // draw right border VG.vgTranslate(300, 0); if (Percent == 100) { image = CopyImageToVgBuffer(File.ReadAllBytes(Path.Combine(mRootImageDirUrl, @"generic/progressbar/right.raw")), out width, out height); VG.vgDrawImage(image); VG.vgDestroyImage(image); } if (Percent > 0) { VG.vgTranslate(-293, 1); VG.vgScale(1.465f * Percent, 1.0f); image = CopyImageToVgBuffer(File.ReadAllBytes(Path.Combine(mRootImageDirUrl, @"generic/progressbar/1.raw")), out width, out height); VG.vgDrawImage(image); VG.vgDestroyImage(image); } mTextArea.Update(); }
public override void Update() { VG.vgSeti(VGParamType.VG_IMAGE_MODE, (int)VGImageMode.VG_DRAW_IMAGE_NORMAL); VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_IMAGE_USER_TO_SURFACE); VG.vgLoadIdentity(); VG.vgTranslate(X, Y); /* * int width, height; * var image = CopyImageToVgBuffer(File.ReadAllBytes(State == ButtonState.Released ? mUpImageUrl : mDownImageUrl), out width, out height); * if(image != IntPtr.Zero) * { * VG.vgDrawImage(image); * VG.vgDestroyImage(image); * } */ base.Update(); }
public override void Update() { VG.vgSeti(VGParamType.VG_IMAGE_MODE, (int)VGImageMode.VG_DRAW_IMAGE_NORMAL); VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_IMAGE_USER_TO_SURFACE); VG.vgLoadIdentity(); if (State == ButtonState.Released) { VG.vgTranslate(X, Y); VG.vgScale(mScaleX, mScaleY); } else { if (EffectToLeft) { VG.vgTranslate(X - ((Width / mScaleX) - Width), Y); } else { VG.vgTranslate(X, Y); } } /* * int width; * int height; * var image = CopyImageToVgBuffer(File.ReadAllBytes(mImageUrl), out width, out height); * if (image != IntPtr.Zero) * { * VG.vgDrawImage(image); * VG.vgDestroyImage(image); * } */ base.Update(); }
public void Update() { VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_PATH_USER_TO_SURFACE); VG.vgLoadIdentity(); if (mStrokePaint != null) { mStrokePaint.SetPaint(VGPaintMode.VG_STROKE_PATH); VG.vgSetf(VGParamType.VG_STROKE_LINE_WIDTH, StrokeWidth); VG.vgSeti(VGParamType.VG_STROKE_CAP_STYLE, mCapStyle); VG.vgSeti(VGParamType.VG_STROKE_JOIN_STYLE, mJoinStyle); VG.vgSetfv(VGParamType.VG_STROKE_DASH_PATTERN, mDashPattern != null ? mDashPattern.Length : 0, mDashPattern); } else { VG.vgSetf(VGParamType.VG_STROKE_LINE_WIDTH, 0); } if (mFillPaint != null) { mFillPaint.SetPaint(VGPaintMode.VG_FILL_PATH); } //Parse("M30.0, 0.0c-6.512-8.236-10.411-18.633-10.411-29.948 c0-26.692,21.639-48.331,48.331-48.331s48.331,21.639,48.331,48.331c0,11.503-4.024,22.063-10.735,30.359l10.688,8.629 c8.615-10.655,13.779-24.218,13.779-38.988c0-34.275-27.786-62.062-62.063-62.062c-34.275,0-62.062,27.786-62.062,62.062 c0,14.53,4.995,27.892,13.357,38.467L30.0, 0.0z"); //Parse("M676.364,484.481c0,6.627-5.372,12-12,12H526.357c-6.628,0-12-5.373-12-12V357.351c0-6.627,5.372-12,12-12h138.007c6.628,0,12,5.373,12,12V484.481z"); VG.vgTranslate(X, Y); // offset at screen VG.vgScale(Scale, Scale); // scale VG.vgTranslate(-Bounds.X, -Bounds.Y); // translate to screen coordinates (0;0) VG.vgDrawPath(mPath, (mFillPaint != null ? VGPaintMode.VG_FILL_PATH : 0) | (mStrokePaint != null ? VGPaintMode.VG_STROKE_PATH : 0)); VG.vgFinish(); }
protected override void Draw() { if (!IsVisible) { return; } VG.vgLoadIdentity(); VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_PATH_USER_TO_SURFACE); var position = ScreenPosition; VG.vgTranslate(position.X, position.Y); //VG.vgRotate(mRotate); //Status.Rotate(mRotate); #region draw percent if (mPercent > 0) { VG.vgClearPath(mPath, VGPathCapabilities.VG_PATH_CAPABILITY_ALL); VGU.vguRoundRect(mPath, 0, 0, Width, Height, mRound, mRound); // draw percent line if (PercentLine != null) { PercentLine.SetPaint(VGPaintMode.VG_FILL_PATH); } VG.vgDrawPath(mPath, VGPaintMode.VG_FILL_PATH); VG.vgFinish(); } #endregion #region draw background VG.vgSetParameteri(mPaint, (int)VGPaintParamType.VG_PAINT_TYPE, (int)VGPaintType.VG_PAINT_TYPE_COLOR); //VG.vgSetParameterfv(mPaint, (int)VGPaintParamType.VG_PAINT_COLOR, 4, RootWindow.Background.Value); VG.vgSetParameterfv(mPaint, (int)VGPaintParamType.VG_PAINT_COLOR, 4, new[] { 0.0f, 0.0f, 0.0f, 1.0f }); VG.vgSetPaint(mPaint, VGPaintMode.VG_FILL_PATH); var percentWidth = (Width * Percent) / 100f; VG.vgClearPath(mPath, VGPathCapabilities.VG_PATH_CAPABILITY_ALL); VGU.vguRect(mPath, percentWidth, 0, Width - percentWidth, Height); VG.vgDrawPath(mPath, VGPaintMode.VG_FILL_PATH); VG.vgFinish(); #endregion #region draw line { if (Border != null) { Border.SetPaint(VGPaintMode.VG_STROKE_PATH); VG.vgSetf(VGParamType.VG_STROKE_LINE_WIDTH, kLineSize); VG.vgSeti(VGParamType.VG_STROKE_CAP_STYLE, (int)VGCapStyle.VG_CAP_BUTT); VG.vgSeti(VGParamType.VG_STROKE_JOIN_STYLE, (int)VGJoinStyle.VG_JOIN_BEVEL); VG.vgClearPath(mPath, VGPathCapabilities.VG_PATH_CAPABILITY_ALL); //VGU.vguRoundRect(mPath, kLineSize / 2f, kLineSize / 2f, Width - kLineSize, Height - kLineSize, mRound, mRound); VGU.vguRoundRect(mPath, 0, 0, Width, Height, mRound, mRound); VG.vgDrawPath(mPath, VGPaintMode.VG_STROKE_PATH); VG.vgFinish(); } } #endregion //base.Update(); VG.vgFinish(); }
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(); } }
public override void Draw() { if (!IsVisible) { return; } // draw bg if (Background != null) { VG.vgSetfv(VGParamType.VG_CLEAR_COLOR, 4, Background.Value); VG.vgClear(X, Y, Width, Height); VG.vgFinish(); } if (Arrows != null) { Arrows.Update(X, Y); } VG.vgSetf(VGParamType.VG_STROKE_LINE_WIDTH, 1.0f); VG.vgSetfv(VGParamType.VG_STROKE_DASH_PATTERN, 0, null); VG.vgSetParameterfv(mStrokePaint, (int)VGPaintParamType.VG_PAINT_COLOR, 4, new Color(0x575959FF).Value); VG.vgSetPaint(mStrokePaint, VGPaintMode.VG_STROKE_PATH); switch (Type) { case VisializationType.Realtime: { //mApplication.DebugTimeToConsole("realtime"); #region Realtime if (Grid != null) { Grid.Update(X, Y); } VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_PATH_USER_TO_SURFACE); // draw rectangles if (mGrapihcs.Count > 0) { lock (mGrapihcs) foreach (var data in from data in mGrapihcs where data != null where data.Data != null where data.Data.Length > 0 select data) { VG.vgLoadIdentity(); VG.vgTranslate(X + data.Position.X, Y + data.Position.Y); // (40, 20) var size = (data.Data.Length - 1) > (((uint)(kOxWidht)) - data.Position.X) ? (((uint)(kOxWidht)) - data.Position.X) : (data.Data.Length - 1); for (var i = 0; i < size; i++) { VG.vgClearPath(mPath, VGPathCapabilities.VG_PATH_CAPABILITY_ALL); var maxY = data.Data[i] < 5 ? 5 : data.Data[i]; // минимальное значение - 5 единиц, чтобы было видно секции maxY = data.Data[i] == ushort.MaxValue ? 5 : maxY; // проверяем флаг на наличие датчика maxY /= 2; VGU.vguRect(mPath, i * (kOxWidht / 177f), 0, (kOxWidht / 177f), maxY); var color = (data.Data[i] == ushort.MaxValue) ? Palette.White : new Color(GetColor(data.Data[i])); VG.vgSetParameterfv(mFillPaint, (int)VGPaintParamType.VG_PAINT_COLOR, 4, color.Value); VG.vgSetPaint(mFillPaint, VGPaintMode.VG_FILL_PATH); VG.vgDrawPath(mPath, VGPaintMode.VG_FILL_PATH); VG.vgDrawPath(mPath, VGPaintMode.VG_STROKE_PATH); } } } #endregion } break; case VisializationType.History: { if (HistoryReports != null) { if (HistoryReports.Length > 0) { //Console.WriteLine("history: {0}", HistoryReports.Length); VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_PATH_USER_TO_SURFACE); VG.vgLoadIdentity(); VG.vgTranslate(X + 40, Y + 20); // (40, 20) foreach (var label in mVHistoryLabels) { label.Text = ""; } var depth = 0; for (var j = 0; j < HistoryReports.Length; j++) { var data = HistoryReports[j].Restore(); if (j % 5 == 0) { //Console.WriteLine("history: {0}", j); var index = j / 5; var date = HistoryReports[j].Time; mVHistoryLabels[2 * index].Text = date.ToString("HH:mm"); mVHistoryLabels[2 * index + 1].Text = date.ToString("dd") + "/" + date.ToString("MM"); } if (data != null) { var size = (data.Length - 1); for (var i = 0; i < size; i++) { if (data[i] == ushort.MaxValue) { continue; } VG.vgClearPath(mPath, VGPathCapabilities.VG_PATH_CAPABILITY_ALL); const int kRectHeight = 12; VGU.vguRect(mPath, i * (kOxWidht / 177f), depth * kRectHeight, (kOxWidht / 177f), kRectHeight); VG.vgSetParameterfv(mFillPaint, (int)VGPaintParamType.VG_PAINT_COLOR, 4, new Color(GetColor(data[i])).Value); VG.vgSetPaint(mFillPaint, VGPaintMode.VG_FILL_PATH); VG.vgDrawPath(mPath, VGPaintMode.VG_FILL_PATH); VG.vgDrawPath(mPath, VGPaintMode.VG_STROKE_PATH); } } else { Console.WriteLine("oooops"); } depth++; } } } } break; } //base.Update(); }