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(); } }
public void AddWork(IRenderWork <T, W> work) { m_Works.Enqueue(work); }