88370fb4e8dfd1915a22d3d086a92060e7286b6c
braney
  Thu Mar 21 11:52:55 2024 -0700
bigDbSnp should use summary levels if load failed

diff --git src/hg/hgTracks/variation.c src/hg/hgTracks/variation.c
index 8c844ef..2d80ead 100644
--- src/hg/hgTracks/variation.c
+++ src/hg/hgTracks/variation.c
@@ -3013,41 +3013,48 @@
 /* Compare lf->filterColors to sort based on color -- black first, red last */
 {
 const struct linkedFeatures *a = *((struct linkedFeatures **)va);
 const struct linkedFeatures *b = *((struct linkedFeatures **)vb);
 const Color ca = (Color)(a->filterColor);
 const Color cb = (Color)(b->filterColor);
 
 return snp125ColorCmpRaw(ca, a->name, cb, b->name);
 }
 
 void bigDbSnpDraw(struct track *tg, int seqStart, int seqEnd,
                   struct hvGfx *hvg, int xOff, int yOff, int width,
                   MgFont *font, Color color, enum trackVisibility vis)
 /* Draw linked features items. */
 {
+if (tg->items == NULL && vis == tvDense && canDrawBigBedDense(tg))
+    {           
+        bigBedDrawDense(tg, seqStart, seqEnd, hvg, xOff, yOff, width, font, color);
+    } 
+else
+    {
     if (vis == tvDense ||
         (tg->limitedVisSet && tg->limitedVis == tvDense))
         {
         // Sort so that items with the strongest colors appear on top.
         slSort(&tg->items, lfColorCmp);
         }
     else
         {
         // Sort by position as usual
         slSort(&tg->items, linkedFeaturesCmp);
         }
     genericDrawItems(tg, seqStart, seqEnd, hvg, xOff, yOff, width, font, color, vis);
     }
+}
 
 void bigDbSnpMethods(struct track *track)
 /* Special load and draw hooks for type bigDbSnp. */
 {
 linkedFeaturesMethods(track);
 track->canPack = TRUE;
 track->loadItems = bigDbSnpLoadItems;
 track->drawItems = bigDbSnpDraw;
 track->drawItemAt = bigDbSnpDrawItemAt;
 track->itemColor = bigDbSnpColor;
 track->itemNameColor = bigDbSnpColor;
 track->itemName = bigLfItemName;
 }