/// <summary> /// Try to get skinned vertices. Skinned vertices are copied from GPU. /// </summary> /// <param name="manager"></param> /// <param name="array">Vertex positions will be copied into this array</param> /// <returns></returns> public int TryGetSkinnedVertices(IEffectsManager manager, Vector3[] array) { if (Geometry is BoneSkinnedMeshGeometry3D skGeometry) { if (RenderCore is BoneSkinRenderCore skCore) { #if DX11_1 var proxy = new Render.DeviceContextProxy(manager.Device.ImmediateContext1, manager.Device); #else var proxy = new Render.DeviceContextProxy(manager.Device.ImmediateContext, manager.Device); #endif return(skCore.CopySkinnedToArray(proxy, array)); } } return(0); }
/// <summary> /// Try to get skinned vertices. Skinned vertices are copied from GPU. /// </summary> /// <param name="manager"></param> /// <returns>New array with vertex positions</returns> public Vector3[] TryGetSkinnedVertices(IEffectsManager manager) { if (Geometry is BoneSkinnedMeshGeometry3D skGeometry) { if (RenderCore is BoneSkinRenderCore skCore) { #if DX11_1 var proxy = new Render.DeviceContextProxy(manager.Device.ImmediateContext1, manager.Device); #else var proxy = new Render.DeviceContextProxy(manager.Device.ImmediateContext, manager.Device); #endif var array = new Vector3[skGeometry.Positions.Count]; if (skCore.CopySkinnedToArray(proxy, array) > 0) { return(array); } } } return(null); }