Clownacy
ab217f7f6f
Document MakePixToneObject a bit more
2020-09-22 01:43:09 +01:00
Clownacy
049b5e373a
Backport the portable branch's PHILOSOPHY.md
2020-09-22 00:33:50 +01:00
Clownacy
1eb1e522c8
Clarify an odd design choice
2020-09-19 21:55:40 +01:00
Clownacy
a8bcf5a6fb
Orphan vertex buffers for improved performance
...
Bump my Raspberry Pi 3B+ from 100FPS to 120FPS.
2020-09-19 21:50:20 +01:00
Clownacy
9a990d6fa7
Correct some code indentation
2020-09-19 15:07:44 +01:00
Clownacy
5c1012aa8e
Fix upscaled framebuffer skipping
...
Skipping it an 1x is wrong: it should only be skipped if the window
is an integer multiple of the framebuffer size
2020-09-18 21:21:28 +01:00
Clownacy
f2c0f94e42
Faster binary search
2020-09-18 02:55:45 +01:00
Clownacy
729565b5ca
Might as well not obscure the code
2020-09-18 02:05:37 +01:00
Clownacy
b0974c3def
Binary-search optimisations and fixes
2020-09-18 02:03:14 +01:00
Clownacy
4763aecdbd
Correct Lanczos array initialisation
...
I must have forgotten that Lanczos reads backwards too
2020-09-18 00:59:05 +01:00
Clownacy
d3e18d795d
Merge branch 'accurate' into portable
2020-09-17 22:10:24 +01:00
Clownacy
620a25d75c
Made out
ASM-accurate
...
It just so happens that a path buffer and a FILE pointer both take up
the right amount of stack space *and* have the correct stack frame
ordering, so maybe this is actually what the original source code
did.
2020-09-17 21:44:13 +01:00
Clownacy
3a3530252b
Document some leftover debug-related code
2020-09-17 21:07:49 +01:00
Clownacy
c0a6441bcb
Fix another typo
2020-09-17 21:07:48 +01:00
Clownacy
527328c303
Fix a typo
2020-09-17 21:07:48 +01:00
Clownacy
2882f6651a
Apply some Windows types to InitBack
...
Thanks, Cucky
2020-09-17 21:07:43 +01:00
Clownacy
4e936d4f45
Add a todo
2020-09-17 20:13:44 +01:00
Clownacy
f61ffac785
Turns out raw unicode *is* UTF32
2020-09-17 19:43:12 +01:00
Clownacy
ada7d91f17
Tiny cleanup
2020-09-17 19:39:34 +01:00
Clownacy
79586f5b90
Speed-up glyph lookup
2020-09-17 19:34:18 +01:00
Clownacy
ff44d2fd06
Note something
2020-09-17 18:42:36 +01:00
Clownacy
83e8320d84
Fix other renderers
2020-09-17 18:26:32 +01:00
Clownacy
5c6b71e3a1
Optimise a little when using OpenGL3
2020-09-17 18:22:44 +01:00
Clownacy
b8ceefcefd
Flexible OpenGL unpack alignment
2020-09-17 18:05:38 +01:00
Clownacy
86d084f750
Get OpenGL renderers working again
2020-09-17 17:39:02 +01:00
Clownacy
2b848ad16e
Finally, Windows-accurate font sizing
...
And of course Windows has some weird bug that has to be emulated with
FreeType.
2020-09-17 15:02:42 +01:00
Clownacy
c9f17c4411
Rename FreeType font functions
2020-09-17 15:02:42 +01:00
Clownacy
9973dddbbd
Restore the FreeType code
...
Now you can select either the FreeType fonts or the pre-rendered
fonts with CMake's 'FREETYPE_FONTS' option.
2020-09-17 15:02:42 +01:00
Clownacy
a542a5c11d
Cleanup and fixes
2020-09-17 15:02:42 +01:00
Clownacy
aac1c9c844
Get 640x480 and Japanese builds working again
2020-09-17 15:02:42 +01:00
Clownacy
fe76fe6dea
Big scary messy unfinished font overhaul
...
This is currently hardcoded to 640x480 English builds.
What I've done is temporarily gutted the FreeType2 font renderer, and
instead introduced a system where the font is read from a
pre-rendered font atlas. This allows me to get 100% accurate font
rendering to Windows XP... because I literally created these atlases
with Windows XP.
So not only does this eliminate the issue of FreeType producing
misshapen glyphs, but it also works around the copyright issue
regarding bundling the Courier New and MS Gothic fonts with CSE2.
You see, font files can be copyrighted like any old software, however
typefaces have a lot less protection - they're basically fair-game.
IANAL, of course - look it up yourself.
I don't really want to throw away the FreeType font system since I
spent a ton of time working on it, it allows you to use other font
files, and I'll probably wind up needing it for CSE2EX. I guess I'll
just have to find some way to either have the two systems coexist, or
make it so one or the other can be selected at compile-time.
2020-09-17 15:02:36 +01:00
Clownacy
febeb1b692
More-efficient way of determining atlas size
2020-09-16 18:18:37 +01:00
Clownacy
d1560da217
Fix bitmaps at 640x480
2020-09-16 17:45:15 +01:00
Clownacy
08b14fa03f
Don't use upscaled framebufer if it's not needed
...
This matches the SDLTexture backend.
Again, it would be really nice if this code weren't duplicated.
2020-09-15 22:16:05 +01:00
Clownacy
97d5373fa5
Add smooth upscaling to the OpenGL backends
...
Bleh, this is kind of messy and ugly. I also don't like how much
duplicate code there is from the SDLTexture backend.
2020-09-15 22:05:58 +01:00
Clownacy
fd82adf099
Remove invalid comment
2020-09-15 21:00:27 +01:00
Clownacy
13ce62ae05
Minor cleanup
2020-09-15 20:51:04 +01:00
Clownacy
c6af61de5e
Chars aren't guaranteed to overflow at 256
2020-09-15 20:49:24 +01:00
Clownacy
52c2a5ceee
Make software renderer a bit more foolproof
...
This also eliminates some comparisons with mismatching signedness
2020-09-15 20:48:18 +01:00
Clownacy
11bbad7372
Cleanup
...
Now RenderBackend_DrawGlyph doesn't pass an unnecessary parameter
2020-09-15 19:40:10 +01:00
Clownacy
392d5898a3
Make GetVertexBufferSlot consistent
...
It would be nice keep this batching stuff in a common file
somewhere...
2020-09-15 16:28:35 +01:00
Clownacy
e2b64df84a
Oops, also offload colour-fill vertices as well
2020-09-15 16:18:48 +01:00
Clownacy
0f5af36951
Offload vertex transformation to the GPU
2020-09-15 16:08:56 +01:00
Clownacy
07e4e3b971
Offload texture coord transformation to GPU
...
I imagine this isn't too helpful when the GPU is the bottleneck, like
on my Raspberry Pi.
2020-09-15 14:21:58 +01:00
Clownacy
f0e1119a91
Move OpenGL shader stuff to a struct
...
The uniform naming scheme was already emulating this
2020-09-15 14:13:45 +01:00
Clownacy
6b96ada4a8
Use proper OpenGL buffer access specifier
...
The previous value was inherited from the old pre-batching code,
where it actually made sense.
2020-09-15 00:48:14 +01:00
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