In the code, here the kernel "jumps" in the different modules: Once the method pointers have been exchanged, polymorphism is enabled. Globals.ClientDisconnect = ClientDisconnect
On the game dll side, here is what happen: GetGameAPI = (void *)GetProcAddress (game_library, "GetGameAPI") Ge = (game_export_t *)Sys_GetGameAPI (&import) 30 function pointer assignation skipped The exact same process goes for the game library, on the kernel side, here is what happen: This is polymorphic because the renderer dll returns its ownįunction addresses within the structure, the Quake2 kernel does not see a difference, it always calls the same function pointer. Re.BeginRegistration = R_BeginRegistration Īt the end of the "handshake", a two ways communication is established between the kernel dll.
Refexport_t GetRefAPI (refimport_t rimp ) On the renderer dll, here is what happen within GetRefAPI:
In the code above, Quake2 kernel retrieves the method GetRefAPI function pointer from the renderer dll via GetProcAddress (a win32 GetRefAPI = (void *) GetProcAddress( reflib_library, "GetRefAPI" ) On the Quake2 kernel side this is what happens: (but the level will have to restart due to preprocessing required by the render). The method retrieving the renderer module is VID_LoadRefresh, it is called every frames so Quake can switch renderer The process with the real names is detailled in the two following sections. Step 3: The receiving DLL copies the kernel function pointers and return a structure containing its own function addresses. Step 2: The kernel calling the function populates a structure containing pointers to its own functions and send those values to the DLL. The goal of the process is to exchange function address so each part can call each other.
Well, the short answer was yes and following their own development, Nvidia has announced that the Quake II RTX demo is now available to download and play for free! Shareware – Could ray tracing work in a game that was over 20 years old? While the idea was essentially taken (and ran with) following an independent technical demonstration the concept in itself was quite novel.
Last year Nvidia surprisingly announced that they were working on a new version of Quake II that would support the ray tracing technology offered in their most recent 20XX series of graphics cards.