Пример #1
0
        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();
        }
Пример #2
0
 public bool addFrameTimeTask(string tag, IFrameTimeTask task)
 {
     return(frameTimeWorkList.TryAdd(tag, task));
 }
Пример #3
0
        public D3DHandler(RenderForm mainForm, ResourceManageCore resourceManageCore, IFrameTimeTask mainformTask)
        {
            this.resourceManageCore = resourceManageCore;
            targetForm = mainForm;

            frameTimeWorkList = new ConcurrentDictionary <string, IFrameTimeTask>();

            addFrameTimeTask("mainform", mainformTask);

            initialize();
        }