public void run(TaskQueue taskQueue) { Thread _Td3d = new Thread(() => { timer.Start(); RawColor4 clearColor = new RawColor4(0f, 0f, 0f, 0f); while (targetForm.Created) { try { Clear(clearColor); foreach (string taskName in frameTimeWorkList.Keys) { IFrameTimeTask task = frameTimeWorkList[taskName]; task.frameTimeWork(); } sprite.draw(); font.draw(); Present(); ++frame; } catch (SharpDXException e) { Console.WriteLine("D3D 에러" + e.ToString()); return; } } Dispose(); }); _Td3d.Start(); taskQueue.runNext(); }
public bool addFrameTimeTask(string tag, IFrameTimeTask task) { return(frameTimeWorkList.TryAdd(tag, task)); }
public D3DHandler(RenderForm mainForm, ResourceManageCore resourceManageCore, IFrameTimeTask mainformTask) { this.resourceManageCore = resourceManageCore; targetForm = mainForm; frameTimeWorkList = new ConcurrentDictionary <string, IFrameTimeTask>(); addFrameTimeTask("mainform", mainformTask); initialize(); }