private unsafe void RenderLoop() { int fps_count = 0; int fps_ticks = 0; int pre_ticks = Environment.TickCount & Int32.MaxValue; var updatearg = new GDIDeviceUpdateArgs(); while (true) { var cur_ticks = Environment.TickCount & Int32.MaxValue; if (cur_ticks - fps_ticks > 1000) { uiContext.Send(d => { if (ParentForm != null) ParentForm.Text = String.Format("FPS: {0}", fps_count); }, null); fps_count = 1; fps_ticks = cur_ticks; } else ++fps_count; lock (LockObj) { if (DeviceUpdate != null) { if (_clearbuf) MemSet._memset(DIB.ImageData, _clearcol, DIB.lpsize); DeviceUpdate(this, updatearg.Update(this, cur_ticks - pre_ticks)); pre_ticks = cur_ticks; } SetDIBitsToDevice(hDCRef, 0, 0, Width, Height, 0, 0, 0, Height, _DIB.ImageBits, ref _BI, 0); } Thread.Sleep(1); } }
static public void SetLoad() { Mutex mutex = new Mutex(true, "SimpleTasks_SetData"); mutex.WaitOne(); try { XmlSerializer Serializer = new XmlSerializer(typeof(MemSet)); using (var store = IsolatedStorageFile.GetUserStoreForApplication()) { using (var stream = store.OpenFile("SimpleTasks_Set.xml", FileMode.Open)) { AppData.Settings = (MemSet)Serializer.Deserialize(stream); if (AppData.Settings.sort_start != SortType.last) { AppData.Settings.sort = AppData.Settings.sort_start; } } } } catch { AppData.Settings = new MemSet(); } mutex.ReleaseMutex(); }
internal static void memset(VoidPtr dest, byte setvalue, long len) { MemSet.memset(dest, 0, setvalue, len); }
public void ClearBuffer() { MemSet._memset(DIB.ImageData, _clearcol, DIB.lpsize); }