コード例 #1
0
        /// <summary>
        /// Requests new state from current LeiaStateFactory, switches backlight,
        /// updates texture. UpdateLeiaState triggers StateChanged() actions.
        /// </summary>
        private void RequestLeiaStateUpdate()
        {
            if (!Application.isPlaying)
            {
                return;
            }
            if (_leiaState != null)
            {
                _leiaState.Release();
            }

            // set interlacing state based on LeiaStateId
            _leiaState = _stateFactory.GetState(LeiaStateId);

            // Set backlight state based on LeiaStateId
            if (_leiaDevice != null && _leiaDevice.GetBacklightMode() == 3 && !LeiaStateId.Equals(HPO))
            {
                _leiaDevice.SetBacklightMode(_leiaState.GetBacklightMode());
            }
            if (_leiaDevice != null && _leiaDevice.GetBacklightMode() != 3 && LeiaStateId.Equals(HPO))
            {
                _leiaDevice.SetBacklightMode(_leiaState.GetBacklightMode());
            }

            if (_leiaDevice.GetBacklightMode() == 3)
            {
                latest3DFrame = Time.frameCount;
            }

            // private member RequestLeiaStateUpdate() calls public member UpdateLeiaState
            // UpdateLeiaState is called by LeiaConfigSettingsUI
            UpdateLeiaState();
        }
コード例 #2
0
        public void UpdateLeiaState()
        {
            _leiaState.UpdateState(Decorators, LeiaDevice);

            // if not dirty, and state matches backlight, then we are ready to trigger StateChanged callback
            bool matchedState = !_isDirty &&
                                ((LeiaStateId == HPO && _leiaState.GetBacklightMode() == 3) ||
                                 (LeiaStateId != HPO && _leiaState.GetBacklightMode() != 3));

            if (matchedState && StateChanged != null)
            {
                StateChanged();
            }
        }