Clownacy
142db71cb9
Move sanity checks to Draw.cpp
...
There, no need to keep track of a bunch of duplicate sanity checks
2020-09-15 00:07:10 +01:00
Clownacy
611afe7417
Remove those annoying renderer sanity checks
...
Duplicate junk. If they're that important, they can go in the game,
not the backends.
2020-09-14 23:55:39 +01:00
Clownacy
27b3980a56
Flush Wii U vertex buffers when stuff happens
...
You know, this 50-character commit name limit is really annoying.
2020-09-14 23:47:52 +01:00
Clownacy
e96ee6ed89
Don't leave dangling OpenGL texture IDs
2020-09-14 23:43:18 +01:00
Clownacy
9ea6caad72
Merge branch 'accurate' into portable
2020-09-14 23:31:01 +01:00
Clownacy
eadc04e46e
Bump StartDirectDraw fix to FIX_MAJOR_BUGS
...
I was debugging GLFW earlier, and this fix wasn't being enabled.
FIX_BUGS should be for aesthetic bugs that only affect gameplay, not
ones that affect fundamental stability.
2020-09-14 23:30:11 +01:00
Clownacy
2bcab6adee
Change software renderer sub-backend API
...
No more locking
2020-09-14 23:26:55 +01:00
Clownacy
30ea89d3fa
Remove some now-unneeded struct members
2020-09-14 23:17:21 +01:00
Clownacy
e18ec87f99
Update Wii U renderer
2020-09-14 23:16:45 +01:00
Clownacy
98f66444d7
Updated OpenGL renderers
2020-09-14 23:12:18 +01:00
Clownacy
f55c965a70
Update SDLTexture backend
2020-09-14 23:09:55 +01:00
Clownacy
37a1518056
Update SDLSurface renderer
2020-09-14 23:06:42 +01:00
Clownacy
6b18ec91be
Replace LockSurface with UploadSurface
...
The old locking/unlocking API was plain inefficient. Soon I'll move
upscaling to the backend anyway, to minimise the overhead where
possible.
Currently only the software renderer has been updated.
2020-09-14 23:03:23 +01:00
Clownacy
ba797d0fea
Merge branch 'accurate' into portable
2020-09-14 20:04:41 +01:00
Clownacy
55b473a490
Document Flash.cpp some more
2020-09-14 17:01:00 +01:00
Clownacy
95f370a720
Integer-only ratio logic
2020-09-14 16:31:54 +01:00
Clownacy
746ebb822c
Bump glyph cache limit to 256
...
This should fit an entire extended ASCII set, and also help Japanese
support a little by having a larger pool of cached glyphs.
2020-09-14 15:29:04 +01:00
Clownacy
2446ec02c8
More PHILOSOPHY.md tidying
2020-09-14 13:29:27 +01:00
Clownacy
f9fa8ccbbf
Rework PHILOSOPHY.md some more
2020-09-14 13:21:47 +01:00
Clownacy
d59b3fab89
Update PHILOSOPHY.md
...
This branch has shifted focus slightly, from just porting Cave Story
as-is, to porting it while also trying to recreate the original 2004
experience.
2020-09-14 12:49:46 +01:00
Clownacy
afed830366
Only mark render-target textures as lost
...
SDL2 only loses target textures.
2020-09-14 12:49:34 +01:00
Clownacy
05b8b607fa
Correct outdated comment
2020-09-14 12:26:56 +01:00
Clownacy
63e4ac9aa9
Remove RenderBackend_FlushGlyphs
...
No longer used for anything
2020-09-14 12:25:39 +01:00
Clownacy
daa55b1a3c
Allow font atlases to be non-square
...
Saves a little memory in some cases. It's the backend's job to decide
if this is a problem or not, and pad it if it has to.
2020-09-14 12:08:27 +01:00
Clownacy
17da39fa14
Rename FontObject to Font
...
Explicitly calling it an object just seems unnecessarily verbose,
2020-09-14 11:54:37 +01:00
Clownacy
1625d3961d
Correct some awkward wording
2020-09-14 11:50:48 +01:00
Clownacy
0cdd6ad4df
Rename a rect
2020-09-14 10:44:54 +01:00
Clownacy
2d5f6a547d
Disable blending for the framebuffer
2020-09-14 10:42:31 +01:00
Clownacy
5e28463509
Remember to free the upscaled framebuffer
2020-09-14 10:39:16 +01:00
Clownacy
56b96ed432
Only use an upscaled framebuffer if we have to
2020-09-14 10:36:35 +01:00
Clownacy
53e96486ce
Use proper texture access type
2020-09-13 19:50:47 +01:00
Clownacy
2f748810bf
Disable blending for the upscaled framebuffer
...
I'd set it to RGB24 instead of RGBA32, but I don't know if there'd be
a performance penalty.
2020-09-13 19:41:19 +01:00
Clownacy
4517c9be9e
Fix incorrect upscaled framebuffer size
2020-09-13 19:37:01 +01:00
Clownacy
c12149b96e
Fix a weird old typo
2020-09-13 19:35:31 +01:00
Clownacy
7bc028f5d8
Enable window-resizing in the SDLTexture renderer
...
Previously, the window was a fixed size just like the original.
This change highlights a weird issue in CSE2: this doesn't exactly
match the behaviour of the original game, so why did I change it?
Simple: monitors had much lower pixel-densities back in the early
2000s, meaning that 320x240 and 640x480 weren't as laughably small as
they are today.
I like to think of CSE2's portable branch as Cave Story's equivalent
to Chocolate Doom: the point isn't to replicate the game's behaviour
100% - that's the accurate branch's job - no, the point of the
portable branch is to replicate the *experience* of the game, as it
was back in 2004. This means no commically-small windows.
This is the same reason font anti-aliasing is disabled, even in
versions of Windows later than XP.
Sidenote: the OpenGL3/OpenGLES2 renderers already had this feature,
but they used linear-filtering, causing the screen to be extremely
blurry in 320x240 mode. This renderer uses a better method, which
does apply slight blurring at the edges of pixels at resolutions
that aren't an exact multiple of 320x240/640x480, but otherwise it
resembles nearest-neighbour. This is way nicer to look at, and fits
the game's aesthetic. This feature will be ported to the other
renderers soon.
2020-09-13 18:17:58 +01:00
Clownacy
aa3cd55b43
Fix SDLTexture surface freeing
2020-09-13 12:30:56 +01:00
Clownacy
bf93334b94
Fix out-of-bounds font atlas accesses
2020-09-13 12:30:01 +01:00
Clownacy
5e7f514b6f
Hopefully fix font atlas pixel bleeding
2020-09-13 12:29:50 +01:00
Clownacy
5b33d0280d
Merge branch 'accurate' into portable
2020-09-12 00:30:03 +01:00
Clownacy
f47ffea577
Remove a bugfix
...
It can't be saved...
2020-09-12 00:01:42 +01:00
Clownacy
f54dc8ce05
Ramble about the broken font sizes
2020-09-11 23:55:25 +01:00
Clownacy
a6408b330f
Fix build error
2020-09-11 23:10:47 +01:00
Clownacy
a37e1d31f2
Remove extra newline
2020-09-11 13:06:52 +01:00
Clownacy
0324d1532b
Apply SurfaceID type
2020-09-10 21:29:25 +01:00
Clownacy
1f88f7ffaf
Make some code uniform
2020-09-10 21:26:22 +01:00
Clownacy
84c1e00c95
Tidy-up some code
2020-09-10 19:07:46 +01:00
Clownacy
69f3fbcd5a
Change a dumb parameter
2020-09-10 17:56:22 +01:00
Clownacy
0fa538732d
Use PrintError instead of ShowMessageBox
2020-09-10 17:48:21 +01:00
Clownacy
b065882f24
More size_t
2020-09-10 17:42:18 +01:00
Clownacy
988f1128dd
Convert a bunch of ints to size_t
...
ints are dumb - only use them when you have to
2020-09-10 17:36:21 +01:00