使用 OpenGL 创建名为“eglimagekhr”的对象时,我遇到了一个问题
------------------------------------ 代码-------------------------------------------------------
下面是创建对象的代码:
omap_bo * tempBO =(omap_bo *) alloc_bo (16、nWid、nHgt、_nHandle、&nPitch、 nBufidx);
int dfd = omap_bo_dmabuf (tempBO);
EGLint __attr []=
{
EGL_width、 nWid、
EGL_Height、 nHgt、
EGL_Linux_DRM_FourCC_EXT、 DRM_FORMAT_YUV、
EGL_DMA_BUF_PLANE0_FD_EXT、 DFD、
EGL_DMA_BUF_PLANE0_OFFSET_EXT、 0、
EGL_DMA_BUF_PLANE0_Pit_EXT、 NPitch、
EGL_NONE
};
memcpy (attr、__attr、sizeof (__attr));
run_info ("开始 CreateImageKHR WID:%d HGT:%d Pitvh:%d DFD:%d\n"、nWid、nHgt、nPitch、DFD);
m_pKHRImage = eglCreateImageKHR (
m_pGraphic->getDisplay(),
EGL_NO_Context、
EGL_Linux_DMA_BUF_EXT、
null、
属性
);
EGLint 错误= eglGetError();
if (错误!= EGL_Success)
{
run_info (" CreateImageKHR:错误%d\n"、错误);
}
否则{
run_info (" eglCreateImageKHR:成功!\n");
}
if (m_pKHRImage = EGL_NO_IMAGE_KHR){
run_info (" m_pKHRImage 为空!!!!\n");
}
-------------------------------------- 分析----------------------------------------------
上面的代码已在 psdk3.0.0中成功创建了一个“eglimagekhr” ,它是嵌入式 Linux,
但同一代码无法再获得 “eglimagekhr”。
当我检查错误时,我得到“300C”,这意味着参数错误!
所以我想问题一定是像 “EGL_DMA_BUF_PLANE0_FD_EXT”这样的宏定义错误!
---------------------- 需要帮助---------------------------------
我想知道的是如何在 Android6.0中实现“eglimagekhr”
硬件为 J6 dra746 paltform。