• Hi,

    there are new releases for krpano 1.20.11 and krpano 1.21:

    The recently released iOS 16.4 added new Browser APIs for getting the screen-orientation, but unfortunately that new API provided different orientation angles than Android devices (where the same API was already available since a long time) and also different to other already available browser APIs that also provided the screen orientation. And because that wrong/different-reported screen orientation, the gyro- and webvr-plugins were not working correctly in landscape mode (here the bug-report).

    The new 1.20.11 and 1.21 releases (build 2023-03-30) are fixing this.
    Now that new screen-orientation APIs is not used in iOS (unless Apple would remove the old API).
    This should avoid future problems when Apple might correct the differences.

    For version 1.21 there are additionally also a few more news and fixes:

    • New: Cache the initial krpano script decoding. A further embedpano() call or creating a type=krpano layer is now ~4x times faster.
    • New: Layer autowidth/autoheight settings for explicitly setting or checking if auto-sizing is used.
    • New: <if> element for conditionally parsing xml contents
    • Fix: Textfield visibility problems when changing the content of a hidden textfield (report).
    • Fix: The display.getAdaptiveFriction() function (used in the depthmap_navigation.xml) returned invalid values when there are very long frame-blockings (can happen when used locally on file-urls and loading large files).
    • Fix: Remove the new (and still internal) 'animate' action to be compatible with older Panotour Pro skins (which uses a custom 'animate' action).
    • Fix: Using videos as flat-pano didn't work (report).
    • Fix: Use an accurate visibility check for flat/2d webgl-hotspots to avoid that extremely large hotspots might become invisible when partially out of the screen (report).
    • Fix: Show an error message when trying to use a Number for a 'name' attribute in the xml.
    • Fix: combobox.xml - check if the parent layer is using autosizing when resizing.
    • Fix: Avoid triggering the oniphonefullscreen event in portrait mode and during editing a text.

    Best regards,

  • Hi!

    I am playing/testing the new "origin" and "align" settings. I am trying to fit a panorama to a model. To do this, I always activate the wireframe. Somehow I can't get it to work though....

    For testing, I updated an older working tour (1.20) to the current version.
    Thereby this error(?) occurs: The 3D depthmap seems to work, but the wireframe is not displayed correctly/offset.
    Is this a bug, or do I not understand it correctly?

    For comparison, here are the links to both versions:

  • I frequently place the logo at the bottom (Nadia).
    In newer versions, even with keep=true set, the logo seems to disappear momentarily at the moment the panorama switches.
    There seems to be no problem with tour.js and the tour with only the webvr part overwritten...

    Edited once, last by tomozoh932 (April 3, 2023 at 6:08 PM).

  • Hi,

    Thereby this error(?) occurs: The 3D depthmap seems to work, but the wireframe is not displayed correctly/offset.
    Is this a bug, or do I not understand it correctly?

    Thanks for reporting! This is a bug of course *wink*
    I'm not sure how I missed that, but it will be fixed in the next release.
    The reason is the some depthmap processing (like the origin/center) was moved from pre-processing via JS to GPU-shaders and that the wireframe-renderer wasn't adopted for this in all cases...

    In newer versions, even with keep=true set, the logo seems to disappear momentarily at the moment the panorama switches.

    Do you use KEEPMOVING or 3D transtions?
    In such case non-kept hotspots will be removed before blending (this was the same also in all previous version).
    But I'm already working on that topic - in the next release the hotspots will have a 'blending' setting (true by default), where it can be controlled if non-keep hotspots should be rendered during blending - and these hotspots will also automatically move correctly with the 3d-transitions in all cases (including torigin, prealign, hlookatoffset cases).

    Best regards,

  • Is this writing method not supported? The previous version was okay

    def(obj, object); def(obj.x, number, 1.0); def(obj.y, number, 2.0); js(test(get(obj)));
    WARNING: js() - calling Javascript 'test([object Object])' failed: SyntaxError: Unexpected identifier 'Object'
    function test(obj) {console.log(obj);}
  • Is this writing method not supported? The previous version was okay

    Neither in 1.20 nor in the current 1.21 was it possible to pass objects, but now I've rewritten the js() action again so that it will be possible in the next release. I found another approach that now allows that and also works even better for all other cases. Then all parameters will get passed as they are without any type or string conversion in-between.

  • Hi,

    there is a new 1.21 update (build 2023-04-30):

    • New: Hotspots now remain visible during a KEEPMOVING pano-blending or a 3D transition (instead of being removed immediately).
    • New: Additionally there is new blending setting to optionally control that behavior (e.g. for special hotspots that have custom, constant position updates).
    • New: Improved iPhone fullscreen mode with instant url-bar hiding when turning to landscape-orientation.
    • New: tabindex and ontabindex - for focusing layers using the Tab-key and activating them using the Enter-key.
    • New: onfocus and onblur events - when the element gets or loses the focus (only for elements that have a tabindex set or for editable-textfields .
    • New: When the gyro is enabled from startup, then automatically wait and use the first user-touch to activate the gyro (when required by the browser).
    • New: Support the native wakelock API (for Android and iOS 16.4), this avoids that the screen gets dimmed or turned-off during VR viewing. This avoids ugly wake-lock hacks like playing a hidden video.
    • New: In expressions it is now possible to call JS-functions and use their return value.
    • New: absolute tracking mode for the gyro and webvr plugins - use the real-world orientation, that means north in the pano = north in the real world. Supports iOS and Android devices.
    • New: The gyro plugin is automatically available also as global 'gyro' variable.
    • New: the lookat() action automatically also calls the gyro resetsensor() function to change the view.
    • New: hotspot.getnormalvec() function for getting the normal vector.
    • New: When dynamically changing the device object, this has instant effects on the devices="..." xml-parsing filter.
    • New: Optional "once" parameter for the krpano.events.addListener() function to wait for an event only 'once'.
    • New: Encrypt Tool - increase the maximum filesize of input files from 10MB to 256MB.
    • Change: The set() action was had special case where set(var,null) resulted in setting "null" as String value. This was for compatibility reasons, but due other changes in the parser, this should be not necessary anymore. Now the actual value null (not a String) will be set. When 'null' as String should be set, then set(var,'null') can be used (as before).
    • Change: The hotspot.gridfit="auto" mode applies grid-fitting now only for non-zoom/non-distorted hotspots.
    • Change: vtourskin.xml - show the EnterVR button instantly on VR devices, and additionally show also a button for skipping it, to continue on the normal skin.
    • Fix: Textfield-bug with delayed visibility state (report).
    • Fix: Textfield-bug with invisible/out-of-view hotspots (report).
    • Fix: 3D transitions - wrong direction when doing another 3D transition during a current one.
    • Fix: 3D transitions and the gyro-control are working together now.
    • Fix: 3D Model files couldn't be encrypted in the krpano Tools UI.
    • Fix: The wireframe was wrong on depthmap panos. The origin/center offset was not scaled in this case (report).
    • Fix: focus() in krpano layers didn't work (report)
    • Fix: Improved js() action - pass the arguments as they are and avoid any type/string conversions.
    • Fix: The indexof/lastindexof/contains expression functions were not working when the search parameter was quoted.
    • Fix: In editable textfields automatically remove the last <br> if there is one.
    • Fix: Make the gyro and webvr gyro tracking more robust against potential future iOS/Android API changes.
    • Fix: videoplayer.js - Avoid js console errors when unloading the videoplayer during a video play() call that is rejected by the browser.
    • Fix: Update Tool - Adding the new/updated license state wasn't working.

    New and updated examples:

    • Compare Panos example - a new example for comparing two pano images. With Splitscreen/Side-by-Side/Top-Bottom/Overlapped modes, sliders and animations.
    • The compass and gyro examples were updated for demonstrating the new 'absolute' real-world-orientation tracking.
    • Hotspot Canvas example for using a HTML Canvas as pano-image or as WebGL-hotspot.
    • Maps2 example - show a hovering info-text.

    Best regards,

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!