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.
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: 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: 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: 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: 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: 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: 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.
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: 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: 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 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.
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.
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: 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.
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.
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.
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 ' '.
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.
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.
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: 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: -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.
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: 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.
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.
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.
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.
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.
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.
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: view.ox / oy / oz - a screen-orientated 3D translation offset for the view-point.
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
Support the new iOS 13 desktop-browser-mode, detectable by device.iosdesktop.
Support the new iOS 13 permission-dialog for gyroscope and VR usage.
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: 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.
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.
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: 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: 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.
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.
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.
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: 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.
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.
New: WebVR Drone Attack - a shooter game as tech-demo of the new features.
Some examples are automatically using higher-resolution images or videos when running on the krpano server.
The images included in the download package are reduced in size and quality to save space.