]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/l4re_c/include/video/goos.h
update
[l4.git] / l4 / pkg / l4re_c / include / video / goos.h
index 38ab5f12befa28af7f513925a1dee7c504fd5538..4d5a6dc234e3a235d696957e8e290edc0ff1dbae 100644 (file)
@@ -81,4 +81,93 @@ L4_CV int
 l4re_video_goos_info(l4re_video_goos_t goos,
                      l4re_video_goos_info_t *ginfo) L4_NOTHROW;
 
+/**
+ * \ingroup api_l4re_c_video
+ * \brief Flush a rectangle of pixels of the goos screen.
+ * \param goos the target object of the operation.
+ * \param x the x-coordinate of the upper left corner of the rectangle
+ * \param y the y-coordinate of the upper left corner of the rectangle
+ * \param w the width of the rectangle to be flushed
+ * \param h the height of the rectangle
+ */
+L4_CV int
+l4re_video_goos_refresh(l4re_video_goos_t goos, int x, int y, int w,
+                        int h) L4_NOTHROW;
+
+/**
+ * \ingroup api_l4re_c_video
+ * \brief Create a new buffer (memory buffer) for pixel data.
+ * \param goos the target object for the operation.
+ * \param size the size in bytes for the pixel buffer.
+ * \param buffer a capability index to receive the data-space capability
+ *               for the buffer.
+ * \return >=0: The index of the created buffer (used to assign views
+ *               and for deletion).
+ *         < 0: on error
+ */
+L4_CV int
+l4re_video_goos_create_buffer(l4re_video_goos_t goos, unsigned long size,
+                              l4_cap_idx_t buffer) L4_NOTHROW;
+
+/**
+ * \ingroup api_l4re_c_video
+ * \brief Delete a pixel buffer.
+ * \param goos the target goos object.
+ * \param idx the buffer index of the buffer to delete (the return
+ *            value of l4re_video_goos_create_buffer())
+ */
+L4_CV int
+l4re_video_goos_delete_buffer(l4re_video_goos_t goos, unsigned idx) L4_NOTHROW;
+
+/**
+ * \ingroup api_l4re_c_video
+ * \brief Get the data-space capability of the static pixel buffer.
+ * \param goos the target goos object.
+ * \param buffer a capability index to receive the data-space capability.
+ *
+ * This function allows access to static, preexisting pixel buffers. Such static buffers
+ * exist for static configurations, such as the VESA framebuffer.
+ */
+L4_CV int
+l4re_video_goos_get_static_buffer(l4re_video_goos_t goos, unsigned idx,
+                                  l4_cap_idx_t buffer) L4_NOTHROW;
+
+/**
+ * \ingroup api_l4re_c_video
+ * \brief Create a new view (\see l4re_video_view_t)
+ * \param goos the goos session to use.
+ * \retval view the structure will be initialized for the new view.
+ */
+L4_CV int
+l4re_video_goos_create_view(l4re_video_goos_t goos,
+                            l4re_video_view_t *view) L4_NOTHROW;
+
+/**
+ * \ingroup api_l4re_c_video
+ * \brief Delete a view.
+ * \param goos the goos session to use.
+ * \param view the view to delete, the given data-structure is invalid
+ *             afterwards.
+ */
+L4_CV int
+l4re_video_goos_delete_view(l4re_video_goos_t goos,
+                            l4re_video_view_t *view) L4_NOTHROW;
+
+
+/**
+ * \ingroup api_l4re_c_video
+ * \brief Get a view for the given index.
+ * \param goos the target goos session.
+ * \param idx the index of the view to retrieve.
+ * \retval view the structure will be initialized to the
+ *              view with the given index.
+ *
+ * This function allows to access static views as provided by the
+ * VESA framebuffer (the monitor). However, it also allows to access
+ * dynamic views created with l4re_video_goos_create_view().
+ */
+L4_CV int
+l4re_video_goos_get_view(l4re_video_goos_t goos, unsigned idx,
+                         l4re_video_view_t *view) L4_NOTHROW;
+
 EXTERN_C_END