在运行时加载OpenGL/DirectX API功能
Load opengl/directx API functions at runtime
我正在构建OpenGL/DirectX/Vulkan Modern Game Engine。我以前曾写过一个版本的引擎版本,在该版本中,我将特定代码与宏分开,例如:
#ifdef CIANADE_API_OGL
OGLTexture::GPU_LoadTexture();
#elif defined(CIANADE_API_DX12)
DX12Texture::GPU_LoadTexture();
#elif //etc....
对于每个API 和平台我都有单独的构建(cianade_ogl4.exe,cianade_ogl3.exe,cianade_dx12.exe等...)。我的问题是是否有可能,并且在运行时加载OpenGl和Directx API函数在运行时(仅适用于PC平台,移动/控制台只有一个只有一个可执行的),如果是这样,怎么能完成?
我的问题是可能的,在运行时加载OpenGl和DirectX API函数在运行时加载是个好主意(仅适用于PC平台,移动/控制台,只有一个可执行的),如果是这样,怎么会完成?
我不是这些图形引擎的专家,但是是的,可以在运行时加载基础DLL。
但是,您需要为特定库功能提供包装接口:
struct IGraphLibTexture {
virtual void GPU_LoadTexture() = 0;
virtual ~IGraphLibTexture() {}
};
并在单独的DLL中提供不同的实现。
根据您在运行时确定的目标体系结构,您可以明确加载其中一个。
如果这实际上是个好主意,我将留给其他人回答。
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++MySQL C api用户输入行
- 如何使用 AWS Transcribe C++ API 中的'StartTranscriptionJobRequest'?
- 将std::string传递给WriteConsole API
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 在gtest.中使用fff.h模拟系统API
- 如何在directx/c++中进行平移/缩放操作
- 有没有任务栏API可以立即应用注册表更改
- C++win32 API创建多个类似视口的窗口
- 使用libcurl提交批量url的正确BING Api POST url是什么
- 如何将真正的字符串从python c-api转换为python脚本
- DrawIndexedInstanced 具有不同的 Index Count per Instance (Directx
- 使用Qt框架在c ++类中创建API调用
- Libreoffice API (UNO):需要更改用户的 xTextField 文本
- 使用 WIN32 API (C/C++) 对特定树视图项进行着色
- 使用 Python Extension API 包装复杂C++类
- 在运行时加载OpenGL/DirectX API功能
- DirectX API中的" [in] const D2D1_RECT_F *layoutRect"和"const D2D1_RECT_F&layoutRect"有什么区别
- DirectX DXUT alternate API