Menu

#339 3D view on dual monitor

v_3.x
closed
None
4
2021-06-15
2012-10-30
No

I have monitor connected to notebook and I work on two monitors as one big desktop in linux.
If I open terminal on first screen (notebook) and start sweethome3d in terminal it starts on first screen and works fine.
If I move terminal to second screen (external monitor) and start sweethome3d in terminal it starts on second screen and works all except 3D view and there is error in terminal:

Exception in thread "AWT-EventQueue-0" javax.media.j3d.IllegalRenderingStateException: Can't create graphics environment for Canvas 3D
at com.eteks.sweethome3d.j3d.Component3DManager.getCanvas3D(Unknown Source)
at com.eteks.sweethome3d.j3d.Component3DManager.getOnscreenCanvas3D(Unknown Source)
at com.eteks.sweethome3d.swing.HomeComponent3D.createComponent3D(Unknown Source)
at com.eteks.sweethome3d.swing.HomeComponent3D.access$200(Unknown Source)
at com.eteks.sweethome3d.swing.HomeComponent3D$1.ancestorAdded(Unknown Source)
at javax.swing.AncestorNotifier.fireAncestorAdded(AncestorNotifier.java:85)
at javax.swing.AncestorNotifier.componentShown(AncestorNotifier.java:192)
at java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:180)
at java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:179)
at java.awt.Component.processComponentEvent(Component.java:6221)
at java.awt.Component.processEvent(Component.java:6169)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Window.processEvent(Window.java:1876)
at java.awt.Component.dispatchEventImpl(Component.java:4750)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Window.dispatchEventImpl(Window.java:2518)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
at java.awt.EventQueue.access$400(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.awt.EventQueue$2.run(EventQueue.java:629)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$3.run(EventQueue.java:645)
at java.awt.EventQueue$3.run(EventQueue.java:643)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:642)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

System: Linux Mint 13
SweetHome3D: 3.7 (portable and installed from repository)
Java: 1.6.0

Discussion

  • Emmanuel Puybaret

    This issue should have been fixed in version 4.3

     
  • Emmanuel Puybaret

    • status: open --> closed
     
    • shtrih

      shtrih - 2014-04-10

      Hi,
      Still have above error:
      ./SweetHome3D
      Java 3D: implicit antialiasing enabled
      Exception in thread "AWT-EventQueue-0" javax.media.j3d.IllegalRenderingStateException: Can't create graphics environment for Canvas 3D
      at com.eteks.sweethome3d.j3d.Component3DManager.getCanvas3D(Unknown Source)
      at com.eteks.sweethome3d.j3d.Component3DManager.getOnscreenCanvas3D(Unknown Source)

      java version: 1.6.0_45 / 64 bit
      SweetHome: 4.3
      Linux 3.8.0-35-generic #50-Ubuntu

       
  • Saulo Alessandre

    Try install libqt4-opengl:amd64, it works for me.

     
  • Seth Golub

    Seth Golub - 2017-12-01

    I'm getting this too. 3d view works fine until I use an external monitor.

    Sweethome 5.3
    Java version 1.8.0_151 / 64 bit / 1.7 GB max
    Java 3D version 1.5.2

    I have libqt4-opengl installed.
    Linux 4.9.0-3-amd64 Debian 4.9.30-2+deb9u5

     
    • William Kendrick

      Seems okay under (ugh, impossible to correctly copy text from the "About" window)...

      Version 6.1.2
      Java version 1.8.0_202 - 64bit - 0.1 / 1.8GB
      Java 3D version 1.6.1

       
  • Christophe PEREZ

    Same error for me, with 2 monitors, if I try to open 3d view on another monitor than the one where SH3D works.
    I use gentoo, nvidia, , and SH3D 6.0

     
  • William Kendrick

    Same problem on Ubuntu 18.04 LTS:
    Version 5.7
    Java version 10.0.2 / 64 bit / 1.9 GB max Java 3D version 1.5.2

     
  • William Kendrick

    Seems okay under (ugh, impossible to correctly copy text from the "About" window)...

    Version 6.1.2
    Java version 1.8.0_202 - 64bit - 0.1 / 1.8GB
    Java 3D version 1.6.1

     
  • Emmanuel Puybaret

    Thanks for your feedback William

     
  • Vishvas

    Vishvas - 2019-09-01

    I have the same problem (2 monitors connected to a arch linux desktop):

    /opt/SweetHome3D-6.2/SweetHome3D-Java3D-1_5_2 
    Java 3D: implicit antialiasing enabled
    Exception in thread "AWT-EventQueue-0" javax.media.j3d.IllegalRenderingStateException: Can't create graphics environment for Canvas 3D
        at com.eteks.sweethome3d.j3d.Component3DManager.getCanvas3D(Unknown Source)
        at com.eteks.sweethome3d.j3d.Component3DManager.getOnscreenCanvas3D(Unknown Source)
        at com.eteks.sweethome3d.swing.HomeComponent3D.createComponent3D(Unknown Source)
        at com.eteks.sweethome3d.swing.HomeComponent3D.access$200(Unknown Source)
        at com.eteks.sweethome3d.swing.HomeComponent3D$1.ancestorAdded(Unknown Source)
        at javax.swing.AncestorNotifier.fireAncestorAdded(AncestorNotifier.java:86)
        at javax.swing.AncestorNotifier.componentShown(AncestorNotifier.java:193)
        at java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:180)
        at java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:179)
        at java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:179)
        at java.awt.Component.processComponentEvent(Component.java:6371)
        at java.awt.Component.processEvent(Component.java:6319)
        at java.awt.Container.processEvent(Container.java:2239)
        at java.awt.Window.processEvent(Window.java:2025)
        at java.awt.Component.dispatchEventImpl(Component.java:4889)
        at java.awt.Container.dispatchEventImpl(Container.java:2297)
        at java.awt.Window.dispatchEventImpl(Window.java:2746)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
        at java.awt.EventQueue$4.run(EventQueue.java:733)
        at java.awt.EventQueue$4.run(EventQueue.java:731)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    Canvas3D_createNewContext: couldn't create context
    Error in Java 3D : 3 Renderer: Error creating Canvas3D graphics context
    
     
    • Vishvas

      Vishvas - 2019-09-01

      I restarted the computer (since it had gone through an Arch-linux continuous update recently, I suspected that the potentially updated drivers may need the restart to kick in. ) Then it worked. (Though I see 3d view only in the main window and not in a separate window.)

       
  • Lee

    Lee - 2021-06-15

    This is still an issue in Ubuntu 21.04 (version 6.4.2).

     

Log in to post a comment.

MongoDB Logo MongoDB