/// <summary> /// Initializes and starts the game /// </summary> /// <param name="gameWindow">Game window instance</param> public static void Run(GameWindow gameWindow) { try { if (SystemEnvironment.LaunchArguments.Contains("--disableLogging") || SystemEnvironment.LaunchArguments.Contains("-dl")) { Console.WriteLine("craftersmine EtherEngine (c) craftersmine 2018-2019"); Debugging.Logger = null; Console.WriteLine("Game Logging capability is disabled! To enable logging please remove \"--disableLogging\" or \"-dl\" argument from shortcut or start line"); } else { Debugging.Logger = new Logger(SystemEnvironment.TemporaryDirectory, "craftersmine.EtherEngine"); } Debugging.Log(LogEntryType.Info, "craftersmine EtherEngine (c) craftersmine 2018-2019"); Debugging.Log(LogEntryType.Info, "Enabling visual styles..."); Application.EnableVisualStyles(); GameWindow = gameWindow; GameWndPointer = GameWindow.Handle; Debugging.Log(LogEntryType.Info, "Initializing DirectInput keyboard..."); KeyboardInstance = new Keyboard(); Debugging.Log(LogEntryType.Info, "Initializing XInput gamepad..."); GamepadInstance = new Gamepad(); Debugging.Log(LogEntryType.Info, "Creating GameUpdater..."); GameUpdater = new UpdateTimer(60); GameUpdater.FixedUpdate += GameUpdateHandlers.FixedUpdateHandler; GameUpdater.Update += GameUpdateHandlers.UpdateHandler; GameUpdater.PausedUpdate += GameUpdateHandlers.PausedUpdateHandler; // TODO: Game initialization logic goes below here Debugging.Log(LogEntryType.Info, "Creating Renderer..."); Renderer = new Renderer.Renderer(GameWndPointer); Debugging.Log(LogEntryType.Info, "Loading default scene..."); SceneManager.LoadScene(new Scene { BackgroundColor = new Color(0f) }); Renderer.SetFullscreenState(GameWindow.WindowParameters.IsFullscreen); Debugging.Log(LogEntryType.Done, "Game initialized!"); GameInitialized += Initialized; RenderLoop.Run(GameWindow, new RenderLoop.RenderCallback(Renderer.Render)); } catch (Exception ex) { CrashHandler.Handle(ex); } }
public void Run(Configuration config) { configuration = config ?? new Configuration(); form = CreateForm(config); Initialize(configuration); bool isFormClosed = false; bool formIsResizing = false; form.MouseClick += HandleMouseClick; form.KeyDown += HandleKeyDown; form.KeyUp += HandleKeyUp; form.MouseMove += HandleMouseMove; form.Resize += (o, args) => { if (form.WindowState != currentFormWindowState) { HandleResize(o, args); } currentFormWindowState = form.WindowState; }; form.ResizeBegin += (o, args) => { formIsResizing = true; }; form.ResizeEnd += (o, args) => { formIsResizing = false; HandleResize(o, args); }; form.Closed += (o, args) => { isFormClosed = true; }; LoadContent(); time.Start(); BeginRun(); RenderLoop.Run(form, () => { if (isFormClosed) { return; } OnUpdate(); if (!formIsResizing) { Render(); } }); UnloadContent(); EndRun(); Dispose(); }
public Form1() { InitializeComponent(); SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true); form.Width = 600; form.Height = 600; test(); callback = new RenderLoop.RenderCallback(Render); RenderLoop.Run(form, callback); }
public void Run() { if (this.IsInitialised == false) { throw new InvalidOperationException("Engine not initialised."); } RenderLoop.Run(GraphicsServices.GetService <RenderForm>(), () => { this.Update(); this.Render(); }); }
static void Main() { FarseerPhysics.Settings.VelocityThreshold = 0; ShapeSettings.DeafultRestitution = 0.9f; ShapeSettings.DefaultFriction = 0.1f; ImageUtil.ProcessImages(); IEUtil.UsingLatestIE(); using (var form = new Form1()) { RenderLoop.Run(form, () => form.Render(1, 0)); } }
public void Draw(RenderLoop.RenderCallback cb) { RenderLoop.Run(Window, () => { _device.BeginDraw(); _device.Clear(null); cb.Invoke(); _device.Flush(); _device.EndDraw(); }); }
private void RunRenderForm() { RenderForm.KeyDown += (s, e) => Input.KeyDown(e.KeyCode); RenderForm.KeyUp += (s, e) => Input.KeyUp(e.KeyCode); RenderLoop.Run(RenderForm, () => { if (!Frame()) { ShutDown(); } }); }
static void Main() { bool initialized = false; bool resize = false; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); DXConfig = new DXConfigClass(""); Renderer = new DXRendererClass(DXConfig); form = new ArbaroMainForm(); form.Width = DXConfig.FormDefaultWidth; form.Height = DXConfig.FormDefaultHeight; // Setup handler on resize form (form.renderCtrl as Control).Resize += (sender, args) => { resize = true; }; DXShaderManager = new DXShadersManager(); CS_PreciseTimer preciseTimer = new CS_PreciseTimer(10); DateTime tStart = preciseTimer.Now; RenderLoop.Run(form, () => { if (!initialized) { Rectangle r = form.renderCtrl.ClientRectangle; Renderer.Initialize(r.Width, r.Height, form.renderCtrl.Handle, form, DXConfig); initialized = true; form.RendererInitialized(); } if (resize) { resize = false; Rectangle r = form.renderCtrl.ClientRectangle; Renderer.Resize(r.Width, r.Height, DXConfig); } DateTime tEnd = preciseTimer.Now; float elapsed = (float)(tEnd.Subtract(tStart)).TotalMilliseconds; tStart = tEnd; Renderer.Frame(); }); Renderer.Dispose(); }
static void Main(string[] args) { using (var renderForm = new RenderForm("DirectReact sample")) { renderForm.ClientSize = new System.Drawing.Size(1280, 720); var bounds = new Bounds(x: 0, y: 0, width: renderForm.ClientSize.Width, height: renderForm.ClientSize.Height); var first = true; var eventSource = new RawInputEventSource(() => { if (first) { first = false; return(renderForm.PointToClient(Cursor.Position)); } if (renderForm.Focused) { return(renderForm.PointToClient(Cursor.Position)); } return(null); }); using (var renderer = new Renderer(renderForm.Handle, bounds)) { var store = new Store <StoreState, StoreState>( new StoreState { Clicked = false, Selection = new TextSelection[] { new TextSelection(2, 2) } }, (state, action) => action); var rootElement = new ReduxProviderElement <StoreState, StoreState>(store, RootComponent.CreateElement(null)); var backgroundUpdater = new BackgroundUpdateContext(rootElement, renderer, null, bounds); store.StateChanged += (existing, newState) => backgroundUpdater.OnNextUpdate(new ChangeEvent <StoreState>(existing, newState)); eventSource.Mouse += (ChangeEvent <MouseState> mouseEvent) => backgroundUpdater.OnNextUpdate(mouseEvent); eventSource.Keyboard += (ChangeEvent <KeyboardState> keyboardEvent) => backgroundUpdater.OnNextUpdate(keyboardEvent); renderForm.Resize += (sender, _args) => { var newbounds = new Bounds(x: 0, y: 0, width: renderForm.ClientSize.Width, height: renderForm.ClientSize.Height); var resizeEvent = new ChangeEvent <ResizeState>(new ResizeState(bounds.Width, bounds.Height), new ResizeState(newbounds.Width, newbounds.Height)); bounds = newbounds; backgroundUpdater.OnNextUpdate(resizeEvent); }; // Get the ball rolling backgroundUpdater.OnNextUpdate(() => { }); RenderLoop.Run(renderForm, () => { backgroundUpdater.EnsureRenderedOneFrame(); }); } } }
static void Main() { if (!SharpDevice.IsDirectX11Supported()) { System.Windows.Forms.MessageBox.Show("DirectX11 Not Supported"); return; } //render form RenderForm form = new RenderForm(); form.Text = "Tutorial 3: Font"; //main loop using (SharpDevice device = new SharpDevice(form)) { //create font from file (generated with tkfont.exe) SharpBatch font = new SharpBatch(device, "textfont.dds"); RenderLoop.Run(form, () => { //resize if form was resized if (device.MustResize) { device.Resize(); font.Resize(); } //clear color device.Clear(Color.CornflowerBlue); //begin drawing text font.Begin(); //draw string font.DrawString("Hello SharpDX", 0, 0, Color.White); font.DrawString("Current Time " + DateTime.Now.ToString(), 0, 32, Color.White); //flush text to view font.End(); //present device.Present(); }); font.Dispose(); } }
public override void Run() { RenderLoop.Run(Form, () => { Demo.OnUpdate(); if (Form.WindowState == FormWindowState.Minimized) { return; } Demo.Clock.StartRender(); Render(); Demo.Clock.StopRender(); }); }
protected override void Show() { RenderLoop.Run(renderForm, () => { timer.Frame(); if (!graphics.Frame(timer.FrameTime)) { throw new InvalidOperationException(); } if (!graphics.Render()) { throw new InvalidOperationException(); } }); }
/// <summary> /// Runs the demo. /// </summary> public void Run() { bool formIsResizing = false; bool isFormClosed = false; // bool formIsResizing = false; _form.MouseClick += HandleMouseClick; _form.KeyDown += HandleKeyDown; _form.KeyUp += HandleKeyUp; _form.Resize += (o, args) => { if (_form.WindowState != _currentFormWindowState) { HandleResize(o, args); } _currentFormWindowState = _form.WindowState; }; _form.ResizeBegin += (o, args) => { formIsResizing = true; }; _form.ResizeEnd += (o, args) => { formIsResizing = false; HandleResize(o, args); }; _form.Closed += (o, args) => { isFormClosed = true; }; LoadContent(); _clock.Start(); RenderLoop.Run(_form, () => { if (isFormClosed) { return; } OnUpdate(); if (!formIsResizing) { Render(); } }); }
public void Run() { RenderLoop.Run(DXManager.Instance.renderForm, delegate() { Update(); DXManager.Instance.d3dDevice.Clear(ClearFlags.Target | ClearFlags.ZBuffer, new Color(100, 100, 255, 255), 1f, 0); DXManager.Instance.d3dDevice.BeginScene(); ObjectManager.Instance.Render(); DXManager.Instance.d3dDevice.EndScene(); DXManager.Instance.d3dDevice.Present(); }); }
// Render DX public void RenderDX() { // Main rendering loop RenderLoop.Run(form, () => { devCon.ClearDepthStencilView(depthStencilView, DepthStencilClearFlags.Depth | DepthStencilClearFlags.Stencil, 1.0f, 0); devCon.ClearRenderTargetView(renderView, new Color4(0.0f, 0.0675f, 0.1325f, 1.0f)); RenderComponents(); swapChain.Present(0, PresentFlags.None); UpdateDX(); UpdateComponents(); }); }
public static void Main(string[] args) { int hmod = Environment.Is64BitProcess ? LoadLibrary("x64\\d3dcompiler_47.dll") : LoadLibrary("x86\\d3dcompiler_47.dll"); Debug.Assert(hmod != 0); using (Program program = new Program()) { program.renderForm.KeyDown += (s, e) => program.KeyDownCallback(e.KeyCode); RenderLoop.Run(program.renderForm, program.RenderCallback); } FreeLibrary(hmod); }
/// <summary> /// Sets up and starts the Render Loop /// </summary> public void StartDraw() { sw.Start(); RenderLoop.Run(form, () => { D2DRenderTarget.BeginDraw(); D2DRenderTarget.Clear(Window.BackgroundColor); Draw(); D2DRenderTarget.EndDraw(); swapChain.Present(0, PresentFlags.None); FrameCount++; }); Dispose(); }
public void Run() { Initialize(); var isFormClosed = false; var formIsResizing = false; MainForm.Closed += (o, args) => { isFormClosed = true; }; //MainForm.MouseEnter += (o, args) => { Cursor.Hide(); }; //MainForm.MouseLeave += (o, args) => { Cursor.Show(); }; MainForm.Resize += (o, args) => { if (MainForm.WindowState != CurrentFormWindowState) { HandleResize(o, args); } CurrentFormWindowState = MainForm.WindowState; }; MainForm.ResizeBegin += (o, args) => { formIsResizing = true; }; MainForm.ResizeEnd += (o, args) => { formIsResizing = false; HandleResize(o, args); }; RenderLoop.Run(MainForm, () => { if (isFormClosed) { return; } var result = Frame(); if (!result) { MessageBox.Show("Frame Processing Failed"); Exit(); } // Check if the user pressed escape and wants to quit. if (Input.IsEscapePressed()) { Exit(); } }); }
public void EnterRunloop() { RenderLoop.Run(m_windowForm, () => { EditorModuleManager.Instance.Update(); EditorGraphicsManager.Instance.Render(() => { }); }); EditorModuleManager.Instance.Dispose(); EditorGraphicsManager.Instance.Dispose(); m_windowForm.Dispose(); }
private void StartRenderLoop() { var renderMethodInfo = _coreType.GetMethod("Render"); RenderLoop.Run(_form, () => { try { renderMethodInfo.Invoke(_coreTypeInstance, null); } catch (Exception e) { LogError(e); } }); }
public void Run() { try { _overlayForm.Show(); RenderLoop.Run(_dxForm, RenderCallback); } catch (System.ArgumentException ex) { MessageBox.Show(string.Format("Exception running DirectX host window.\r\n{0}", ex.Message), "DirectX Host", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { MessageBox.Show(string.Format("Exception running DirectX host window.\r\n{0}", ex.Message), "DirectX Host", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void Run() { Clock.Start(); RenderLoop.Run(Mainform, () => { D2dRenderTarget.BeginDraw(); D2dRenderTarget.Clear(Color.Gray); OnUpDate(); Render(); Draw(); D2dRenderTarget.EndDraw(); SwapChain.Present(0, PresentFlags.None); }); }
public void Run() { Setup(); Logger.Log("--- Game Init ---"); Initialize(); Logger.Log("Game initializing done."); Global.IsRunning = true; Global.Timer.Start(); RenderLoop.Run(Form, InternalUpdate); Logger.Log("Loop ended."); Dispose(); Exit(); Logger.Log("All disposed."); Logger.Log("Game successfully exited"); }
/// <summary> /// Runs the demo. /// </summary> public void Run(DemoConfiguration demoConfiguration) { Config = demoConfiguration ?? new DemoConfiguration(); _form = CreateForm(Config); // disable resizing and center on screen _form.FormBorderStyle = FormBorderStyle.FixedSingle; _form.MaximizeBox = false; _form.StartPosition = FormStartPosition.CenterScreen; Initialize(Config); var isFormClosed = false; _form.MouseClick += HandleMouseClick; _form.KeyDown += HandleKeyDown; _form.KeyUp += HandleKeyUp; _form.Resize += (o, args) => { _currentFormWindowState = _form.WindowState; }; // ReSharper disable once ImplicitlyCapturedClosure _form.Closed += (o, args) => isFormClosed = true; LoadContent(); _clock.Start(); BeginRun(); RenderLoop.Run(_form, () => { if (isFormClosed) { return; } OnUpdate(); Render(); }); UnloadContent(); EndRun(); // Dispose explicity Dispose(); }
protected override void Show() { RenderLoop.Run(renderForm, () => { timer.Frame(); fps.Frame(); cpu.Frame(); if (!graphics.Frame(fps.FPS, cpu.CpuPercentage, timer.FrameTime)) { throw new InvalidOperationException(); } if (!graphics.Render()) { throw new InvalidOperationException(); } }); }
public void Run() { RenderLoop.Run(this, () => { // Another option is not use RenderLoop at all and call Render when needed, and call here every tick for animations if (bRender) { Render(); } if (mouseMoved) { OnMouseMove(lastEvent); mouseMoved = false; } // Application.DoEvents(); }); }
public void Run() { InitialiseForm(); InitialiseComponents(); Show(); RenderLoop.Run(this, () => { if (isResizing || device == null) { return; } BeginDraw(); Draw(); EndDraw(); }); }
/// <summary> /// Runs the program. /// </summary> private void Run() { _form.Show(); RenderLoop.Run(_form, () => { _game.Step(false); _renderer.Render(); if (_stopping) { _game.StopLevel(); _stopping = false; } }); }
public static void Initiate() { var form = new RenderForm("SharpDX - MiniCube Direct3D9 Sample"); // Creates the Device var direct3D = new Direct3D(); var device = new SharpDX.Direct3D9.Device(direct3D, 0, DeviceType.Hardware, form.Handle, CreateFlags.HardwareVertexProcessing, new PresentParameters(form.ClientSize.Width, form.ClientSize.Height)); // Prepare matrices var view = Matrix.LookAtLH(new Vector3(0, 0, -5), new Vector3(0, 0, 0), Vector3.UnitY); var proj = Matrix.PerspectiveFovLH((float)Math.PI / 4.0f, form.ClientSize.Width / (float)form.ClientSize.Height, 0.1f, 100.0f); var viewProj = Matrix.Multiply(view, proj); // Use clock var clock = new Stopwatch(); clock.Start(); string Game = "WOT"; switch (Game) { case "WOT": _list.Add(new DrawTextureAndCatchIt(SharpDX.Direct3D9.Texture.FromFile(device, "Resources/error_enter.png"), SharpDX.Direct3D9.Texture.FromFile(device, "Resources/error_6473.png"), new SharpDX.Mathematics.Interop.RawRectangle(1, 1, 100, 100), new SharpDX.Vector3(100, 100, 0))); _list.Add(new DrawTextureAndCatchIt(SharpDX.Direct3D9.Texture.FromFile(device, "Resources/edit-addenter.png"), SharpDX.Direct3D9.Texture.FromFile(device, "Resources/edit-add.png"), new SharpDX.Mathematics.Interop.RawRectangle(1, 1, 100, 100), new SharpDX.Vector3(100, 400, 0))); break; } //choose game RenderLoop.Run(form, () => { device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black, 1.0f, 0); device.BeginScene(); foreach (DrawTextureAndCatchIt dr in _list) { dr.CheckCursorPosition(); dr.DrawTexture(device); } device.EndScene(); device.Present(); }); device.Dispose(); direct3D.Dispose(); }
static void Main() { using (var window = new LayeredRenderWindow() { Text = "Hello World", DragMoveEnabled = true }) { var bottomRightFont = new DWrite.TextFormat(window.XResource.DWriteFactory, "Consolas", 16.0f) { FlowDirection = DWrite.FlowDirection.BottomToTop, TextAlignment = DWrite.TextAlignment.Trailing, }; var bottomLeftFont = new DWrite.TextFormat(window.XResource.DWriteFactory, "Consolas", DWrite.FontWeight.Normal, DWrite.FontStyle.Italic, 24.0f) { FlowDirection = DWrite.FlowDirection.BottomToTop, TextAlignment = DWrite.TextAlignment.Leading, }; window.Draw += Draw; RenderLoop.Run(window, () => window.Render(1, 0)); void Draw(RenderWindow _, Direct2D.DeviceContext target) { XResource res = window.XResource; target.Clear(Color.Transparent); RectangleF rectangle = new RectangleF(0, 0, target.Size.Width, target.Size.Height); target.DrawRectangle( rectangle, res.GetColor(Color.Blue)); target.DrawText("😀😁😂🤣😃😄😅😆😉😊😋😎", res.TextFormats[36], rectangle, res.GetColor(Color.Blue), Direct2D.DrawTextOptions.EnableColorFont); target.DrawText($"{window.XResource.DurationSinceStart:mm':'ss'.'ff}\nFPS: {window.RenderTimer.FramesPerSecond:F1}", bottomRightFont, rectangle, res.GetColor(Color.Red)); target.DrawText("Hello World", bottomLeftFont, rectangle, res.GetColor(Color.Purple)); } } }