コード例 #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
        /// <summary>
        /// When in 2D, forces HPO then back to 2D
        /// When in HPO, forces 2D then back to HPO
        ///
        /// Skips backlight switching.
        ///
        /// This method resolves a specific issue with orthographic / perspective cameras. External users should use
        /// DesiredLeiaStateId = ...
        /// </summary>
        public void ForceLeiaStateUpdate()
        {
            string init = LeiaStateId;
            string conj = (LeiaStateId == HPO ? TWO_D : HPO);


            Settings.LeiaStateId = conj;
            _leiaState           = _stateFactory.GetState(LeiaStateId);
            UpdateLeiaState();

            Settings.LeiaStateId = init;
            _leiaState           = _stateFactory.GetState(LeiaStateId);
            UpdateLeiaState();
        }