Exemple #1
0
            public void Render()
            {
                while (m_Works.Count > 0)
                {
                    IRenderWork <T, W> work = null;
                    if (!m_Works.TryDequeue(out work))
                    {
                        break;
                    }
                    if (work == null)
                    {
                        continue;
                    }
                    while (!work.IsRenderComplete())
                    {
                        T result = work.Render(m_Scene, m_Renderer, m_Sampler);
                        m_Results.Enqueue(result);
                    }

                    m_ResetEvent.Set();
                }
            }
Exemple #2
0
 public void AddWork(IRenderWork <T, W> work)
 {
     m_Works.Enqueue(work);
 }