private void addCardsToPreview(MtgLayoutView view, List <Card> cardsToPreloadImage) { var pageSize = _scrollSubsystem.GetPageSize(view); int visibleRecordIndex = view.VisibleRecordIndex; bool endReached = false; bool startReached = false; int i = 0; while (true) { if (startReached && endReached) { return; } int maxPreload = Math.Min(_uiConfigRepository.Config.ImageCacheCapacity * 3 / 4 - pageSize, pageSize * 10); if (cardsToPreloadImage.Count > maxPreload) { return; } startReached |= !add(visibleRecordIndex - i - 1); endReached |= !add(visibleRecordIndex + pageSize + i); i++; } bool add(int j) { if (j < 0 || j >= view.RowCount) { return(false); } int handle = view.GetVisibleRowHandle(j); var card = (Card)view.FindRow(handle); if (card == null) { return(false); } cardsToPreloadImage.Add(card); return(true); } }
private static bool preload(List <Card> cardsToPreloadImage, MtgLayoutView view, int i) { if (i < 0 || i >= view.RowCount) { return(false); } int handle = view.GetVisibleRowHandle(i); var card = (Card)view.GetRow(handle); if (card == null) { return(false); } cardsToPreloadImage.Add(card); return(true); }