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

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.

[quote=349766:@Eugene Dakin]
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.[/quote]

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?)

[quote=349767:@Greg O’Lone]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.[/quote]

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.

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.

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.

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.

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.

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.

[quote=349783:@Michael Diehr]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?)[/quote]
Hi Michael,

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