public override bool Render(RenderParams parentRp, RenderCanvas canvas) { if (!Active) { return(false); } _rp = new RenderParams(parentRp); AdaptRenderParams(_rp); //Util.Log("Render HID=" + rp.HierarchyID + " ID=" + this.ID + "\n"); // make a new canvas - anything painted on here by children, will // be used in this SOundEvent. RenderCanvas myCanvas = new RenderCanvas(); // Render to rp/myCanvas, to retrieve adapted render-params based on possible // effects attached to me as child nodes. RenderChildren(_rp, myCanvas); // render my audio ... if within the right time if (_rp.Time >= 0 && _rp.Time < Duration) { _audio.Render(_rp, myCanvas, _dspList, _audioRepeats); canvas.TimeMarker = myCanvas.TimeMarker; return(true); } return(false); }