void CheckRendererNodeCompatibility()
 {
     if (HasEngineInstance() && !EngineMirror.CheckRendererNodeCompatibility())
     {
         // error message
     }
 }
 private void _shaderFX_OnShaderEffectChanged(object sender, CSharpFramework.Scene.ShaderEffectConfig.ShaderEffectChangedArgs e)
 {
     if (EngineMirror != null)
     {
         EngineMirror.SetShaderEffect(_shaderFX);
     }
     OnShaderEffectChanged();
 }
 /// <summary>
 /// unlinks a target from a source. Either src or target has this shape as owner
 /// </summary>
 /// <param name="src">the link source</param>
 /// <param name="target">the link target</param>
 public override void OnUnlink(ShapeLink src, ShapeLink target)
 {
     base.OnUnlink(src, target);
     // perform the unlinking on the engine objects
     if (target.OwnerShape == this)
     {
         VisibilityObjectShape visobjShape = src.OwnerShape as VisibilityObjectShape;
         if (visobjShape != null && visobjShape._engineInstance != null) // at least the engine instance of the constraint can be null
         {
             EngineMirror.RemoveVisibilityObject(visobjShape._engineInstance as EngineInstanceVisibilityObject);
         }
     }
 }