Commit Graph

78 Commits

Author SHA1 Message Date
fgsfds 7526a998cb 'filter' is a reserved keyword in GLSL
but only Intel drivers get pissed at this
2020-06-17 04:40:14 +03:00
fgsfds fd05cd3adb don't use small resource alignment for large textures
thanks to Emil for this one

see https://docs.microsoft.com/en-us/windows/win32/api/d3d12/ns-d3d12-d3d12_resource_desc#alignment for an explanation
2020-06-13 22:54:33 +03:00
fgsfds 208bfdcbf3 move all the discordrpc stuff to pc_main.c
that means it will now work in D3D11 and D3D12

also 'normalized' the sdl2 main loop
2020-06-13 04:21:47 +03:00
fgsfds eed923e442 sdl2: fix window position saving and alt-enter 2020-06-13 00:51:37 +03:00
fgsfds aa5dfaa7c2 'properly' disable noise effect scaling 2020-06-12 00:23:47 +03:00
fgsfds 36bdb54d5e remove precision specifiers from the three-point shader
gives better compatibility on desktop GL

probably shouldn't be used on GLES anyway
2020-06-11 22:24:46 +03:00
fgsfds 8788cfa3ad d3d11 renderer now uses the configWindow values
d3d12 renderer still doesn't because I can't test it
2020-06-11 22:24:46 +03:00
fgsfds 3dff608c7b add D3D12 headers because they're missing in mingw 2020-06-11 22:24:46 +03:00
fgsfds 383983ef9d form window title in pc_main; show correct RAPI in it 2020-06-11 22:24:46 +03:00
fgsfds a81a8e6ef1 added D3D11 and D3D12 renderers from Emil/n64-fast3d-engine
along with options to select backends for windowing, rendering, audio and controls in the Makefile

use RENDER_API=D3D11 or D3D12 for the D3D renderers, that will also automatically enable using DXGI for windowing; SDL2 will still be used for input and audio for the time being

also adds three-point filtering to the OpenGL backend and an option for it in the menu
2020-06-11 22:24:46 +03:00
fgsfds ca4986e82d fix GLEW include on OSX 2020-06-10 04:16:46 +03:00
fgsfds 457189bb13 use SDL_opengles2.h only when USE_GLES is defined 2020-06-10 01:01:34 +03:00
fgsfds fca5ed8846 don't scale the noise to 240 height 2020-06-10 01:00:20 +03:00
fgsfds 33b4bd7f8d don't use the noise shader on GLES 2020-06-10 00:58:44 +03:00
fgsfds 735d032bdd use #version 120 on desktop GL 2020-06-10 00:56:10 +03:00
MaikelChan fbbb3cba5c Implemented noise effects in OpenGL. (#6) 2020-06-10 00:30:59 +03:00
fgsfds 8d05d2b7e2 check GL version in the GL2.1 backend; check GLEW errors 2020-06-09 23:28:26 +03:00
fgsfds 01e6061276 clean up discord rpc a bit 2020-06-09 20:46:26 +03:00
Jan 233c2d8f72
Merge branch 'nightly' into feature/discordrpc 2020-06-09 17:16:42 +02:00
Jan200101 5933742f82
replace static linking with dynamically loaded libraries 2020-06-09 17:15:49 +02:00
Jan200101 f1ba90d25b
add discord rpc support 2020-06-09 12:01:31 +02:00
fgsfds 51651d52d0 restore --savepath and replace --datapath with --gamedir 2020-06-07 23:54:39 +03:00
fgsfds 0bf5a192f4 fix sys_fatal() warnings in gfx 2020-06-07 22:00:49 +03:00
fgsfds 4feacc0065 add virtual filesystem thing w/ ZIP support
similar to Quake 3: all the archives and folders get mounted to the same mountpoint in the VFS, read access to files in the VFS is transparent
2020-06-07 21:06:25 +03:00
fgsfds 6cee636382 change EXTERNAL_TEXTURES to EXTERNAL_DATA; load sound data from external files
no separation tho, just binary blobs o shit
2020-06-01 12:13:05 +03:00
fgsfds 93030b02a3 don't die after encountering a NULL texture 2020-05-29 19:35:35 +03:00
fgsfds 655c381d6f add texture preloading
when EXTERNAL_TEXTURES is defined, the texture hashmap in gfx_pc.c uses texture names as keys

all textures are precached on startup if EXTERNAL_TEXTURES is defined and 'precache' is true in the config
2020-05-26 00:54:51 +03:00
fgsfds 1873f7aba5 game now uses non-working directory paths by default
saves by default go into XDG_DATA_HOME/sm64pc

external data is read from the executable directory, if it's not found there on Unix systems the game will attempt to read it from some paths like /usr/local/share/sm64pc

both save data and readonly data fall back to other options in case of a problem

behavior can be overridden by specifying --datapath and --savepath on the CLI

both of those will expand the exclamation point ('!') to the executable path, e. g. --savepath '!/save'
2020-05-25 07:19:35 +03:00
fgsfds 9825b02f50 add option to load textures from external files
this stores the null terminated texture name instead of the texture data

activated with EXTERNAL_TEXTURES=1
2020-05-25 04:22:03 +03:00
fgsfds 4bbde37464 this ain't const anymore 2020-05-22 01:42:07 +03:00
IvanDSM 1298cd6017 Add commit hash to window title for nightly builds.
This also adds a flag for detecting nightly builds in the code.
2020-05-21 14:19:20 -03:00
fgsfds 0724f0ed09 add fog to GL1.3 renderer
uses two different methods, with the first one taking priority if it's available:

a) use the fog factor supplied in the fog colors as a GL_FOG_COORD; GL_FOG_COORD is only available in GL1.4+ or when GL_EXT_fog_coord is present

