OpenGL - API design
OpenGL - API design
我一直在研究我的新的基于opengl的渲染引擎,我遇到了以下问题:我想公开opengl功能,如glClear(); glUniformxx, ...
,但我需要用户在调用任何这些函数之前创建一个opengl上下文。问题是opengl 不为您管理上下文,并且在调用任何gl函数之前会导致未定义的行为(大多数时候是段错误)。所以我的问题是我应该如何在任何openGL函数调用之前施加上下文创建?
- 我的第一个想法是创建一个名为GLFeatures的单例类,它将暴露所有openGL功能,并且只有在传递有效上下文时才调用它们。
完全基于意见:
我建议为OpenGL上下文管理写一个完全不同的类,这样你就可以在它们之间切换多窗口渲染。你的"GLFeatures"类可以有一个名为"SetCurrentContext"的函数,它设置了一个指向上下文管理类的指针。在初始化上下文之前,您仍然可以通过在每个函数的开头断言上下文指针来保护所有函数不被调用。
然而,仅仅使用单例也应该工作,上面就是我如何做到的。
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++MySQL C api用户输入行
- 如何使用 AWS Transcribe C++ API 中的'StartTranscriptionJobRequest'?
- 将std::string传递给WriteConsole API
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 在gtest.中使用fff.h模拟系统API
- 有没有任务栏API可以立即应用注册表更改
- C++win32 API创建多个类似视口的窗口
- 使用libcurl提交批量url的正确BING Api POST url是什么
- 如何将真正的字符串从python c-api转换为python脚本
- 使用Qt框架在c ++类中创建API调用
- Libreoffice API (UNO):需要更改用户的 xTextField 文本
- 使用 WIN32 API (C/C++) 对特定树视图项进行着色
- 使用 Python Extension API 包装复杂C++类
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 第三方 API 中的编译错误 - Visual Studio
- Tensorflow c++ api undefined reference to 'tflite::D efaultErrorReporter()'
- "api design for c++":C++痘痘访问
- OpenGL - API design