This page provides an introduction to the way iink SDK manages the rendering. You will learn how to use the reference implementation provided by MyScript and properly plug things together.
With these concepts, you will be able to better understand how to use the reference rendering implementation or build your own (not documented yet).
A render target (adopting the IINKIRenderTarget
protocol) represents the platform “view” where the drawing operations will occur.
A canvas object provides a platform implementation of the drawing commands called by iink SDK to render content. It is defined by the IINKICanvas
protocol.
A renderer is a component in charge of deciding how to render content of each layer, knowing which area of the model needs to be refreshed, as well as parameters such as zoom factor or view offset. It will issue rendering commands, through a canvas object that will do the actual drawing operations.
Version 1.4 introduced a new rendering capacity for the renderer based on the drawing of offscreen surfaces. This increases the rendering speed and is even necessary for new features like math animation. So it is definitively our recommended choice.
To use this rendering, you must adopt the IINKIRenderTarget
and IINKICanvas
protocols, or use the ones provided with the reference implementation, to handle the drawing requests of offscreen surfaces.
The iink SDK 2.1 renderer is still compatible with the legacy rendering mode that we name “direct rendering”.
For performance reasons, the renderer works on two different layers.
The two layers are:
Each layer can be refreshed independently from the other, so that it is not needed to redraw everything.
To make it easy to build applications, MyScript provides in its examples repository a default rendering implementation.
It is released as a library, under a permissive license and can be reused as-is or modified should you feel the need. As an integrator, you just have to link against it and do a bit of plumbing:
The goal of the next step of this guide is to explain how to add some content to the model.