c3bb4207fb2a58064b937ba9fef1cc11852f7576
hiram
  Wed Mar 25 10:48:49 2026 -0700
allow trackDb entry to override the in-code defaults of the gcOnFly track refs #35958

diff --git src/hg/hgTracks/bigWigTrack.c src/hg/hgTracks/bigWigTrack.c
index 10471d972b5..1974f096599 100644
--- src/hg/hgTracks/bigWigTrack.c
+++ src/hg/hgTracks/bigWigTrack.c
@@ -431,30 +431,40 @@
 gc5BaseOnTheFlyLoadPreDraw(tg, fetchStart, fetchEnd, insideWidth);
 }
 
 void bigWigMethods(struct track *track, struct trackDb *tdb,
 	int wordCount, char *words[])
 /* Set up bigWig methods. */
 {
 bedGraphMethods(track, tdb, wordCount, words);
 track->loadItems = bigWigLoadItems;
 track->preDrawItems = bigWigPreDrawItems;
 track->preDrawMultiRegion = wigMultiRegionGraphLimits;
 track->drawItems = bigWigDrawItems;
 track->loadPreDraw = bigWigLoadPreDraw;
 }
 
+void gc5BaseOnTheFlyMethods(struct track *tg, struct cart *cart)
+/* Install on-the-fly GC computation methods on a track that was
+ *     loaded from trackDb.  Overrides the bigWig loadItems/loadPreDraw
+ *     so data is computed from genome sequence instead of read from a file.
+ */
+{
+tg->loadItems   = gc5BaseOnTheFlyLoadItems;
+tg->loadPreDraw = gc5BaseOnTheFlyLoadPreDraw;
+}
+
 struct track *gc5BaseOnTheFlyTg(struct cart *cart)
 /* Create an on-the-fly GC percent track computed directly from
  *     genome sequence.  Default visibility is dense; the cart
  *     override happens later in the getTrackList() visibility loop.
  */
 {
 struct track *tg = trackNew();
 struct trackDb *tdb = trackDbNew();
 char longLabel[1024];
 safef(longLabel, sizeof(longLabel), "GC FLY Percent in %s-Base Windows", gcOnFlyWinSize(cart));
 
 /* Fill in trackDb fields needed by wigCartOptionsNew and bigWigMethods. */
 tdb->track      = cloneString(GC_ON_FLY_TRACK_NAME);
 tdb->table      = cloneString(GC_ON_FLY_TRACK_NAME);
 tdb->type       = cloneString("bigWig 0 100");