Clownacy
1ae63bea96
Move window ownership to the window backend
2020-04-04 20:51:07 +01:00
Clownacy
cdd69496c4
Fixes
2020-04-04 20:34:51 +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
87e8a75df4
Rename GLFW3.h/SDL2.h
2020-04-04 19:18:46 +01:00
Clownacy
264d555073
Forgot to CTRL-F goddammit
2020-04-03 18:51:43 +01:00
Clownacy
1543521625
Fix more errors x_x
2020-04-03 18:36:48 +01:00
Clownacy
f548044464
Cleanup
2020-04-03 18:05:41 +01:00
Clownacy
96f46f3387
Fix compilation error
2020-04-02 00:00:12 +01:00
Clownacy
49f7887930
More cleanup
2020-04-01 16:27:55 +01:00
Clownacy
ff70664604
Cleanup and fixes
2020-04-01 16:11:34 +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
Gabriel Ravier
fb353fbc7e
Backends/Rendering/SDLTexture: Solve -Wnarrowing warning
...
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-03-18 11:54:46 +01:00
Clownacy
60d3cc2ed6
Update cute_spritebatch.h
2020-02-09 12:40:35 +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
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
b894543f3b
Shut up a C++11 error from the enhanced branch
...
Nice one, C++. Adding yet another C-incompatibility?
2020-02-03 14:43:02 +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
eeed719c16
Get the SDLTexture renderer working again
2020-02-01 22:47:13 +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
f6f3c26a3b
Converted SDLTexture renderer
2020-01-22 22:31:19 +00:00
Clownacy
88c30442c5
Force SDL2's render-batching
...
SDL2 will implicitly disable batching if we force a specific
rendering driver (apparently the user setting SDL_RENDER_DRIVER
counts too) for backwards-compatibility with older programs that use
their own rendering side-by-side with SDL2's. We don't do that,
though, so this commit forces SDL2 to use batching if it's available
(2.0.10 and onwards).
2020-01-21 23:39:49 +00:00
Clownacy
79886f5ae4
Add debug prints for listing SDL2 drivers
...
These list what video/render/audio backends are available, and which
are currently being used.
SDL2 allows you to choose a specific video/audio driver with the
SDL_VIDEODRIVER and SDL_AUDIODRIVER environment variables,
respectively, but there's no such option for the render driver.
2020-01-20 15:27:05 +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
Gabriel Ravier
2911bfda5c
Removed memory leak in Backend_LoadGlyph
...
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-01-06 18:26:25 +01:00
Gabriel Ravier
752b4cee3f
Correct bug in which Backend_LockSurface would not initialize surface->pixels, leaving a bug in which Backend_UnlockSurface used uninitialized values in certain scenarios (such as in ScaleAndUploadSurface)
...
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-01-06 18:26:25 +01:00
Clownacy
df534bb612
Fix SDLTexture backend's linked-list
...
Was causing some use-after-free behaviour, according to valgrind.
Should fix #87
2020-01-06 14:48:56 +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
fd855ee732
Restore the new renderers
2019-09-02 22:46:36 +01:00
Clownacy
f956eb9264
Mostly ASM-accurate Draw.cpp
...
See #74
2019-08-31 17:43:45 +01:00
Clownacy
43f7087ffb
Shut up a warning in the SDLTexture renderer backend
2019-08-25 21:30:44 +01:00
Clownacy
ce8b5651bc
Give the FONT_PIXEL_MODE enums a type
2019-08-21 16:25:02 +00:00
Clownacy
22dc6836c5
Shut up a warning
2019-08-14 17:57:19 +00:00
Clownacy
56adcd9dfe
Convert SDLTexture glyphs to static textures
...
This way they don't need regenerating in the first place.
2019-08-14 17:06:16 +00:00
Clownacy
4f057dd72a
Revert "Split glyph surface creation and pixel upload"
...
This reverts commit 5da3b72fca
.
2019-08-14 16:30:48 +00:00
Clownacy
5da3b72fca
Split glyph surface creation and pixel upload
...
When DirectX-SDL2 loses its device, it doesn't lose its textures,
just their contents, so we shouldn't remake the textures when we
regenerate the glyphs (that's coming next commit).
2019-08-13 18:02:14 +01:00
Clownacy
29c84ae222
Fixes
2019-08-13 06:36:31 +00:00
Clownacy
dddf968810
Backend_SupportsSubpixelGlyph -> Backend_SupportsSubpixelGlyphs
2019-08-13 05:14:37 +00:00
Clownacy
03f797a267
Pretty sure these #includes aren't needed
2019-08-13 05:11:40 +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
1ca240d8ee
Render backend simplification part 3: SDLTexture
...
Stripped out all the software-fallback stuff, since I'll be replacing
it soon, and the new API would require a slight refactor anyway.
2019-08-13 02:54:10 +00:00