just blend the same triangles a second time, but replace the color with fog color and multiply the alpha by fog alpha
2020-05-21 03:12:51 +03:00
fgsfds 2714708ca9 avoid redefining CLOCK_MONOTONIC and shit 2020-05-20 17:56:35 +03:00
Mario Reder f99298943c fix non mingw builds
resolves #230
2020-05-20 16:50:05 +02:00
fgsfds c540712154 add GL1.3 (or 1.2 with some extensions) rendering backend
there are still some graphical glitches and no fog
2020-05-20 07:00:04 +03:00
zerocloude 0c03280516
Merge pull request #93 from yksoft1/mingw.org-compatible
Making code MinGW.org and MSYS1 compatible
2020-05-19 23:45:44 +09:00
fgsfds c18e70f44e Revert "Merge branch 'nightly' into master"
This reverts commit 2e8a821fa3, reversing
changes made to d499f55402.
2020-05-19 02:38:59 +03:00
fgsfds 2e8a821fa3
Merge branch 'nightly' into master 2020-05-19 02:33:30 +03:00
fgsfds 6a79a9af99 bring back the old frame timing method (if vsync != 2) 2020-05-19 01:32:49 +03:00
fgsfds 59913a9beb Revert "Revert "(hopefully) fix the timing crap; add vsync option""
This reverts commit c6961b8606.
2020-05-19 01:25:59 +03:00
fgsfds c6961b8606 Revert "(hopefully) fix the timing crap; add vsync option"
This reverts commit 2bd840a299.
2020-05-18 18:48:11 -03:00
fgsfds c3c2451c6a Revert "(hopefully) fix the timing crap; add vsync option"
This reverts commit 2bd840a299.
2020-05-18 18:44:35 -03:00
fgsfds 2bd840a299 (hopefully) fix the timing crap; add vsync option 2020-05-18 23:03:04 +03:00
Vinícius R. Miguel bd186569de Fixes --fullscreen and --windowed problems 2020-05-18 00:28:05 -03:00
Heaven Volkoff 98efed7c51 Reset Window now exit fullscreen
Change configFullscreen to configWindow.fullscreen
2020-05-17 23:31:31 -03:00
Heaven Volkoff 9927b3555d Fix fullscreen exit resulting in a slightly lower Y position 2020-05-17 23:31:31 -03:00
Heaven Volkoff 0fa331d961 Implement save/restore window dimensions/position
- Add an entry in options menu to reset window
2020-05-17 23:31:31 -03:00
kurethedead 181e18dfea Implemented LoadTile f3d command, I4/I8/RGBA32 texture formats. 2020-05-17 15:48:06 -07:00
fgsfds 62cc4620ec no need for that, window resize events happen when fullscreen state changes 2020-05-17 19:56:33 +03:00
fgsfds 58dbb04f97 update gfx_sdl2.c with the latest stuff from Emill/n64-fast3d-engine 2020-05-17 19:49:36 +03:00