mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-02-06 02:01:50 +08:00
user DRM/drm instead of DRI/dri for DRM engine and APIs
This commit is contained in:
@@ -2102,7 +2102,7 @@ PREDEFINED = _MGRM_PROCESSES \
|
||||
_MGFONT_FT2 \
|
||||
_MGFONT_UPF \
|
||||
_MGFONT_BMPF \
|
||||
_MGGAL_DRI \
|
||||
_MGGAL_DRM \
|
||||
_MGGAL_COMMLCD \
|
||||
_MGIAL_COMM
|
||||
|
||||
|
||||
@@ -2102,7 +2102,7 @@ PREDEFINED = _MGRM_STANDALONE \
|
||||
_MGFONT_FT2 \
|
||||
_MGFONT_UPF \
|
||||
_MGFONT_BMPF \
|
||||
_MGGAL_DRI \
|
||||
_MGGAL_DRM \
|
||||
_MGGAL_COMMLCD \
|
||||
_MGIAL_COMM
|
||||
|
||||
|
||||
@@ -2102,7 +2102,7 @@ PREDEFINED = _MGRM_THREADS \
|
||||
_MGFONT_FT2 \
|
||||
_MGFONT_UPF \
|
||||
_MGFONT_BMPF \
|
||||
_MGGAL_DRI \
|
||||
_MGGAL_DRM \
|
||||
_MGGAL_COMMLCD \
|
||||
_MGIAL_COMM
|
||||
|
||||
|
||||
32
configure.ac
32
configure.ac
@@ -264,7 +264,7 @@ enable_video_dfb="no"
|
||||
enable_video_dfb_st7167="no"
|
||||
enable_video_stgfb="no"
|
||||
|
||||
enable_video_dri="yes"
|
||||
enable_video_drm="yes"
|
||||
enable_video_fbcon="no"
|
||||
enable_video_commlcd="no"
|
||||
enable_video_shadow="no"
|
||||
@@ -886,24 +886,24 @@ dnl Find the DRM includes
|
||||
CheckDRM()
|
||||
{
|
||||
if test "x$runtime_mode" = "xprocs"; then
|
||||
enable_video_dri="no; DRI engine does not support MiniGUI-Processes runtime mode currently"
|
||||
enable_video_drm="no; DRI engine does not support MiniGUI-Processes runtime mode currently"
|
||||
else
|
||||
AC_ARG_ENABLE(videodri,
|
||||
[ --enable-videodri include Linux DRI NEWGAL engine <default=yes>],
|
||||
enable_video_dri=$enableval)
|
||||
if test "x$enable_video_dri" = "xyes"; then
|
||||
PKG_CHECK_MODULES(DRM, [libdrm >= 2.4], video_dri="yes",
|
||||
video_dri="no; Linux DRI NEWGAL engine requires libdrm 2.4+")
|
||||
if test "x$video_dri" = "xyes"; then
|
||||
AC_DEFINE(_MGGAL_DRI, 1,
|
||||
AC_ARG_ENABLE(videodrm,
|
||||
[ --enable-videodrm include Linux DRI NEWGAL engine <default=yes>],
|
||||
enable_video_drm=$enableval)
|
||||
if test "x$enable_video_drm" = "xyes"; then
|
||||
PKG_CHECK_MODULES(DRM, [libdrm >= 2.4], video_drm="yes",
|
||||
video_drm="no; Linux DRI NEWGAL engine requires libdrm 2.4+")
|
||||
if test "x$video_drm" = "xyes"; then
|
||||
AC_DEFINE(_MGGAL_DRM, 1,
|
||||
[Define if include Linux DRI NEWGAL engine])
|
||||
VIDEO_SUBDIRS="$VIDEO_SUBDIRS dri"
|
||||
VIDEO_DRIVERS="$VIDEO_DRIVERS dri/libvideo_dri.la"
|
||||
DEP_LIBS="$DEP_LIBS -ldrm"
|
||||
VIDEO_SUBDIRS="$VIDEO_SUBDIRS drm"
|
||||
VIDEO_DRIVERS="$VIDEO_DRIVERS drm/libvideo_drm.la"
|
||||
DEP_LIBS="$DEP_LIBS -ldrm -ldl"
|
||||
DRM_INC_DIR="`$PKG_CONFIG --variable includedir libdrm`/libdrm"
|
||||
AC_SUBST(DRM_INC_DIR)
|
||||
else
|
||||
AC_MSG_WARN([$video_dri])
|
||||
AC_MSG_WARN([$video_drm])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -2636,7 +2636,7 @@ src/font/Makefile
|
||||
src/font/in-core/Makefile
|
||||
src/newgal/Makefile
|
||||
src/newgal/fbcon/Makefile
|
||||
src/newgal/dri/Makefile
|
||||
src/newgal/drm/Makefile
|
||||
src/newgal/qvfb/Makefile
|
||||
src/newgal/pcxvfb/Makefile
|
||||
src/newgal/wvfb/Makefile
|
||||
@@ -2713,7 +2713,7 @@ AC_MSG_NOTICE([
|
||||
* dummy: ${enable_video_dummy}
|
||||
* pc_xvfb: ${enable_video_pc_xvfb}
|
||||
* usvfb: ${enable_video_usvfb}
|
||||
* dri: ${enable_video_dri}
|
||||
* drm: ${enable_video_drm}
|
||||
* fbcon: ${enable_video_fbcon}
|
||||
* commlcd: ${enable_video_commlcd}
|
||||
|
||||
|
||||
@@ -36,8 +36,8 @@ mtype=IMPS2
|
||||
# Linux IAL engine based on libinput
|
||||
# ial_engine=libinut
|
||||
|
||||
#{{ifdef _MGGAL_DRI
|
||||
[dri]
|
||||
#{{ifdef _MGGAL_DRM
|
||||
[drm]
|
||||
defaultmode=1024x768-32bpp
|
||||
|
||||
# We use DRM fourcc code to defined the pixel format of the video surface.
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#ifdef _MGGAL_DRI
|
||||
#ifdef _MGGAL_DRM
|
||||
|
||||
/**
|
||||
* \defgroup external_stubs_dri External Stubs for DRI sub driver
|
||||
@@ -88,14 +88,14 @@ extern "C" {
|
||||
* The struct type represents the DRI sub driver.
|
||||
* The concrete struct should be defined by the driver.
|
||||
*/
|
||||
struct _DriDriver;
|
||||
typedef struct _DriDriver DriDriver;
|
||||
struct _DrmDriver;
|
||||
typedef struct _DrmDriver DrmDriver;
|
||||
|
||||
/**
|
||||
* The struct type represents the bufffer can be used by
|
||||
* MiniGUI NEWGAL engine for hardware surface.
|
||||
*/
|
||||
typedef struct _DriSurfaceBuffer {
|
||||
typedef struct _DrmSurfaceBuffer {
|
||||
/** The handle of the buffer */
|
||||
uint32_t handle;
|
||||
/** The buffer identifier */
|
||||
@@ -120,12 +120,12 @@ typedef struct _DriSurfaceBuffer {
|
||||
unsigned long size;
|
||||
/** The mapped address of the buffer; NULL when the buffer is not mapped yet. */
|
||||
uint8_t* pixels;
|
||||
} DriSurfaceBuffer;
|
||||
} DrmSurfaceBuffer;
|
||||
|
||||
/**
|
||||
* The color logic operations.
|
||||
*/
|
||||
enum DriColorLogicOp {
|
||||
enum DrmColorLogicOp {
|
||||
COLOR_LOGICOP_CLEAR = 0,
|
||||
COLOR_LOGICOP_NOR = 1,
|
||||
COLOR_LOGICOP_AND_INVERTED = 2,
|
||||
@@ -147,70 +147,70 @@ enum DriColorLogicOp {
|
||||
/**
|
||||
* The struct type defines the operations for a DRI driver.
|
||||
*/
|
||||
typedef struct _DriDriverOps {
|
||||
typedef struct _DrmDriverOps {
|
||||
/**
|
||||
* This operation creates the DriDriver object.
|
||||
* This operation creates the DrmDriver object.
|
||||
*
|
||||
* \note The driver must implement this operation.
|
||||
*/
|
||||
DriDriver* (*create_driver) (int device_fd);
|
||||
DrmDriver* (*create_driver) (int device_fd);
|
||||
|
||||
/**
|
||||
* This operation destroies the DriDriver object.
|
||||
* This operation destroies the DrmDriver object.
|
||||
*
|
||||
* \note The driver must implement this operation.
|
||||
*/
|
||||
void (*destroy_driver) (DriDriver *driver);
|
||||
void (*destroy_driver) (DrmDriver *driver);
|
||||
|
||||
/**
|
||||
* This operation flushs the batch buffer of the driver or the hardware cache.
|
||||
*
|
||||
* \note This operation can be NULL.
|
||||
*/
|
||||
void (* flush_driver) (DriDriver *driver);
|
||||
void (* flush_driver) (DrmDriver *driver);
|
||||
|
||||
/**
|
||||
* This operation creates a buffer with the specified pixel format,
|
||||
* width, and height. If succeed, a valid DriSurfaceBuffer object will
|
||||
* width, and height. If succeed, a valid DrmSurfaceBuffer object will
|
||||
* be returned; NULL on error. Note that the field of `pixels` of the
|
||||
* DriSurfaceBuffer object is NULL until the \a map_buffer was called.
|
||||
* DrmSurfaceBuffer object is NULL until the \a map_buffer was called.
|
||||
*
|
||||
* \note The driver must implement this operation.
|
||||
*/
|
||||
DriSurfaceBuffer* (* create_buffer) (DriDriver *driver,
|
||||
DrmSurfaceBuffer* (* create_buffer) (DrmDriver *driver,
|
||||
uint32_t drm_format,
|
||||
unsigned int width, unsigned int height);
|
||||
|
||||
/**
|
||||
* This operation creates a buffer for the given handle
|
||||
* with the specified pixel format, width, and height. If succeed,
|
||||
* a valid DriSurfaceBuffer object will be returned; NULL on error.
|
||||
* a valid DrmSurfaceBuffer object will be returned; NULL on error.
|
||||
*
|
||||
* \note This operation can be NULL.
|
||||
*/
|
||||
DriSurfaceBuffer* (* create_buffer_from_handle) (DriDriver *driver,
|
||||
DrmSurfaceBuffer* (* create_buffer_from_handle) (DrmDriver *driver,
|
||||
uint32_t handle, unsigned long size, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, unsigned int pitch);
|
||||
|
||||
/**
|
||||
* This operation creates a buffer for the given system global name
|
||||
* with the specified pixel format, width, and height. If succeed,
|
||||
* a valid DriSurfaceBuffer object will be returned; NULL on error.
|
||||
* a valid DrmSurfaceBuffer object will be returned; NULL on error.
|
||||
*
|
||||
* \note This operation can be NULL.
|
||||
*/
|
||||
DriSurfaceBuffer* (* create_buffer_from_name) (DriDriver *driver,
|
||||
DrmSurfaceBuffer* (* create_buffer_from_name) (DrmDriver *driver,
|
||||
uint32_t name, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, unsigned int pitch);
|
||||
|
||||
/**
|
||||
* This operation creates a buffer for the given PRIME file descriptor
|
||||
* with the specified pixel format, width, height, and pitch. If succeed,
|
||||
* a valid DriSurfaceBuffer object will be returned; NULL on error.
|
||||
* a valid DrmSurfaceBuffer object will be returned; NULL on error.
|
||||
*
|
||||
* \note This operation can be NULL.
|
||||
*/
|
||||
DriSurfaceBuffer* (* create_buffer_from_prime_fd) (DriDriver *driver,
|
||||
DrmSurfaceBuffer* (* create_buffer_from_prime_fd) (DrmDriver *driver,
|
||||
int prime_fd, unsigned long size, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, unsigned int pitch);
|
||||
|
||||
@@ -220,21 +220,21 @@ typedef struct _DriDriverOps {
|
||||
*
|
||||
* \note The driver must implement this operation.
|
||||
*/
|
||||
uint8_t* (* map_buffer) (DriDriver *driver, DriSurfaceBuffer* buffer);
|
||||
uint8_t* (* map_buffer) (DrmDriver *driver, DrmSurfaceBuffer* buffer);
|
||||
|
||||
/**
|
||||
* This operation un-maps a buffer.
|
||||
*
|
||||
* \note The driver must implement this operation.
|
||||
*/
|
||||
void (* unmap_buffer) (DriDriver *driver, DriSurfaceBuffer* buffer);
|
||||
void (* unmap_buffer) (DrmDriver *driver, DrmSurfaceBuffer* buffer);
|
||||
|
||||
/**
|
||||
* This operation destroies a buffer.
|
||||
*
|
||||
* \note The driver must implement this operation.
|
||||
*/
|
||||
void (* destroy_buffer) (DriDriver *driver, DriSurfaceBuffer* buffer);
|
||||
void (* destroy_buffer) (DrmDriver *driver, DrmSurfaceBuffer* buffer);
|
||||
|
||||
/**
|
||||
* This operation clears the specific rectangle area of a buffer
|
||||
@@ -243,8 +243,8 @@ typedef struct _DriDriverOps {
|
||||
* \note If this operation is set as NULL, the driver does not support
|
||||
* hardware accelerated clear operation.
|
||||
*/
|
||||
int (* clear_buffer) (DriDriver *driver,
|
||||
DriSurfaceBuffer* dst_buf, const GAL_Rect* rc, uint32_t pixel_value);
|
||||
int (* clear_buffer) (DrmDriver *driver,
|
||||
DrmSurfaceBuffer* dst_buf, const GAL_Rect* rc, uint32_t pixel_value);
|
||||
|
||||
/**
|
||||
* This operation checks whether a hardware accelerated blit
|
||||
@@ -254,8 +254,8 @@ typedef struct _DriDriverOps {
|
||||
* \note If this operation is set as NULL, it will be supposed that
|
||||
* the driver does not support any hardware accelerated blit operation.
|
||||
*/
|
||||
int (* check_blit) (DriDriver *driver,
|
||||
DriSurfaceBuffer* src_buf, DriSurfaceBuffer* dst_buf);
|
||||
int (* check_blit) (DrmDriver *driver,
|
||||
DrmSurfaceBuffer* src_buf, DrmSurfaceBuffer* dst_buf);
|
||||
|
||||
/**
|
||||
* This operation copies bits from a source buffer to a destination buffer.
|
||||
@@ -263,10 +263,10 @@ typedef struct _DriDriverOps {
|
||||
* \note If this operation is set as NULL, the driver does not support
|
||||
* hardware accelerated copy blit.
|
||||
*/
|
||||
int (* copy_blit) (DriDriver *driver,
|
||||
DriSurfaceBuffer* src_buf, const GAL_Rect* src_rc,
|
||||
DriSurfaceBuffer* dst_buf, const GAL_Rect* dst_rc,
|
||||
enum DriColorLogicOp logic_op);
|
||||
int (* copy_blit) (DrmDriver *driver,
|
||||
DrmSurfaceBuffer* src_buf, const GAL_Rect* src_rc,
|
||||
DrmSurfaceBuffer* dst_buf, const GAL_Rect* dst_rc,
|
||||
enum DrmColorLogicOp logic_op);
|
||||
|
||||
/**
|
||||
* This operation blits pixles from a source buffer with the source alpha value
|
||||
@@ -275,9 +275,9 @@ typedef struct _DriDriverOps {
|
||||
* \note If this operation is set as NULL, the driver does not support
|
||||
* hardware accelerated blit with alpha.
|
||||
*/
|
||||
int (* alpha_blit) (DriDriver *driver,
|
||||
DriSurfaceBuffer* src_buf, const GAL_Rect* src_rc,
|
||||
DriSurfaceBuffer* dst_buf, const GAL_Rect* dst_rc, uint8_t alpha);
|
||||
int (* alpha_blit) (DrmDriver *driver,
|
||||
DrmSurfaceBuffer* src_buf, const GAL_Rect* src_rc,
|
||||
DrmSurfaceBuffer* dst_buf, const GAL_Rect* dst_rc, uint8_t alpha);
|
||||
|
||||
/**
|
||||
* This operation blits pixles from a source buffer to a destination buffer,
|
||||
@@ -286,9 +286,9 @@ typedef struct _DriDriverOps {
|
||||
* \note If this operation is set as NULL, the driver does not support
|
||||
* hardware accelerated blit with color key.
|
||||
*/
|
||||
int (* key_blit) (DriDriver *driver,
|
||||
DriSurfaceBuffer* src_buf, const GAL_Rect* src_rc,
|
||||
DriSurfaceBuffer* dst_buf, const GAL_Rect* dst_rc, uint32_t color_key);
|
||||
int (* key_blit) (DrmDriver *driver,
|
||||
DrmSurfaceBuffer* src_buf, const GAL_Rect* src_rc,
|
||||
DrmSurfaceBuffer* dst_buf, const GAL_Rect* dst_rc, uint32_t color_key);
|
||||
|
||||
/**
|
||||
* This operation blits pixles from a source buffer with the source alpha value
|
||||
@@ -297,19 +297,19 @@ typedef struct _DriDriverOps {
|
||||
* \note If this operation is set as NULL, the driver does not support
|
||||
* hardware accelerated blit with alpha and color key.
|
||||
*/
|
||||
int (* alpha_key_blit) (DriDriver *driver,
|
||||
DriSurfaceBuffer* src_buf, const GAL_Rect* src_rc,
|
||||
DriSurfaceBuffer* dst_buf, const GAL_Rect* dst_rc,
|
||||
int (* alpha_key_blit) (DrmDriver *driver,
|
||||
DrmSurfaceBuffer* src_buf, const GAL_Rect* src_rc,
|
||||
DrmSurfaceBuffer* dst_buf, const GAL_Rect* dst_rc,
|
||||
uint8_t alpha, uint32_t color_key);
|
||||
|
||||
} DriDriverOps;
|
||||
} DrmDriverOps;
|
||||
|
||||
/** Implement this stub to return the DRI driver operations */
|
||||
DriDriverOps* __dri_ex_driver_get (const char* driver_name, int device_fd);
|
||||
DrmDriverOps* __dri_ex_driver_get (const char* driver_name, int device_fd);
|
||||
|
||||
/** @} end of external_stubs_dri */
|
||||
|
||||
#endif /* _MGGAL_DRI */
|
||||
#endif /* _MGGAL_DRM */
|
||||
|
||||
#ifdef _MGGAL_COMMLCD
|
||||
|
||||
|
||||
@@ -13700,19 +13700,19 @@ MG_EXPORT int GUIAPI SetUserCompositionOps (HDC hdc,
|
||||
*/
|
||||
MG_EXPORT GHANDLE GetVideoHandle (HDC hdc);
|
||||
|
||||
#ifdef _MGGAL_DRI
|
||||
#ifdef _MGGAL_DRM
|
||||
|
||||
/**
|
||||
* \defgroup gdi_dri_fns Functions for Linux DRI integration
|
||||
* \defgroup gdi_drm_fns Functions for Linux DRM integration
|
||||
*
|
||||
* These functions can be used to get the DRI device file descriptor and the
|
||||
* These functions can be used to get the DRM device file descriptor and the
|
||||
* information of the hardware surface corresponding to the DC which is
|
||||
* created by the Linux DRI engine. By using the information, we can
|
||||
* created by the Linux DRM engine. By using the information, we can
|
||||
* integrate MiniGUI with other graphics libraries, such as Cairo
|
||||
* (vector graphics) and Mesa (3D graphics).
|
||||
*
|
||||
* \note Only available when support for Linuxe DRI NEWGAL engine
|
||||
* (`_MGGAL_DRI`) is enabled.
|
||||
* \note Only available when support for Linuxe DRM NEWGAL engine
|
||||
* (`_MGGAL_DRM`) is enabled.
|
||||
*
|
||||
* Since 4.0.4
|
||||
*
|
||||
@@ -13720,20 +13720,20 @@ MG_EXPORT GHANDLE GetVideoHandle (HDC hdc);
|
||||
*/
|
||||
|
||||
/**
|
||||
* This function gets the file descriptor opened by the Linux DRI engine.
|
||||
* This function gets the file descriptor opened by the Linux DRM engine.
|
||||
*
|
||||
* \param video The video handle returned by \a GetVideoHandle.
|
||||
*
|
||||
* \return The DRI device file descriptor opened by the Linux DRI engine;
|
||||
* \return The DRM device file descriptor opened by the Linux DRM engine;
|
||||
* >= 0 for success and < 0 on error. If \a surface is not a hardware
|
||||
* surface created by the DRI engine, this function returns -1.
|
||||
* surface created by the DRM engine, this function returns -1.
|
||||
*/
|
||||
MG_EXPORT int driGetDeviceFD (GHANDLE video);
|
||||
MG_EXPORT int drmGetDeviceFD (GHANDLE video);
|
||||
|
||||
/**
|
||||
* THe struct type defines the DRI surface information.
|
||||
* THe struct type defines the DRM surface information.
|
||||
*/
|
||||
typedef struct _DriSurfaceInfo {
|
||||
typedef struct _DrmSurfaceInfo {
|
||||
/** The local handle of the buffer object. */
|
||||
uint32_t handle;
|
||||
/** The buffer identifier. */
|
||||
@@ -13748,75 +13748,75 @@ typedef struct _DriSurfaceInfo {
|
||||
uint32_t drm_format;
|
||||
/** Size in bytes of the buffer object. */
|
||||
unsigned long size;
|
||||
} DriSurfaceInfo;
|
||||
} DrmSurfaceInfo;
|
||||
|
||||
/**
|
||||
* This function gets the DRI surface information from the handle of the surface.
|
||||
* This function gets the DRM surface information from the handle of the surface.
|
||||
*
|
||||
* \param surface The handle to the surface.
|
||||
* \param info The pointer to a DriSurfaceInfo structure to hold
|
||||
* \param info The pointer to a DrmSurfaceInfo structure to hold
|
||||
* the surface information.
|
||||
*
|
||||
* \return TRUE for success, FALSE for failure.
|
||||
*/
|
||||
MG_EXPORT BOOL driGetSurfaceInfo (GHANDLE video, HDC hdc, DriSurfaceInfo* info);
|
||||
MG_EXPORT BOOL drmGetSurfaceInfo (GHANDLE video, HDC hdc, DrmSurfaceInfo* info);
|
||||
|
||||
/**
|
||||
* This function creates a memory DC with a DRI surface which is created by
|
||||
* This function creates a memory DC with a DRM surface which is created by
|
||||
* a foreign process and identified by a global name handle.
|
||||
*
|
||||
* \param video The video handle.
|
||||
* \param name The name handle of the DRI surface.
|
||||
* \param name The name handle of the DRM surface.
|
||||
* \param drm_format The DRM pixel format.
|
||||
* \param width The width of the DRI surface.
|
||||
* \param height The height of the DRI surface.
|
||||
* \param pitch The pitch (row stride) of the DRI surface.
|
||||
* \param width The width of the DRM surface.
|
||||
* \param height The height of the DRM surface.
|
||||
* \param pitch The pitch (row stride) of the DRM surface.
|
||||
*
|
||||
* \return The handle to the memory DC for success, HDC_INVALID for failure.
|
||||
*/
|
||||
MG_EXPORT HDC driCreateDCFromName (GHANDLE video,
|
||||
MG_EXPORT HDC drmCreateDCFromName (GHANDLE video,
|
||||
uint32_t name, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch);
|
||||
|
||||
/**
|
||||
* This function creates a memory DC with a DRI surface which is created by
|
||||
* This function creates a memory DC with a DRM surface which is created by
|
||||
* a foreign process and identified by a PRIME file descriptor.
|
||||
*
|
||||
* \param video The video handle.
|
||||
* \param prime_fd The PRIME file descriptor.
|
||||
* \param size The size of the DRI surface in bytes.
|
||||
* \param size The size of the DRM surface in bytes.
|
||||
* \param drm_format The DRM pixel format.
|
||||
* \param width The width of the DRI surface.
|
||||
* \param height The height of the DRI surface.
|
||||
* \param pitch The pitch (row stride) of the DRI surface.
|
||||
* \param width The width of the DRM surface.
|
||||
* \param height The height of the DRM surface.
|
||||
* \param pitch The pitch (row stride) of the DRM surface.
|
||||
*
|
||||
* \return The handle to the memory DC for success, HDC_INVALID for failure.
|
||||
*/
|
||||
MG_EXPORT HDC driCreateDCFromPrimeFd (GHANDLE video,
|
||||
MG_EXPORT HDC drmCreateDCFromPrimeFd (GHANDLE video,
|
||||
int prime_fd, unsigned long size, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch);
|
||||
|
||||
/**
|
||||
* This function creates a memory DC with a DRI surface which is created by
|
||||
* This function creates a memory DC with a DRM surface which is created by
|
||||
* a foreign graphics component.
|
||||
*
|
||||
* \param video The video handle.
|
||||
* \param handle The handle of the DRI surface.
|
||||
* \param size The size of the DRI surface in bytes.
|
||||
* \param handle The handle of the DRM surface.
|
||||
* \param size The size of the DRM surface in bytes.
|
||||
* \param drm_format The DRM pixel format.
|
||||
* \param width The width of the DRI surface.
|
||||
* \param height The height of the DRI surface.
|
||||
* \param pitch The pitch (row stride) of the DRI surface.
|
||||
* \param width The width of the DRM surface.
|
||||
* \param height The height of the DRM surface.
|
||||
* \param pitch The pitch (row stride) of the DRM surface.
|
||||
*
|
||||
* \return The handle to the memory DC for success, HDC_INVALID for failure.
|
||||
*/
|
||||
MG_EXPORT HDC driCreateDCFromHandle (GHANDLE video,
|
||||
MG_EXPORT HDC drmCreateDCFromHandle (GHANDLE video,
|
||||
uint32_t handle, unsigned long size, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch);
|
||||
|
||||
/** @} end of gdi_dri_fns */
|
||||
/** @} end of gdi_drm_fns */
|
||||
|
||||
#endif /* _MGGAL_DRI */
|
||||
#endif /* _MGGAL_DRM */
|
||||
|
||||
/** @} end of gdi_fns */
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ noinst_LTLIBRARIES = libnewgal.la
|
||||
SUBDIRS = @VIDEO_SUBDIRS@
|
||||
DIST_SUBDIRS = dummy fbcon qvfb wvfb em85xxyuv em85xxosd svpxxosd bf533 utpmc \
|
||||
mb93493 commlcd shadow mlshadow dfb em86gfx hisi rtos_xvfb pcxvfb \
|
||||
nexus s3c6410 sigma8654 mstar gdl stgfb usvfb dri
|
||||
nexus s3c6410 sigma8654 mstar gdl stgfb usvfb drm
|
||||
# x11 dga vgl svga ggi aalib
|
||||
|
||||
EXTRA_DIST=makefile.ng makefile.msvc
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
|
||||
## Makefile.am for the dri video driver
|
||||
AM_CPPFLAGS = -I$(abs_top_srcdir)/src/include -I$(abs_top_srcdir)/include -I$(abs_top_srcdir)/src/newgal/ -I$(DRM_INC_DIR)
|
||||
|
||||
noinst_LTLIBRARIES = libvideo_dri.la
|
||||
|
||||
# The dri video driver sources
|
||||
SRC_FILES = \
|
||||
drivideo.c
|
||||
|
||||
HDR_FILES= \
|
||||
drivideo.h
|
||||
|
||||
libvideo_dri_la_SOURCES = $(SRC_FILES) $(HDR_FILES)
|
||||
|
||||
EXTRA_DIST=makefile.ng
|
||||
|
||||
LIB_NAME=libvideo_dri
|
||||
18
src/newgal/drm/Makefile.am
Normal file
18
src/newgal/drm/Makefile.am
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
## Makefile.am for the drm video driver
|
||||
AM_CPPFLAGS = -I$(abs_top_srcdir)/src/include -I$(abs_top_srcdir)/include -I$(abs_top_srcdir)/src/newgal/ -I$(DRM_INC_DIR)
|
||||
|
||||
noinst_LTLIBRARIES = libvideo_drm.la
|
||||
|
||||
# The drm video driver sources
|
||||
SRC_FILES = \
|
||||
drmvideo.c
|
||||
|
||||
HDR_FILES= \
|
||||
drmvideo.h
|
||||
|
||||
libvideo_drm_la_SOURCES = $(SRC_FILES) $(HDR_FILES)
|
||||
|
||||
EXTRA_DIST=makefile.ng
|
||||
|
||||
LIB_NAME=libvideo_drm
|
||||
File diff suppressed because it is too large
Load Diff
@@ -64,8 +64,8 @@ typedef struct GAL_PrivateVideoData {
|
||||
int dev_fd;
|
||||
|
||||
void* exdrv_handle;
|
||||
DriDriverOps* driver_ops;
|
||||
DriDriver* driver;
|
||||
DrmDriverOps* driver_ops;
|
||||
DrmDriver* driver;
|
||||
|
||||
DrmModeInfo* mode_list;
|
||||
GAL_Rect** modes;
|
||||
@@ -87,7 +87,7 @@ typedef struct GAL_PrivateVideoData {
|
||||
|
||||
/* only valid when using DRM driver */
|
||||
uint32_t console_buff_id;
|
||||
} DriVideoData;
|
||||
} DrmVideoData;
|
||||
|
||||
#endif /* _NEWGAL_DRIVIDEO_H */
|
||||
|
||||
@@ -328,8 +328,8 @@ extern VideoBootStrap STGFB_bootstrap;
|
||||
#ifdef _MGGAL_USVFB
|
||||
extern VideoBootStrap USVFB_bootstrap;
|
||||
#endif
|
||||
#ifdef _MGGAL_DRI
|
||||
extern VideoBootStrap DRI_bootstrap;
|
||||
#ifdef _MGGAL_DRM
|
||||
extern VideoBootStrap DRM_bootstrap;
|
||||
#endif
|
||||
|
||||
/* This is the current video device */
|
||||
|
||||
@@ -156,8 +156,8 @@ static VideoBootStrap *bootstrap[] = {
|
||||
#ifdef _MGGAL_USVFB
|
||||
&USVFB_bootstrap,
|
||||
#endif
|
||||
#ifdef _MGGAL_DRI
|
||||
&DRI_bootstrap,
|
||||
#ifdef _MGGAL_DRM
|
||||
&DRM_bootstrap,
|
||||
#endif
|
||||
NULL
|
||||
};
|
||||
|
||||
@@ -3749,26 +3749,26 @@ MG_EXPORT GHANDLE GetVideoHandle (HDC hdc)
|
||||
return (GHANDLE)pdc->surface->video;
|
||||
}
|
||||
|
||||
#ifdef _MGGAL_DRI
|
||||
#ifdef _MGGAL_DRM
|
||||
|
||||
/* implemented in DRI engine. */
|
||||
BOOL __dri_get_surface_info (GAL_Surface *surface, DriSurfaceInfo* info);
|
||||
BOOL __drm_get_surface_info (GAL_Surface *surface, DrmSurfaceInfo* info);
|
||||
|
||||
MG_EXPORT BOOL driGetSurfaceInfo (GHANDLE video, HDC hdc, DriSurfaceInfo* info)
|
||||
MG_EXPORT BOOL drmGetSurfaceInfo (GHANDLE video, HDC hdc, DrmSurfaceInfo* info)
|
||||
{
|
||||
PDC pdc = dc_HDC2PDC (hdc);
|
||||
if (pdc->surface->video != (GHANDLE)video)
|
||||
return FALSE;
|
||||
|
||||
return __dri_get_surface_info(pdc->surface, info);
|
||||
return __drm_get_surface_info(pdc->surface, info);
|
||||
}
|
||||
|
||||
/* implemented in DRI engine. */
|
||||
GAL_Surface* __dri_create_surface_from_name (GHANDLE video,
|
||||
GAL_Surface* __drm_create_surface_from_name (GHANDLE video,
|
||||
uint32_t name, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch);
|
||||
|
||||
MG_EXPORT HDC driCreateDCFromName (GHANDLE video,
|
||||
MG_EXPORT HDC drmCreateDCFromName (GHANDLE video,
|
||||
uint32_t name, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch)
|
||||
{
|
||||
@@ -3779,7 +3779,7 @@ MG_EXPORT HDC driCreateDCFromName (GHANDLE video,
|
||||
return HDC_INVALID;
|
||||
|
||||
LOCK (&__mg_gdilock);
|
||||
surface = __dri_create_surface_from_name (video, name,
|
||||
surface = __drm_create_surface_from_name (video, name,
|
||||
drm_format, width, height, pitch);
|
||||
UNLOCK (&__mg_gdilock);
|
||||
|
||||
@@ -3817,11 +3817,11 @@ MG_EXPORT HDC driCreateDCFromName (GHANDLE video,
|
||||
}
|
||||
|
||||
/* implemented in DRI engine. */
|
||||
GAL_Surface* __dri_create_surface_from_handle (GHANDLE video,
|
||||
GAL_Surface* __drm_create_surface_from_handle (GHANDLE video,
|
||||
uint32_t handle, unsigned long size, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch);
|
||||
|
||||
MG_EXPORT HDC driCreateDCFromHandle (GHANDLE video,
|
||||
MG_EXPORT HDC drmCreateDCFromHandle (GHANDLE video,
|
||||
uint32_t handle, unsigned long size, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch)
|
||||
{
|
||||
@@ -3832,7 +3832,7 @@ MG_EXPORT HDC driCreateDCFromHandle (GHANDLE video,
|
||||
return HDC_INVALID;
|
||||
|
||||
LOCK (&__mg_gdilock);
|
||||
surface = __dri_create_surface_from_handle (video, handle, size,
|
||||
surface = __drm_create_surface_from_handle (video, handle, size,
|
||||
drm_format, width, height, pitch);
|
||||
UNLOCK (&__mg_gdilock);
|
||||
|
||||
@@ -3870,11 +3870,11 @@ MG_EXPORT HDC driCreateDCFromHandle (GHANDLE video,
|
||||
}
|
||||
|
||||
/* implemented in DRI engine. */
|
||||
GAL_Surface* __dri_create_surface_from_prime_fd (GHANDLE video,
|
||||
GAL_Surface* __drm_create_surface_from_prime_fd (GHANDLE video,
|
||||
int prime_fd, unsigned long size, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch);
|
||||
|
||||
MG_EXPORT HDC driCreateDCFromPrimeFd (GHANDLE video,
|
||||
MG_EXPORT HDC drmCreateDCFromPrimeFd (GHANDLE video,
|
||||
int prime_fd, unsigned long size, uint32_t drm_format,
|
||||
unsigned int width, unsigned int height, uint32_t pitch)
|
||||
{
|
||||
@@ -3885,7 +3885,7 @@ MG_EXPORT HDC driCreateDCFromPrimeFd (GHANDLE video,
|
||||
return HDC_INVALID;
|
||||
|
||||
LOCK (&__mg_gdilock);
|
||||
surface =__dri_create_surface_from_prime_fd (video, prime_fd, size,
|
||||
surface =__drm_create_surface_from_prime_fd (video, prime_fd, size,
|
||||
drm_format, width, height, pitch);
|
||||
UNLOCK (&__mg_gdilock);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user