/// <summary> /// The run message loop. /// </summary> public static void RunMessageLoop() { while (User32Methods.GetMessage(out Message msg, IntPtr.Zero, 0, 0) != 0) { User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } }
public override int RunCore() { Message msg; int res; while ((res = User32Methods.GetMessage(out msg, IntPtr.Zero, 0, 0)) > 0) { User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } return(res); }
/// <summary> /// The run message loop. /// </summary> public static void RunMessageLoop() { while (User32Methods.GetMessage(out Message msg, IntPtr.Zero, 0, 0) != 0) { if (ChromelyConfiguration.Instance.HostFrameless) { CefRuntime.DoMessageLoopWork(); } User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } }
public override int RunCore() { Message msg; int res = 0; while (!Abort && (res = User32Methods.GetMessage(out msg, IntPtr.Zero, 0, 0)) > 0) { User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } Thread.Sleep(10); return(res); }
static int Main(string[] args) { var instanceHandle = Kernel32Methods.GetModuleHandle(IntPtr.Zero); var wc = new WindowClassEx { Size = (uint)Marshal.SizeOf <WindowClassEx>(), ClassName = "MainWindow", CursorHandle = User32Helpers.LoadCursor(IntPtr.Zero, SystemCursor.IDC_ARROW), IconHandle = User32Helpers.LoadIcon(IntPtr.Zero, SystemIcon.IDI_APPLICATION), Styles = WindowClassStyles.CS_HREDRAW | WindowClassStyles.CS_VREDRAW, BackgroundBrushHandle = new IntPtr((int)StockObject.WHITE_BRUSH), WindowProc = WindowProc, InstanceHandle = instanceHandle }; var resReg = User32Methods.RegisterClassEx(ref wc); if (resReg == 0) { Console.Error.WriteLine("registration failed"); return(-1); } var hwnd = User32Methods.CreateWindowEx(WindowExStyles.WS_EX_APPWINDOW, wc.ClassName, "Hello", WindowStyles.WS_OVERLAPPEDWINDOW, (int)CreateWindowFlags.CW_USEDEFAULT, (int)CreateWindowFlags.CW_USEDEFAULT, (int)CreateWindowFlags.CW_USEDEFAULT, (int)CreateWindowFlags.CW_USEDEFAULT, IntPtr.Zero, IntPtr.Zero, instanceHandle, IntPtr.Zero); if (hwnd == IntPtr.Zero) { Console.Error.WriteLine("window creation failed"); return(-1); } User32Methods.ShowWindow(hwnd, ShowWindowCommands.SW_SHOWNORMAL); User32Methods.UpdateWindow(hwnd); Message msg; int res; while ((res = User32Methods.GetMessage(out msg, IntPtr.Zero, 0, 0)) != 0) { User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } return(res); }
public override int RunCore() { Message msg; var quitMsgId = (uint)WM.QUIT; do { if (User32Helpers.PeekMessage(out msg, IntPtr.Zero, 0, 0, PeekMessageFlags.PM_REMOVE)) { User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } } while (msg.Value != quitMsgId); return(0); }
public override int RunCore() { Stopwatch timer = Stopwatch.StartNew(); int updates = 0, frames = 0; const double tick = 1000.0f / 60.0f; double then = 0, elapsedSeconds = 0, dt = 0; for (; m_Info.Running; frames++) { while (User32Helpers.PeekMessage(out Message msg, IntPtr.Zero, 0, 0, PeekMessageFlags.PM_REMOVE)) { if (msg.Value == (uint)WM.QUIT) { m_Info.Running = false; } User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } double now = timer.Elapsed.TotalMilliseconds; if ((now - then) > tick) { m_UpdateCallback(); Time.DeltaTime = (float)(now - dt); dt = now; then = now; updates++; } { Stopwatch frameTimer = Stopwatch.StartNew(); m_RenderCallback(); Time.FrameTime = (float)frameTimer.Elapsed.TotalMilliseconds; } if (timer.Elapsed.TotalSeconds - elapsedSeconds > 1.0f) { m_TickCallback(); Time.FPS = frames; Time.UPS = updates; frames = 0; updates = 0; elapsedSeconds++; } } return(0); }
public override int RunCore() { Message msg; int res; while ((res = User32Methods.GetMessage(out msg, IntPtr.Zero, 0, 0)) > 0) { if (this.Preprocess(ref msg)) { User32Methods.TranslateMessage(ref msg); if (this.PostTranslate(ref msg)) { User32Methods.DispatchMessage(ref msg); } this.PostProcess(ref msg); } } return(res); }
/// <summary> /// The run message loop. /// </summary> public static void RunMessageLoop() { while (User32Methods.GetMessage(out Message msg, IntPtr.Zero, 0, 0) != 0) { if (msg.Value == (uint)WM.CLOSE) { DetachKeyboardHook(); } if (ChromelyConfiguration.Instance.HostPlacement.KioskMode && msg.Value == (uint)WM.HOTKEY && msg.WParam == (IntPtr)1) { User32Methods.PostMessage(NativeWindow.NativeInstance.Handle, (uint)WM.CLOSE, IntPtr.Zero, IntPtr.Zero); } if (ChromelyConfiguration.Instance.HostPlacement.Frameless || ChromelyConfiguration.Instance.HostPlacement.KioskMode) { CefRuntime.DoMessageLoopWork(); } User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } }
/// <summary> /// The run core. /// </summary> /// <returns> /// The <see cref="int"/>. /// </returns> public override int RunCore() { var quitMsg = (uint)WM.QUIT; bool isMultiThreadedLoopSet = this.mHostConfig.GetBooleanValue(CefSettingKeys.MultiThreadedMessageLoop, true); bool isExternalPumpSet = this.mHostConfig.GetBooleanValue(CefSettingKeys.ExternalMessagePump); if (!isMultiThreadedLoopSet && !isExternalPumpSet) { CefRuntime.RunMessageLoop(); } else { while (true) { Message msg; if (User32Helpers.PeekMessage(out msg, IntPtr.Zero, 0, 0, PeekMessageFlags.PM_REMOVE)) { if (msg.Value == quitMsg) { break; } User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } // Do your idle processing if (isExternalPumpSet) { CefRuntime.DoMessageLoopWork(); } } } return(0); }