News Examples Documentation Download Buy Forum Contact
NOTE: This page is from an older version, see the latest version here.

Release Notes Version 1.20.9

krpano 1.20.9 (2020-12-21)

  • Fix: The Convert SPHERE CUBE Droplet didn't work when using JPEG images that contain JSON-encoded data stored as comment inside the image.
  • Fix: Playing .wav sound-files failed in Mac Safari 14.
  • Fix: Depthbuffer accuracy problems on Mac Safari when using depthmap panos and WebVR.
  • Fix: Updated krpano Tools NWJS runtime to 0.50.1.

krpano 1.20.9 (2020-11-19)

  • New: image.tileoverlap setting for using custom tiles that have tile-overlap-border around the tile-image.
  • New: The hotspot.getcenter(h,v,fov*) function uses a better algorithm for finding the hotspot center now (center of a bounding-box instead of point-averaging) and provides now optionally also the fov-coverage value of the hotspot.
  • Fix: Support the image.cubelabels setting also for the 'short' multi-res syntax.
  • Fix: Crash in the maketiles tool (bug from the first 1.20.9 build).
  • Fix: The size of hotspots without zoom=true or distorted=true in VR is now always be relative to fixed basesize of 1000 instead of be relative to the actual screen/window-size. This way the size of the hotspot don't change on different screen sizes.
  • Fix: Problems with the iPhone fullscreen mode and WebVR in non-Safari browsers like iOS Edge and iOS Firefox.
  • Fix: Depthbuffer accuracy problems on Mac Safari when using depthmap panos and postprocessing filters.

krpano 1.20.9 (2020-11-15)

  • New: Support the iPhone Fullscreen Mode also on other iPhone browsers that support out-scrolling the url bar (e.g. Firefox, Edge, DuckDuckGo, OperaTouch, ...).
  • New: contains() inline functions for expressions.
  • Fix: The hotspot onover event wasn't working in VR mode.

krpano 1.20.9 (2020-11-12)

  • New: App-based MAKE VTOUR Droplet as replacement for the command-line-based Droplets.
  • New: Pano-type Editor Mode in the VTour Editor: Interactively change the pano-type (sphere, cylinder, flat), adjust the horizontal field-of-view and vertical offset, set viewing and zooming limits, define north and level the image.
  • New: Chroma-Key-Masking for hotspots (Example).
  • New: Side-by-Side or Top-Bottom Alpha-Channel for hotspots. (Example).
  • New: Improved tour_edithelper.xml for the Abu Simbel Depthmap-Tour - it allows dragging and moving around the new added hotspots in 3D-space.
  • New: Custom CSS cursors for <layer> and <hotspot> elements.
  • New: padleft(), padright() and replace() inline functions for expressions.
  • New: xml.filecontent variable - it always contains the xml code of the last loaded xml file. Loading scenes or xml-codes via loadxml() will not change this variable.
  • New: autorun="onload" for <action> - this will run the action automatically every time a new pano gets loaded.
  • New: The default contextmenu design matches the system-design of newer MacOS versions now (for OSX 10 and OSX 11), including automatic support for light and dark mode.
  • New: The bgborder, bgroundedge and bgshadow settings can now be used also on image layer elements (previously only on container elements).
  • New: KEEPLOOKAT, KEEP3D and KEEPLIMITS flags to keep only the current looking direction, the current 3D-position or the current viewing limits when loading a new pano.
  • New: plugin[].triggerevent(eventname) action for processing all assigned events of an element (normals events and events added by addevent).
  • New: Support using addevent also for all events from all by default included krpano plugins.
  • New: fovtype=SFOV - let the field-of-view be based on the total screen size of the device. Could be used to use the same fov/zoom regardless how rotating the device or to be independent of the browser window size.
  • New: view.hfov, view.vfov, view.dfov, view.mfov, view.sfov variables for directly setting or getting the particular field-of-view based on the related fovtype.
  • New: combobox.xml - oninit event for dynamically styling the item, new itemlayer variable for direct access to the textfield layer element of the item.
  • New: Optional loaddone callbacks for the loadpano / loadxml / loadscene actions.
  • New/Experimental: includexml(url) and includexmlstring(string) actions - dynamically load/add xml content. This will not change the pano image or trigger any events. Only new added "preinit" actions will get called.
  • New: krpano.actions.asyncloop() can be called from Javascript and use Javascript functions as condition and callbacks.
  • New: roundval(var,-1) with -1 as decimal places parameter, then an automatic number of decimal places will be used, from 1 to 6, without unnecessary trailing zeros.
  • Change: The new control.mode setting merges and replaces the separate control.mouse and control.touch settings. When different control modes should be used, they should be set using the devices or device check settings. For backward-compatibility the old settings are also still supported and working.
  • Change: vtourskin.xml - remove the automatic bouncinglimits disabling for partial-panos. Instead the bouncinglimits behavior should be set manually, either using the krpano Tools VTour Editor or manually in the xml.
  • Change: The App/UI-runtime/framework of the 'krpano Tools' app (64bit version only) was updated to NWJS 0.50 and Chromium 87. This should provide a better GPU support and more stability on newer OSX versions. ARM Macs are also supported by this (but with the Rosetta 2 for the moment).
  • Fix: When using <include> urls with dynamic placeholders (e.g. like %$random%) the file could got requested multiple times.
  • Fix: Add iPhone Fullscreen Mode support for iOS 14.2.
  • Fix: makeScreenshot() sometimes fails on iOS 14.
  • Fix: Workaround for an iOS 14 gyroscope bug: the Device Orientation Event (used for Gyro control and WebVR) provides shaky / wobbling movement data in that iOS version, but the alternative Device Motion Event works, so this is used by default now for these iOS versions.
  • Fix: When using the view.oz setting (for dollhouse- or parallax-views) together with the view/fisheye-distortion, then the rendering and the hotspot-hit-testing were wrong.
  • Fix: When setting zorder of a layer back to null or to an empty string, the layer ordering didn't get updated.
  • Fix: When dynamically changing the image.voffset value of a multires-cylinder pano, the viewing limits weren't correctly updated.
  • Fix: hotspot.crop wasn't working for video-hotspots.
  • Fix: The mutesound() action wasn't working.
  • Fix: Avoid a wrong 'iOS Desktop-Mode' detection on very old Mac Safari versions.
  • Fix: In the Flash version contextmenu separators were wrongly added for items that are hidden by showif conditions.
  • Fix: Workaround for an IE11/Edge bug: when exiting the fullscreen mode via the contextmenu the viewer loses the keyboard-input-focus (and would require a click to get it again).
  • Fix: On touch devices WebGL-hotspots could get a wrong 'onover' event when behind a layer.
  • Fix: On WebGL-Textfield-hotspots without background (bg=false) but with borders, the shadows were rendered wrong (clipped).
  • Fix: The children layers of non-distorted CSS3D-hotspots were always scaled by the scale setting, even when scalechildren was set to false.
  • Fix: defaultskin.xml - the buttons can get wrongly placed when the viewer html element will be sized to 0/0.
  • Fix: combobox.xml - move the zorder of the element to top when opening the combobox to make sure beeing above other elements.
  • Fix: Makepano tool - the Photosphere XMP Exif metadata for partial-panos wasn't used in the automatic sphere-to-cube conversion and the viewing limits based on that data weren't written to the xml when not using the sphere-to-cube conversion and when the hfov was 360.
  • Fix: Makepano tool - spherical stereo-panos were wrongly written as cylinder panos into the xml when converttocube is disabled.
  • Fix: Makepano tool - avoid crashing or a wrong xml output (invalid prealign and hlookat values) when using input-images with an invalid/broken Ricoh Theta EXIF metadata.

