public void AddEntity(IEntity entity) { // m_log.Log(LogLevel.DWORLDDETAIL, "AddEntity: {0}, n={1}", m_name, entity.Name.Name); if (TrackEntity(entity)) { // tell the viewer about this prim and let the renderer convert it // into the format needed for display if (m_shouldQueueEvent) { // disconnect this work from the caller -- use another thread m_workQueueEvent.DoLater(DoEventLater, entity); } else { if (OnEntityNew != null) { OnEntityNew(entity); } } } }
private void ThrottleTextureRequestsCheck() { OMV.UUID binID = OMV.UUID.Zero; lock (m_textureQueue) { if (m_textureQueue.Count > 0 && m_currentOutstandingTextureRequests < m_maxOutstandingTextureRequests) { m_currentOutstandingTextureRequests++; binID = m_textureQueue.Dequeue(); } } if (binID != OMV.UUID.Zero) { if (m_doThrottledTextureRequest == null) { m_doThrottledTextureRequest = new BasicWorkQueue("OSThrottledTexture" + m_numAssetContextBase.ToString()); } m_doThrottledTextureRequest.DoLater(ThrottleTextureMakeRequest, binID); } }
// called from the renderer when the mouse moves private void UserInterface_OnMouseMove(int param, float x, float y) { Object[] moveParams = { param, x, y }; m_workQueue.DoLater(UI_MouseMoveLater, moveParams); return; }