219804cbe4
* Initial controller hud ui * Reverted fbdemo changes * Moved config to json and implemented controller config * fix build on linux, gitignore new config file * fix build * Fix compilation and file directory paths * Call save on cvar save * Fixed cvar loading and added deck slots to the config * Changed control deck port 0 to use a physical device by default * Added gyro and rumble & fixed loading errors * Save config on toggle menubar * fix linux build * Fixed drift calculation * Controller config now saves when pressing F1 * Removed ExitGame hook from ImGuiImpl * Moved mappings to a map * Added GetKeyName * untranslate scancodes * Fixed hud layout on keyboard device * Fixed keyboard read on hud * Fixed crash when reloading controllers * Removed ConfigFile and changed file extension * Changed Dummy to Disconnected and fixed filters * Removed function leftover * Changed ControllerHud to InputEditor Co-authored-by: briaguya <briaguya@alice> Co-authored-by: David Chavez <david@dcvz.io> |
||
---|---|---|
.. | ||
U64/PR/ultra64 | ||
dxsdk | ||
.gitrepo | ||
LICENSE.txt | ||
README.md | ||
gfx_cc.cpp | ||
gfx_cc.h | ||
gfx_direct3d11.cpp | ||
gfx_direct3d11.h | ||
gfx_direct3d12.cpp | ||
gfx_direct3d12.h | ||
gfx_direct3d12_guids.h | ||
gfx_direct3d_common.cpp | ||
gfx_direct3d_common.h | ||
gfx_dxgi.cpp | ||
gfx_dxgi.h | ||
gfx_glx.cpp | ||
gfx_glx.h | ||
gfx_opengl.cpp | ||
gfx_opengl.h | ||
gfx_pc.cpp | ||
gfx_pc.h | ||
gfx_rendering_api.h | ||
gfx_screen_config.h | ||
gfx_sdl.h | ||
gfx_sdl2.cpp | ||
gfx_window_manager_api.h |
README.md
Nintendo 64 Fast3D renderer
Implementation of a Fast3D renderer for games built originally for the Nintendo 64 platform.
For rendering OpenGL, Direct3D 11 and Direct3D 12 are supported.
Supported windowing systems are GLX (used on Linux), DXGI (used on Windows) and SDL (generic).
Usage
See gfx_pc.h
. You will also need a copy of PR/gbi.h
, found in libultra.
First call gfx_init(struct GfxWindowManagerAPI *wapi, struct GfxRenderingAPI *rapi, const char *game_name, bool start_in_fullscreen)
and supply the desired backends at program start.
Some callbacks can be set on wapi
. See gfx_window_manager_api.h
for more info.
Each game main loop iteration should look like this:
gfx_start_frame(); // Handles input events such as keyboard and window events
// perform game logic here
gfx_run(cmds); // submit display list and render a frame
// do more expensive work here, such as play audio
gfx_end_frame(); // this just waits until the frame is shown on the screen (vsync), to provide correct game timing
When you are ready to start the main loop, call wapi->main_loop(one_iteration_func)
.
For the best experience, please change the Vtx and Mtx structures to use floats instead of fixed point arithmetic (GBI_FLOATS
).
License
See LICENSE.txt. Redistributions are allowed only in source form, not in binary form.