c++ - 如何在 3D OpenGL 场景上绘制 SDL 2D 矩形?
问题描述
我正在尝试将使用 SDL 2D 绘制的小型交互式信息矩形覆盖在使用 OpenGL 绘制的 3D 场景上。每个人都可以工作,但不能一起工作。然后隐藏 3D 模型。
SDL_Init(SDL_INIT_EVERYTHING);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
SDL_CreateWindowAndRenderer(m_width, m_height, SDL_WINDOW_OPENGL|SDL_WINDOW_RESIZABLE, &m_window, &m_renderer);
SDL_GLContext context = SDL_GL_CreateContext(m_window);
SDL_RenderClear(m_renderer);
SDL_RenderPresent(m_renderer);
// load vertex, fragmend shader...
glClearColor(1.0, 1.0, 1.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDrawElements(GL_TRIANGLES, m_indicesSize, GL_UNSIGNED_INT, BUFFER_OFFSET(0));
SDL_Rect rect;
rect.w = 50;
rect.h = 50;
rect.x = 100;
rect.y = 100;
SDL_SetRenderDrawColor(m_renderer, 255, 0, 0, 255);
SDL_RenderFillRect(m_renderer, &rect);
SDL_RenderPresent(m_renderer);
我怎么解决这个问题?谢谢..
解决方案
你不知道,至少现在是这样。
这是关于将后端 API 状态获取器/设置器添加到 SDL_Renderer 的(开放)错误。.
或者,创建一个使用软件渲染器的 SDL_Renderer 实例,并将由此产生的位图上传到 OpenGL 纹理中,并将其合成到您的场景中。
推荐阅读
- python - 使用函数参数过滤 CSV 文件
- angular - 禁用的单选按钮仍然可以点击
- schema.org - URL里面应该是什么?
- javascript - 在 React Native 中使用三元运算符和 useState
- .net-core - 如何在构建或发布时替换我的 appsettings.json?
- sql-server - 将从 Web url 检索到的图像作为 varbinary 列插入 SQL Server 数据库
- java - 如何创建一个泛型类,我可以在 Java 中调用 Enum.valueOf()?
- excel - 以日期和金额为输入的 Excel VBA 货币转换器
- apache-spark - 如何最好地在 Sagemaker PySpark 集群中安装依赖项
- javascript - Chrome 顶栏 (URL) 正在破坏我的设计