Chapter 2. Readme

Welcome to Realsoft 3D SDK Version 9!

This readme file describes improvements and bug fixes in version 9 SDK.

Supported Platforms

Support for Apple's Mac OS X operating system dropped. Realsoft 3D™ implementation was based on Apple's C++ Carbon API, which is now largely deprecated and no longer works. Rewrite project to Objective-C/Cocoa has been started, but the project is still at an early stage.

Solaris 8 operating system is deprecated by Oracle. All the Solaris 8 specific materials were updated for this release and building software for Solaris 8 still work fine. Realsoft 3D Version 9 for Solaris 8 is available as a beta release.

Silicon Graphics IRIX operating system is no longer supported. We still have one O2 system alive but it is getting old, and used for building in-house releases for sentimental reasons only.

Realsoft 3D ™ SDK packages ship with 64 bit binaries only. Binaries for 32 bit application can be provided on request.

Changes in Realsoft-C API

Realsoft Graphics Oy™ SDK versions prior V9 used r3cc precompiler to translate Realsoft-C™ source code to standard 'C'. In V9 there is now an option to use pure 'C' and avoid the r3cc precompilation phase. For this to work set the following makefile directive:

  V4API64=yes

and use R3TagGetS() together with R3T() instead of R3TagGet():

Table 2.1. 

New Realsoft-C API Old API with precompilation
  R3TagGetS(tags,
            R3ST(R3WGA_Parent, &window),
            R3ST(R3GA_Text, &text),
            ...
            R3TAG_END);
  R3TagGet(tags,
           R3WGA_Parent, &window,
           R3GA_Text, &text,
           ...
           R3TAG_END);

For all other functions accepting tag lists, such as R3SetAttrs() use the following calling convention:

Table 2.2. 

New Realsoft-C API Old API with precompilation
  R3SetAttrs(object,
             R3T(R3WGA_Parent, window),
             R3T(R3GA_Text, text),
             ...
             R3TAG_END);
  R3SetAttrs(object,
             R3WGA_Parent, window,
             R3GA_Text, text,
             ...
             R3TAG_END);

Note that you can use r3cc to upgrade your source code for V8 API. To accomplish this:

  1. Enter the following command:

    r3cc -upgrade foo.c 
      
  2. Add the following line into the corresponding makefile:

    V4API64=yes
      

Backward Compatibility

Realsoft 3D version 9 'C' API should be 100% backward compatible and code that compile with the previous version should compile with V9 without any changes.

ABI (application binary interface) should be nearly backward compatible and most most plugins built two decades ago should load and run fine. Those that do not work are based on third party software that we don't have control over.

Makefiles

There is a new predefined makefile $(V4MKDIR) simplifying building hierarchical projects. The makefile accepts three new directives: PREMAKES, SUBDIRS and POSTMAKES.

  PREMAKES=myprepare.mak
  SUBDIRS=mysubdir1 mysubdir2
  POSTMAKES=mybuild.mak

  !include $(V4HOME)/$(V4MKDIR).mak

SVG icons

Realsoft 3D™ V9 supports SVG icons, which don't have native size the layout managers could use to do their job. The default icon sizes must therefore be specified in icon specific makefiles using V4ICONWIDTH/HEIGHT and V4ICONHEIGHT/HEIGHT macros. The values defined in the makefile correspond to the default DPI 96.

[Note] Note

If you write plugins to Realsoft Graphics Oy software then specify icon sizes through V4TOOLICONWIDTH/HEIGHT and V4CLASSICONWIDTH/HEIGHT macros instead of hard coding them. For example, the makefile for building icons to tool buttons should define icon sizes as follows:

V4ICONWIDTH = $(V4TOOLICONWIDTH)
V4ICONHEIGHT = $(V4TOOLICONHEIGHT)

for consistency between all the Realsoft Graphics Oy and 3rd party tools.

Support for Visual Studio 2013

As Realsoft 3D™ API is pure 'C' API it is compiler independent and should work with any 'C' compiler.

The that the kernel library r3oops.dll depends on Microsoft's Visual Studio C++ runtime libraries.