/// <summary> /// Реальная физическая перерисовка, если виджет имеет ширину и высоту и помечен к перерисовке /// </summary> public void Redraw(bool force = false) { if (Height != 0 && Width != 0 && IsDirty) { //Console.WriteLine("{1}: redraw: {0}", Name, DateTime.Now.ToString("mm:ss.fff")); VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_PATH_USER_TO_SURFACE); VG.vgLoadIdentity(); VG.vgSeti(VGParamType.VG_MATRIX_MODE, (int)VGMatrixMode.VG_MATRIX_IMAGE_USER_TO_SURFACE); VG.vgLoadIdentity(); VG.vgSetfv(VGParamType.VG_CLEAR_COLOR, 4, new[] { 1.0f, 1.0f, 1.0f, 0.0f }); VG.vgClear(0, 0, Width, Height); VG.vgFinish(); // TODO: swap debug only if (SwapDebug) { mApplication.Swap(); } Draw(); VG.vgFinish(); // TODO: swap debug only if (SwapDebug) { mApplication.Swap(); } mRenderBuffer.Copy(); // TODO: вместо mRenderBuffer.Activate(); IsDirty = false; } foreach (var widget in mChilds) { ((Widget)widget).Redraw(); } }