FedeX писал(а):...к тому же это не красиво выглядит - когда пользователь перемещает мышкой изображение, там откуда картинку убрали, что - просто пустое место? Мы делали когда-то как в гугломапсах, там на лету подгружаються кусочки, даже пока пользователь еще не отпустил мышку.
Координально переписал программу.
Теперь я двигаю не картинку, а на движение мыши просчитываю новые координаты тайлов. Плюс реализовал двойное кэширование картинок: в BMP (шт 30, иначе памяти много ест) для мгновенной прорисовки, и в PNG (штук 200 в виде TMemoryStream, а не TPortableNetworkGraphic, который занимает в памяти места больше чем TBitmap) что бы лишний раз не обращаться к диску.
Прорисовка происходит в Application.OnIdle
Итого: потребление памяти в моем варианте 20-26 мб в отличие от Sasplanet - 80мб
И в отличие от того же Sasplanet осутствуют "пустые места" при движении карты. Все подгружается до того, как пользователь отпускает мышь.