Mapping tiles into the virtual texture and loading vertices cause a slight pause while they block the GL thread, so I will build rate limiters into their classes. Right now the virtual tile map and shared vertex buffer can only be operated from the GL thread; they should buffer changes and submit them in reasonably-sized batches per frame.
Here are a few screenshots taken as chunks load around the origin:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRUtTNmLG2ajRFuJyRruod6kHjQDA1-KlU7I932EVghA1mNglGvP3yvTUHgsoqA2YGjJQxNO4IBSAg-7mqHSf8uVT5KQE3u7I1SI9IqjvvomvD6CFhbXil82znlhHMGQLHmmsx_JZ2Or91/s400/mvminer+is+loading+1.png)
mvminer has started loading
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisiYNZorHlcggU8_nwJYCytEh2IQOjgDmD6EGqS5S7fi7BYpY-ZuxyttaipSEJx8fCTPL_2divy418DjOwBuSv8Uo68Bn_5Kgs20TzhaGn26bsdUry9q7dvQSaXt1Zd81udMy2MTf8f7N8/s400/mvminer+is+loading+2.png)
oh my this texture generator is slow
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5xdKXDoJ_AQfgFPMdJYjmLd0np3_OQRBErb7oFRsVvucmbb2TzDqBQq7x_rMCfbzdOiB7y81NtQJl23fr8gLtP39oBSgKZvrV1rK5lIZui938QxPGWcg3NfBKrKzaO-rW974tPxaXwLq9/s400/mvminer+is+loading+3.png)
mvminer continues to load
As always in the first undesigned iteration, this implementation is a complete hack (the asynchronous jobs are all queued up on startup and aren't owned -- quitting before they finish causes a segfault as their working sets are reclaimed by the system).
Once the code is cleaner again I will need to start on a "loading manager" (not sure of the clearest name for it). This system will maintain a prioritized record of nearby chunks and, if they are loaded, their exposed tile counts. It will issue all of the load/save/map-tiles/unmap-tiles requests.