Export glamor_create_texture to DDX driver.
If DDX failed to create textured pixmap from its BO's handle, it can turn to call this API to create a brand new glamor rather than fallback to pure in memory pixmap. Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
This commit is contained in:
parent
3f5d53b339
commit
5769d8603d
|
@ -90,12 +90,29 @@ typedef enum glamor_pixmap_type {
|
|||
} glamor_pixmap_type_t;
|
||||
|
||||
#define GLAMOR_EGL_EXTERNAL_BUFFER 3
|
||||
|
||||
/* @glamor_init: Initialize glamor internal data structure.
|
||||
*
|
||||
* @screen: Current screen pointer.
|
||||
* @flags: Please refer the flags description above.
|
||||
*
|
||||
* This function initializes necessary internal data structure
|
||||
* for glamor. And before calling into this function, the OpenGL
|
||||
* environment should be ready. Should be called before any real
|
||||
* glamor rendering or texture allocation functions.
|
||||
*/
|
||||
extern _X_EXPORT Bool glamor_init(ScreenPtr screen, unsigned int flags);
|
||||
extern _X_EXPORT void glamor_fini(ScreenPtr screen);
|
||||
extern _X_EXPORT void glamor_set_screen_pixmap_texture(ScreenPtr screen,
|
||||
int w, int h,
|
||||
unsigned int tex);
|
||||
/* @glamor_glyphs_init: Initialize glyphs internal data structures.
|
||||
*
|
||||
* @pScreen: Current screen pointer.
|
||||
*
|
||||
* This function must be called after the glamor_init and the texture
|
||||
* can be allocated. An example is to call it when create the screen
|
||||
* resources at DDX layer.
|
||||
*/
|
||||
extern _X_EXPORT Bool glamor_glyphs_init(ScreenPtr pScreen);
|
||||
|
||||
extern _X_EXPORT void glamor_set_pixmap_texture(PixmapPtr pixmap, int w, int h,
|
||||
|
@ -104,21 +121,65 @@ extern _X_EXPORT void glamor_set_pixmap_texture(PixmapPtr pixmap, int w, int h,
|
|||
extern _X_EXPORT void glamor_set_pixmap_type(PixmapPtr pixmap, glamor_pixmap_type_t type);
|
||||
extern _X_EXPORT void glamor_destroy_textured_pixmap(PixmapPtr pixmap);
|
||||
extern _X_EXPORT void glamor_block_handler(ScreenPtr screen);
|
||||
extern _X_EXPORT PixmapPtr glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
|
||||
unsigned int usage);
|
||||
|
||||
#ifdef GLAMOR_FOR_XORG
|
||||
/* @glamor_egl_init: Initialize EGL environment.
|
||||
*
|
||||
* @scrn: Current screen info pointer.
|
||||
* @fd: Current drm fd.
|
||||
*
|
||||
* This function creates and intialize EGL contexts.
|
||||
* Should be called from DDX's preInit function.
|
||||
* Return TRUE if success, otherwise return FALSE.
|
||||
* */
|
||||
extern _X_EXPORT Bool glamor_egl_init(ScrnInfoPtr scrn, int fd);
|
||||
|
||||
/* @glamor_egl_init_textured_pixmap: Initialization for textured pixmap allocation.
|
||||
*
|
||||
* @screen: Current screen pointer.
|
||||
*
|
||||
* This function must be called before any textured pixmap's creation including
|
||||
* the screen pixmap. Could be called from DDX's screenInit function after the calling
|
||||
* to glamor_init..
|
||||
*/
|
||||
extern _X_EXPORT Bool glamor_egl_init_textured_pixmap(ScreenPtr screen);
|
||||
|
||||
/* @glamor_egl_create_textured_screen: Create textured screen pixmap.
|
||||
*
|
||||
* @screen: screen pointer to be processed.
|
||||
* @handle: screen pixmap's BO handle.
|
||||
* @stride: screen pixmap's stride in bytes.
|
||||
*
|
||||
* This function is similar with the create_textured_pixmap. As the
|
||||
* screen pixmap is a special, we handle it separately in this function.
|
||||
*/
|
||||
extern _X_EXPORT Bool glamor_egl_create_textured_screen(ScreenPtr screen,
|
||||
int handle,
|
||||
int stride);
|
||||
|
||||
/*
|
||||
* @glamor_egl_create_textured_pixmap: Try to create a textured pixmap from
|
||||
* a BO handle.
|
||||
*
|
||||
* @pixmap: The pixmap need to be processed.
|
||||
* @handle: The BO's handle attached to this pixmap at DDX layer.
|
||||
* @stride: Stride in bytes for this pixmap.
|
||||
*
|
||||
* This function try to create a texture from the handle and attach
|
||||
* the texture to the pixmap , thus glamor can render to this pixmap
|
||||
* as well. Return true if successful, otherwise return FALSE.
|
||||
*/
|
||||
extern _X_EXPORT Bool glamor_egl_create_textured_pixmap(PixmapPtr pixmap,
|
||||
int handle,
|
||||
int stride);
|
||||
|
||||
extern _X_EXPORT void glamor_egl_destroy_textured_pixmap(PixmapPtr pixmap);
|
||||
|
||||
extern _X_EXPORT Bool glamor_egl_close_screen(ScreenPtr screen);
|
||||
extern _X_EXPORT void glamor_egl_free_screen(int scrnIndex, int flags);
|
||||
|
||||
extern _X_EXPORT Bool glamor_egl_init_textured_pixmap(ScreenPtr screen);
|
||||
extern _X_EXPORT void glamor_egl_destroy_textured_pixmap(PixmapPtr pixmap);
|
||||
#endif
|
||||
|
||||
/* Glamor rendering/drawing functions with XXX_nf.
|
||||
|
|
Loading…
Reference in New Issue