0
我正在構建一個opengl/directx/vulkan現代遊戲引擎。我以前寫過一個版本的引擎在哪裏分離API特定代碼宏,如:在運行時加載opengl/directx API函數
#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平臺,移動/控制檯將只有一個可執行文件),如果是這樣,如何可能它被完成了嗎?
謝謝:)你認爲加載時間和通話時間可能是一個問題,但?許多功能可能被稱爲**一次**或**兩次**一幀(60 Hz)。 – Coder32
你是什麼意思「在不同的DLL中提供不同的實現」? – Coder32
@ Coder32多態性和vtable引入影響性能是。但對於大多數現代CPU而言,60Hz並不是真正的問題。 –