Commit graph

424 commits

Author SHA1 Message Date
scemino
8afb2c1f62 BACKENDS: Add SDL3 backend + update imgui 2025-02-18 22:13:56 +01:00
Cameron Cawley
a9ca83819d BACKENDS: OPENGL: Use the shared Texture class for the overlay in 3D games 2024-11-30 18:21:47 +02:00
Miro Kropacek
feef4e1bf1 BACKENDS: ATARI: Final screen resolution changes
- seamless resolution/palette switching (at least in theory, it still
  isn't artifact-free, no clue why)

- bugfixes (shake offset, some s_screenSurf corner cases)

- simplification the triple-buffering code
2024-11-21 11:31:25 +01:00
Martin Gerhardy
a3adb2933c BACKENDS: moved imgui_logger code from directory engine into backends code 2024-10-11 09:06:43 +02:00
Martin Gerhardy
059f0ca1d2 BACKENDS: added imgui window for showing a Graphics::Palette instance 2024-10-10 11:31:39 +02:00
Cameron Cawley
c4d1359f45 BACKENDS: Remove the legacy Dingux backend
# Conflicts:
#	backends/module.mk
2024-09-30 00:24:25 +02:00
Cameron Cawley
197ba8cbd5 BACKENDS: Remove leftover GP2X references 2024-09-29 22:48:29 +01:00
Le Philousophe
2eebb5db02 BACKENDS: SDL: Add SDL2 Renderer support for ImGui
Some adaptations will be needed for the the engines.
2024-09-29 17:04:03 +02:00
Cameron Cawley
8c2619dfe4 TESTBED: Add an ImGui test 2024-09-29 16:40:53 +03:00
Vladimir Serbinenko
d4369c5666 SDL: Move finger handling to common SDL code
It's also useful on Linux be it on desktop with touchscreen or mobile Linux
2024-09-27 03:26:47 +03:00
Vladimir Serbinenko
820cbe391a SDL: Merge finger handling on vita and switch
This code is very similar and not specific to either platform but is generic
touchscreen handling with SDL

Tested on Switch and Vita
2024-09-25 18:43:58 +03:00
Miro Kropacek
c7bc03d4f4 BACKENDS: ATARI: Move Screen outside AtariGraphicsManager 2024-07-15 19:42:51 +02:00
Miro Kropacek
957aa15e7e BACKENDS: ATARI: Move Cursor outside AtariGraphicsManager 2024-07-15 19:42:51 +02:00
Miro Kropacek
e9c7c8e03c JANITORIAL: atari_c2p-asm -> atari-c2p-asm 2024-07-15 19:42:50 +02:00
Le Philousophe
63c04eb700 EVENTRECORDER: Fix build and obvious mistype error 2024-06-05 19:02:18 +02:00
Eugene Sandulenko
f5fa7aeb0c
IMGUI: Switched to FreeType2 rendering 2024-05-21 21:02:48 +02:00
Eugene Sandulenko
4cd62e3398
BACKENDS: IMGUI: Renamed modified files to minimize diff with upstream 2024-05-17 01:46:45 +02:00
scemino
c3745698e2 BACKENDS: Add the ability to load ScummVM fonts in ImGui 2024-05-03 21:24:08 +02:00
scemino
ab17f10a6f BACKENDS: Try to fix imgui compilation errors 2024-03-17 13:09:32 +01:00
scemino
0cba66b204 TWP: Move ImGui to backends 2024-03-07 20:08:26 +01:00
Miro Kropacek
f7d78ec70a BACKENDS: ATARI: Implement internal downsampling to 8-bit
So we don't rely on STFA's questionable algorithms and we can use
X-SOUND, too.
2023-11-09 18:20:06 +01:00
elasota
bd857272f4 BACKENDS: SDL: Use null mixer if audio initialization fails, and add a flag to forcibly disable it for testing. Add an alternate call that returns true if the mixer manager is a null device.
SDL audio init will fail on Windows if all audio output devices are disabled.
Only about 10 engines are checking for this case and numerous pieces of common code (EmulatedOPL, VideoDecoder) fail as well, so this acts as a fallback to prevent instability.
2023-11-07 02:45:49 +01:00
Ankush Dutt
a26d00a2b7 DLC: Remove Playstore code 2023-09-14 08:22:56 +02:00
Ankush Dutt
4ae119d63f DLC: Add USE_DLC in configure for general DLC integration
- Developers will need to use --enable-dlc with configure if they want to integrate
the DLC downloader. The kFeatureDLC will determine if the target platform is supported
- USE_SCUMMVMDLC will be used specifically to compile curl based ScummVMCloud (USE_DLC
will be automatically enabled if ScummVMCloud is supported)
2023-09-14 08:22:56 +02:00
Ankush Dutt
22f912d7e0 DLC: Wrap ScummVM DLC in configure enabled feature, disabled by default 2023-09-14 08:22:56 +02:00
Ankush Dutt
c0f91421cc BACKENDS: Initial code for downloading DLCs using CURL 2023-09-14 08:22:56 +02:00
Ankush Dutt
99af2be9c0 BACKENDS: Initial implementation of Android PlayStore DLC Manager 2023-09-14 08:22:56 +02:00
Ankush Dutt
6e8bdee909 BACKENDS: Add initial code for DLC Manager 2023-09-14 08:22:56 +02:00
Thierry Crozat
e73b277589 IOS7: Add missing file in module.mk
The iOSGraphics3dManager uses the OpenGL::FrameBuffer class, so the
corresponding code needs to be compiled for the ios7 backend.
2023-07-03 22:09:25 +01:00
Lars Sundström
6a74f7b32b IOS7: Implement iOSGraphics3dManager
Add a graphic manager rendering 3D graphics for engines supporting
3D games. The manager is implemented using the 3D graphic managers
for Android and SDL as models.

Most probably Android and iOS can share much more of the code, but
that will be a separate work to refactor.
The iOSGraphics3dManager handles resize since the screen dimension
changes on rotation.

Games not supporting arbitary resolutions, e.g. Grim, are rendered
on an intermediate framebuffer with the size requested by the
engine and then rendered to the backbuffer (a framebuffer bound to
the renderbuffer) and stretched to the screen resolution off the
device.

This commit just adds the manager. It will be utilised in next
commit.

Update gitlab ci worker and update documentation.
2023-07-03 21:50:32 +02:00
Lars Sundström
e6232547d5 IOS7: Add iOSGraphicsManager class
The ios7 backend implements the graphic handling in the backend code.
iOS supports OpenGL through the OpenGL Framework since iOS 2.0. It's
marked as deprecated but is still shipped with the SDKs for iPhoneOS
and tvOS and will hopefully be so for some time.
The ios7 backend can therefore utilize the OpenGLGraphicsManager to
handle all graphics.

Implement an iOSGraphicsManager class that can be used in the ios7
backend. The iOSGraphicsManager will require some callback functions
in the ios7 backend. createOpenGLContext() will be called to ask the
backend to create an OpenGL context in which the graphic manager can
draw. The function returns the ID of the renderbuffer which shall be
used when creating the framebuffer object this differ iOS from other
platforms). A custom RenderBufferTarget class is added to address
this.

