1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2024-11-29 22:35:45 +00:00
Commit graph

434 commits

Author SHA1 Message Date
fgenesis
72f2b44620 Tiny simplification in render pass logic 2022-06-09 02:32:19 +02:00
fgenesis
a2e7e4a670 undo prev. commit and fix this properly. i'm just blind. 2022-06-06 01:41:50 +02:00
fgenesis
8b3c00dc76 fix quad coloring when overridden by parent (eg. entity damage flash) 2022-06-05 23:40:26 +02:00
fgenesis
b4ae208886 remove now unused constant OVERRIDE_NONE 2022-05-25 21:19:14 +02:00
fgenesis
4e9e0acb4a correct rendering entities that have no skel 2022-05-25 21:18:55 +02:00
fgenesis
f91d66a0e0 bind texture only when we're really about to render 2022-05-25 01:05:52 +02:00
fgenesis
f466e1e7c8 remove overrideRenderPass completely
Also removes Lua functions:
- obj_setOverrideRenderPass()
* entity_setRenderPass() is now the same as obj_setRenderPass(),
  without the special case alternate name in Lua
2022-05-25 00:40:47 +02:00
fgenesis
1a90625979 refactor rendering logic to be a lot less wasteful
Observations:
- Entity::renderPass was never set to RENDER_ALL -> can simplify some things
- The initial pass check in RenderObject::render() was constant for each pass
-> All logic that is per-pass-constant can be moved to a renderability pre-check
- Core::overrideStartLayer, Core::overrideEndLayer, Core::rlayer were never used
- Should be possible eventually to prepare & render layers in parallel

I am not sure if the changes in this commit are 100% correct, but layer passes
are still working and the hug looks like it should.

Thinking about it, the overrideRenderPass functionality should never have existed.
The game scripts don't actually use entity_setRenderPass
(which in turn calls Entity::setOverrideRenderPass())
so I might remove that function in a future commit,
together with the rest of the "override" functionality.
2022-05-22 17:26:16 +02:00
fgenesis
da23098692 remove PostProcessingFX
It was broken on modern graphics cards anyway and should rather be re-introduced
in a cleaner way once the renderer is ready for it
2022-05-21 18:56:27 +02:00
fgenesis
693223552d remove Quad::createStrip(), related members, and cleanup Bone strip handling
Saves some work when rendering EVERY SINGLE QUAD in the game
2022-05-21 17:31:50 +02:00
fgenesis
80d23900de Don't cache blend type while glBlendFunc() is still called elsewhere 2022-05-21 16:31:38 +02:00
fgenesis
5c558c122f Remove RenderObject::setColorMult() hack and related members 2022-05-21 16:31:10 +02:00
fgenesis
cec6bc5ebf Remove Quad::repeatingTextureToFill 2022-05-20 04:05:54 +02:00
fgenesis
5c419efd79 Remove RenderObject::updateAfterParent; simplify + clarify ParentManaged logic
SkeletalSprite was the only thing using it.
Instead of PM_STATIC it's now added to its Entity as PM_NONE.
PM_NONE is not auto-updated so SkeletalSprite::update() is now called
at the end of Entity::onUpdate()

(There's now a bug that during spirit form the screen stays black,
probably added that in an earlier commit. Will fix.)

