Kanzi 3.9 beta 2 migration guide

Use this migration guide to update Kanzi applications from Kanzi 3.9 beta 1 to Kanzi 3.9 beta 2.

Changes to the scroll messages

Refactored the messages that scroll Scroll View and Grid List Box nodes.

Kanzi 3.9.0 beta 1

Kanzi 3.9.0 beta 2

ScrollViewConcept::ScrollDirectionMessage

ScrollViewConcept::ScrollDownMessage

ScrollViewConcept::ScrollUpMessage

ScrollViewConcept::ScrollLeftMessage

ScrollViewConcept::ScrollRightMessage

ScrollViewConcept::ScrollEdgeMessage

ScrollViewConcept::ScrollHomeMessage

ScrollViewConcept::ScrollEndMessage

ScrollViewConcept::ScrollPageMessage

ScrollViewConcept::ScrollPageDownMessage

ScrollViewConcept::ScrollPageUpMessage

Changes to profiler category creation

To create a profiling category, you must now invoke an additional macro to initialize the profiling category. You must place this second macro into a cpp file. The new macro prevents re-registration of the category when you include it into multiple libraries that are dynamically loaded in the same application.

To create a profiling category, use both kzProfilingRegisterExportedCategory and kzProfilingInitializeCategory. kzProfilingRegisterExportedCategory can be in either an hpp or a cpp file. kzProfilingInitializeCategory must be used in a cpp file.

For an example on how to create a profiling category, see the code example for the kzProfilingRegisterExportedCategory in the Kanzi Engine API reference.

// Example export/import macro for Windows.
#ifdef USE_SHARED_LIBRARY
#ifdef COMPILE_LIBRARY_CODE
// Compiling shared library: export category to shared library.
#define EXPORT_IMPORT_API __declspec(dllexport)
#else
// Compiling user code: import category from shared library.
#define EXPORT_IMPORT_API __declspec(dllimport)
#endif
#else
// Use empty macro for static linking.
#define EXPORT_IMPORT_API
#endif

#define MY_PROFILING_CATEGORY_EXPORTED kzProfilingCreateCategory(KZ_PROFILING_ENABLED_CATEGORY, "myCategoryExported", KZ_PROFILING_DEFAULT_SAMPLE_BUFFER_SIZE)
kzProfilingRegisterExportedCategory(EXPORT_IMPORT_API, MY_PROFILING_CATEGORY_EXPORTED, KZ_PROFILING_DISABLED_CATEGORY)

// kzProfilingInitializeCategory must be placed in a cpp file.
kzProfilingInitializeCategory(EXPORT_IMPORT_API, MY_PROFILING_CATEGORY_EXPORTED, KZ_PROFILING_DISABLED_CATEGORY)

Changes to keyboard input handling

  • Moved the key press repetition functionality from KeyRepeatConcept and KeyRepeatConceptImpl<> to the KeyRepeatGenerator.

  • Moved the functionality of the KeyInputConcept, KeyInputConceptImpl<>, and KeyInputGestureDetector<> to the InputManipulator.

Changes to the Kanzi Android framework (kzDroidFw)

  • Calls to Domain.scheduleUpdate() are no longer required and you must remove them.

Changes to application configuration

Graphics context and surface client APIs

Renamed these configuration settings and options that you use in the application.cfg:

Kanzi 3.9.0 beta 1

Kanzi 3.9.0 beta 2

GraphicsBackend

SurfaceClientAPI, GraphicsContextAPI

opengl

gl

Renamed these configuration settings and options that you use in the Application::onConfigure() function:

Kanzi 3.9.0 beta 1

Kanzi 3.9.0 beta 2

configuration.defaultSurfaceProperties.type

configuration.defaultSurfaceProperties.clientAPI

KZS_SURFACE_TYPE_GL_ONLY

SurfaceClientAPI::OpenGL

KZS_SURFACE_TYPE_GLES_ONLY

SurfaceClientAPI::OpenGLES

KZS_GRAPHICS_CONTEXT_API_WGL

GraphicsContextAPI::WGL

KZS_GRAPHICS_CONTEXT_API_EGL

GraphicsContextAPI::EGL

KZS_GRAPHICS_CONTEXT_API_GLX

GraphicsContextAPI::GLX

See Graphics library.

Buffer swap behavior

Renamed the configuration options that you use for buffer swap in the Application::onConfigure() function:

Kanzi 3.9.0 beta 1

Kanzi 3.9.0 beta 2

KZS_SWAP_BEHAVIOR_DONT_CARE

SwapBehavior::Unspecified

KZS_SWAP_BEHAVIOR_COPY

SwapBehavior::Copy

KZS_SWAP_BEHAVIOR_EXCHANGE

SwapBehavior::Exchange

See Surface properties.

See also

Kanzi 3.9 beta 2 release notes

Known issues