The future of intermediate to large Xojo graphics projects on Windows, Mac, and Linux?

  1. ‹ Older
  2. last week

    Eugene D

    Sep 9 Pre-Release Testers, Xojo Pro Canada scispec.ca

    @Dave S 2D or 3D, it ideally would be a canvas, with all the mechanics transparent to the developer, as in they wouldn't need to have 100's of macOS declares plus 100's of Windows declares, to quote Apple "It just works" (ok, maybe paraphrase)

    I like what you are saying about this Dave. The Canvas is truly cross-platform, and it would be nice to have much of the drawing math already configured. This is my lazy-way of saying that it would be nice for the Canvas to be like-a-version of Opengl or Vulkan libraries. :) We definitely do not need another disruptive technology to create another drawing 'standard', as there seems to be lots of disruption happening now.

  3. Norman P

    Sep 9 Xojo Inc

    I'd hazard a guess that Canvas as a 3d drawing surface is unlikely to happen
    Same as before when there was Canvas and OpenGLSurface

  4. Eugene D

    Sep 9 Pre-Release Testers, Xojo Pro Canada scispec.ca

    @Tim J You may need to step outside of Xojo to accomplish this.

    We have a group in-house working on a 3D project with simple object rotation motion and flying movement animations. After working through a number of development frameworks - including Xojo, they selected Unity and C#/Mono. Even though it's not a game, the Unity framework is providing consistent look and feel across all platforms.

    WRT Norman's comments and links to Vulkan options, we found Vulkan's OpenGL implementation to still be a moving target up until June when the team settled on Unity. Molten seems to be a pretty solid option - but they're only on Mac OS (and iOS).

    I have played (pun intended) with Vulkan a little-bit and it looks like it will be a solid development platform in the future, and I agree with your comment that implementation seems to be a moving-target.

    Unity does seem to be an option for cross-platform development, as I have taken a few courses on it and the platform seems fairly solid and mature.

    My preference is that I would prefer to use Xojo, although it will probably require more time, energy, and monetary dedication to make it work.

  5. Eugene D

    Sep 9 Pre-Release Testers, Xojo Pro Canada scispec.ca

    @Norman P I'd hazard a guess that Canvas as a 3d drawing surface is unlikely to happen Same as before when there was Canvas and OpenGLSurface

    My guess would be that someone could begin the journey of creating a Vulkan Control with the use of the Canvas Control? Is there some open-source old code from the days when OpenGLSurface was first created in RealBasic that can be used with hooks that I could adapt for Vulkan?

    I am just considering options at this time :)

  6. Norman P

    Sep 9 Xojo Inc
    Edited last week by Norman P

    I doubt it since the entire thing is/was a plugin

    http://2002-2010.tinrocket.com/software/openglsurface/index.html

  7. Eugene D

    Sep 9 Pre-Release Testers, Xojo Pro Canada scispec.ca

    @Norman P I doubt it since the entire thing is/was a plugin

    Ok thanks.

  8. Eugene D

    Sep 9 Pre-Release Testers, Xojo Pro Canada scispec.ca

    @Alwyn B I think they still have some work ahead of them though before one will be able to send any SPIR-V binary directly to any graphics card for processing.

    I would like to understand SPIR-V a little more, as I am likely misunderstanding something. Is SPIR-V a library that helps programmers implement Vulkan? From a very broad perspective, would SPIR-V with Vulkan kind-of be similar to a GLUT-like library for OpenGL?

  9. Tim J

    Sep 9 Pre-Release Testers, Xojo Pro Phoenix, AZ USA

    @Eugene D I would like to understand SPIR-V a little more, as I am likely misunderstanding something. Is SPIR-V a library that helps programmers implement Vulkan? From a very broad perspective, would SPIR-V with Vulkan kind-of be similar to a GLUT-like library for OpenGL?

    One of my team called SPIR-V "assembly language for GPUs".

  10. Michael D

    Sep 10 Pre-Release Testers, Xojo Pro

    @Eugene D OpenGL
    • Only early versions (1.x) are on Windows 10

    That's not accurate. You'd only end up with OpenGL 1.x on Windows 10 if you had zero video card driver support. In fact, one improvement for video that windows 10 has made is that it (normally) handles driver installation. In many tests, we've found it quite common to get OpenGL 2.1 under Windows 10, even on low-end hardware.

  11. Michael D

    Sep 10 Pre-Release Testers, Xojo Pro

    I'm going through the same questions, and one additional option I'm considering is using WebGL inside a HTMLViewer. One advantage of this technique is that all of the low-level OpenGL stuff is handled by the web renderer (WebKit on macOS, IE11 on Windows...) Lots of disadvantages as well - a bit one: Is WebGL going to survive?

  12. Eugene D

    Sep 10 Pre-Release Testers, Xojo Pro Canada scispec.ca

    @Michael D That's not accurate. You'd only end up with OpenGL 1.x on Windows 10 if you had zero video card driver support. In fact, one improvement for video that windows 10 has made is that it (normally) handles driver installation. In many tests, we've found it quite common to get OpenGL 2.1 under Windows 10, even on low-end hardware.

    Hi Micheal,

    I find this quite interesting and exciting that you've found a way to get OpenGL 2.1 under Windows 10. I was only able to get up-to OpenGL 1.3 working with Xojo last year. Have you been able to get 2.1 version working with Xojo on Windows 10? If so, how? Thanks for sharing.

  13. Greg O

    Sep 10 Xojo Inc Somewhere near Raleigh, NC

    @Michael D Lots of disadvantages as well - a bit one: Is WebGL going to survive?

    I think a better question is "when will the newest browsers support WebGL 2.0?"

    Just about every modern browser supports WebGL 1.0 right now. Even IE11 has pretty good support (see http://caniuse.com/#search=webgl ). The problem is that the WebGL 2.0 spec hasn't really taken off yet. It's supported in Firefox, Chrome and Opera (and only in the last few versions), but not IE, Edge or Safari yet.

  14. Michael D

    Sep 10 Pre-Release Testers, Xojo Pro

    @Eugene D I find this quite interesting and exciting that you've found a way to get OpenGL 2.1 under Windows 10. I was only able to get up-to OpenGL 1.3 working with Xojo last year. Have you been able to get 2.1 version working with Xojo on Windows 10? If so, how? Thanks for sharing.

    The only times I've seen a version older than 2.1 under Windows 10 was when testing on a really old computer that had no video drivers, or installing in a Virtual Machine (Fusion or Parallels) where I disabled 3D hardware emulation.

    In all other cases, I've seen a much more modern version. How are you testing?

    (Perhaps this would be a topic that we should break off into a new thread?)

  15. Michael D

    Sep 10 Pre-Release Testers, Xojo Pro

    @Greg OLone I think a better question is "when will the newest browsers support WebGL 2.0?"

    Just about every modern browser supports WebGL 1.0 right now. Even IE11 has pretty good support (see http://caniuse.com/#search=webgl ). The problem is that the WebGL 2.0 spec hasn't really taken off yet. It's supported in Firefox, Chrome and Opera (and only in the last few versions), but not IE, Edge or Safari yet.

    Yes, it's a good question. One thing to remember is the version # weirdness: WebGL 1.0 is based on OpenGL ES 2.0, and WebGL 2 is based on OpenGL ES 3. WebGL 1 (ES 2) has a lot of functionality, so it's certainly possible to do pretty complicated & sophisticated animations even with that level.

  16. Alwyn B

    Sep 11 Pre-Release Testers, Xojo Pro Johannesburg, South Africa
    Edited last week by Alwyn B

    @Eugene D I would like to understand SPIR-V a little more, as I am likely misunderstanding something. Is SPIR-V a library that helps programmers implement Vulkan? From a very broad perspective, would SPIR-V with Vulkan kind-of be similar to a GLUT-like library for OpenGL?

    @Tim J One of my team called SPIR-V "assembly language for GPUs".

    Basically what Tim said. It's an intermediate language for 3D graphics rendering and parallel processing (or any advanced maths calculations for that matter) that can be compiled to a binary.

    So basically, you would write your shaders in "SPIR-V Assembler" and compile it to a SPIR-V binary. Or even better, compile higher level languages to "SPIR-V assembler", and then assemble it to binaries. The idea is then to distribute your shaders/code as these SPIR-V binaries.

    If you are interested, here is an open source project I've started (in Xojo) that disassembles and/or validates SPIR-V binaries. There are also a few test SPIR-V binaries in this project to play with.

    https://github.com/Zoclee/Shade

    If Xojo should decide to add support for Vulkan, it probably would be best to focus on compiling and using SPIR-V binaries somehow. The whole intent of SPIR-V is to keep things not only cross platform, but also language independent which fits nicely with Xojo's vision of creating a cross platform developing tool.

    There has been talk about a LLVM to SPIR-V cross-compiler, and vice versa, but I'm not sure where they are at with such a project.

  17. Alwyn B

    Sep 11 Pre-Release Testers, Xojo Pro Johannesburg, South Africa

    PS. Think of SPIR-V as the component of Vulkan, through which all rendering takes place. All shader languages are first compiled to SPIR-V binaries prior to being rendering by the graphics card.

  18. Christian S

    Sep 11 Pre-Release Testers, Xojo Pro Europe (Germany)

    @Eugene D My guess would be that someone could begin the journey of creating a Vulkan Control with the use of the Canvas Control? Is there some open-source old code from the days when OpenGLSurface was first created in RealBasic that can be used with hooks that I could adapt for Vulkan?

    Well, I considered that, but is there a Vulkan API for Mac/Win/Linux we can use?
    Do we have enough Xojo users interested to make it a product and fund the development?

    I am not sure if you guys can't simply be happy with OpenGL control in Xojo.

  19. Sam R

    Sep 11 Pre-Release Testers, Xojo Pro Hengchun, Pingtung, Taiwan

    @ChristianSchmitz I am not sure if you guys can't simply be happy with OpenGL control in Xojo.

    The problem is that OpenGL is being replaced; Apple want you to use Metal (and in my limited testing Metal 2 is faster). Then you have Vulcan making grounds on the other platforms.

    I personally would have rather seen Apple pour their resources into creating a highly optimised version of OpenGL for their platforms, but they choose to create a lock-in API that makes it harder for iOS apps to be ported to Android.

    I think if we could find a way to utilise Unity, that might be a more practical route.

  20. Eugene D

    Sep 12 Pre-Release Testers, Xojo Pro Canada scispec.ca

    @Sam R I think if we could find a way to utilise Unity, that might be a more practical route.

    Sam, this is an interesting route. Unity does have the ability to select the programming language and usually C# is used. I have only briefly looked at trying to create a hook to have Xojo work with Unity and was unsuccessful.

  21. Eugene D

    Sep 12 Pre-Release Testers, Xojo Pro Canada scispec.ca

    @Michael D The only times I've seen a version older than 2.1 under Windows 10 was when testing on a really old computer that had no video drivers, or installing in a Virtual Machine (Fusion or Parallels) where I disabled 3D hardware emulation.

    In all other cases, I've seen a much more modern version. How are you testing?

    (Perhaps this would be a topic that we should break off into a new thread?)

    Hi Michael,

    When I have some free time then I will start a new topic to continue this discussion (likely on the weekend) :)

or Sign Up to reply!