Commit graph

1510 commits

Author SHA1 Message Date
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
Clownacy
1cffacb72e Added DecodeBitmapFromFile 2020-01-27 00:30:54 +00:00
Clownacy
2ef48bea8a Change DecodeBitmap to use unsigned ints
Why would an image decoder ever return a _negative_ image
width/height?
2020-01-26 23:59:04 +00:00
Clownacy
4f7bd116f6 Add missing SDL.h #includes 2020-01-26 23:57:09 +00:00
Clownacy
cccef2b089 Fix memory leaks 2020-01-26 23:54:20 +00:00
Clownacy
5e60c15b1d Add missing sanity check 2020-01-26 23:53:40 +00:00
Clownacy
1e21b32dec Remove SDL.h #include from Draw.h 2020-01-26 20:17:40 +00:00
Clownacy
b650294b8b Change LoadFileToMemory's function signature 2020-01-26 20:06:31 +00:00
Clownacy
cf8977207e Stop using SDL for .bmp decoding
Now it uses stb_image instead
2020-01-26 19:47:50 +00:00
Clownacy
dfd50ecf8d Remove MycParam.cpp's dependency on SDL
Instead we just encrypt/decrypt the 290.rec data in an
endian-neutral way.
2020-01-26 14:45:36 +00:00
Clownacy
331d5a2d95 Merge branch 'accurate' into portable 2020-01-26 13:52:47 +00:00
Clownacy
30dced2587 Correct the style of some pointer checks 2020-01-26 13:52:24 +00:00
Clownacy
8d6c449482 Catch an entry parameter list I missed 2020-01-26 13:35:47 +00:00
Clownacy
e33bd9c8f9 Fix visual artefacting on the Pi
I'm not sure why there was linear filtering when I was rendering at
1:1 pixel ratio, but it did happen. This fixes it by forcing
nearest-neighbour. The artefacting was caused by the linear filtering
blending with pixels outside the specified texture coordinates,
creating lines around everything.

Fun fact: the framebuffer technique CSE2 uses is demanding on the Pi
(1278x720 runs at 60 FPS when the framebuffer is forced to 852x480,
even though all the internal rendering is still 1278x720). I guess
rendering those extra 920160 pixels really takes its toll.
2020-01-25 14:26:15 +00:00
Clownacy
99a8b2bd18 Improve OpenGL performance on the Raspberry Pi
Apparently 2 VBOs wasn't enough. This bumped the framerate from 13FPS
to 20FPS in a stress-test (CSE2E at 1704x960 on a Raspberry Pi 3B
in X11 with the KMS OpenGL driver).
2020-01-25 14:22:50 +00:00
Clownacy
517824216e Merge branch 'accurate' into portable 2020-01-24 21:01:33 +00:00
Clownacy
0bcf978424 Rename HookDirectInputDevice 2020-01-24 21:00:34 +00:00
Clownacy
78b41a5ced Merge branch 'accurate' into portable 2020-01-23 01:50:42 +00:00
Clownacy
0237844e14 Actually, this fix doesn't seem right 2020-01-23 01:50:03 +00:00
Clownacy
e8edc42d07 Merge branch 'accurate' into portable 2020-01-23 01:37:03 +00:00
Clownacy
4091d152ee Minor style tweak 2020-01-23 01:36:19 +00:00
Clownacy
a65c4bc1e3 Added bugfix to Organya 2020-01-23 01:34:55 +00:00
Clownacy
1fe73f9aab Explicitly compare pointers in Font.cpp to NULL 2020-01-23 01:05:29 +00:00
Clownacy
ede9fa213d Fix compilation with FIX_BUGS enabled 2020-01-23 00:03:54 +00:00
Clownacy
8798a7cc19 Add the RGB macro to the windows.h wrapper 2020-01-22 23:53:14 +00:00
Clownacy
2f4eb464a5 Merge branch 'accurate' into portable 2020-01-22 23:51:42 +00:00
Clownacy
f687c5f68b Remove the RGB macro
This is a leftover part of the window.h emulator in that got moved to
the portable branch
2020-01-22 23:50:27 +00:00
Clownacy
4ebfe064ff Fix compilation 2020-01-22 23:33:59 +00:00
Clownacy
87b296c513 Converted SDLSurface renderer 2020-01-22 22:33:34 +00:00
Clownacy
f6f3c26a3b Converted SDLTexture renderer 2020-01-22 22:31:19 +00:00
Clownacy
48b7a878ba Convert software renderer 2020-01-22 22:24:23 +00:00
Clownacy
6dac8254e2 Begin merge of Backend_Init/Backend_CreateWindow
OpenGL3+OpenGLES2 backend done so far
2020-01-22 22:19:55 +00:00
Clownacy
3baba6a727 Make FlushVertexBuffer bail when buffer is empty 2020-01-22 21:56:11 +00:00
Clownacy
88c30442c5 Force SDL2's render-batching
SDL2 will implicitly disable batching if we force a specific
rendering driver (apparently the user setting SDL_RENDER_DRIVER
counts too) for backwards-compatibility with older programs that use
their own rendering side-by-side with SDL2's. We don't do that,
though, so this commit forces SDL2 to use batching if it's available
(2.0.10 and onwards).
2020-01-21 23:39:49 +00:00
Clownacy
2fec50ff4e Use constants for attribute locations 2020-01-21 20:16:38 +00:00
Clownacy
8d92bf2004 Double-buffer the OpenGL VBO
This should reduce stalling when the OpenGL driver is still
processing the buffer when we're about to upload to it.

Hopefully, this is what was making the OpenGL ES 2.0 renderer so much
slower than the SDLTexture renderer on the Raspberry Pi 3B (SDL uses
*8* buffers). Unfortunately, I don't have access to it right now, so
I can't test this.
2020-01-21 16:43:21 +00:00
Clownacy
f8a40318a2 OpenGL fixes and optimisations
Now the VBO isn't resized constantly, and CreateSurface preserves
the currently-bound texture.
2020-01-21 15:52:33 +00:00
Clownacy
73de1adc45 Fix a memory leak 2020-01-21 13:24:30 +00:00
Clownacy
cd7ef93f5e We don't need to initialise the VBO here 2020-01-21 13:23:33 +00:00
Clownacy
63d5d766b2 Add debug print for enumerating controllers 2020-01-21 12:30:54 +00:00
Clownacy
4c7726221e ...Actually fix controller support 2020-01-21 12:27:50 +00:00
Clownacy
5d2bcb856b Merge branch 'accurate' into portable 2020-01-21 12:20:03 +00:00
Clownacy
fdbaa4e8e9 Fix controller support
WTF is wrong with me why did I do cffc3af45e
2020-01-21 12:17:45 +00:00
Clownacy
d50c012446 Input.cpp corrections
Typical Microsoft: make the return type a BOOL, but the make the
actual values some random enum.
2020-01-21 11:58:29 +00:00
Clownacy
976e2425fc Use native window/taskbar icons on Windows
This used to be a feature before the accurate-portable split, I'm
just restoring it.

Previously, while the EXE itself had a unique icon, the window and
taskbar both used the generic 'small' icon, which the original EXE
only used for the window.

SDL2 gives us a way to assign separate icons to each, but it's a
little clunky: it's Windows-only, requires the icons be in .ico
format, and needs them to be embedded in the EXE as resource files.
Also, for some reason, SDL2 doesn't let us refer to them by name - we
have to use their numerical ID.
2020-01-21 11:27:32 +00:00
Clownacy
be533e2f55 Remove FRAMERATE constant
I don't see the point in it.
2020-01-20 23:54:46 +00:00