public void BeforeRender(MyRenderSettings writeTo, MyTimeSpan?currentDrawTime) { using (m_lock.Acquire()) { if (currentDrawTime.HasValue) { MyRenderProxy.CurrentDrawTime = currentDrawTime.Value; } writeTo.Synchronize(m_inputRenderSettings); } }
public void AfterUpdate(MyRenderSettings inputSettings, MyTimeSpan?updateTimestamp) { using (m_lock.Acquire()) { if (updateTimestamp.HasValue) { m_inputRenderMessages.CurrentUpdateFrame.UpdateTimestamp = updateTimestamp.Value; } m_inputRenderMessages.CommitUpdateFrame(); m_inputRenderSettings.Synchronize(inputSettings); // TODO: OP! Better settings synchronization m_inputBillboards.CommitWrite(); m_inputBillboards.Write.Clear(); m_inputTriangleBillboards.CommitWrite(); m_inputTriangleBillboards.Write.Clear(); } }