(On second tought, maybe ParentManaged should be boolean.
Instead add a noAutoUpdate flag. But i'll save that for another time when i get around
to move all RenderObject bools into a bitmask.)
2022-05-20 03:27:15 +02:00
fgenesis
68b3c61852 Add RenderState to be passed through the scene graph
This will eventually handle all mutable state during rendering
2022-05-20 01:04:19 +02:00
fgenesis
b6fb6944f6 first step towards making the render process const 2022-05-19 05:17:00 +02:00
fgenesis
46010244f5 remove RenderObject::blendEnabled and cleanup the blend code a bit 2022-05-19 01:34:31 +02:00
fgenesis
06270eaac0 remove RenderObject::childGarbage 2022-05-19 00:01:27 +02:00
fgenesis
140f750d00 More RenderObject slimming; reorder members, split out motion blur data + collideRadius, add new CollideQuad type
CollideQuad is now base class for Shot, Entity, Bone
2022-05-18 19:44:42 +02:00
fgenesis
ac80b3461a simplify RenderObject::renderCall() a bit 2022-05-18 04:04:44 +02:00
fgenesis
4db7990ac2 remove displaylist support
i'd rather trim all possible fat off the renderer and then modularize it
into multiple backends. gotta start somewhere.
2022-05-18 03:39:33 +02:00
fgenesis
c82aab1e51 Move RenderObject::positionSnapTo to PauseQuad
And another RenderObject member less...
2022-05-18 02:52:30 +02:00
fgenesis
046b98c725 delete some unused code 2022-05-18 02:38:53 +02:00
fgenesis
111cd43805 Move members related to collision mask from RenderObject to Bone 2022-05-18 02:15:19 +02:00
fgenesis
e33bde0a89 Small extension to bone:
+ attrib c="0" in the anim XML to turn off all collision for a bone
  even if collide radius or collision mask is set
+ Lua func: bone_toggleCollision() to change the above setting at runtime
+ Lua func: bone_spawnParticlesFromCollisionMask()
- Fix int truncation in entity_collideSkeletalVsLine()
2022-05-18 01:18:27 +02:00
fgenesis
e1f78aaca7 QuadGrid now working 2022-05-14 05:14:08 +02:00
fgenesis
fa35ee41bd some work on quadgrid, still untested 2022-05-13 17:13:27 +02:00
fgenesis
ad36f6cf99 remove unused QuadTrail 2022-05-12 17:35:39 +02:00
fgenesis
e357a22784 another temp commit 2022-05-07 02:47:59 +02:00
fgenesis
ce4ca7f794 Temp commit, some WIP things:
- QuadGrid draft
- Fix minimap_setHealthBarTex accidentally calling MiniMapRender::setAvatarTex
- don't trunkcate to int in entity_rotateTo*() functions
2022-05-06 19:14:47 +02:00
fgenesis
764d106d50 Work around issues with SDL_WarpMouse() in SDL > 2.0.20
Without this and using an affected SDL version, the song circle
is all jittery; the mouse cursor appears to really like to stick
to notes in the left half of the circle.

