/// <summary> /// Called when deserializing /// </summary> /// <param name="info"></param> /// <param name="context"></param> protected MirrorShape(SerializationInfo info, StreamingContext context) : base(info, context) { _fSizeX = info.GetSingle("_fSizeX"); _fSizeY = info.GetSingle("_fSizeY"); _shaderFX = (ShaderEffectConfig)info.GetValue("_shaderFX",typeof(ShaderEffectConfig)); _shaderFX.OnShaderEffectChanged += new CSharpFramework.Scene.ShaderEffectConfig.ShaderEffectChangedEventHandler(_shaderFX_OnShaderEffectChanged); _shaderFX.Owner = this; if (SerializationHelper.HasElement(info,"_iResolution")) _iResolution = info.GetInt32("_iResolution"); if (SerializationHelper.HasElement(info,"_modelFile")) _modelFile = info.GetString("_modelFile"); if (SerializationHelper.HasElement(info,"_farClipDist")) _farClipDist = info.GetSingle("_farClipDist"); if (SerializationHelper.HasElement(info,"_iContextBitmask")) _iContextBitmask = (FlagsInt32_e)info.GetValue("_iContextBitmask", typeof(FlagsInt32_e)); if (SerializationHelper.HasElement(info, "_reflectionShaderMode")) _reflectionShaderMode = (ReflectionShaderMode)info.GetValue("_reflectionShaderMode", typeof(ReflectionShaderMode)); if (SerializationHelper.HasElement(info, "_bRenderExtObj")) _bRenderExtObj = info.GetBoolean("_bRenderExtObj"); if (SerializationHelper.HasElement(info, "_fFovScale")) _fFovScale = info.GetSingle("_fFovScale"); if (SerializationHelper.HasElement(info, "_fObliqueClippingPlaneOffset")) _fObliqueClippingPlaneOffset = info.GetSingle("_fObliqueClippingPlaneOffset"); if (SerializationHelper.HasElement(info, "_bLODFromRefContext")) _bLODFromRefContext = info.GetBoolean("_bLODFromRefContext"); if (SerializationHelper.HasElement(info, "_bUseHDR")) _bUseHDR = info.GetBoolean("_bUseHDR"); if (SerializationHelper.HasElement(info, "_renderHook3")) { _renderHook = (RenderOrderBits_e)info.GetValue("_renderHook3", typeof(RenderOrderBits_e)); } else if (SerializationHelper.HasElement(info, "_renderHook2")) { RenderOrderBits_e eRH; eRH = (RenderOrderBits_e)info.GetValue("_renderHook2", typeof(RenderOrderBits_e)); // toggle VRH_ADDITIVE_PARTICLES with VRH_TRANSLUCENT_VOLUMES so that the VRenderHook_e enum order matches the execution order if (eRH == RenderOrderBits_e.AdditiveParticles) _renderHook = RenderOrderBits_e.TranslucentVolumes; else if (eRH == RenderOrderBits_e.TranslucentVolumes) _renderHook = RenderOrderBits_e.AdditiveParticles; else _renderHook = eRH; } else if (SerializationHelper.HasElement(info, "_renderHook")) { int oldValue = info.GetInt32("_renderHook"); _renderHook = ConversionUtils.UpdateRenderOrderBits(oldValue); } // backwards compatibility if (!SerializationHelper.HasElement(info, "SupportScaling")) SetScaling_Internal(1.0f, 1.0f, 1.0f); if (LinkTargets.Count==0) // old version this.CreateAllLinks(); }
/// <summary> /// Called when deserializing /// </summary> /// <param name="info"></param> /// <param name="context"></param> protected MobileWaterShape(SerializationInfo info, StreamingContext context) : base(info, context) { AddHint(HintFlags_e.NoScale); AddHint(HintFlags_e.OnlyYawRotation); _size = (Vector2F)info.GetValue("_size", typeof(Vector2F)); _useRadialGrid = info.GetBoolean("_useRadialGrid"); _textureTiling = (Vector2F)info.GetValue("_textureTiling", typeof(Vector2F)); _gridSubdivisions = (Vector2I)info.GetValue("_gridSubdivisions", typeof(Vector2I)); _renderHook = (RenderOrderBits_e)info.GetValue("_renderHook", typeof(RenderOrderBits_e)); _shaderFX = (ShaderEffectConfig)info.GetValue("_shaderFX", typeof(ShaderEffectConfig)); if (SerializationHelper.HasElement(info, "_useStaticLighting")) _useStaticLighting = info.GetBoolean("_useStaticLighting"); _shaderFX.OnShaderEffectChanged += new CSharpFramework.Scene.ShaderEffectConfig.ShaderEffectChangedEventHandler(_shaderFX_OnShaderEffectChanged); _shaderFX.Owner = this; }