public void Translate(XNA.Vector3 delta) { Position += delta; Look += delta; _viewUpdated = true; }
override protected void LoadXML(XmlNode cXmlNode) { if (null == cXmlNode) // || _bInitialized { return; } _sDebugFolder = cXmlNode.AttributeOrDefaultGet <string>("debug_folder", ""); XmlNode cNodeChild; XmlNode cNodeDevice = cXmlNode; _nTargetDevice = cNodeDevice.AttributeGet <byte>("target"); _sDeviceMake = cNodeDevice.AttributeValueGet("make"); if (_sDeviceMake == "aja") { _nTargetChannel = cNodeDevice.AttributeGet <byte>("target_channel"); } _bDeviceInput = ("input" == cNodeDevice.AttributeValueGet("type")); if (!_bDeviceInput) { if (null != (cNodeChild = cNodeDevice.NodeGet("xna", false))) { cXNA = new XNA(); cXNA.bFullScreen = cNodeChild.AttributeOrDefaultGet <bool>("fullscreen", false); cXNA.bPromter = cNodeChild.AttributeOrDefaultGet <bool>("promter", false); cXNA.nWidth = cNodeChild.AttributeOrDefaultGet <int>("width", 720); cXNA.nHeight = cNodeChild.AttributeOrDefaultGet <int>("height", 576); //_nFPS = cNodeDevice.AttributeGet<ushort>("fps"); //TODO } } if (_bAudio = (null != (cNodeChild = cNodeDevice.NodeGet("audio", false)))) { _nAudioSamplesRate = cNodeChild.AttributeGet <uint>("rate"); _nAudioChannelsQty = cNodeChild.AttributeGet <byte>("channels"); _nAudioBitDepth = cNodeChild.AttributeGet <byte>("bits"); _nAudioByteDepth = (byte)(_nAudioBitDepth / 8); _nAudioBytesPerSample = (byte)(_nAudioByteDepth * _nAudioChannelsQty); _nAudioVolumeChangeInDB = cNodeChild.AttributeOrDefaultGet <short>("volume_change", 0); if (0 != _nAudioVolumeChangeInDB) { _nAudioVolumeChange = (float)Math.Pow(10, (float)_nAudioVolumeChangeInDB / 20); } } if (_bVideo = (null != (cNodeChild = cNodeDevice.NodeGet("video", false)))) { _sVideoFormat = cNodeChild.AttributeValueGet("format").ToLower(); _sPixelsFormat = cNodeChild.AttributeValueGet("pixels").ToLower(); _sPixelsFormatTarget = cNodeChild.AttributeValueGet("pixels_trg", false); _bAnamorph = cNodeChild.AttributeOrDefaultGet <bool>("anamorph", false); if (!_bDeviceInput) { _cDownStreamKeyer = null; if (null != (cNodeChild = cNodeChild.NodeGet("keyer", false))) { _cDownStreamKeyer = new DownStreamKeyer(); try { _cDownStreamKeyer.nLevel = cNodeChild.AttributeGet <byte>("level"); } catch { throw new Exception("указан некорректный формат уровня DSK [level][" + cNodeChild.Name + "]"); //TODO LANG } try { _cDownStreamKeyer.bInternal = ("internal" == cNodeChild.AttributeValueGet("type")); } catch { throw new Exception("указан некорректный тип DSK [type][" + cNodeChild.Name + "]"); //TODO LANG } } } } cNodeChild = cNodeDevice.NodeGet("queue"); _nQueueDeviceLength = cNodeChild.AttributeGet <byte>("device"); _nQueuePipeLength = cNodeChild.AttributeGet <byte>("pipe"); _nGCFramesInterval = cNodeChild.AttributeGet <int>("gc_interval"); }