destroyOpenGLContext() will be called to make sure that the old GLES
context is not reused. notifyContextDestroy() does call the function
OpenGLContext.reset() but that will not destroy the context.

refreshScreen() will be called to ask the backend to present the
drawn graphics on the screen. getSystemHiDPIScreenFactor() is called
to get the screen scaling factor. getScreenWidth() and
getScreenHeight() are called to get the width and height of the
surface to draw on.

This commit adds the class but the ios7 backend doesn't make use of
it quite yet. To use it require the ios7 to be a child class of the
ModularGraphicsBackend. That change requires a lot of changes which
will be targeted in separate commits.

Update docportal and github ci worker to only disable the feature
opengl_classic_game since opengl and opengl_shaders are required to
compile the OpenGLGraphicsManager.
2023-07-03 21:50:32 +02:00
Le Philousophe
f337abae70 BACKENDS: SDL: Remove superfluous ifdef
This block is already dedicated to SDL_BACKEND
2023-07-03 21:50:32 +02:00
Miro Kropacek
2ce02658ec BACKENDS: ATARI: DMA playback is not always active
E.g. in the overlay there's no need to steal cycles for playing empty
sample buffer.

Also make STMIDI default audio driver for the slim version.
2023-06-15 22:57:55 +02:00
Miro Kropacek
5537759c53 BACKENDS: ATARI: Rework
- Atari TT support
- all video and audio is now handled via XBIOS
- reworked IKBD handling using Kbdvbase vectors, esp. Kbdvec()
- video uses proper triple buffer
- arbitrary game screen size support
- many fixes and optimizations
2023-06-15 22:57:55 +02:00
Alexander Tkachov
b4dd48f395 CLOUD: Add new flow (WIP)
- allow OPTIONS HTTP method to be handled by local webserver;
- add /connect_cloud endpoint;
- add new DropboxStorage constructor that works with JSON response instead of requesting that via shortcode;
- add CloudManager::connectStorage() overload for this new JSON flow.

