ThinkGeo.Gpu 15.0.0-beta154. Thanks for the beta140–154 fixes — OffsetFromLine , underline/strikeout/Black, fillPattern , icon , DashArray.FromGeoPen and the visibility fix all work for us now. These are the remaining cases where we still have to switch the whole scene back to the classic renderer, or work around the SDK.
1. Area outline loses its pixel offset When an AreaStyle has XOffsetInPixel / YOffsetInPixel and its outline is translated as a separate line layer (outline wider than one pixel, dashed, or no fill), the translator passes 0, 0 as the line offset. The fill moves, the outline stays. No warning is reported. Ask: pass the offsets to the outline layer too, or report a warning.
2. Hatch pens are flattened A GeoPen with a GeoHatchBrush becomes a solid line in the hatch’s background colour. With a transparent background the line disappears. No warning is reported. Ask: either a warning like the one for area fills, or a pattern stroke.
3. Direction points, text masks, rotated labels The translator reports these as “no GPU translation”. Any layer using them sends the whole scene to the classic renderer. Ask: translations for LineStyle.DirectionPointStyle , TextStyle.Mask and RotationAngle . Masks (a filled box behind the text) are the most common one for us.
4. Changing the number of vector sources needs a new host SetStyleAsync refuses a style whose vector-source count differs from the one the map opened with ("[GpuRebind] refused: style declares N vector sources, map opened with M"). Adding or removing one translated layer therefore means rebuilding the host and reopening all readers. Ask: let a style add or remove sources on an open host, keeping the cached tiles of the sources that did not change.
5. VectorPmTilesGenerator is not safe to run twice at once The generator uses one static feature dictionary for the whole process. It is cleared at the start of each run and read without a lock during tile generation. Two generations in parallel corrupt each other. Our workaround: a process-wide gate so only one generation runs at a time. Related: the generation grid ends at zoom 19. Finer display scales overzoom the archive. Ask: keep the cache per generation, and allow zoom 20+.
Smaller notes:
- Parallel tile-cache generation (
Layer.GenerateTileCacheAsync) only clones layers that are closed. Documenting this would save others a search. - We still call
GdalManager.ConfigureGdal()/ConfigureOgr()at startup as the temporary fix for the GDAL crash you were working on. Is that fixed in a current beta, so we can remove the call?
