How to find out which 3D API the application is using?

If I was given an arbitrary 3D application, say, a screensaver or a game, how can I find out which version of DirectX or OpenGL it uses at runtime? Assuming I have no information that the binary was online, for example, let's say someone just wrote a DirectX demo and passed it to me.

+4
source share
3 answers

You can use some additional tools, such as: DependencyWalker and chect that the DLL is used by the application.

If you have an OpenGL application, you can use gDebugger to integrate function calls and in what order. Similarly for a DX application, there is a PIX

+2
source

Well, the binary will refer to either the Direct3D DLL or the OpenGL DLL. In DirectX, each version has its own set of DLLs. In the case of OpenGL, the only way to tell is to intercept OpenGL calls. OpenGL-3 and above require a special method for creating context, which includes setting up the expected version. All that is in front of OpenGL-3 is actually OpenGL-1.1 with extensions, where some of the extensions have become the main functionality.

+1
source

If you are on a Windows computer, you can use Process Explorer (PE).

  • Run PE. Press CTRL + L or View → check "Show bottom panel"
  • Launch the app.
  • Find your application among those who are in PE. You can see all the dynamic libraries used in the bottom panel. If you do not see anything in the process explorer with a lower panel with administrator rights.

PE describes this in great detail. You will most likely find what you are looking for.

0
source

All Articles