krpano 1.20.8 (2020-09-15)

  • New: Experimental support for using textured 3D-Models instead of depthmapped-panoramic images (Example). Such 3D-Models could be generated using Blender and the PanoCamAdder Add-on (or any other 3D-Modeling software). Potential usage cases would be better and more complete 'Dollhouse views', nicer 3D-scene-transitions and eventually also a mixed display together with a higher-resolution panoramic image.
    Note: the details, xml/usage-API and performance of that feature is still work-in-progress and will change with the next releases.
  • New: Support also the Wavefront OBJ file-format for Depthmap 3D-Models. It is similar to STL, but additionally also supports texture-mapping information.
  • New: Support RGB-encoded 16- or 24bit depthmap images for more precision (Feature Request, Example).
  • New: Special import settings for Depthmap 3D-Models: depthmap.axis, depthmap.cull and depthmap.center. They can be used to align the 3D-Model correctly for usage inside krpano. These settings work for STL, OBJ and DEPTH files and replace the previously undocumented and STL-only stlaxis, stlscale, stlmove and stlrotate settings.
  • New: depthmap.waitforload setting to tell the viewer to wait with the rendering/displaying until the depthmap is loaded and ready. Without that setting the pano would be shown in spherical or cubical projection until the depthmap is ready.
  • New: Improved xml file loading performance: <include> files will be loaded in parallel and duplicated load requests automatically be merged and cached. With this the startup time will be reduced, especially when including a lot additional xml files.
  • New: WebVR Zooming Plugin: webvr_autozoom.xml - just include it and automatically get zooming support in VR (Example).
  • New: A setting to customize the user control friction stop/cutoff-speed: control.frictionstop That setting is a relative factor that defines at what movement speed the movement should completely stop. Additionally the default value for this setting has been reduced, in previous versions it was 0.04, now it is 0.01, that means a slightly smoother fading out of the movement.
  • New: Support external mouse control on touch devices (iOS 13.4+ and Android). Can be optionally disabled by the touchdevicemousesupport setting.
  • New: isset() and isvalue() expression functions for easier checking if a variable is existing and if its value is not an empty string.
  • New: Support the 3D translations (image.ox/oy/oz, view.tx/ty/tz/ox/oy/oz, hotspot.torigin/tx/ty/tz) also fully for CSS3D hotspots.
  • New: Improved fake 'Desktop-Mode' detection of the latest mobile browsers (iOS Safari, Android Chrome, Android Firefox).
  • New: Support the webvr_highrefreshrate and webvr_foveationlevel settings also for the WebXR API. Additionally there is a new webvr_ca_correction settings to optionally enable also a CA-Lens-Correction for WebXR API.
  • New: vtourskin.xml - add scene thumbnails only when thumburl is set and when skipthumb=true is not set. Can be used to skip certain scenes for being shown in the thumbnail-images-bar.
  • Change: The xml.scene variable now always contains the name of the loaded scene instead of the value the loadscene action was called with. Previously it could have been also the index of the scene.
  • Fix: The onstart event was not called when using scene.autoload.
  • Fix: The loadstate value and the blending start when loading a pano-video was wrong. The viewer already blended to the pano-video even before the video was actually loaded.
  • Fix: In 'follow' control mode clicking on layers could have initiated an unwanted movement in some cases.
  • Fix: The size of WebGL hotspots was wrong when using zoom=false and non-zero view.oz values.
  • Fix: Support detecting the iOS Desktop Mode also with iOS 14.
  • Fix: Spheretocube & Makepreview tool - support single-channel grayscale images as input.
  • Fix: krpano tools - on OSX 'kmem' folders were sometimes wrongly created.
  • Fix: vtourskin.xml - the skin_hotspotstyle and skin_tooltips styles use independent events by using addevent to allow adding own events.
  • Fix: vtourskin.xml - use isvalue() to allow using the value "0" for linkedscene.

