Commit graph

2315 commits

Author SHA1 Message Date
Andrei Alexeyev
9b3779ebb4
Some renderer refactoring (mostly API and GLES preparations) (#144)
* Refacor uniforms API:

    - More complete and consistent
    - Type-safety
    - Usage correctess assertions missing for now, planned

* Redesign texturing API: texunits gone, assign textures to sampler uniforms directly

r_texture_create now allocates memory and returns an opaque Texture
pointer; similar changes to the other renderer APIs will follow.

* Framebuffers: make _create return an opaque pointer, add debug label APIs (unused for now)

* opaque pointers and debug label APIs for vertex arrays and buffers

* fix null renderer

* Refactor glsl preprocessing into an independent module

* Separate shader resource management from renderer backend

This makes it possible to add more shading languages and/or include a
transpiler, which will be useful for the GLES backend.

* refactor r_clear into a stateless API

* add r_texture_clear API; fix gl33_framebuffer_clear

* Replace deprecated glsl_objects with objects in all *.prog files

* fix missing texture_clear implementation in null renderer

* remove some dead code in null renderer

* fix GLES segfault

* GLES 3.0 actually has glVertexAttribDivisor

* Query GL for supported GLSL versions (preparing to add shader transcompilation)
2018-09-14 10:37:20 +03:00
Andrei Alexeyev
3cd4ecfceb
Remove the obsolete objpool_release_[a]list functions 2018-08-31 06:23:29 +03:00
Andrei Alexeyev
795668be87
fix delete_items not properly unregistering entities 2018-08-31 06:20:47 +03:00
Andrei Alexeyev
01795250bb
Add build option to disable object pools (for debugging) 2018-08-31 05:59:47 +03:00
Andrei Alexeyev
721bed1a8c
draw boss overlay on top of everything else 2018-08-31 05:46:37 +03:00
Andrei Alexeyev
e4bab8d924
fix #136 2018-08-31 05:34:44 +03:00
Andrei Alexeyev
db3cb2bd03
Let's not try reading screenshots from the front buffer.
It was broken in fullscreen, at least on my system
2018-08-30 14:58:58 +03:00
Andrei Alexeyev
9669fb6df9
Attempt to improve the stage 1 background. "reeds" did not survive. 2018-08-29 23:21:29 +03:00
Andrei Alexeyev
1bb68d7477
add forgotten file 2018-08-29 23:16:03 +03:00
Andrei Alexeyev
1d68ea34ec
gl33: do not require a depth buffer on the default framebuffer 2018-08-28 11:33:18 +03:00
Andrei Alexeyev
e4f49310ff
Fix textures being internally Y-flipped (#142)
* WIP: upload textures with the bottom-left-origin convention, as OpenGL expects

* unflip: fix spellcard_walloftext, text_hud

* unflip: fix reimu's and marisa's bombs

* unflip: fix stagetext

* unflip: fix graph.frag.glsl

* fix sprite_circleclipped_indicator
2018-08-28 11:25:54 +03:00
Andrei Alexeyev
4e9ec77c91
My take on the Marisa bombs. Also blur shaders, minor fixes, etc. 2018-08-27 10:08:14 +03:00
laochailan
c06a333726 tune my marisa bombs
The new marisa color detergent keeps red stars red and yellow stars yellow thanks to the new masterspark formula. Do not breathe.
2018-08-25 14:50:16 +02:00
laochailan
dd5db5e402
narrow down the slaves in FOR_EACH_SLAVE so e.g. masterspark is excluded 2018-08-24 22:00:45 +02:00
Andrei Alexeyev
ee2f419f62
more correct uniform handling; initializers in shaders should work properly now 2018-08-24 14:01:50 +03:00
Andrei Alexeyev
56f066ca3e
Add optional FXAA for the 3D views; fix nasty rendering bug 2018-08-17 01:32:58 +03:00
Andrei Alexeyev
d75bca51e3
some YoumuB tweaks 2018-08-16 17:20:30 +03:00
Andrei Alexeyev
e11ed93da8
Reduce number of texture fetches in Reimu bomb BG shader
Helps a lot on Intel cards without a significant loss of quality
2018-08-14 13:12:00 +03:00
Andrei Alexeyev
5553e38b1a
Fix preloading issues again 2018-08-14 03:56:16 +03:00
Andrei Alexeyev
c43f4d8032
Special stages for DPS testing 2018-08-14 02:42:27 +03:00
Andrei Alexeyev
3f79af227c
MarisaA: purge some effectively dead code 2018-08-14 01:19:19 +03:00
Andrei Alexeyev
924ff7cbd2
fix marisa laser particle offsets 2018-08-14 00:44:40 +03:00
Andrei Alexeyev
c2dbfe5d6b
High-res portraits 2018-08-13 19:56:43 +03:00
Andrei Alexeyev
d1b3e91abb
Restore size-based projectile draw order that was accidentally removed in the PMA patch 2018-08-12 03:10:21 +03:00
Andrei Alexeyev
95f652b311
Remove the sprite_bullet_apple shader.
The new sprite renders correctly with sprite_bullet.
2018-08-12 02:46:17 +03:00
Andrei Alexeyev
f4120596ae
fix and enable mipmaps, atlas maintenance, etc. 2018-08-12 02:38:03 +03:00
Andrei Alexeyev
017f5dee54
move Reimu portrait into the proper atlas 2018-08-11 22:21:05 +03:00
Andrei Alexeyev
3615b95f13
Add Reimu Hakurei as a playable character (#106)
* Reimu (#101)

* add the reimu

* Add Reimu story

* account for various blunders

* add reimu dialog picture

* Reimu: WIP yin-yang orbs

* reimu: fix up indents

* Reimu: swap the shotmode names to match the kanji order in her Japanese name

* Reimu: compatibility with the latest system

* WIP ReimuA crap

* ReimuA homing trails

* more ReimuA stuff

* more ReimuA adjustments + enhanced DPS stats

* Reimu: stubs for new player animation sequences

* Reimu: occupy the 0th character slot

* Reimu: tweak needle sprite

* Reimu: buff movement speed to better match Touhou

* Reimu: fixup for the recent projectile changes

* ReimuA: make homing shots a bit smaller; give them custom effect on collision

* Reimu: add intermediate frames; move some loose sprites to the atlas

* Reimu: fix compile errors

* replace DBL_MAX by INFINITY

* Don’t draw reimu orbs twice

fixes #127

* add new reimu dialog pic

* ReimuA adjustments (mostly homing); it's still OP

* wip ReimuB gaps

* still not sure where i'm going with these gaps

* meh

* Reimu: premultiplied alpha fixups after rebase

* reimuB shot pattern with basic power scaling (not balanced at all)

* reimuB: some lame-ass particle effects

* ReimuB bomb effect prototype

* reimuA bomb prototype

* fix reimu shots for the new damage system

* Reimu: use the new player_is_bomb_active() function, add placeholder BG for ReimuB

* some reimuB bomb projectiles

* ReimuB bomb bg and some framebuffer utils required to support it.

Might reuse this at least in part for ReimuA unless we come up with
something better.

* hack to fix ReimuB bomb fade; refactoring needed

* reimuA damaging bombs

* fix ub

* prevent nan when reimuA bombs without enemies present

* add a bomb_bg to reimuA

* ...

* various fantasy seal tweaks

* Reimu: placeholder bomb sounds; slight fantasy seal buff

* fix null pointer dereference

* Reimu "balance" adjustments; minor fixes

* putting bandaids over gunshot wounds

* Add aoe damage and bullet cancel to ReimuB's bomb

* more exorcism porn

* make reimu bomb bg runes better visible on dark backgrounds

* More ReimuA shot changes
2018-08-11 22:13:48 +03:00
laochailan
157a59dbbd
very silly and simple boss immunity system 2018-08-11 15:16:22 +02:00
laochailan
a9048d22b1
relayer the particle clearing lasagna 2018-08-07 18:42:41 +02:00
Andrei Alexeyev
d4650d4b92
Allow projectile rules to delete other projectiles; add stage_clear_hazards enhancements 2018-08-05 20:58:50 +03:00
Andrei Alexeyev
a562ccb87f
fix ubsan bitching about the obj loader 2018-08-01 21:09:18 +03:00
Andrei Alexeyev
b9262d80ab
fix various issues discovered by scan-build 2018-07-31 11:50:04 +03:00
Andrei Alexeyev
cb593cde87
derp 2018-07-31 10:13:50 +03:00
Andrei Alexeyev
12a9acbc71
Add more functions to query player state properly (is alive, is vulnerable, is bombing)
There are some minor changes to the logic to keep things consistent.
2018-07-31 10:07:34 +03:00
Andrei Alexeyev
706a70f5a2
fix youmuB assertion failure 2018-07-30 16:15:50 +03:00
Andrei Alexeyev
cb792621b2
delegate handling of bomb logic to playermodes 2018-07-30 16:14:51 +03:00
Andrei Alexeyev
e9ef77abee
basic entity damage generalization 2018-07-30 10:04:39 +03:00
laochailan
ffcb2aff9e
possibly fix ingame menu cursor sound not playing while shooting 2018-07-29 16:39:33 +02:00
Andrei Alexeyev
be65fcda51
remove some defunct hacks 2018-07-28 14:02:48 +03:00
Andrei Alexeyev
7ebd1acbd2
NOMINMAX is a thing that exists 2018-07-28 13:53:12 +03:00
Martin Herkt
0386cc1364
NSIS: use zlib compression
LZMA is really, REALLY slow in NSIS’ Linux port. Fucking Windows devs.
It’s also overkill since our assets are already compressed, so
switch to zlib.
2018-07-28 03:33:46 +02:00
Andrei Alexeyev
576643e1d6
get rid of useless padding bytes in the sprite batch attribute buffer 2018-07-25 09:59:04 +03:00
Andrei Alexeyev
6468e4c166
move some sprites out of the common atlas (no rebuild) 2018-07-25 08:58:28 +03:00
Andrei Alexeyev
724a16b975
optimize youmuB bomb for efficient batching 2018-07-25 08:16:15 +03:00
Andrei Alexeyev
3d25c6ee13
fix vfs_vdir_iter 2018-07-25 07:55:48 +03:00
Andrei Alexeyev
ed2fd0f969
fix -t segfault 2018-07-25 07:46:04 +03:00
Andrei Alexeyev
1cc0219238
gl33: fix pointless glDrawBuffers spam 2018-07-25 06:10:27 +03:00
Andrei Alexeyev
e75767aea5
fix rendering of translucent enemies (stage 3 mostly) 2018-07-25 05:54:15 +03:00
Andrei Alexeyev
5cda685bce
adjust some of the hit"boxes" again 2018-07-25 05:50:31 +03:00