Commit graph

591 commits

Author SHA1 Message Date
Clownacy
914034c406 Remove unused variable 2020-10-04 00:39:07 +01:00
Clownacy
771f83d06a Fix the 'Studio Pixel Presents' text on Wii U
The vertex buffer was being deleted and recreated *after* it was
binded.
2020-10-04 00:37:49 +01:00
Clownacy
4b2a14167e Wii U shader fixes
I don't know what bugs, if any, these fix
2020-10-03 22:29:13 +01:00
Clownacy
9458d2aea7 Avoid some duplicate code in Wii U flush function 2020-10-03 21:01:36 +01:00
Clownacy
6803438358 Fix Wii U using an uninitialised vertex buffer 2020-10-03 18:35:40 +01:00
Clownacy
c7cd67c410 Remove another useless variable 2020-10-03 16:11:58 +01:00
Clownacy
858fd0beb9 Fix Backend_EnableDragAndDrop not matching header 2020-10-03 16:10:34 +01:00
Clownacy
076a477239 Remove useless variable 2020-10-03 16:09:22 +01:00
Clownacy
9a5ac1606d Correct a typo 2020-09-30 21:18:59 +01:00
Clownacy
ad5785611b Change a float literal to double 2020-09-27 19:31:23 +01:00
Clownacy
35bf490f0d Fix GLFW3 build error
Great API...
2020-09-27 17:51:16 +01:00
Clownacy
baf88b0d4b Convert cursors to RGBA
...instead of colour-keyed RGB. Less goofing-around for the user.
2020-09-27 17:16:58 +01:00
Clownacy
b7e25cd9be Wii U renderer cleanup 2020-09-27 17:16:58 +01:00
Clownacy
dad9dd6421 Correct oversized OpenGL upscaled framebuffer 2020-09-26 23:19:17 +01:00
Clownacy
530dab7bab Update Wii U shader files 2020-09-23 19:56:50 +01:00
Clownacy
87da82a500 Wii U: Offload vertex transformation to GPU 2020-09-23 19:55:45 +01:00
Clownacy
663870ae76 Wii U: Offload tex-coord transformation to GPU 2020-09-23 19:05:01 +01:00
Clownacy
6b8ffe2886 More-efficient Wii U glyph fragment shader 2020-09-23 18:03:36 +01:00
Clownacy
45f2032c9a Modernise how Wii U shaders are included
Uses newer bin2h. I would be nice if this process were automated...
2020-09-23 17:53:49 +01:00
Clownacy
006091305e Fix an inconsistency 2020-09-23 17:08:07 +01:00
Clownacy
0103f2696b Better way to handle Wii U screen viewports 2020-09-23 17:07:26 +01:00
Clownacy
42f12c18d9 Wii U integer-only viewport calculation 2020-09-23 16:57:36 +01:00
Clownacy
eac417cdc1 I guess I figured out what the GX2 context is for 2020-09-23 16:52:42 +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
4763aecdbd Correct Lanczos array initialisation
I must have forgotten that Lanczos reads backwards too
2020-09-18 00:59:05 +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
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
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
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
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
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