private TerrainPatch CreatePatch( TerrainMaterial terrainMaterial, HeightMap heightMap, BlendTileData blendTileData, Rectangle patchBounds, GraphicsDevice graphicsDevice, TerrainPatchIndexBufferCache indexBufferCache) { var indexBuffer = indexBufferCache.GetIndexBuffer( patchBounds.Width, patchBounds.Height, out var indices); var vertexBuffer = AddDisposable(CreateVertexBuffer( graphicsDevice, heightMap, patchBounds, indices, out var boundingBox, out var triangles)); return(new TerrainPatch( terrainMaterial, patchBounds, vertexBuffer, indexBuffer, (uint)indices.Length, triangles, boundingBox)); }
private TerrainPatchComponent CreatePatch( TerrainEffect terrainEffect, EffectPipelineStateHandle pipelineStateHandle, HeightMap heightMap, BlendTileData blendTileData, Int32Rect patchBounds, GraphicsDevice graphicsDevice, ResourceUploadBatch uploadBatch, TerrainPatchIndexBufferCache indexBufferCache) { var indexBuffer = indexBufferCache.GetIndexBuffer( patchBounds.Width, patchBounds.Height, uploadBatch, out var indices); var vertexBuffer = AddDisposable(CreateVertexBuffer( graphicsDevice, uploadBatch, heightMap, patchBounds, indices, out var boundingBox, out var triangles)); return(new TerrainPatchComponent( terrainEffect, pipelineStateHandle, patchBounds, vertexBuffer, indexBuffer, triangles, boundingBox)); }