krpano 1.20.7 (2020-05-26)

  • A Minor Bugfix- and Improvement-Release.
  • New: Avoid the creation of temporary files during the sphere-to-cube conversion on smaller input-images for a slightly faster pano building. Adjustable by the new converttocubemaxwidth_inmem setting.
  • New: <include> elements inside <scene> elements will be not resolved and loaded on xml loading, but later when loading the actual scene. This will speed up the startup-time when having a lot of scenes with <include> elements inside them.
  • New: Enable the Fullscreen Mode support for newer iPadOS versions.
  • New: Automatically internally downscale hotspot images that are too large for the current system. A warning will be shown in the krpano log when this happens. For manual control to avoid downscaling and directly loading a smaller image instead, there is the new device.maxtexturesize variable.
  • New: hotspot.borderhittest setting for optionally also using the border-line of polygonal hotspots for hit-testing.
  • New: Updated Postprocessing Demo: Popups with Background-Blur example - optionally add a close button to the popups and automatically close them when loading an other pano/scene.
  • Fix: WebVR - wrong (too small) 'stage' size when using the WebXR API and the latest Oculus Browser version (9.1). This browser version wasn't resizing the WebGL canvas to the requested pixelsize and this was affecting the multiresolution-level selection (too low-res view in some cases) and the size of non-distorted hotspots.
  • Fix: WebVR - rendering problems during pano-blending and when using post-processing in VR in the Oculus Browser when using the WebXR API.
  • Fix: WebVR - depthmap_navigation.xml - support VR controllers with thumbsticks when using the WebXR API.
  • Fix: WebVR - optionally support also the WebXR API in the Firefox Reality browser.
  • Fix: WebVR - support the WebXR-emulator-extension.
  • Fix: Catch and handle JS errors when trying to detect WebXR support in an iframe that doesn't allow WebXR usage.
  • Fix: Scrolling the krpano log was not possible on 'Notch'-iPhones with iOS 13.4.
  • Fix: Opening the contextmenu by long-taps wasn't working sometimes when using capturetouch=false on Android devices.
  • Fix: When using the setting safearea=false on children layers, their position was wrong.
  • Fix: When changing the display.safearea setting from test:... back to auto, the pano-canvas position wasn't correctly updated.
  • Fix: The onautorotateoneround event was using a wrong hlookat position when loading an new pano/scene without the KEEPVIEW flag within it.
  • Fix: The krpano Array getItem() function returns now null instead of the first array item when calling it with 0 or '' as parameter.
  • Fix: The loading state reported by the loadstate variable was wrong when using cubestrip or single-resolution sphere panos.
  • Fix: Makepano tool - The embedded sRGB ICC-color-profile was broken when using the NORMAL droplets.
  • Fix: Makepano tool - When using the NORMAL droplets with small images, then the output cube-images were sometimes wronlgy upscaled to the maxcubesize size.
  • Fix: Makepano tool - Generate spherical preview images instead of cubical ones (cubestrip) for sphereical panos.
  • Fix: Panotour Pro Update Package - remove several outdated device specific checks and workarounds from the Panotour Pro xml templates. This should fix some sound, video and web-content-hotspot problems on iOS devices.

