public override void OnDraw() { #if use_timers AllTimer.Start(); #endif int width = (int)rbuf_window().Width; int height = (int)rbuf_window().Height; uint i; for (i = 0; i < m_NumPaths; i++) { // g_colors[i].A_Byte = (byte)(m_AlphaSlider.value() * 255); g_colors[i] = RGBA_Bytes.ModifyComponent(g_colors[i], Component.A, (byte)(m_AlphaSlider.value().ToDouble() * 255)); } IAffineTransformMatrix <T> transform = MatrixFactory <T> .NewIdentity(VectorDimension.Two); transform.Translate(MatrixFactory <T> .CreateVector2D(g_base_dx.Negative(), g_base_dy.Negative())); transform.Scale(MatrixFactory <T> .CreateVector2D(g_scale, g_scale)); transform.RotateAlong(MatrixFactory <T> .CreateVector2D(M.Zero <T>(), M.Zero <T>()), g_angle + Math.PI); transform.Shear(MatrixFactory <T> .CreateVector2D(g_skew_x.Divide(1000.0), g_skew_y.Divide(1000.0))); transform.Translate(MatrixFactory <T> .CreateVector2D(M.New <T>(width).Divide(2), M.New <T>(height).Divide(2))); // This code renders the lion: ConvTransform <T> transformedPathStorage = new ConvTransform <T>(g_PathStorage, transform); #if use_timers Lion50Timer.Start(); for (uint j = 0; j < 200; j++) #endif { this.GetRenderer().Render(transformedPathStorage, g_colors, g_path_idx, m_NumPaths); } #if use_timers Lion50Timer.Stop(); #endif #if use_timers AllTimer.Stop(); CExecutionTimer.Instance.AppendResultsToFile("TimingTest.txt", AllTimer.GetTotalSeconds()); CExecutionTimer.Instance.Reset(); #endif base.OnDraw(); }