f1464a78ed45c0f2c2c47112d5ec0585e875208e
braney
  Tue Oct 30 15:01:29 2018 -0700
some optimizations to speed up trackDb loads on huge hubs

diff --git src/hg/hgTracks/hgTracks.h src/hg/hgTracks/hgTracks.h
index c6694a3..228b0ce 100644
--- src/hg/hgTracks/hgTracks.h
+++ src/hg/hgTracks/hgTracks.h
@@ -269,30 +269,32 @@
 
     // Fixed-width non-proportional tracks
     void (*nonPropDrawItemAt)(struct track *tg, void *item, struct hvGfx *hvg,
         int xOff, int yOff, double scale,
 	MgFont *font, Color color, enum trackVisibility vis);
     /* Draw a single Non-proportional fixed-width item.  Such as gtexGene.
      * This is method is optional, but if it's here
      * then you can plug in genericDrawItems into the drawItems,
      * which takes care of all sorts of things including packing. */
 
     int (*nonPropPixelWidth)(struct track *tg, void *item);
     /* Return the width in pixels of the non-proportional part of track, e.g. gtexGene graphic */
 
 
     struct slInt *labelColumns; /* The columns in a bigBed that can be used for labels. */
+    boolean subTrackVisSet;     /* have we calculated visibility on this subtrack */
+    boolean subTrackVis;        /* if we calculated it, what is it */
     };
 
 struct window  // window in multiwindow image
     {
     struct window *next;   // Next on list.
 
     // These two were experimental and will be removed soon:
     char *organism;        /* Name of organism */
     char *database;        /* Name of database */
 
     char *chromName;
     int winStart;           // in bases
     int winEnd;
     int insideX;            // in pixels
     int insideWidth;