Category Archives: WebGL

ABXPlay for Xojo is dead, long live ABMXPlay for B4J!


As many will have noticed in the last year,  there are fewer articles about Xojo on Alwaysbusy’s Corner.  I do like to write graphics projects/frameworks and Xojo is more a language for business apps. Over the years, I’ve written several ‘Proof of Concept’ articles on graphics programming with RB/Xojo.  And although the algorithms could be written, I always quickly hit a wall when it came to speed. I sometimes get requests to update the existing articles, but IMHO, Xojo is becoming the new VB6.  Just like at the end of the popular VB6, using declares in Xojo are in many cases the only solution to make your program work in a modern way.

But it has been fun and I’m sure Xojo can be used to write several other type of projects. I have no regrets having learned RB/Xojo in the past.

But in this view, I have discontinued the ABXPlay for Xojo project and decided to start all over again with ABMXPlay for B4J as a ABMaterial 2.0 component. B4J is excellent when it comes to pure speed in WebApps and that is exactly what is needed for a game framework.

The complete rewrite of ABMXPlay for B4J is better than the Xojo version.  It is integrated in ABMaterial so it can make use of this engine too.  As the B4J syntax is a lot easier than the one in Xojo to interpret (it is very similar to what RB used to be) and the used file format is plain text, I’m working on a B4JS transpiler that will translate B4J code to Javascript.  This changes everything massively!  While still being able to write simple Basic syntax, you are actually writing powerful and fast client side Javascript.

ABMXPlay is going to be the first ABMaterial component with this functionality. In the following months, I’ll gradually will introduce this to other ABMaterial components as they can equally benefit from B4JS. Imagine having a form, being able to check the input fields, making some price calculations etc without having to talk to the server.  Only when the user hits the ‘buy’ button, an actual request is made to the server.  And for you as a programmer, all you have to do is continue programming in B4J as you always did!

So, still a lot of work to do. Coffee and Red bull will be my best friends in the upcoming nights. But it is going to be worth it!

Note: ABXVision for Xojo is also DISCONTINUED: Interested parties in purchasing the source code for the Xojo versions can contact me via email.

Until the next update,


Click here to Donation and support ABMaterial

Xojo: ABXPlay alpha 0.7



DISCONTINUED and replaced by ABMXPlay in ABMaterial 2.0 for B4J. Interested parties in the source code for the Xojo version can contact me via email.


It has been a while since my last post, but I’ve been busy. This is the first alpha release of ABXPlay! For now it is closed source as I want to keep control over changes and bugs, but it will probably be open source when the final version arrives.

ABXPlay is an advanced WebGL control for Xojo with a fall back to a HTML5 Canvas if the browser does not support WebGL.

Drawing of primitives (line, rectangles, circles, arcs, polygons, curves, …)
Sprites and Textures
Container objects that group primitives and other containers
Scaling, Alpha, Rotation, Position Tweening for all Containers
Drag/Drop of Containers
Multi user events
Audio support
Spritesheets and Spines
Javascript injection
Filters and Shaders
Text (fonts, Google fonts and Bitmap fonts)
Basic DOM object support

Basic Box2D support
Basic TMX support

Included is the help, all the examples shown in the Xojo forum posts with source code and of course the ABXPlay engine/control.

You can download alpha 0.7 here .
The help is included in the download, but can also be consulted here

For those who followed the adventures of our South Park friends, You’ll notice a final chapter. Although Chef solved the Kenny Ghost problem, it seems Eric still is suffering a bit. When he want’s to play some football (yes, I mean football, not soccer), one Kenny keeps giving him trouble!

This illustrates some basic Box2D support. (Physics engine, Collisions, Joints).

Box2D in ABXplay


1. If you create a new project, make sure the control is locked on all sides of the window
2. Set the properties on the control in the inspector (like the view properties, if it should be interactive, the Scaletype, etc…)
3. Assets should be copied in the subfolder \Assets\ next to your project.
4. Make sure also the \Engines\ folder is next to your project!
5. To test another example, change the ‘DefaultWebPage’ to another one of the example WebPages.

But most of all, have fun with it!


Click here to Donation if you like my work

%d bloggers like this: