* \param[in] width The original width of the surface
* \param[in] height The original height of the surface
* \param[in] pixelFormat The pixelformat to be used for the surface
- * \param[out] pSurfaceId The ID of the newly created surface is returned in this parameter
+ * \param[in/out] pSurfaceId
+ * The value pSurfaceId points to is used as ID for new surface;
+ * The ID of the newly created surface is returned in this parameter
+ *
* \return ILM_TRUE if the method call was successful
* \return ILM_FAILED if the client can not call the method on the service.
*/
ilmErrorTypes ilm_surfaceCreate(t_ilm_nativehandle nativehandle, t_ilm_int width, t_ilm_int height, ilmPixelFormat pixelFormat, t_ilm_surface *pSurfaceId);
/**
+ * \brief Create a placeholder surface, which has no render buffer associated
+ * \ingroup Surface
+ * \param[in/out] pSurfaceId
+ * The value pSurfaceId points to is used as ID for new surface;
+ * The ID of the newly created surface is returned in this parameter
+ * \return ILM_TRUE if the method call was successful
+ * \return ILM_FAILED if the client can not call the method on the service.
+ */
+ilmErrorTypes ilm_surfaceCreatePlaceholder(t_ilm_surface *pSurfaceId);
+
+/**
+ * \brief Associate the render buffer of an application with a placeholder surface
+ * \ingroup Surface
+ * \param[in] surfaceId The ID of the surface
+ * \param[in] nativehandle The native windowsystem's handle for the surface
+ * \param[in] width The original width of the surface
+ * \param[in] height The original height of the surface
+ * \param[in] pixelFormat The pixelformat to be used for the surface
+ * \return ILM_TRUE if the method call was successful
+ * \return ILM_FAILED if the client can not call the method on the service.
+ */
+ilmErrorTypes ilm_surfaceAssociateRenderBuffer(t_ilm_surface surfaceId, t_ilm_nativehandle nativehandle, t_ilm_int width, t_ilm_int height, ilmPixelFormat pixelFormat);
+
+/**
* \brief Remove a surface
* \ingroup Surface
* \param[in] surfaceId The id of the surface to be removed