krpano 1.20.6 (2020-04-15)

  • A Minor Bugfix-Release.
  • Fix: WebGL-rendered hotspots with very small scale values failed hit-testing (and didn't respond to events like clicking or hovering).
  • Fix: The onhover events added by addevent only worked when the element itself also had an onhover event.
  • Fix: The view.dir direction vectors are now also respecting the view.camroll rotation. This also affects the correct 3D location of 3D sounds when the view is rotated by the camroll setting, e.g. when using the gyro or when tilting the head left/right in VR.
  • Fix: The view.camroll rotation is also respected by the users panning controls and the viewing range-limits now.
  • Fix: The Oculus Browser will be always detected as 'Mobile VR' browser (by device.mobilevr or webvr.isvrbrowser) even when in Desktop Mode.
  • Fix: Allow the browsers default handling (panning, zooming) when using capturetouch=false.
  • Fix: Scrollarea Plugin - using overscroll=0.0 caused some unexpected behaviors.
  • Fix: WebVR Plugin - restore flat panos back to hfov=1.0 when exiting the VR mode.
  • Fix: The 64bit version of the krpano Testing Server requiered some MSVC runtime DLL files to be installed on the system. Now all is static linked and no external files are required.
  • Fix: Makepano tool - the EXIF GPS information couldn't be loaded from some images.
  • Fix: The Convert SPHERE CUBE Droplet didn't work when the input image contained embedded comments with '\#' text-parts.
  • Fix: vtour.xml - missing autotour setting.
  • Fix: vtourskin.xml - no gyro icon when starting with little-planet-intro.
  • Fix: vtourskin.xml - allow bouncinglimits controls for flat-panos.

krpano 1.20.5 (2020-03-05)

  • A Minor Bugfix- and Improvement-Release.
  • New: -license=### parameter for the krpano tools: directly use the given license code and don't register the license on the system (could be used on server systems).
  • New: -needlicense parameter for the krpano tools: the krpano tools will stop with exit/return code 1 (typically means error) when there is no valid license available.
  • New: Optional toggle parameter for the showlog() action.
  • New: autorotate.oneroundrange setting for using a custom 'range' for an autorotation-round.
  • Fix: The new follow pano-dragging control mode wasn't supported on touch-devices.
  • Fix: Fully support nested styles - a <style> element can have a style attribute too.
  • Fix: The content-dependent sub-division of depth-geometry data was only done for stl files, but missing for depth files.
  • Fix: The STL-to-DEPTH converter was using a fixed number precision, now the precision is based on the actual data.
  • Fix: vtourskin.xml - use the autotour autorotate events only when the skin_settings.autotour setting is actually enabled (to avoid interference with custom autorotate usages).
  • Fix: vtourskin.xml - using the littleplanetintro disables control.bouncinglimits setting.
  • Fix: Gyro/WebVR - in iOS 13.4 beta / Safari 13.1 the DeviceMotionEvent is broken and it is unclear if Apple will fix that. Therefore the DeviceOrientationEvent, which is working, will be automatically used as alternative instead on the related systems.
  • Fix: WebVR - when the setting mobilevr_sensor=0 was used, then entering the VR mode was working only on the first time.
  • Fix: Tab-characters in the krpano log were wrongly displayed as several '&nbsp;'.
  • Fix: Bingmaps Plugin - the mouse-wheel-zooming was wrongly centered.
  • Fix: Googlemaps Plugin - UI buttons from the Googlemaps API itself were not working/touchable on iOS.
  • Fix: Makepano tool - the EXIF parsing of the Ricoh Theta heading value failed in some cases.
  • Fix: Custom Tile-URLs example - the customParseTilePath() function wasn't adding the baseindex to the level-index. This was corrected previously in the viewer and now also the example was adjusted for that correction.

krpano 1.20.4 (2020-02-04)

  • A Minor Bugfix-Release.
  • Fix: Panos with a preview-pano-image in spherical format got a wrong maxpixelzoom limitation in some cases (a bug only in version 1.20.3).
  • Fix: Some combination of using different pano-types for the preview-pano-image and the main-pano-image were not working.
  • Fix: Missing onpreviewcomplete event when using a preview-pano-image in spherical format together with non-tiled spherical pano-image.
  • Fix: The zero-padding of the level-index doesn't match between the xml and the generated tile-names when using more then 9 resolution levels and the new shorter xml syntax.
  • Fix: Avoid a unintentionally triggering of the log-opening touch-gesture on small or hidden viewer windows. Additionally the log-opening touch-gesture can be also disabled with the logkey=false setting.

krpano 1.20.3 (2020-01-28)

  • A Minor Bugfix- and Improvement-Release.
  • New: Improved VR Support:
    • WebXR API support - additional to the WebVR API now also the WebXR API is supported. The usage of the WebXR API can be controlled by the new webxr embedding setting.
    • New webvr_highrefreshrate and webvr_foveationlevel performance tweaking settings for Oculus Go and Quest.
    • Updated Cardboard Device Parameter Database (DPDB).
  • New: follow pano-dragging control mode - in that mode the view will smoothly follow where the user will drag the view (Example).
  • New: The tour_testingserver offers a new -url=... parameter for setting a custom startup url (relative to the server root).
  • New: It's now possible to define an optional rendering callback for post-processing shaders. It will be call every time before processing an shader and can be used to update shader settings depending on the current state.
  • New: image.crop setting for dynamically using only a part of the input pano image or video.
  • New: invert setting for the snow plugin, e.g. for a bubbles effect.
  • New: display.nofullscreenfallback setting for disabling the krpano no-fullscreenmode-support fallback solution.
  • New: adjust360() action for getting the shortest 360-around way from one horizontal position to another one.
  • New: events.onframebufferresize event.
  • New: -demo flag for the protect tool for generating demo-mode viewer files even when being registered.
  • Change: MAKE VTOUR (VR-OPT) droplet - load the special VR images already on startup and not later when entering VR mode on dedicated VR devices (like the Oculus Go/Quest).
  • Change: vtourskin.xml - switch faster to the special VR images when entering VR mode, don't wait until they are fully loaded.
  • Change: vtourskin.xml - allow selecting the new follow control mode.
  • Change: Updated splitscreen example - allow also to view only the left or right images.
  • Fix: The 'krpano Tools' app was broken in the previous Linux versions.
  • Fix: Cubestrip preview-pano-images were not shown when using spherical or cylindrical multires-panos.
  • Fix: Spherical preview-pano-images were not supported.
  • Fix: The moveto control speed was wrongly slightly depending on the current stagescale setting, now it is independent.
  • Fix: The mouse/touch controls were partially not working in older IE11 versions when using touch-screens systems.
  • Fix: vtourskin.xml - the skin settings thumbs_opened=true and littleplanetintro=true were not working together, the thumbs were not shown after the intro.
  • Fix: When using custom levelsizes for the multires tile generation, the tile-index zero-padding of the tile-filenames was depending on the size of the input image and not on the custom levelsizes.
  • Fix: When using custom levelsizes for the multires tile generation, the level order was wrongly inverted.
  • Fix: Soundinterface Plugin - update to howler.js v2.1.3, that fixes 3D sounds in Chrome when using the panningmodel settings 'equalpower' or 'HRTF'.
  • Fix: Soundinterface Plugin - accessing sound[name].position wasn't working correctly.
  • Fix: Soundinterface Plugin - getting the value of sound[name].volume wasn't correct until the sound has been loaded.
  • Fix: Soundinterface Plugin - getting the value of sound[name].muted was wrong.
  • Fix: Soundinterface Plugin - the initial sound volume could be wrong in some cases.
  • Fix: The view.rx / view.ry settings were not used on CSS3D-rendered hotspots and non-distorted WebGL-rendered hotspots got wrongly distorted.

krpano 1.20.2 (2019-10-15)

  • A Minor Bugfix- and Improvement-Release.
  • New: Offer 32bit Windows versions again. In the 32bit version the krpano Tools application is additionally also based on an older NWJS version for better compatibility with older systems.
  • New: A simple Autotour/Autoplay feature in the vtourskin.xml. Enable it by setting skin_settings.autotour in the tour.xml to true.
  • New: Javascript-Sync-Example - Synchronize two krpano viewers using the Javascript Interface. Made for very easy usage - just include the sync.xml and done.
  • New: display.customFullscreenElement setting for using a custom HTML element as Fullscreen element.
  • New: Support generating Panotour Pro compatible viewer files in the Protect Tool.
  • New: Support get(var) also inside expressions.
  • Fix: Calling events.dispatch(...) wasn't working inside layer/hotspot event-calls.
  • Fix: The Encrypt Tool was not working correctly on xml files that contain xml-comments.
  • Fix: The Panotour Pro installation detection wasn't working when using a custom 'Documents' folder path on Windows systems.
  • Fix: The contextmenu item separators with the settings 'both' or 'below' were sometimes shown even when the showif condition of the related item would be false.

krpano 1.20.1 (2019-10-02)

  • A Minor Bugfix- and Improvement-Release.
  • Update Support for Panotour Pro.
  • New: Improved Directional 3D Sound support:
    • A a new and Browser-independent mode for Directional / 3D Sounds is used now.
    • It fixes wrong located 3D Sounds and improves cross-browser/cross-device support.
    • Additionally there is a new optional range setting for reducing the sound volume when looking away from a sound source.
    • New panningmodel setting for selecting the method for the 3D spatialisation algorithm.
    • New Directional 3D Sound Example.
  • New: Support 'padded tiles'. That are tiles at the image-edges that were padded to the full-tilesize. Can be helpful for using tiles from other tile-providers.
  • New: Expose the current loading state as image.loadstate variable. Checking that state allows making High-resolution screenshots - Updated Makescreenshot Example.
  • New: Add the parsepath() inline-function for parsing url-placeholders inside expressions.
  • Change: Don't send overwriteable ([OW] prefix) log-messages to the browser console (for better performance when doing a lot of logging).
  • Fix: The sphere-to-cube conversion hangs/freezes on large images.
  • Fix: Support Samsung devices with varying screen-resolutions in MobileVR/Cardboard mode. This is done by a new internal database that directly stores the physical screen-sizes. Additionally there is a new xml-based mobilevr_device_database (defined in the webvr.xml). That database allows an easy custom adding or editing of devices. To control which databases should to used be there is a new mobilevr_database_support setting.
  • Fix: The url placeholders were not working in short-multires-syntax image paths.
  • Fix: The device.mobile/tablet/desktop settings were wrong in iOS 13 Desktop Mode.
  • Fix: Mark several CSS properties of the krpano log with 'important' to avoid that they might getting overwritten by global CSS styles.
  • Fix: There could be a Javascript-crash when calling loadpano() from JS with OPENBLEND blending very early at startup.
  • Fix: Support multiple ! not operators in expressions (e.g. !!var).
  • Fix: The sounds kept playing when removing the viewer.
  • Fix: Custom soundinterface rootpath paths work now also again without the need for a trailing slash '/' character.
  • Fix: The Encrypt Tool was crashing on xml files that contain the xml-comments end-tag --> without the beginning-tag <!--.
  • Fix: The hotspot hovering wasn't working in the Edge browser when used on devices with touch-screens.
  • Fix: The Update Tool didn't add the new license information.
  • Fix: Avoid a Javascript error when unloading the viewer in the onexitvr event.
  • Fix: Black screen when changing the video-source of a pano-video from a power-of-two-sized video-resolution to a non-power-of-two-sized video-resolution.

krpano 1.20 (2019-09-02)

  • New version number 1.20, no 'pre-release' / 'pr' state anymore.
  • The previous krpano-license and the krpano-maps-plugin-license were merged into one new single license. Additionally the new license offers also new features. Upgrading is possible here. Old licenses still fully work, but only without the new features.
  • New support for Multi-Resolution spherical and cylindrical panos (with any field-of-view, 360-around or partial-panos). Optimized for image-quality and rendering-performance.
    Especially very suitable for very large panos (Gigapixel and up) to avoid the need to convert to cube and for partial-panos.
  • New support for Depthmaps for adding 3D-depth to panoramic images. Allows 3D-stereo-depth without the need for stereo-images, post-perspective changes / 3D-movements, 3D-transitions between panos. Easy to use tools for creating the depthmaps are also available.
  • Much improved VR-Support: 6DoF positional-tracking, VR-controllers, improved devices support, faster Cardboard rendering. All fully customizable.
  • Polygonal hotspots rendering via WebGL: stereo and VR-support, faster rendering.
  • Improved cross-browser / cross-device mouse-wheel and touch-pad support - get the same zoom-amount and zoom-speed on all systems.
  • HTTPS support for the krpano Testing Server.
  • Many device- and browser-support updates.
  • New and slightly updated and restructured web design.
  • The download packages include now also a full offline documentation.
  • Only 64-bit versions for Windows by default. Technically 32-bit versions would be still easily possible, but normally there should be no need for them anymore. But if there is a need, then on request it would be still possible to provide 32-bit versions.
  • On Mac OSX all applications are now also available as 64-bit version.
  • All Windows executables are now code-signed.

embedpano (docu)

  • Change: The mobilescale setting is 1.0 by default now.
  • Change: The WebGL stencil and depth settings are enabled by default now. They are requiered for correct depthmap- and polygonal-hotspot rendering support.
  • Change: The WebGL antialias setting is not-set/undefined by default now. In this case the viewer tries to automatically decides which setting would be the best for the best performance on the current system.
  • Change: Do the local-file-access tests on the given xml file (instead of on the html file) when there is one. When there is no xml file set at startup, check inside the viewer the first loaded xml file for local-file-access problems and report back to the embedding script.
  • Fix: When using localfallback=none skip the local-file-access test.

krpano Viewer

  • New: Support for multi-resolution spherical and cylindrical pano-images in HTML5 (requires WebGL support from the browser).
  • New: Dedicated flat-pano support (flat = rectilinear-projection pano-images). By using the new <flat> image declaration element. Supports any field-of-view coverage, also larger than 1.0. For single- and multi-resolution.
  • New: Short-xml-syntax for multi-resolution images (optional, enabled by default):
    • Just one multires attribute with all size information instead of several <level> elements.
    • Additionally also autodetect the image type also for multires panos, no need for setting the pano-type explicitly anymore.
  • New: Depthmap support:
  • New: 3D-Movement / 6DoF support:
  • New: Polygonal hotspots rendering via WebGL.
    • Allows stereo- and VR-support.
    • Allows zorder- or depth-sorting together with image hotspots.
    • Faster rendering performance.
    • New hotspot[].subdiv setting for performance control. Enabled allows distorted viewing projections, disabled provides faster startup (when using many large polygons).
  • New: iOS 13 support / Improved iOS support
  • New: Improved Android Chrome fullscreen mode support (depending on the actual Chrome version use the one or the other methods to get a real fullscreen view).
  • New: Improved cross-browser / cross-device mouse-wheel support - get the same zoom/scroll-amount and zoom-speed on all systems.
  • New: Support 2-finger gestures on touchpads (when the browser supports it).
  • New: Support dynamic changes of the image.hfov / vfov / voffset values in HTML5 (needs an updateobject() call for applying the updated values).
  • New: Multi-Frame multi-resolution support - use several frames and change the current frame by the image.frame setting. Only basic support at the moment, not optimized for preloading.
  • New: view.rx / ry settings for adding an additional viewing rotation. Can be used for a follow-mouse effect.
  • New: image.stereooffset setting for adjusting/aligning stereo images.
  • New: Improved debugging / logging:
    • Improved log console: faster, html-support, clearable, merge duplicates lines.
    • The tilde-key will be used now as log open/close key (instead of the 'O' key).
    • New debug/command input field in the log - activate by shift+tilde-key when the debugmode is enabled and the log is open. Can be used to show or change variables and to call actions.
    • New debugjsactions a and debugjsplugins settings to allow debugging Javascript actions and plugins in the browser (errors will be not captured by krpano).
    • New debugkeys setting for enabling/disabling the debugging-keys that are available when the log is opened.
    • The trace action support several tags for output control: [HTML] for output html code, [OW] for making the current line overwritable by the next trace, [CLEARLOG] for clearing the log, [MAXLINES=nn] for setting the maximum lines to keep in the log.
  • New: Provide several Inline Functions inside expressions.
    • They can make code easier and shorter to write.
    • Extendable by adding own Javascript functions to the new inlinefunctions object.
  • New: Support Data-Urls everywhere - with plain-text and base64 encoding.
  • New: Second inbetween Postprocessing shader step - allow postprocessing after the pano-rendering but before hotspot-rendering. E.g. for blurring only the pano in the background, but not the hotspots above. See krpano.webGL.ppShaderArray2 for more.
  • New: Several rendering performance improvements.
  • New: Faster viewer startup, compile the internal WebGL rendering shaders only on first use and cache already compiled shaders.
  • New: Improved pano loading state handing - never blend before having a full filled view.
  • New PRELOAD flag for loadpano/loadscene - load the full resolution of the next pano before blending to it.
  • New: Provide an .addevent attribute postfix and an addevent() function for adding additional/mulitple events. Can be used in styles to avoid conflicts when using the same events.
  • New: Type definitions for attributes in the xml.
  • New: Can merge styles: <style name="style2" ... style="style1" />
  • New: %VIEWER% and %ROOT% url-placeholders, same as %SWFPATH%.
  • New: Additional device detection:
  • New: The addlayer / addhotspot actions can use 'auto' as variable-name for an automatic-generated name.
    • Additionally the second parameter can be used to create a variable pointing to the new created layer or hotspot.
    • When called from Javascript the new created layer or hotspot object will be directly returned.
  • New: renderloop, stoprenderloop actions for running code every frame.
  • New: txtjoin action for joining several variables together as text, as direct opposite/reverse to the txtsplit action.
  • New: array.createItem / array.createarrayitem - support 'auto' for an automatic name.
  • New: array.insertItem / array.insertarrayitem - insert a new item at a given index.
  • New: Use '$' as prefix for variables in expressions to avoid any type-conversions.
  • New: uint (unsigned-integer) data-type support for def() and multi-set() actions.
  • New: spheretospace and spacetosphere actions for converting between spherical and 3D-positions.
  • New: scene[].autoload for automatically loading a scene on startup.
  • New: display.surfacesubdiv setting for adjusting rendering accuracy and performance.
  • New: layer[].hitx / hity - the 'hitting'-position on the layer when hovering or pressing it.
  • New: hotspot.hitx / hity / hitd - the 'hitting'-position on the hotspot when hovering or pressing it. With 3D-distance and VR-controller support.
  • New: hotspot[].oref - apply the ox/oy translation before or after the rx/ry/rz rotation.
  • New: hotspot[].prealign - apply image.prealign also to the hotspot.
  • New: hotspot[].rotationorder - define the order of the rx / ry / rz rotations.
  • New: hotspot[].torigin=view|world|image
  • New: hotspot[].point[].ath/atv is a getter/setter for tracking changes
  • New: Support hotspot[].depth also for polygonal hotspots.
  • New: hotspot[].borderzoom - for changing the border-line-width of polygonal-hotspots on zooming.
  • New: Support changing the bgcolor setting anytime (and not only on startup).
  • New: control.invert setting for inverting the control panning direction.
  • New: control.disablewheel setting for disabling the mouse-wheel support.
  • New: view.dir - the current viewing direction as 3D-vector.
  • New: display.hotspotworldscale setting for scaling all hotspots together.
  • New: linkeventscope() action for linking the current local scope to the scope used in the layer/hotspots events.
  • New: Support direct access to Javascript Array data structures.
  • New: jsget / jscall() - provide the 'caller' object inside the Javascript code.
  • New: asyncloop() support using Javascript functions as actions.
  • New: The getlooktodistance() can be directly called from Javascript when using null as result parameter.
  • New: krpano.customParsePath(path) - API for custom path parsing.
  • New: krpano.customParseTilePath(path) - API for custom tile-path parsing.
  • New: An optional name for shaders in the createPostProcessingShader.
  • New: krpano.spheretospace and krpano.spacetosphere functions for converting between spherical and 3D-positions.
  • New: Allow touch-position-tracking (mouse.x/y) also for out of area (e.g. parent=STAGE) elements.
  • New: Support the 'inverted' mouse-wheel scrolling on Mac OSX.
  • New: Render the demo logo by WebGL now, provides stereo/vr support.
  • New: Handle WebGL context loses - unload the viewer and show a fatal error message. Can be customized by using the onxmlerror event.
  • Change: The previously experimental view.tx / ty / tz settings are now fully supported and working everywhere, but their signs and order had changed (to use the same coordinate system everywhere).
  • Change: Remove the fixed 4096px maximum texture-size limitation for non-desktop devices. Now use the maximum texture-size reported by the browser. Larger single-images are automatically downscaled.
  • Change: Inside the jsget / jscall() Javascript code provide the full-access 'krpano interface' object instead of the limited 'js interface 'object.
  • Change: The moretweentypes plugin now integerated in the viewer.
  • Change: The contextmenu.item[].separator setting is now a string can be also 'below', 'above' or 'both' for better customizing.
  • Change: Don't set device.safari=true for the iOS Chrome browser, set device.chrome=true instead.
  • Change: Blacklist the fullscreen-mode support for iOS12+ iPads. In the new iPad fullscreen-mode no swipe-down events are not possible.
  • Fix: Automatically disable WebGL antialias for Intel GPU when using HiDPI display for better performance.
  • Fix: Textfields - check the bgborder, bgshadow, txtshadow settings for valid data types.
  • Fix: hotspot.fillcolor=0, fillalpha=0, borderwidth=0, bordercolor=0, borderalpha=0 were not working as initial values.
  • Fix: Workaround for a Safari WebGL alpha-blending bug (the webpage background color is visible in alpha-blended elements).
  • Fix: When calling loadscene(0) the xml.scene variable hasn't been updated.
  • Fix: Updated touch-support for the latest Chrome, Edge and Firefox browser versions.
  • Fix: Avoid Firefox warnings when drawing pano wireframes.
  • Fix: Use display.autofullscreen only for full-page-websites.
  • Fix: Workaround for the display.autofullscreen fullscreen-exit bug where the browser leaves a black bar at the bottom.
  • Fix: When the preview-image gets loaded slower than the pano-image itself, it can wrongly overwrite the pano size information and wrongly limit the zoom this way.
  • Fix: Suppport touch control in Firefox mobile simulator.
  • Fix: Capture exit fullscreen promise errors.
  • Fix: Don't capture mousedown events in VR-Cursor control mode.
  • Fix: Add a workaround for the new iPhone 12.2 landscape-to-portrait rotation bug where the page would be wrongly scrolled after rotation.
  • Fix: A wrong scope in the onloaded event can happen when doing an updatepos() call in a scoped action.
  • Fix: Improved unloading - better free all WebGL resources.
  • Fix: Add several workarounds for Safari WebGL textfields bugs.
  • Fix: Ensure that the onnewpano event will be before onloadcomplete event.
  • Fix: area.mode=border wasn't working together with the iOS safe-area mode.
  • Fix: Ignore the iOS safe-area in makeScreenshot() calls when using a custom size.
  • Fix: Automatically disable the iOS safe-area support inside iframes.
  • Fix: Polygonal SVG hotspot were clipped inside the iOS safe-area.
  • Fix: The textfield autosizing wasn't working in Chrome when the viewer html element was hidden (display=none) or had zero size.
  • Fix: makeScreenshot() was rendering in the wrong size when using crop.
  • Fix: The fatalerror message box had the wrong height when using non-default stagescales.
  • Fix: Remove the low-res framebuffer rendering on low-fps during pano-blending (too much false-positives detections).
  • Fix: Avoid crashes when changing settings of destroyed textfields.
  • Fix: Logging - use original/unformated message (with tabs) for the browser-console.
  • Fix: Resolve get/calc attribtes inside styles / sub-styles after full parsing.
  • Fix: Remove the fullscreen-blacklisting for the old Android 4.0 browsers (because it wrongly affects the Duck-Duck-Go and many also other Android browsers).
  • Fix: Wrong onresize events every frame in the Oculus Go browser.
  • Fix: Check for delayed WebGL drawing-buffer-size changes (a workaround for a Oculus Browser bug).
  • Fix: Workaround for an iOS bug that causes slowdowns and even browser crashes when using videos and pano-blending.
  • Fix: Allow overwriting / redefining get: / calc: attributes with normal values again in the xml.
  • Fix: When using a get(var) in a tween or stoptween the var content was wrongly case-senstive when addressing the tween animation.
  • Fix: Using a Javascript function as donecall for a tween wasn't working.
  • Fix: The variable names in the <action> args parameter were not converted to lower-case.
  • Fix: loadscene/loadpano calls weren't working correctly in non-global scope actions.
  • Fix: txtsplit with 'null' for not required parameters.
  • Fix: changeorigin with 'null' as 'edge' parameter.
  • Fix: Avoid crashes when doing set(get(null), ...).
  • Fix: Use the mwheel and capturetouch embedding settings also when the external parameter protection is enabled.

krpano Tools (GUI)

  • New: Use a newer NWJS framework (based on Chrome 65 now). That should fix several system and WebGL compatibility issues.
  • New: Is now a 64-bit application.
  • New: Check for the 'app translocation' on Mac and show information about the problem. Additionally offer a 'FIX INSTALL OSX.command' script (just double-click) for fixing permission problems.
  • Change: Update tool - add the original file extension to the backup file.

krpano Tools (Command-Line)

  • filename
    • Changes: The filename of the tools on Windows is now just 'krpanotools.exe' instead of 'krpanotools64.exe' and 'krpanotools32.exe'. So now the same filename is used on all systems.
  • makepano tool
    • New: Support XMP infos for the pano-type and fov detection of the input images.
    • Change: Use profile=sRGB by default now.
    • Fix: Always embed a profile when using profile=sRGB, even when the input image is without a profile.
    • Fix: Skip the stereo-detection when all stereosupport settings are disabled.
    • Fix: Support the XMP syntax from the 'ALETA S2C' 360 camera for auto-leveling.
    • Fix: Don't write a prealign setting in the xml when all vales are 0.
    • Fix: Don't skip customimage generate when larger than the pano but therefore not tiled.
  • sphere2cube / transform tool
    • New: Support a tiled input for large images, faster processing and fewer memory need.
    • New: Faster for smaller panos.
    • Fix: The vertical scaling of cylinder-panos was slightly wrong.
  • cube2sphere tool
    • New: Support '*' as placeholder for the cube-side (l,f,r,b,u,d).
    • New: The -outsize= setting supports now also WIDTHxHEIGHT as custom size.
  • encrypt tool
    • New: Support for txt, json, depth, stl files.
    • Change: Add the original file extension to the backup file.
  • makepano config

Convert SPHERE CUBE Droplet (GUI)

  • New: Provide settings directly inside the droplet for changing the output file-format, the image-size and the jpeg-quality.

krpano Testing Server (GUI)

  • New: HTTPS support (by providing a .pem certificate file).
  • New: Minor redesign with better system support (system-font).
  • New: Is now a 64-bit application.
  • New: OSX-Retina compatible.
  • New: Uses a newer wxWidgets framework, better Unicode support.
  • New: Automatically restart the server on port changes, no restart button.
  • New: Option for no-cache for text-files only.
  • New: Option for automatic port selection.
  • New: Detect when the port is already in use.
  • Fix: Short paths like only 'c:' were causing a wrong memory access (one char before) and wrong outputs.

krpano Testing Server (Command-Line)

  • New: Use the same CSS-styled directory-listing like the GUI version.
  • New: Internally the GUI version and the Command-Line version are sharing the same codebase. All features are available the same in both applications.
  • New: More command-line parameters: custom root, custom port, cors, nocache, open, cert, q(uiet) and ?/help -adapter=list and -adapter=#.

Plugins

  • New: iphone_fullscreen_swipe.xml
    • Automatically show information / instructions for the iPhone landscape fullscreen mode handling.
  • New: doubleclick_style.xml
    • Provide a style for double-click support for layers and hotspots.
  • New: contextmenu.xml
    • A default contextmenu with several different viewing projections.
  • New: ios_iframe_fullscreen.xml
    • iOS doesn't support the fullscreen-API, so there is no way to switch from inside a small iframe on a webpage to a full-page-view.
    • This script helps here by automatically redirecting to the inner frame page when switching to fullscreen mode.
  • New: depthmap_navigation.xml
    • Controls for navigation inside depth-mapped 3D panos.
    • Arrow-keys or WASD-keys navigation on desktop.
    • On-Screen-Touchpad for mobile devices.
    • VR controllers for WebVR usage.
  • Remove: The moretweensplugin plugin has been removed. It is directly integrated in the viewer now.

WebVR Plugin (docu)

  • New: Positional-tracking support:
  • New: VR-Controller support:
  • New: Completely new Cardboard-like mesh-based lens-distortion.
    • Uses the same lens-distortion parameters as Google Cardboard.
    • Better compatiblity with several rendering settings.
  • New: Updated internal Cardboard-device-database.
  • New: Automatically use higher oversampling settings for the Oculus Go and the Oculus Quest headsets for better image-quality, adjust with the auto_oversampling setting.
  • New: Support the new iOS 13 permission-dialog.
  • New: Automatically disable the stereo rendering in portrait mode on mobile devices.
  • New: Automatically disable the vr-cursor when detecting vr-controllers and having them assigned in the xml.
  • New: Automatically calculate a fake-pos for the vr-controllers when no positional-tracking is available.
  • New: Supports the usage inside iframes when the outer page forwards the sensor data.
  • New: mobilevr_desktop_support setting for optionally enabling gyro VR support also on desktop devices, e.g. for using the gyro of a Laptop.
  • New: resetSettings() - reset/clear stored MobileVR lens-settings.
  • New: mouse_pointerlock setting for using the mouse for looking horizontally around in VR mode.
  • New: hlookatoffset setting for a custom offset to the horizontal looking position.
  • New: headtracking_absolute setting for using an 'absolute' (real-world linked) head tracking when possible.
  • New: Support oversampling also for mobile-vr (not only WebVR).
  • New: Automatically add webvr plugin itself as global 'webvr' variable inside krpano.
  • Change: The isgearvr variable was renamed to isvrbrowser (but isgearvr also still works)
  • Fix: Don't assume that iOS always provide gyro support (due the iOS 12.2+ changes).
  • Fix: WebVR API updates.
  • Fix: Use the ESC key for exiting VR mode also for non-fullscreen fakemode.
  • Fix: Avoid orientation.lock promise errors.
  • Fix: Share the Chrome 65 gyro warning with the gyro2.js plugin.
  • Fix: The pointer-lock support was partially not working correctly.
  • Fix: Exiting pointer-lock by user (ESC-key) also exits the VR mode.
  • Fix: Pointer-lock support for touch MS Edge.
  • Fix: Add a workaround for a Chrome pointerlock-unlock bug - the browser reports a wrong mouse position after unlocking and that can lead to an unintended pano movement.
  • Remove: Global MobileVR settings storage.
  • Remove: WebVR APIs 0.6, 0.8, support, support only WebVR API 1.0 and 1.1 now.
  • Remove: auto-calibration support.

webvr.xml

  • New: VR-Controller support with some predefined vr-controller types.
  • New: Completely new VR-Setup, one basic on-screen-setup and a detailed setup inside VR.
  • Change: The Fake Support is enabled by default now.
  • Change: Don't ask the user on unknown screen sizes.
  • Change: Add and load the vr-cursor and vr-controller hotspots only on need.

Gyro Plugin (docu)

  • New: Support the new iOS 13 permission-dialog.
  • New: Supports the usage inside iframes when the outer page forwards the sensor data.
  • New: desktopsupport setting for supporting desktop browsers (e.g. Windows Tablet-PCs).
  • New: Show a warning when using on non-HTTPS sites that the gyro might not work.

Postprocessing Plugins (docu)

  • New: pp_light.js - High-quality exposure and light/shadow control.
  • New: pp_blur.js - High-performance image blurring.
  • New: pp_sharpen.js - An Unsharp-Mask filter for sharpening or local contrast enhancement.

Soundinterface Plugin (docu)

  • New: A completely new Soundinterface plugin.
    • Based on howler.js.
    • Handles the sound playback unlocking automatically.
    • Uses the WebAudio API instead of HTML5-Audio by default (when available).
    • Backward compatible to older plugin versions.
  • New: Support for 3D Positional Audio.
  • New: Support for Sound Sprites - one file for multiple sounds.
  • New: Support for Sound Objects - control a sound during playing.
  • New: Automatically add the plugin itself as global 'soundinterface' variable inside krpano.

Videoplayer Plugin (docu)

Scrollarea Plugin (docu)

  • New: capturechildren setting for capturing mouse/touch-events also on the children elements for dragging the layer.
  • New: parentmaskchildren setting for automatically applying the maskchildren setting to the parent layer.
  • New: Support the 'inverted' mouse-wheel scrolling on Mac OSX.

Bingmaps Plugin (docu)

  • Fix: bingmaps radar inverted in some cases (report)
  • New: custom mousewheel support
  • New: Support the 'inverted' mouse-wheel scrolling on Mac OSX.

Googlemaps Plugins (docu)

  • New: apiversion setting for optionally defining the Google-Maps API Version to use. When not set, the latest api version will be used.
  • Fix: new wheel event support
  • New: Support the 'inverted' mouse-wheel scrolling on Mac OSX.

Showtext Plugin (docu)

  • Fix: Allow quote characters in the arguments.

combobox.xml

  • Fix: Wrong arrow icon on iOS.

vtourskin.xml

  • New: Load the maps-plugin first after opening the maps. This can speed-up the pano loading because the map tiles are getting loaded only later when the user opens the map. Adjustable by the new skin_settings.maps_loadonfirstus setting.
  • New: skin_settings.followmousecontrol setting to enable a follow-mouse control.
  • New: Add an UI for the new iPhone landscape-mode fullscreen mode.
  • New: Show the loading info only when the loading takes longer than 2.0 seconds.
  • New: The 'button glowing' is now implemented by addevent events, so that the layer itself can use the normal events.
  • Change: Use separate keeplookingdirection settings for for gyro and webvr usage.
  • Fix: The rotation of the little-planet-intro wasn't working.
  • Fix: The gyro-icon wasn't showing up when the the little-planet-intro was enabled.
  • Fix: The the show the 'title' in the special WebVR Enter-VR button only when a title is actually defined.

Examples (link)