/connect_cloud endpoint allows cross-origin request (via CORS HTTP headers) from cloud.scummvm.org, so user's browser sends the JSON response directly to ScummVM app, instead of the app requesting that response from the site.

This commit is WIP, introducing a new constructor for Dropbox only, and not changing the GUI part at all.
2023-04-08 16:20:11 +02:00
Little Cat
1cf1f302ad BACKENDS: LIBCURL: URL Parsing. 2023-03-06 00:07:13 +01:00
Little Cat
f42930ba66 BACKENDS: CURL: Ability to create raw sockets.
This can be used to create custom protocols with an SDL_net like
interface while being able to connect to SSL/TLS servers.
2023-03-06 00:07:13 +01:00
Little Cat
c16244a23a BACKENDS: ENET: Compile stable 1.3.17 source. 2023-03-06 00:07:13 +01:00
Little Cat
64200c8643 BACKENDS: ENET: Raw UDP socket creation. 2023-03-06 00:07:13 +01:00
Little Cat
129b56cd3e BACKENDS: ENET: Host creation. 2023-03-06 00:07:13 +01:00
Little Cat
68425432ab BACKENDS: ENET: Preliminary ENet backend. 2023-03-06 00:07:13 +01:00
Miro Kropacek
276cf354bf BACKENDS: ATARI: Separate AtariEventSource from OSystem_Atari 2023-03-04 23:38:42 +01:00
Miro Kropacek
4d21a496d2 BACKENDS: ATARI: Add new backend (graphics, mixer, platform)
Compile as:

./configure --backend=atari --host=m68k-atari-mint --enable-release --disable-mt32emu --disable-lua --disable-nuked-opl --disable-16bit --disable-scalers --disable-translation --disable-eventrecorder --disable-tts --disable-bink --opengl-mode=none --enable-verbose-build --prefix=/usr --bindir=/ --datarootdir=share --datadir=data && make -j 16 && m68k-atari-mint-flags -S -r ./scummvm && make install DESTDIR=$PWD/_release/ && mv $PWD/_release/scummvm $PWD/_release/scummvm.ttp
2023-03-04 23:38:42 +01:00
Cameron Cawley
8adcc29df9 RISCOS: Use double buffering in full screen mode when V-sync is enabled 2023-02-19 21:27:45 +00:00
Vladimir Serbinenko
31071d7938 CONFIGURE: Support for kolibri OS 2023-02-05 22:55:40 +01:00
Vladimir Serbinenko
4bcd4671ab KOLIBRI: Add kolibrios backend 2023-02-05 22:55:40 +01:00
Le Philousophe
ca1dbfc9d6 ANDROID: Add SAF support 2023-01-20 14:14:03 +01:00
Vladimir Serbinenko
576b2be0cb SDL: Workaround for broken SDL on Miyoo Mini 2023-01-18 00:51:38 +03:00
Vladimir Serbinenko
1bc4fe5279 SDL: Move RS90-specific code to opendingux directory 2023-01-17 13:48:50 +03:00
Vladimir Serbinenko
3701325b0e OPENDINGUX: Don't add posix files twice
They are already added by POSIX conditional as OpenDingux is POSIX compliant
(Linux-based). Adding it twice confuses some linkers.
2023-01-12 10:27:20 +03:00