Gabriel Ravier
32c8795ead
src: Cleaned up includes to only (and always) include what we use
...
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-07-01 18:26:22 +02:00
Clownacy
93535c5501
Sync OpenGL3 renderer with Wii U renderer
2020-06-29 18:36:38 +01:00
Clownacy
c7bd79e13f
Comment style tweaks
2020-06-29 15:25:01 +01:00
Clownacy
5596c33b38
Fix stuff
...
Looks like the Null backend's been broken for a while though
2020-05-06 23:10:40 +01:00
Clownacy
a8d0595bcd
Update other backends to current API
...
The only other backend besides the Wii U one to use `render_target`
is the SDLTexture one.
2020-04-23 14:38:45 +01:00
Clownacy
b4d9b15a9c
Add a TODO
2020-04-21 15:23:20 +01:00
Clownacy
ff9c2dc4fc
Remove now-unneeded sanity checks
2020-04-21 14:57:05 +01:00
Clownacy
c51a074fad
Big disgusting backend rework
...
We need to avoid `WindowsWrapper.h` in the backends whenever we can,
to avoid name collisions (the Wii U homebrew library) defines its own
BOOL/TRUE/FALSE, which really doesn't work with CSE2.
2020-04-13 18:19:39 +01:00
Clownacy
8fbf3bbecf
Account for GetVertexBufferSlot failure
2020-04-13 13:40:35 +01:00
Clownacy
4f7cc9582d
Revert "Backends: Added init/de-init messages for backends"
...
This reverts commit 9be8b9a493
.
2020-04-13 13:28:57 +01:00
Gabriel Ravier
9be8b9a493
Backends: Added init/de-init messages for backends
...
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-12 02:26:51 +02:00
Gabriel Ravier
65e7164c42
Backends/Rendering/OpenGL3: Use != NULL
instead of implicit conversion to bool
...
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-12 00:59:02 +02:00
Gabriel Ravier
4d10c2cc21
Backends/Rendering/OpenGL3: Wrap both sides of if-else with {} equally.
...
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-12 00:58:09 +02:00
Gabriel Ravier
1a5da443d7
Backends/Rendering/OpenGL3: Fixed OpenGLES2 compile
...
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-12 00:55:12 +02:00
Gabriel Ravier
89fb2222b6
Backends/Rendering/OpenGL: Replaced printf with Backend_PrintInfo
...
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-12 00:46:05 +02:00
Gabriel Ravier
dcd4bcf1b2
Backends: Fix some of the error handling and replaced some printf calls
...
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-12 00:42:24 +02:00
Gabriel Ravier
f2b2c071a2
Backends/Rendering/OpenGL3: Improve error handling
...
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-11 23:28:31 +02:00
Clownacy
ba069de70e
Fix window resizing
...
If you made the window square, the screen wouldn't be centered
properly.
2020-04-10 00:45:57 +01:00
Clownacy
135035bb1a
Change 'PlatformBackend' namespace to 'Backend'
2020-04-04 20:31:27 +01:00
Clownacy
4d322be866
Change render backend namespace to RenderBackend_
2020-04-04 20:24:34 +01:00
Clownacy
40464a9fc0
Move-around Backend files
...
Hoping to introduce some degree of grouping
2020-04-03 14:42:11 +01:00
Clownacy
ee7cf6799b
Yet another warning
2020-04-03 02:12:06 +01:00
Clownacy
5b996b3459
Give glad a CMake file
...
Today I learned that CMake will error if the project shares a
dependency with a nested CMake file (which could be from an
entirely-separate project that you have no control over).
I'm starting to really hate CMake.
2020-04-03 01:34:47 +01:00
Clownacy
ff70664604
Cleanup and fixes
2020-04-01 16:11:34 +01:00
Clownacy
4d8be3bc36
More refactoring
...
Get fullscreen mostly working in GLFW3
2020-04-01 15:21:40 +01:00
Clownacy
c4aa8e28bb
More refactoring
2020-04-01 14:57:07 +01:00
Clownacy
5dbca99e19
Extremely horrible terrible nightmare refactoring
...
Working on ridding CSE2 of its hard SDL2 dependency.
For now, I have a rudimentary GLFW3 backend.
2020-03-31 21:56:10 +01:00
Clownacy
142bca6578
Split SDL2 code from Draw.cpp
2020-03-31 16:11:31 +01:00
Clownacy
d0b20316de
Don't do -Iexternal
...
It pollutes the #include space.
2020-03-31 14:26:24 +01:00
Clownacy
61e708751d
Apply missing OpenGL constants
2020-03-31 12:53:58 +01:00
Clownacy
60d3cc2ed6
Update cute_spritebatch.h
2020-02-09 12:40:35 +00:00
Clownacy
8edca4fb2e
Style tweak
2020-02-09 12:35:38 +00:00
Clownacy
59a8c2617f
Tweak some variable naming
...
The enhanced branch calls them the 'internal *screen* width/height',
which I think is more appropriate.
2020-02-05 15:52:43 +00:00
Clownacy
2af6a043ef
Clean-up the OpenGL renderers a little
2020-02-04 16:35:42 +00:00
Clownacy
1140ab0916
Clean-up renderer backend initialisation
2020-02-04 15:51:19 +00:00
Clownacy
ba6d711d3a
Tick cute_spritebatch once per frame
...
...As opposed to once per draw call.
This change was made because multiple draw calls can be made per
frame, or a only a handful of draw calls may be made per minute.
Since draw calls are an inconsistent metric, I just switched to
frames instead.
2020-02-04 14:57:06 +00:00
Clownacy
2e5e1994c2
Enable debug console prints in non-debug builds
2020-02-03 16:44:52 +00:00
Clownacy
53c0e8470f
Add an optimisation to the OpenGL renderers
...
Since we track the currently-bound "source texture", we don't need
to poll the OpenGL driver for the same info.
2020-02-03 15:53:59 +00:00
Clownacy
dfacd62662
Fix text-flickering in the OpenGL renderers
...
This would occur in CSE2E's options menu.
It was caused by cute_spritebatch destroying a texture atlas that
was being used by the current unflushed vertex buffer. To solve
this, we now track what textures are being used by current buffer,
and flush the buffer when the texture are about to be
modified/deleted.
As you can guess, this issue doesn't affect the SDLTexture backend,
since its batching system is half-decent.
2020-02-03 15:44:09 +00:00
Clownacy
4190493fd8
More documentation
2020-02-02 00:34:03 +00:00
Clownacy
514d9f8739
Document the OpenGL renderer a bit more
...
This makes it easier to find things
2020-02-02 00:21:28 +00:00
Clownacy
d84f64a5a9
Tweak cute_spritebatch settings
...
1024x1024 seems like overkill
2020-02-02 00:10:01 +00:00
Clownacy
eb6ab89b85
Fixes and improvements
...
Made texture-atlasing occur immediately, notably.
2020-02-02 00:01:45 +00:00
Clownacy
1b2d4fdb4d
Fix the other rendering backends
...
Also finished ripping-out the sub-pixel support
2020-02-01 22:57:07 +00:00
Clownacy
e3cd7ce353
Add glyph-batching to OpenGL renderer
...
Unfortunately, sub-pixel font rendering had to go. It wasn't portable
anyway (not every display is an LCD with R->G->B ordering).
2020-02-01 22:37:59 +00:00
Clownacy
eaf2de05b6
Add glyph-batching to the SDLTexture backend
...
Hope it will be this easy for the OpenGL backend
2020-02-01 17:49:26 +00:00
Clownacy
639039ce3a
Added Backend_PrepareToDrawGlyphs
...
This is to reduce OpenGL context changes, and help pave the way for
glyph-batching
2020-02-01 16:40:23 +00:00
Clownacy
e3db7749ba
Add verbose error-reporting to backends
...
Should fix #98
2020-02-01 12:22:44 +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