This issue first appeared in SDL commit 82793ac279d19b5 and caused
the entire game to hang (infinitely firing mouse motion events);
SDL commit 31f8c3ef4409a93fa fixed the hang but instead made
SDL_WarpCursor() jittery.
(Also see SDL commit 331859079674465 for a follow-up)
2022-05-04 03:04:26 +02:00
fgenesis
e32603e6c0 less compression for screenshots so taking one is faster 2022-04-29 10:34:10 +02:00
fgenesis
9290acd379 fix taking screenshots 2022-04-29 10:26:25 +02:00
fgenesis
988c8c79e4 set better default compiler options; optional console in release mode on windows 2022-04-08 19:31:16 +02:00
fgenesis
b1611d4870 oops, spam a little less 2022-04-07 03:14:54 +02:00
fgenesis
a97b1bbd5c try harder to display early errors (eg. before SDL init) 2022-04-07 03:12:21 +02:00
fgenesis
d34a962e78 fix linux/gcc build 2022-04-07 03:11:24 +02:00
fgenesis
49b9e0f05a Rework & cleanup CMake project files
- Building with CMake for development is now actually sane
- Split deps into projects and extra files
- Building against external deps should still work but needs testing
- Can now build out of the box without further adjustments as long as SDL(2) is found properly
- Build Lua in C++ mode (so it can use exceptions instead of setjmp/longjmp)
  - Unfortunately we need to enable exceptions for this :(

- Remove these defines:
  * AQUARIA_BUILD_SCENEEDITOR (now always on)
  * AQUARIA_BUILD_CONSOLE (now always on)
  * BBGE_BUILD_ACHIEVEMENTS_INTERNAL (now always on unless BBGE_BUILD_STEAMWORKS is defined)
  * BBGE_BUILD_OPENGL_DYNAMIC (now always on, define BBGE_BUILD_OPENGL_STATIC if needed)
  * BBGE_BUILD_FMOD_OPENAL_BRIDGE (now always on)
- BBGE_BUILD_STEAMWORKS is not actually implemented (any volunteers?)
- Prepare later removal of SDL & the old vc90 project from the repo. See #74 for extra notes.
2022-04-07 02:38:39 +02:00
fgenesis
f0f9f1a719 Fix wrongly disabled mipmap sampling in GL_GENERATE_MIPMAP mode 2022-04-05 10:02:33 +02:00
fgenesis
e7594ecead Obsolete & remove BBGE_BUILD_SDL2. Closes #65. 2022-04-05 09:58:57 +02:00
fgenesis
96216503c4 remove zlib, libpng, glpng and related code; add some stb libs; rework texture loading 2022-03-31 21:03:40 +02:00
fgenesis
e07723939f thanks clang 2022-03-30 19:32:37 +02:00
fgenesis
2e3cd6a103 use (slightly fixed up) mojoAL instead of openALsoft in SDL2 builds 2022-03-21 18:03:01 +01:00
fgenesis
26759c8be1 remove iprof and BBGE_PROF (#74) 2022-03-17 20:50:42 +01:00
fgenesis
db079a55ef Replace the old Lua small block allocator with a new one (for #74)
Renamed original .c file to .cpp to make VS2008 happy
2021-01-23 14:07:39 +01:00
fgenesis
e4b2ee6e70 make travis happy (confirmed working with SDL1.2 + SDL2) 2021-01-23 13:52:10 +01:00
fgenesis
db054e7382 Fix startup on windows 10 with new SDL2 and sensors disabled by group policies 2021-01-23 13:23:33 +01:00
fgenesis
5897d369b0 Remove unused virtual RenderObject::onDestroy() method 2021-01-12 19:00:31 +01:00
fgenesis
4990ae3bf6 Fix ACTION_MENU* input to be sent as intended, broke in a7c2d054a2 iirc 2021-01-12 14:24:30 +01:00
fgenesis
37fa087c2e prevent jerkiness when creating window in fullscreen mode 2021-01-12 14:18:33 +01:00
fgenesis
067472d61b avoid creating a (0,0)-sized window at the start 2021-01-12 14:05:22 +01:00
fgenesis
a1f92433d8 fixes to window size management, fullscreen transition, etc 2021-01-12 11:06:09 +01:00
fgenesis
86cd7950ca Merge branch 'experimental' into controllerfixup + bring back BBGE_BUILD_OPENGL_DYNAMIC
# Conflicts:
#	BBGE/Base.cpp
#	BBGE/FrameBuffer.cpp
#	BBGE/Shader.cpp
2021-01-12 02:45:41 +01:00
False.Genesis
b3b3d98f79
Merge pull request #73 from dimag0g/experimental
Compatibility with non-standard build environments
2021-01-12 02:15:49 +01:00
fgenesis
94dbecac43 Only keep the one screen mode with the highest refresh rate per resolution 2021-01-12 01:57:29 +01:00
fgenesis
03c698320a Merge branch 'experimental' into controllerfixup
# Conflicts:
#	Aquaria/AnimationEditor.cpp
#	Aquaria/AquariaComboBox.cpp
#	Aquaria/AquariaMenuItem.h
#	Aquaria/Avatar.cpp
#	Aquaria/BitBlotLogo.cpp
#	Aquaria/Continuity.cpp
#	Aquaria/DSQ.cpp
#	Aquaria/DSQ.h
#	Aquaria/Game.cpp
#	Aquaria/Game.h
#	Aquaria/Intro.cpp
#	Aquaria/RecipeMenuEntry.cpp
#	Aquaria/SceneEditor.cpp
#	Aquaria/States.h
#	Aquaria/UserSettings.cpp
#	BBGE/ActionMapper.cpp
#	BBGE/Base.cpp
#	BBGE/BitmapFont.h
#	BBGE/Core.cpp
#	BBGE/Core.h
#	BBGE/ParticleManager.cpp
#	BBGE/Particles.h
#	BBGE/RenderObject.h
#	BBGE/Shader.cpp
#	BBGE/Shader.h
#	BBGE/SkeletalSprite.h
#	BBGE/Texture.cpp
#	BBGE/Vector.h
2021-01-12 00:26:44 +01:00
fgenesis
25696c4436 Enable msvc signed/unsigned mismatch warnings and fix remaining cases 2021-01-11 19:27:54 +01:00
Valentin Ochs
c3f1058ff2 Change some stuff for butt-endian architectures 2021-01-11 12:28:27 +01:00
Valentin Ochs
4c7c4c240e Fix some more warnings 2021-01-11 12:28:27 +01:00
Valentin Ochs
b9d402199c Get rid of a lot of gcc warnings
Mostly signed/unsigned comparisons. Also some bugs, but I don't remember
where :D
2021-01-11 12:28:27 +01:00
Dmitry Grigoryev
9596e7eac8 fix static FrameBuffer/Shader build 2021-01-02 02:14:15 +01:00
Dmitry Grigoryev
c6968454e6 Merge branch 'master' of https://github.com/dimag0g/Aquaria 2021-01-02 01:50:48 +01:00
fgenesis
c80176d20a preliminary support for joystick POV-hats 2020-07-07 22:30:25 +02:00
fgenesis
53b027067a improvements to key config menu
- hide actionset selection if only 1 set is present
- show keys pressed
- highlight "tabs" a bit more visually
- rumble selected controller on device select change
2020-07-07 16:24:03 +02:00
fgenesis
021512337e fix build on RPi4 (and probably newer gcc), thx pelupessy
Close #62
2020-07-04 18:13:48 +02:00
Yaroslav Isakov
74e196daa5 Force desktop OpenGL 2020-07-01 18:46:13 +02:00
fgenesis
1de786efc6 Fix bug that a bone's rq="0" attribute would disappear when skel was saved while visible 2019-09-06 02:56:53 +02:00
fgenesis
61f1e87180 fix uninitialized ptr. ooopsie 2019-04-15 02:26:48 +02:00
fgenesis
6704fd1ac6 fix SDL 1.2 window focus handling 2019-03-24 21:15:27 +01:00
fgenesis
0abe0f821c hard-wire Escape key to always trigger ACTION_ESC.
Additional config for more keys/button to trigger the same action
is still possible.
2019-03-18 01:07:14 +01:00
fgenesis
77709a2d85 Display errors when loading XML fails 2019-03-18 00:50:56 +01:00
fgenesis
b7a6b52fe5 SDL window backend cleanup 2019-03-18 00:50:36 +01:00
fgenesis
04c557f5e8 Refactor Window functionality out of Core. Minor cleanups.
SDL2 impl seems to work, SDL1 impl finalization pending.
2019-01-29 00:36:48 +01:00
fgenesis
3fe9b1590c SDL 1.2 backend compiles again, but window stays black 2018-04-17 01:28:23 +02:00
fgenesis
5f2eafad7c temp commit 2018-01-21 12:47:32 +01:00
fgenesis
8f565c6171 Include stringbank.txt into binary in case stringbank.txt is out of date
This makes sure engine-internal strings are always present.
2018-01-02 20:59:38 +01:00
fgenesis
ce4f6a7d3e move StringBank to BBGE 2018-01-02 17:00:27 +01:00
fgenesis
3a96c775db work around dev warning message; fix compiler warning 2018-01-02 16:18:50 +01:00
fgenesis
64406419c1 Some fixes for msys2/mingw build 2017-09-02 22:13:46 +02:00
fgenesis
bd0e16774f Remove some old/unused cruft 2017-08-09 21:01:56 +02:00
fgenesis
78352d4402 Multi-display fixes
- Enumerate display modes to show in the resolution selector based on the
  screen we're on
- Correct graphics init code to use the display index specified in
  user settings
2017-06-26 08:34:30 +02:00
fgenesis
6f170de929 Proper ~Joystick() dtor. Make haptics optional. Hopefully fixes #50. 2017-06-25 15:56:45 +02:00
fgenesis
2bbcfa2284 Fix some ANimationEditor crashes when loading not-existing or empty anim XML 2017-04-19 02:06:34 +02:00
fgenesis
acb515b738 Unstick highlight in input config 2017-04-04 19:27:53 +02:00
fgenesis
19e967c7dd Fix crash in static initializer (how did this ever work?) 2017-02-27 02:03:46 +01:00
fgenesis
f75f81854a Check input strings in config for overflow 2017-02-27 02:03:19 +01:00
fgenesis
7f20f79d97 Display designated "empty" symbol on key config menu for unbound slots 2017-02-19 03:47:21 +01:00
fgenesis
dd4739e9a0 Now runs with both SDL 1.2 and SDL2 again 2017-02-19 01:45:55 +01:00
fgenesis
eccadf5bd7 Turns out using IDs was a bad idea, reverting to KEY_* strings 2017-02-18 22:09:43 +01:00
fgenesis
3dda97d32a Hopefully fix build against SDL 1.2. Does not yet run!
Also: Recently introduced key names in usersettings.xml will no longer work.
But this should automatically detect key names as they used to be,
and convert automatically. Needs testing.
2017-02-15 04:41:52 +01:00
fgenesis
4095fde219 Move GL headers to ExternalLibs 2017-02-15 01:03:43 +01:00
James Le Cuirot
0dd19f9cb3
Add option to use system copy of GLPNG 2017-02-10 10:01:35 +00:00
James Le Cuirot
4d1fa75545
Put tinyxml2 in subdir so that system header is respected 2017-02-10 10:01:24 +00:00
James Le Cuirot
f19011e3dd
Delete duplicate GL headers
Nothing was pointing at BBGE/glext.

Only the VS project was pointing at ExternalLibs/GL. I have pointed it
at the headers under BBGE/GL instead.

I have also adjusted the includes to use the GL prefix as is standard
practise. These will still work as BBGE is in the include path. This
allows users to build against their system GL headers simply by
deleting the BBGE/GL directory.
2017-02-09 21:08:57 +00:00
fgenesis
89c1987693 Fix crash on shutdown
GL symbols were already unloaded in ~DarkLayer().
Why did this never crash before?!
2017-02-08 22:11:55 +01:00
fgenesis
58e3a247e4 Fix build on osx 2017-02-06 03:37:07 +01:00
fgenesis
7456e785fa Remove mandatory defines and their checks:
BBGE_BUILD_SHADERS
BBGE_BUILD_FRAMEBUFFER
BBGE_BUILD_OPENGL
BBGE_BUILD_OPENGL_DYNAMIC
2017-02-05 22:51:25 +01:00
fgenesis
c581ab01d8 Some preparations to compile with SDL1.2 (not yet!) 2017-02-05 21:25:06 +01:00
fgenesis
a3fb57fde9 un-recurse a thing 2017-01-21 03:34:38 +01:00
fgenesis
8411838636 Remove entity myTimer and related Lua functions. Fix warnings for now unsigned Entity::layer
- entity_resetTimer()
- entity_stopTimer()
2017-01-20 20:54:17 +01:00