Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }