As Apple announced their move to Apple Silicon processors, we are already working on an update to our plugin to support it. For now we already defined function SystemInformationMBS.isBigSur to return whether the newer macOS version 11.0 is running. The SystemInformationMBS.isARM function returns 1 if you run on an ARM based CPU and this currently returns 0 everywhere, but will in future return 1 if your application runs natively on newer Mac hardware with Apple Silicon. And the function SystemInformationMBS.isTranslated will tell your solution whether it runs Intel code on Apple Silicon in emulation.
With our new DeclareLibraryMBS class you can load shared libraries written in C/C++ and list their functions. You pick a function and use the DeclareFunctionMBS class to prepare a call and then run the function. Parameters are automatically converted to the right datatypes and the result converted to a variant. The new DeclareCallBackMBS class allows to define a callback, which can be thread safe. While the functions do similar things like the declare statement in Xojo, they are more dynamic and you can define the function call at runtime, specify calling conventions and support variable arguments.
For Windows we added a set of classes to acquire photos from various devices like cameras or scanners. Check the WinPhotoAcquireMBS class for the acquire functions. Use standard dialogs with WinPhotoAcquireDeviceSelectionDialogMBS and WinPhotoAcquireOptionsDialogMBS classes to find devices and set options.
Since Xojo uses direct draw for drawing in a picture or canvas, we now have DirectDrawGraphicsMBS class to offer you more options. Currently you can draw dashed lines for vector graphics. Let us know for future versions what new methods you like to have here.
The WKWebViewMBS class for working with WebKit 2.x got new methods to get the PDF or a web archive of the current page. You can do select all, paste, copy and cut via methods and query HTML and plain text for the website. If the page is a PDF itself, you can now query the data for the PDF document via MainResourceData directly. If needed, you can adjust the page zoom or media type for CSS.
Our encryption plugin got upgraded to allow SHA3 hashes with 224 to 512 bits in length. We added functions for Base64 URL encoding an a new example to show JWT RS 256 signature creation and verification.
The XLSheetMBS class can now use WriteStringAsNumber to write a number passing it a string, SDAVAssetExportSessionMBS class allows more control on exporting videos in AVFoundation, DynaPDF got support for ClearRectangle and FillPath methods in Graphics class, the JavaVMMBS class can now define a class at runtime, examples are upgraded to use 64-bit as targets and WindowsGraphicsDeviceContextMBS class allows to get the HDC for a graphics object with proper cleanup later.
Finally we updated CURL library to version 7.71.1, DynaPDF to 184.108.40.206, LCMS to 2.11, LibXL to 3.9.1, SQLAPI to 5.1, SQLite to 3.32.0, Xcode to 11.5, VLC to version 3.0.11.
See release notes for a complete list of changes.