Commit graph

1305 commits

Author SHA1 Message Date
Gabriel Ravier
b238bcee03 Remove random lines mistakenly added by merge 2020-02-14 08:27:07 +01:00
Gabriel Ravier
5bd70eb2db Removed ATTRIBUTE_OPTIMIZE from MakePixelWaveData
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-02-13 19:55:39 +01:00
Gabriel Ravier
5d61641415 Added ATTRIBUTE_HOT to Backend_ColourFill
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-02-13 19:55:39 +01:00
Gabriel Ravier
f43bd4f876 Removed bad omp (it doesn't actually improve anything, i did my measurements wrong) 2020-02-13 19:55:39 +01:00
Gabriel Ravier
2adfef0035 Got Backend_Blit to go from 17% CPU usage to 11% :
- used __builtin_expect to get a 8.5% performance improvement
- used #pragma omp for to get a 30% performance improvement

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-02-13 19:55:39 +01:00
Gabriel Ravier
e8ec6a8ffb Optimize Backend_Blit a bit 2020-02-13 19:55:39 +01:00
Gabriel Ravier
6ccfe063ce Made MakePixelWaveData use ffast-math 2020-02-13 19:55:39 +01:00
Gabriel Ravier
65db12baaa Started trying to optimize MakePixelWaveData 2020-02-13 19:55:39 +01:00
Clownacy
a7f1d80a06 Fix compilation with modern Visual Studio 2020-02-13 18:16:01 +00:00
Clownacy
a767c16d83 Un-un-const a few things 2020-02-09 18:55:41 +00:00
Clownacy
f82a53d336 Prevent errors encountered by MSVC 2020-02-09 18:47:50 +00:00
Clownacy
d4004fe99a Store glyph pixels as chars, not floats
Smaller memory footprint, and probably-insignificant performance
impact.
2020-02-09 13:56:45 +00:00
Clownacy
bb11cd567d Software renderer cleanup 2020-02-09 13:44:02 +00:00
Clownacy
60d3cc2ed6 Update cute_spritebatch.h 2020-02-09 12:40:35 +00:00
Clownacy
8edca4fb2e Style tweak 2020-02-09 12:35:38 +00:00
Gabriel Ravier
81d672e158 Fixed a bunch of npc->cond = 0 bugs 2020-02-06 11:52:49 +01:00
Clownacy
59a8c2617f Tweak some variable naming
The enhanced branch calls them the 'internal *screen* width/height',
which I think is more appropriate.
2020-02-05 15:52:43 +00:00
Clownacy
d9e7ebac38 Correct a typo 2020-02-05 15:47:26 +00:00
Clownacy
2af6a043ef Clean-up the OpenGL renderers a little 2020-02-04 16:35:42 +00:00
Clownacy
1140ab0916 Clean-up renderer backend initialisation 2020-02-04 15:51:19 +00:00
Clownacy
ba6d711d3a Tick cute_spritebatch once per frame
...As opposed to once per draw call.

This change was made because multiple draw calls can be made per
frame, or a only a handful of draw calls may be made per minute.

Since draw calls are an inconsistent metric, I just switched to
frames instead.
2020-02-04 14:57:06 +00:00
Clownacy
2e5e1994c2 Enable debug console prints in non-debug builds 2020-02-03 16:44:52 +00:00
Clownacy
53c0e8470f Add an optimisation to the OpenGL renderers
Since we track the currently-bound "source texture", we don't need
to poll the OpenGL driver for the same info.
2020-02-03 15:53:59 +00:00
Clownacy
dfacd62662 Fix text-flickering in the OpenGL renderers
This would occur in CSE2E's options menu.

It was caused by cute_spritebatch destroying a texture atlas that
was being used by the current unflushed vertex buffer. To solve
this, we now track what textures are being used by current buffer,
and flush the buffer when the texture are about to be
modified/deleted.

As you can guess, this issue doesn't affect the SDLTexture backend,
since its batching system is half-decent.
2020-02-03 15:44:09 +00:00
Clownacy
b894543f3b Shut up a C++11 error from the enhanced branch
Nice one, C++. Adding yet another C-incompatibility?
2020-02-03 14:43:02 +00:00
Clownacy
4190493fd8 More documentation 2020-02-02 00:34:03 +00:00
Clownacy
514d9f8739 Document the OpenGL renderer a bit more
This makes it easier to find things
2020-02-02 00:21:28 +00:00
Clownacy
d84f64a5a9 Tweak cute_spritebatch settings
1024x1024 seems like overkill
2020-02-02 00:10:01 +00:00
Clownacy
eb6ab89b85 Fixes and improvements
Made texture-atlasing occur immediately, notably.
2020-02-02 00:01:45 +00:00
Clownacy
1b2d4fdb4d Fix the other rendering backends
Also finished ripping-out the sub-pixel support
2020-02-01 22:57:07 +00:00
Clownacy
eeed719c16 Get the SDLTexture renderer working again 2020-02-01 22:47:13 +00:00
Clownacy
e3cd7ce353 Add glyph-batching to OpenGL renderer
Unfortunately, sub-pixel font rendering had to go. It wasn't portable
anyway (not every display is an LCD with R->G->B ordering).
2020-02-01 22:37:59 +00:00
Clownacy
eaf2de05b6 Add glyph-batching to the SDLTexture backend
Hope it will be this easy for the OpenGL backend
2020-02-01 17:49:26 +00:00
Clownacy
639039ce3a Added Backend_PrepareToDrawGlyphs
This is to reduce OpenGL context changes, and help pave the way for
glyph-batching
2020-02-01 16:40:23 +00:00
Clownacy
debaeaad17
Merge pull request #99 from GabrielRavier/fixPortableBugs
Fix some UB
2020-02-01 12:46:33 +00:00
Clownacy
a762f28837 Note some out-of-bounds array accesses
Thanks, Gabe
2020-02-01 12:45:32 +00:00
Clownacy
e3db7749ba Add verbose error-reporting to backends
Should fix #98
2020-02-01 12:22:44 +00:00
Gabriel Ravier
8042ab2c9b Fixed more crashes in Caret
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-02-01 07:52:31 +01:00
Gabriel Ravier
aad200801c Removed UB in PutArmsEnergy
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-01-31 23:55:59 +01:00
Clownacy
ed1ff2f275 Tweak MIN/MAX macros in software renderer 2020-01-29 23:45:22 +00:00
Clownacy
788697dc5d Fix a possible hang in the audio mixer
It was likely a race condition between the game thread writing to
'organya_timer', and the audio thread reading it.

...I really need to rethink the API for this Organya-synchronisation
thing.
2020-01-29 23:21:27 +00:00
Clownacy
e4394aea1f Whoops, forgot to remove this #include 2020-01-29 22:16:21 +00:00
Clownacy
d0defa4a7b This cast shouldn't be necessary 2020-01-29 22:15:53 +00:00
Clownacy
638e96be11 Move and rename attrHot
Like the MIN and MAX macros, I'd rather keep this in the source file
than a common header.
2020-01-29 22:14:35 +00:00
Gabriel Ravier
5e6658847c Re-add missing "(double)"
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-01-29 23:04:17 +01:00
Gabriel Ravier
88a8362f23 Reverted fmodf stuff and tried to make it so C++ compilers would go for the float version in appropriate circumstances (fmodf directly is unavailable due to not being in C89)
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-01-29 23:01:31 +01:00
Gabriel Ravier
1442299924 Made MixSounds be marked as hot
Signed-off-by: Gabriel Ravier <gabrielravier@gabrielAncientIBMv2>
2020-01-29 23:01:31 +01:00
Gabriel Ravier
c15ecbf728 Used fmodf instead of fmod for a 0.5% performance increase in MixSounds
Signed-off-by: Gabriel Ravier <gabrielravier@gabrielAncientIBMv2>
2020-01-29 23:01:31 +01:00
Clownacy
bd876e9309 Change icon resource IDs
Visual Studio 2017 doesn't like them being 0 and 1: the compiled EXE
uses the small icon as the taskbar icon. Changing them to 101 and
102, like CSE2 did before the accurate-portable-split, fixes this.
2020-01-28 21:26:28 +00:00
Clownacy
f127010848 Use stb_image's file API
Streams data, instead of reading the whole file into memory.
2020-01-27 15:07:08 +00:00