public void Update(RigelGUIEvent e) { GUI.StartGUILayer(this); { actionBeforeUpdate.Invoke(); if (m_syncAll) { if (m_focusedView == null) { //No focused view GUI.SetDrawBuffer(m_bufferRect, m_bufferText); m_bufferRect.Clear(); m_bufferText.Clear(); m_rootView.InternalUpdate(e); m_bufferRect.IsBufferChanged = true; m_bufferText.IsBufferChanged = true; } else { //has focused view //dynamic set buffer GUI.SetDrawBuffer(m_bufferRectDynamic, m_bufferTextDynamic); BufferRectDynamic.Clear(); BufferTextDynamic.Clear(); m_focusedView.InternalUpdate(e, null, true); BufferRectDynamic.IsBufferChanged = true; BufferTextDynamic.IsBufferChanged = true; //normal set buffer GUI.SetDrawBuffer(m_bufferRect, m_bufferText); m_bufferRect.Clear(); m_bufferText.Clear(); m_rootView.InternalUpdate(e, m_focusedView); m_bufferRect.IsBufferChanged = true; m_bufferText.IsBufferChanged = true; } m_syncAll = false; } else { //Update Dynamic if (m_focusedView != null) { GUI.SetDrawBuffer(m_bufferRectDynamic, m_bufferTextDynamic); BufferRectDynamic.Clear(); BufferTextDynamic.Clear(); m_focusedView.InternalUpdate(e, null, true); BufferRectDynamic.IsBufferChanged = true; BufferTextDynamic.IsBufferChanged = true; } } } GUI.EndGUILayer(this); }
public bool EmitGUIEvent(RigelGUIEvent e) { m_rect.z = e.RenderWidth; m_rect.w = e.RenderHeight; if (e.EventType == RigelGUIEventType.MouseMove) { if (FastMode) { return(false); } if (m_focusedLayer == null || m_focusedLayer.m_focusedView == null) { return(false); } else { if (!GUIUtility.RectContainsCheck(m_focusedLayer.m_focusedView.Rect, e.Pointer)) { return(false); } } } m_rect.z = e.RenderWidth; m_rect.w = e.RenderHeight; CheckFocused(e); GUI.StartFrame(this, e); startFrameAction.Invoke(); foreach (var layer in m_layers) { layer.Update(e); } endFrameAction.Invoke(); GUI.EndFrame(this); //m_forceUpdate = false; return(true); }