@@ -93,6 +93,7 @@ export class GeneratedSurfacePlugin {
9393
9494 }
9595
96+ const { overlay } = this ;
9697 let res ;
9798 if ( this . _useEllipsoid ( ) ) {
9899
@@ -104,6 +105,37 @@ export class GeneratedSurfacePlugin {
104105
105106 }
106107
108+ if ( overlay ) {
109+
110+ const x = tile [ TILE_X ] ;
111+ const y = tile [ TILE_Y ] ;
112+ const level = tile [ TILE_LEVEL ] ;
113+ const range = this . _tiling . getTileBounds ( x , y , level , true , false ) ;
114+
115+ if ( overlay . hasContent ( range , level ) ) {
116+
117+ await overlay . lockTexture ( range , level ) ;
118+
119+ const texture = overlay . getTexture ( range , level ) ;
120+ tile . overlayRange = range ;
121+ tile . overlayLevel = level ;
122+
123+ if ( abortSignal . aborted ) {
124+
125+ overlay . releaseTexture ( range , level ) ;
126+ tile . overlayRange = null ;
127+ tile . overlayLevel = null ;
128+ return null ;
129+
130+ }
131+
132+ res . material . map = texture ;
133+ res . material . needsUpdate = true ;
134+
135+ }
136+
137+ }
138+
107139 return res ;
108140
109141 }
@@ -121,6 +153,19 @@ export class GeneratedSurfacePlugin {
121153
122154 }
123155
156+ disposeTile ( tile ) {
157+
158+ const { overlayRange, overlayLevel } = tile ;
159+ if ( this . overlay && overlayRange ) {
160+
161+ this . overlay . releaseTexture ( overlayRange , overlayLevel ) ;
162+ tile . overlayRange = null ;
163+ tile . overlayLevel = null ;
164+
165+ }
166+
167+ }
168+
124169 /**
125170 * Returns the cartographic coordinates for a given world-space position. "lat" and "lon" are assigned
126171 * to the target object.
0 commit comments