private static void MainLoop() { GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit | ClearBufferMask.StencilBufferBit); GameTime.Update(); Glfw.SetWindowTitle(window, "FPS: " + GameTime.FPS); CooldownTimer.Update(); Render(mandelbrot); Render(julia); Update(); if (!view) { Animate(); SaveScreenshot(); Console.WriteLine("Pos: " + mandelbrot.pos + " Zoom: " + mandelbrot.zoom); } Glfw.PollEvents(); Glfw.SwapBuffers(window); if (shouldClose) { Glfw.SetWindowShouldClose(window, shouldClose); } }
public void Load() { modeTimer = new CooldownTimer(20); crosshairtimer = new CooldownTimer(20); Model model = Model.CreateRectangle(new Vector2(0.5f, 1)); switch (fractalType) { case FractalType.Mandelbrot: quad = new Entity(model, new Vector2(-0.5f, 0)); break; case FractalType.Julia: quad = new Entity(model, new Vector2(0.5f, 0)); break; } }
private static void Init() { shader = new ShaderProgram("Assets/Shaders/Shader.vert", "Assets/Shaders/Shader.frag"); shader.AddUniform("vposoffset"); shader.AddUniform("vsize"); shader.AddUniform("aspectRatio"); shader.AddUniform("rot"); shader.AddUniform("maxIter"); shader.AddUniform("clrRatio"); shader.AddUniform("cursorClr"); shader.AddUniform("julia_mode"); shader.AddUniform("crosshair"); shader.AddUniform("fractalType"); shader.AddUniform("julia_c"); shader.AddUniform("pos"); shader.AddUniform("zoom"); //guishader = new ShaderProgram("Asset/Shaders/Gui.vert", "Asset/Shaders/Gui.frag"); //guishader.AddUniform("pos"); //guishader.AddUniform("size"); try { Serialization.FractalPair pair = Serialization.Load(); mandelbrot = pair.mandelbrot; julia = pair.julia; activeFractal = pair.activeFractal; fractalsToRender = pair.fractalsToRender; // ScreenshotCount = pair.screenshotCount; ScreenshotCount = 0; } catch (Exception) { mandelbrot = Fractal.CreateMandelbrot(); julia = Fractal.CreateJulia(); } mandelbrot.Load(); julia.Load(); activeFractalTimer = new CooldownTimer(60); activeFractalTimer.SetTime(activeFractalTimer.GetCooldown()); screenshotTimer = new CooldownTimer(20); fractalsToRenderTimer = new CooldownTimer(20); if (!view) { mandelbrot.pos = new Vector2d(-0.129078142625295, 0.98765122402576); mandelbrot.maxIter = 2000; fractalsToRender = FractalsToRender.Mandelbrot; mandelbrot.crosshair = false; mandelbrot.zoom = 4; } else { //Random rand = new Random(); //mandelbrot.pos = new Vector2d(rand.NextDouble() * 2 - 1, rand.NextDouble() * 2 - 1); //mandelbrot.zoom = 2; } // mandelbrot.zoom = 1E-10; }
public static void AddTimer(CooldownTimer t) { Timers.Add(t); }