Clownacy
84626ea710
Merge branch 'accurate' into portable
2020-01-07 04:55:16 +00:00
Clownacy
a0eb646a1f
Add ability to lock certain parts of a surface
...
This avoids conditional jumps based on uninitalised memory, and
should be faster, and should be lighter on memory.
2020-01-07 03:52:37 +00:00
Clownacy
58d7a45392
Empty Tags.h
...
There's no evidence Tags.h contained these variables (if anything, it
appears that Pixel manually declared them in every file that used
them).
gg Pixel
2020-01-06 21:20:17 +00:00
Gabriel Ravier
befb5f7fb5
ScaleAndUploadSurface now doesn't take ownership of the surface it is passed and frees it. This is to correct multiple occurences of use-after-free occuring from use of the passed surface after a call to ScaleAndUploadSurface using it
2020-01-06 18:26:25 +01:00
Clownacy
2e8d3441ed
Turns out I'm the stupid one
2020-01-04 19:49:43 +00:00
Clownacy
0ec5d85d56
Merge branch 'accurate' into portable
2019-11-17 18:30:44 +00:00
Clownacy
989013168c
Clean-up Draw.cpp
2019-11-15 21:00:29 +00:00
Clownacy
85890ef1e6
Shut up some Clang warnings
2019-10-29 12:14:48 +00:00
Clownacy
c2daebe38a
Handle Backend_Init failing
...
Should really give those render-backend functions a different prefix.
2019-10-27 01:57:09 +00:00
Clownacy
a8cf5e1846
Fix a typo in a comment
2019-10-20 21:08:47 +00:00
Clownacy
d1595d536b
Merge branch 'accurate' into portable
2019-09-10 12:35:31 +00:00
Clownacy
3889bd9f1d
Add missing #include to Draw.cpp
...
Thanks to GabrielRavier for noticing.
2019-09-10 12:31:38 +00:00
Clownacy
4b8a6849d3
Actually make the surface regeneration work
2019-09-06 22:13:00 +01:00
Clownacy
4e239c3175
Restore the rendering backend callbacks
...
Now the SDLSurface backend survives window resizes (also triggered by
alt-tabbing while in fullscreen), and the SDLTexture backend properly
regenerates its textures after a fullscreen alt-tab in DirectX mode.
2019-09-06 19:07:49 +00:00
Clownacy
e4fcf6a5e1
Fixed spacing for fonts that aren't Courier New
...
Previous, I used a godawful hack to emulate Windows' API, but it
seems this only ever worked for Courier New: with something like
Liberation Mono, it would squash the font. Now I'm just giving up on
it, and using actual font sizes rather than "cell" sizes.
I'm not sure if this is accurate the original EXE.
2019-09-04 19:21:51 +00:00
Clownacy
ae8aeae2ac
Restored the new font system
2019-09-04 15:43:28 +00:00
Clownacy
6bb31bf868
Merge branch 'accurate' into portable
2019-09-04 14:14:40 +00:00
Clownacy
93029e8e2c
Fix incorrectly-ordered #include
2019-09-04 14:13:51 +00:00
Clownacy
2b4b57c6eb
Merge branch 'accurate' into portable
2019-09-04 14:11:54 +00:00
Clownacy
0531a2c482
Remove the Windows-style path separators
...
There, *now* the game runs on Linux
2019-09-04 13:54:19 +00:00
Clownacy
dcf9921481
Move SystemTask from WindowsWrapper.h to Main.h
2019-09-04 02:23:49 +01:00
Clownacy
b553b0c2e9
Remove DWORD and BYTE
...
They're not as deeprooted as BOOL.
2019-09-04 01:10:54 +01:00
Clownacy
5ea356a3bd
Weed out a lot of the Windows dependency
...
Storytime: Cucky's original SDL2 port work involved using SDL2's
threading API to emulate the original WinAPI threading.
I can't be assed with that stuff, so I used the same trick Cucky did
for the Wii port, and hooked Organya up to the SDL2 audio callback.
This actually opens up the possibility for perfectly-synchronised
Organya playback. By that I mean, instead of needing a super
low-latency audio callback, I can have the callback synchronise its
audio mixing with Organya itself. I haven't done it yet, I plan to
soon.
2019-09-04 00:28:23 +01:00
Clownacy
1f3728c177
Restore the new resource file system
2019-09-02 23:32:19 +01:00
Clownacy
fd855ee732
Restore the new renderers
2019-09-02 22:46:36 +01:00
Clownacy
0faf06224f
Added a bugfix for font creation
...
Fixes Japanese builds using the wrong charset on non-Japanese Windows
installations, and fixed the font using antialiasing, causing it to
clash with the game's colour-keying.
2019-09-01 20:30:26 +01:00
Clownacy
f956eb9264
Mostly ASM-accurate Draw.cpp
...
See #74
2019-08-31 17:43:45 +01:00
Clownacy
03e513365b
PATH_LENGTH is actually Windows's MAX_PATH
...
When MAX_PATH isn't available, use FILENAME_MAX. This might be a bad
idea.
2019-08-31 01:44:53 +01:00
Clownacy
0af39741d4
Merge branch 'master' into accurate
2019-08-29 00:22:18 +01:00
Clownacy
9f81f9e080
Move MakeSurface_Generic to the correct place in Draw.cpp
2019-08-29 00:21:43 +01:00
Clownacy
e67c1e3640
Migrated to the native Windows resource file system
2019-08-27 23:59:57 +01:00
Clownacy
b6322d5e0f
Make LoadBitmap take a pixel buffer instead of an SDL_RWops
2019-08-27 16:10:37 +01:00
Clownacy
64598dc2a5
Rename Surface_Ids to SurfaceID
...
For code style consistency (this isn't a vanilla enum name - I don't
think there even was an enum for this in the original source code)
2019-08-21 16:18:55 +00:00
Clownacy
f354b84f6a
Revert "Glyphs now regenerate with the rest of the game's textures"
...
This reverts commit aa6174b3f2
.
2019-08-14 16:26:37 +00:00
Clownacy
e708dc3a7d
Make the surface_metadata struct match the original
2019-08-13 19:48:18 +01:00
Clownacy
aa6174b3f2
Glyphs now regenerate with the rest of the game's textures
...
God-damn this code is ugly
2019-08-13 18:32:44 +01:00
Clownacy
16b2f6a474
Added enums for the surface types
2019-08-13 04:42:29 +00:00
Clownacy
d47f683491
Ported the Windows version's surface regeneration
...
Has the same imperfections: if you regenerate the surfaces while a
text box is open (and while using Courier New I guess), the text will
regenerate with smaller spaces.
2019-08-13 04:36:05 +00:00
Clownacy
1b6804bbe1
Fix BackupSurface
2019-08-13 02:52:37 +00:00
Clownacy
3f8ead09d6
Renderer backend simplification part 1: Draw.cpp and Software.cpp
...
By emulating the DirectDraw code more closely, I can simplify the
renderer backend API.
2019-08-13 01:39:08 +00:00
Clownacy
85f58d7d39
Rendering backend API naming improvements
2019-08-10 19:50:10 +01:00
Clownacy
2b86db32a0
Backend_Blit always uses a colour key
2019-08-10 19:31:45 +01:00
Clownacy
607bbfcef8
Remove some debug prints
...
I prefer to only print on error
2019-07-31 23:12:06 +00:00
Clownacy
9948fa8b07
Move the SDL_Window creation to the rendering backends
...
Whoops, didn't mean to commit the Main.cpp edit way back when I made
the OpenGL 2.1 backend.
2019-07-24 20:20:06 +01:00
Clownacy
6d385e674f
Font refactor part 1: Software
...
With this, font blitting is handled by the rendering backend, paving
the way for hardware-accelerated font drawing in the accelerated
backends.
2019-07-23 16:38:04 +01:00
Clownacy
a3278a60b5
A fix, some documentation, and cleanup
2019-07-19 19:19:35 +01:00
Clownacy
74c9931ebb
Change the renderer backend API for uploading pixels
...
Also fix some blatant build errors. I must be going mad - I swear
I've fixed that typedef thing like twice already.
2019-07-19 08:45:59 +01:00
Clownacy
36fdb4596d
Cleanup and an accuracy improvement
2019-07-16 13:21:21 +01:00
Clownacy
81eb438482
Fixes and tweaks
2019-07-16 00:15:20 +01:00
Clownacy
6a4f4e0df3
Added handlers for render target loss/window resize
...
These only really happen when you use exclusive fullscreen and
alt-tab out. Or, at least, it does on Windows with SDL2 in DirectX
mode.
2019-07-15 17:47:22 +01:00