Important Differences

 OpenZinc contains several differences from Zinc Application Frameworks 4.2 on which it is based. Most of these are simply to accommodate newer compilers and C++ standards.

The only changes in the public interface of the library are;  1)the change of UI_WINDOW_OBJECT member UI_REGION true to UI_WINDOW_OBJECT member UI_REGION trueRegion to avoid a conflict with bool true and 2) the change of DEVICE_IMAGE DM_POSITION to DEVICE_IMAGE DM_POSITION_IMAGE. Other than that code written for Zinc 4.x should compile fine under OpenZinc.

Additionally,  *.cpp and *.hpp files generated by OpenZinc Designer are slightly different than those generated under Zinc Designer 4.x. To modify older versions of these generated files they simply need to be opened and saved with the OpenZinc Designer. This will allow the generated code to be compiled under newer compilers (as well as older ones).

Other important changes include provision of code within header files to allow compilation under linux and  a number of additional makefiles for new compilers.
A number of other under the hood changes have been made because many newer compilers require explicit casts of void pointers, because scoping rules involving "for" loops have changed and so forth. In general, these changes are transparent to the user and allow the code to compile both on legacy compilers and newer compilers.  This and other minor changes are documented in OpenZinc1.0 PDF file Differences, available on the Documentation page.