|
There's a new build out for July 4: 9.0.182.2 Technically, it is a cutting edge build but it's also replaced the prior 9.0.182.1 base build on the downloads pages for both Release 9 and Viewer. Build 182.2 introduces a next generation rendering system for map windows (including windows for Maps, Drawings, Images and Labels) that provides "slippy pan", the ability to pan a window with new pixels smoothly replacing those being panned offscreen. This is an essential feature for aligning features interactively when panning. This thread would be a good place to discuss slippy pan effects as there is continued development work on the feature with additional optimizations planned for the next build (2-3 weeks). There's a Tools - Options toggle for turning on slippy pan diagnostics in the Log window that should be used for any reports. If you can reproduce a puzzling phenomenon, turn on the diagnostics toggle, reproduce the phenomenon, and then copy the relevant lines from the Log window to file as part of your report. Note that slippy pan is turned on only for map windows (drawings, images, labels, and, of course, maps). It is not yet turned on for in-frame panning within layouts. The Colors dialog has two notable additions that have been big wins with alpha testers: an Apply button that lets you see how changes made work in the subject window without leaving the dialog, and a Hue / Value slider swap that makes it easy to stay in Collapsed mode for a compact dialog if you prefer H/S mode (Microsoft style) for your primary control. The new build also fixes a number of bugs, some of which were truly exotic and very rare. A few have never been observed but were only detected through automated test suites that ran hundreds of thousands of Monte Carlo simulations on edge cases that normal use quite likely would never encounter. The next build is scheduled for 26 July 2026, but it may be issued sooner. Quite likely the differentiation into Base builds and Edge builds will be dropped for that release, with simply each build being issued both in a Windows Installer .exe version and a Portable .zip version. Plus builds are also likely to be dropped with the "plus" extras being issued as a .zip file anybody can download and unzip into their extras folder. If anybody really needs a separate "plus" build, please speak up. Following are initial release notes for build 9.0.182.2: NEW FEATURES * Slippy pan - Provides seamless, smooth panning. Previously, panning the display within a window moved the rendered rectangle for that display with blank margins filling in the regions left behind as the rectangle moved. With slippy pan there's an automatic overscan so regions outside the window viewport have already been rendered: when a click-and-drag mouse motion pans the view fully rendered pixels seamlessly and smoothly move into view from outside the viewport. It's still possible to pan so fast that screen rendering can't keep up with pan motion, in which case the system uses the previous default behavior. However, the new feature uses a variety of strategies to optimize pre-rendering so that when working with very large data where rendering and pre-rendering may take noticeable time those buffers that are most likely to be needed get pre-rendered first. Note: Keep in mind that slippy pan cannot make slow data sources fast. It still takes some time from slow sources (or from those which require a lot of compute time on slow machines) to fill in. Those will take longer to populate the overscan buffer that enables slippy pan effects. If you jump to a new location in a map with slow layers or on a slower machine and then immediately pan, the display will fall back to looking as it has in prior builds, where panning the view will bring as-yet unrendered margin into view. But in most cases for typical work (that is, not artificially frantic testing) given the speed of Manifold rendering the effect is seamless and smooth. * Now it's "Colors" - The name of the Select Colors dialog has been changed to "Colors." This avoids semantic conflicts with the "select" word in various translations to mean "selection" in the Manifold sense. default.ui.txt has been updated: Localization files should also be updated. * Alpha inverted - The meaning of Alpha in the Colors dialog has been inverted to align with the emerging consensus in desktop applications. An Alpha of 255 is now fully opaque, with an accompanying inversion of the gradient displayed in the vertical Alpha slider. Internal alpha handling remands unchanged. * Automatic control swaps - The Colors dialog automatically reconfigures between S/V and H/S primary displays to swap the H and V sliders so that in H/S mode the vertical slider is V (Value) and in S/V mode the vertical slider is H (Hue). That makes it possible to do full color selection in H/S mode even when the Colors dialog is collapsed to a smaller size. In prior builds with H/S mode on it was possible to pick Hue and Saturation directly from the large panel but to set Value the dialog had to be expanded to show the Value slider. * At last, Apply - An Apply button has been added to the Colors dialog. This allows applying the chosen color to see how it looks in the target component without leaving the dialog. * We want More... - SHIFT-clicking on a color well or a button in the Style pane jumps immediately to the More..., larger dialog if there is one for that item. Simple settings like size or rotation that don't have a More... option treat a SHIFT-click the same as a regular click with no SHIFT modifier. * Checkerboards for more dialogs - The North Arrow, Scale Bar, Legend, and Grid dialogs used by the Layers pane and in Layouts have been upgraded with checkerboard backgrounds to preview panels to better show partially transparent colors. Checkerboard backgrounds have also been added to Total Style dialogs used in various Info Pane - Style tab contexts. * Server hardened - Manifold Server has been significantly hardened against various attacks. There were no security issues involved with prior builds but the new hardening removes the possibility of performance loss from denial of service and similar attacks. * HTTP homelayer - A -homelayer option has been added to the HTTP server in Manifold server. The new option in the form -homelayer:component_name sets the component whose bounding box will be used for the initial view displayed by the default web page and for the view used by the Zoom to Fit button in the default web page. This makes it possible to create maps for use by the web server that may use very large layers even though the focus for the web site is a smaller area. For example, as matter of convenience a vector map showing features for an entire state can be used as a layer when the interest is just real estate offerings in a single town, and if the offerings drawing is specified by -homelayer the web site will launch showing the offerings layer and will not launch by showing the entire state. If the specified component does not exit or has invalid bounds, the system uses default behavior of zooming to the union of bounding boxes for non-web layers. Note that the union of all components having the same leaf name is used: Roads bounds are unioned with [Source]::[Roads] bounds. To use only one layer, give it a unique leaf name. In that example, using -homelayer:Roads will set the initial view the Zoom to Fit result, default /map//info bounds and also OGC WMS bounds. * Absolute or relative, your choice - References to DLLs in queries can now refer to the DLL using an absolute path or relative path. The prior system limited DLL placement to one of three root locations: 1. Install folder — directory of the running executable/DLL, 2. Common app data — C:\ProgramData\Manifold\v9.0, or 3. Local app data — %LOCALAPPDATA%\Manifold\v9.0 with the system searching recursively through subfolders of the above in 1, 2, 3 order to find the named .dll. The system now accepts absolute paths in the form C:\folder\file.dll or c:/folder/file.dll (it must have a / or \ after the c: drive designator). It also accepts relative paths like ~\folder\file.dll or ~/folder/file.dll where the root for ~ follows the default root order 1→2→3 specified above, first hit wins. * Synchronized to SCM - The Manage Services dialog has had a variety of small refinements done to ensure it always is synchronized to Windows Services Control Manager (SCM) truth. After adding a new service the row cursor stays on that new service. The cursor stays on the service that is being worked on (run, stop, edit, etc.) instead of jumping to the top of the display. New services appear immediately in their correct alphabetic order instead of requiring a Refresh or other action to jump to the correct location. A failed delete immediately shows services as stopped or stopping with no manual Refresh needed. Internal hardening has been added against various possible unexpected SCM states. * Options refurb - The Tools - Options dialog has been redesigned slightly to eliminate redundant headings. * Slippy options - Options settings to toggle Slippy pan and Slippy diagnostics have added to Tools - Options dialog. Slippy pan is ON by default. Slippy diagnostics, written to the Log window, are OFF by default but can be turned ON to see what's going on during Slippy pan. * Info - A new File - Info dialog provides the .map project file's full path, the size on disk and the last-saved date. The dialog uses Manifold's grid control to provide features like one-click Copy of the info. * Copy buttons for all - A Copy button has been added to the toolbar of all dialogs that use Manifold's grid control. This enables copying of multiple, selected rows to the clipboard. * More GDAL - This build extends GDAL support to version 3.13.x plus GISInternals builds (which use a generic, unversioned gdal.dll nomenclature). GISInternals GDAL distributions, currently at the 3.12.x level, are convenient because they can be easily installed with a single winget install command in PowerShell followed by a few quick updates to PATH settings. FIXES * (Fix) No black flash in the pan - The build quietly fixes a long-standing black-flash-on-rapid-pan bug (a completely different phenomenon from black rectangle blanking) that existed but was never reported in prior builds. It was discovered during slippy pan work but is independent of slippy pan. * (Fix) Transparency in colors works correctly in palette intervals - The bug affected use of partially transparent colors in thematic formatting. In prior builds when alpha values in colors were more transparent than halfway transparent (50% Opacity) the color could be rendered black with no transparency. The fix ensures all alpha values are rendered accurately. * (Fix) No extra Unicode characters from SPLIT COLLECT - A query using SPLIT COLLECT constructions could add extraneous Unicode characters to field names. * (Fix) Application.CreateTable() issue - Application.CreateTable() could work in a script but return NULL when the script became a dll. Now fixed. * (Fix) No garbage characters in labels from MapInfo imports - Imports of some MapInfo .tab files producing varchar text fields could show garbage characters after the text when those text fields were used to create labels. This bug involved an issue in the dataport as well as in a downstream module. The fix hardens the downstream module against similar issues that might arise in the future from any new dataports. * (Fix) JOINs on a TILE column no longer throw "Invalid Field" errors - Previously, a JOIN with a TILE column would throw an "Invalid field" error when the TILE table was on the right side of the JOIN. This was a deep bug going back to early builds and is now fixed. * (Fix) The HTTP server correctly renders BTREE-pyramid images - BTREE-pyramid (JP2-imported) images failed to render in the HTTP server web map and WMS server. They now render correctly. * (Fix) 0 bounds now display in HTTP server displays - In prior builds, a map consisting of a single component that has a bounding coordinate exactly equal to 0 would not appear in the web interface created by HTTP server. This bug usually manifested itself with non-nongeographic images (scanned blueprints, etc) which were imported into a project and assigned Pseudo-Mercator or some other convenient projection. The edge of such an image in Pseudo-Mercator is aligned to the 0,0 coordinate system origin so the image would not appear. If the map had other components, typically a drawing, the bug did not manifest because the bounding coordinates of such a vector component would be slightly non-zero and the union of all bounds was used in a calculation step, thus ensuring a non-zero bound would not trigger the bug. The bug has now been fixed and data with a true zero bound displays correctly. * (Fix) No orphaned services in Manage Server dialog - In the Manage Services dialog used by Manifold Server, deleting a running service will not result in any orphaned services. Instead, the service will be stopped first and then deleted. If the service cannot be stopped within a reasonable time cap (30 seconds) a "delete failed" warning appears indicating the service(s) that could not be deleted. * (Fix) No black rectangles - In past builds some sequences of rapid pans and zooms, especially with bigger data, could result in momentary blanking of the window to all-black or replacement by the rendered content rectangle with all black pixels. That was just a momentary flash and immediately replaced with rendered content, but the momentary flash was a bug in the rendering pipeline. Now fixed for both slippy pan and non-slippy pan regimes.
|