当前位置: 首页 > news >正文

what(): EGL error 0x300c at eglBindAPI 已放弃 (核心已转储)

博客地址:https://www.cnblogs.com/zylyehuo/

把只适配老旧单显卡桌面系统的 C++ 模拟器(Matterport3DSimulator),修改为能兼容现代双显卡笔记本(Optimus 架构)的版本。

使用的是带 NVIDIA 和 Intel 双显卡的笔记本,而且连接了外接显示器。在这种环境下,系统的显示环境变量($DISPLAY)处于一种非常复杂的混合状态。

实现效果

image

cd /home/yehuo/VLN_learning/Matterport3DSimulator./build/mattersim_main

MatterSim.cpp

/home/yehuo/VLN_learning/Matterport3DSimulator/src/lib/MatterSim.cpp

主要的修改都在于从严格的“桌面级 OpenGL”兼容到“嵌入式 OpenGL ES”

API 降级绑定

在初始化时,如果桌面级 EGL_OPENGL_API 绑定失败,让它自动降级使用 EGL_OPENGL_ES_API。

image

if (eglBindAPI(EGL_OPENGL_API) == EGL_FALSE) {std::cerr << "Warning: EGL_OPENGL_API failed. Falling back to EGL_OPENGL_ES_API..." << std::endl;eglBindAPI(EGL_OPENGL_ES_API);}

配置属性匹配

将 EGL_RENDERABLE_TYPE 从 EGL_OPENGL_BIT 修改为了支持 ES 规范的 EGL_OPENGL_ES2_BIT | EGL_OPENGL_ES3_BIT。

image

EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT | EGL_OPENGL_ES3_BIT,

上下文版本升级

在 eglCreateContext 时,指定 EGL_CONTEXT_CLIENT_VERSION 为 3(即 OpenGL ES 3.0),以支持高级的图像内存对齐功能。

image

EGL_CONTEXT_CLIENT_VERSION, 3,

颜色通道修正

在 glReadPixels 从显卡读取渲染结果时,将非标准的 GL_BGR 改为标准的 GL_RGB,并在读取后手动调用 cv::cvtColor 将其转换回 OpenCV 需要的 BGR 格式。

image

glReadPixels(0, 0, img.cols, img.rows, GL_RGB, GL_UNSIGNED_BYTE, img.data);

NavGraph.cpp

/home/yehuo/VLN_learning/Matterport3DSimulator/src/lib/NavGraph.cpp

图像纹理上传规范化

输入颜色修正

在读取 _skybox_small.jpg 后,立刻使用 cv::cvtColor 将 BGR 转为 RGB。

image

cv::cvtColor(rgb, rgb, cv::COLOR_BGR2RGB);

纹理通道修正

将所有 glTexImage2D 调用中的 GL_BGR 枚举全部替换为 GL_RGB。

image

glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, GL_RGB, xpos.rows, xpos.cols, 0, GL_RGB, GL_UNSIGNED_BYTE, xpos.ptr());glTexImage2D(GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0, GL_RGB, xneg.rows, xneg.cols, 0, GL_RGB, GL_UNSIGNED_BYTE, xneg.ptr());glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0, GL_RGB, ypos.rows, ypos.cols, 0, GL_RGB, GL_UNSIGNED_BYTE, ypos.ptr());glTexImage2D(GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, GL_RGB, yneg.rows, yneg.cols, 0, GL_RGB, GL_UNSIGNED_BYTE, yneg.ptr());glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0, GL_RGB, zpos.rows, zpos.cols, 0, GL_RGB, GL_UNSIGNED_BYTE, zpos.ptr());glTexImage2D(GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, GL_RGB, zneg.rows, zneg.cols, 0, GL_RGB, GL_UNSIGNED_BYTE, zneg.ptr());

剔除废弃函数

删除了在现代 OpenGL 中属于非法调用的 glEnable(GL_TEXTURE_CUBE_MAP)。

image

http://www.jsqmd.com/news/453417/

相关文章:

  • 深入解析:Python 数据分析进阶:统计分析与假设检验
  • UNIT-00:Berserk Interface 助力软件测试:用例生成与缺陷报告分析
  • L1-018 大笨钟(分数10)
  • 2026年香港装修设计费用盘点,盛世設計怎么样价格贵不贵 - myqiye
  • 打开网站显示Not Found错误是域名没绑定错误怎么办|已解决
  • 一键去除网页BOM属性【解决网站乱码,程序头部空白,后台验证码不显示问题】
  • 实用指南:【LinuxAnsible】学习笔记合集三
  • 图图的嗨丝造相-Z-Image-Turbo镜像免配置实战:无需conda/pip,直接运行Gradio WebUI
  • 2026年知名的RX气公司推荐:RX气发生炉/RX气变成炉/退火炉专用RX气发生器厂家推荐 - 行业平台推荐
  • 2026年香港装修公司排名,香港盛世設計性价比突出值得考虑 - myqiye
  • 2026年垃圾站设备厂家推荐排行榜:地埋式/移动式/压缩式/水平式/垂直式/分体式/景观分类式全系列深度解析与选购指南 - 品牌企业推荐师(官方)
  • 2026年靠谱的RX气品牌推荐:RX气变成炉厂家精选 - 行业平台推荐
  • 2026年好用的自粘袋批发公司推荐,满足你的多样需求 - 工业推荐榜
  • 分析2026年专业电子竞技培训,贵阳新华电脑学校费用怎么收 - 工业推荐榜
  • 打开网站显示HTTP 错误 403.14-Forbidden错误怎么办|已解决
  • 2026年汕头盲盒玩具定制厂家哪家好,优质厂家大盘点 - 工业设备
  • 铝型材围栏定制哪家强?2026年口碑厂家大揭秘,铝型材框架/欧标铝型材/铝型材踏步台,铝型材围栏定制厂家哪家好 - 品牌推荐师
  • 如何让系统扛住高并发流量
  • 霞浦客厅沙发正规厂商怎么选,靠谱品牌盘点 - 工业品牌热点
  • 2026年水处理设备生产厂家推荐:深度解析行业标杆与优选方案 - 深度智识库
  • lite-avatar形象库详细步骤:如何在OpenAvatarChat中加载20250612批次职业形象
  • 2026年口碑好的国际搬家专业公司汇总,价格实惠且靠谱 - 工业品网
  • 2026年超纯水处理设备生产厂家推荐:TOP5推荐榜深度解析与选择指南 - 深度智识库
  • 2026年广州口碑不错的自粘袋定制价格多少,泓信塑料费用透明 - mypinpai
  • 题解:P15586 [KTSC 2026] 五万酱汁 / 50,000 Sauces
  • 2026振动传感器优质之选,推荐这些生产厂家,惯性导航系统(INS)/激光雷达,振动传感器实力厂家口碑推荐 - 品牌推荐师
  • 业内推荐:好氧活性污泥处理优质厂商综合解析,好氧活性污泥源头厂家优质企业盘点及核心优势详细解读 - 品牌推荐师
  • 2026年软化水设备生产厂家TOP5最新推荐:天辰实业全产业链服务商! - 深度智识库
  • 2026年反渗透水处理设备生产厂家推荐:陕西天辰实业领衔行业标杆 - 深度智识库
  • 在IIS7下使用ASP连接ACCESS数据库时提示如下错误的处理方法