internal void ResetMergedMeshes() { if (MyLodMeshMergeHandler.ShouldAllocate(m_mergeHandler)) m_mergeHandler = AllocateMergeHandler(); if(m_mergeHandler != null) m_mergeHandler.ResetMeshes(); }
private MyLodMeshMergeHandler AllocateMergeHandler() { MyLodMeshMergeHandler mergeHandler; MatrixD worldMatrix = Base.WorldMatrix; Vector3D massiveCenter = m_massiveCenter; mergeHandler = new MyLodMeshMergeHandler(Base, MyCellCoord.MAX_LOD_COUNT, MergeLodSubdivideCount, ref worldMatrix, ref massiveCenter, m_massiveRadius, m_renderFlags); return mergeHandler; }
private MyLodMeshMergeHandler AllocateMergeHandler() { MyLodMeshMergeHandler mergeHandler; MatrixD worldMatrix = Base.WorldMatrix; Vector3D massiveCenter = m_massiveCenter; mergeHandler = new MyLodMeshMergeHandler(Base, MyCellCoord.MAX_LOD_COUNT, MergeLodSubdivideCount, ref worldMatrix, ref massiveCenter, m_massiveRadius, m_renderFlags); return(mergeHandler); }
internal void ResetMergedMeshes() { if (MyLodMeshMergeHandler.ShouldAllocate(m_mergeHandler)) { m_mergeHandler = AllocateMergeHandler(); } if (m_mergeHandler != null) { m_mergeHandler.ResetMeshes(); } }
internal MyClipmapHandler(uint id, MyClipmapScaleEnum scaleGroup, MatrixD worldMatrix, Vector3I sizeLod0, Vector3D massiveCenter, float massiveRadius, bool spherize, RenderFlags additionalFlags, VRage.Voxels.MyClipmap.PruningFunc prunningFunc) { m_clipmapBase = new MyClipmap(id, scaleGroup, worldMatrix, sizeLod0, this, massiveCenter, massiveRadius, prunningFunc); m_massiveCenter = massiveCenter; m_renderFlags = additionalFlags; if (spherize) m_massiveRadius = massiveRadius; const int mergeLodSubdivideCount = 3; m_mergeHandler = new MyLodMeshMergeHandler(Base, MyCellCoord.MAX_LOD_COUNT, mergeLodSubdivideCount, ref worldMatrix, ref massiveCenter, massiveRadius, m_renderFlags); MyClipmap.AddToUpdate(MyEnvironment.CameraPosition, Base); }
internal MyClipmapHandler(uint id, MyClipmapScaleEnum scaleGroup, MatrixD worldMatrix, Vector3I sizeLod0, Vector3D massiveCenter, float massiveRadius, bool spherize, RenderFlags additionalFlags, VRage.Voxels.MyClipmap.PruningFunc prunningFunc) { m_clipmapBase = new MyClipmap(id, scaleGroup, worldMatrix, sizeLod0, this, massiveCenter, massiveRadius, prunningFunc); m_massiveCenter = massiveCenter; m_renderFlags = additionalFlags; m_mergeHandler = null; if (spherize) m_massiveRadius = massiveRadius; if (MyLodMeshMergeHandler.ShouldAllocate(m_mergeHandler)) m_mergeHandler = AllocateMergeHandler(); MyClipmap.AddToUpdate(MyEnvironment.CameraPosition, Base); }
internal MyClipmapHandler(uint id, MyClipmapScaleEnum scaleGroup, MatrixD worldMatrix, Vector3I sizeLod0, Vector3D massiveCenter, float massiveRadius, bool spherize, RenderFlags additionalFlags, VRage.Voxels.MyClipmap.PruningFunc prunningFunc) { m_clipmapBase = new MyClipmap(id, scaleGroup, worldMatrix, sizeLod0, this, massiveCenter, massiveRadius, prunningFunc); m_massiveCenter = massiveCenter; m_renderFlags = additionalFlags; if (spherize) { m_massiveRadius = massiveRadius; } const int mergeLodSubdivideCount = 3; m_mergeHandler = new MyLodMeshMergeHandler(Base, MyCellCoord.MAX_LOD_COUNT, mergeLodSubdivideCount, ref worldMatrix, ref massiveCenter, massiveRadius, m_renderFlags); MyClipmap.AddToUpdate(MyEnvironment.CameraPosition, Base); }
internal MyClipmapHandler(uint id, MyClipmapScaleEnum scaleGroup, MatrixD worldMatrix, Vector3I sizeLod0, Vector3D massiveCenter, float massiveRadius, bool spherize, RenderFlags additionalFlags, MyClipmap.PruningFunc prunningFunc) { m_clipmapBase = new MyClipmap(id, scaleGroup, worldMatrix, sizeLod0, this, massiveCenter, massiveRadius, prunningFunc); m_massiveCenter = massiveCenter; m_renderFlags = additionalFlags; m_mergeHandler = null; if (spherize) { m_massiveRadius = massiveRadius; } if (MyLodMeshMergeHandler.ShouldAllocate(m_mergeHandler)) { m_mergeHandler = AllocateMergeHandler(); } MyClipmap.AddToUpdate(MyRender11.Environment.Matrices.CameraPosition, Base); }
internal static bool ShouldAllocate(MyLodMeshMergeHandler mergeHandler) { return(MyRenderProxy.Settings.EnableVoxelMerging && mergeHandler == null); }
internal static bool ShouldAllocate(MyLodMeshMergeHandler mergeHandler) { return MyRender11.Settings.EnableVoxelMerging && mergeHandler == null; }