121 Commits

Author SHA1 Message Date
antoniou79
525d4ae46c ANDROID: GRAPHICS3D: Fix typo for virtual method 2023-08-07 08:52:15 +03:00
Cameron Cawley
d8cca29783 BACKENDS: Allow filling part of the screen with OSystem::fillScreen 2023-08-06 23:03:46 +02:00
Le Philousophe
e3877d2606 ANDROID: Move game at the top of screen when keyboard is shown 2023-07-09 11:48:27 +02: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
Le Philousophe
ce5427960c ANDROID: Remove leftover declaration 2023-07-01 17:52:30 +02:00
Le Philousophe
d371b50d30 ANDROID: Add setting to to disable screen rotation 2023-07-01 16:26:19 +02:00
Le Philousophe
3a838c99f9 ANDROID: Various small fixes
- Comment and space fixes
- Remove outdated setting
2023-07-01 16:26:19 +02:00
Le Philousophe
1cffb9c86a ANDROID: Don't make GL calls when there is not context
This is forbidden by EGL specification
2023-06-26 15:25:27 +03:00
Le Philousophe
79da015e8f ANDROID: Various fixes to textures
- Don't create texture in constructor: it's called before the context is
  created
- Don't leak texture names when calling reinit()
- Fix allocBuffer return condition
- Don't call GL if there is no texture object
- Make sure all textures are released and inited
2023-06-26 15:25:27 +03:00
Le Philousophe
bc438d078a ANDROID: When resizing don't reset everything
Only reinitialize the needed bits.
EGLSurface needs to be reset to take the new size into account.
GLSurfaceView in AOSP does the same thing.
2023-06-26 15:25:27 +03:00
Le Philousophe
560793e571 ANDROID: Don't warp mouse when showing overlay in game 2023-06-26 15:25:27 +03:00
Le Philousophe
14d57b2b61 ANDROID: Don't use a framebuffer when it's not needed
This also fixes a bug in frame buffer placement in vertical aspect ratio
2023-06-26 15:25:27 +03:00
Le Philousophe
c04313ba9f ANDROID: Fix overlay background capture
In GLES2, only RGBA8888 support is guaranteed.
Texture needs to be recreated on GPU before use and is already flipped.
2023-06-26 15:25:27 +03:00
Le Philousophe
6ee040ee55 ANDROID: Fix glClearColor call
This function takes floats between 0 and 1 and not integers
2023-06-04 18:22:59 +02:00
Antoniou Athanasios
8ce6a32ac2 ANDROID: Clean up log code and use Backends::Log 2023-03-26 12:05:12 +03:00
elasota
0a32f23bd6 BACKENDS: ANDROID: Update log message for setMouseCursor 2023-02-19 23:51:09 +01:00
elasota
3db67a33ac GRAPHICS: Add support for pixels with masks and inverted pixels 2023-02-19 23:51:09 +01:00
Cameron Cawley
138a983d80 COMMON: Refactor VSync handling to match the other options 2023-01-16 18:09:53 +01:00
Cameron Cawley
7f2d9fd0fd GRAPHICS: Split conversion.cpp into multiple files 2022-12-22 23:45:14 +01:00
Paweł Kołodziejski
18f75444b2
BACKENDS3D: Revert my changes to Framebuffer viewport state.
It's useless for backend code flow.
Instead move into UpdateScreen() as short time solution.
2022-11-15 23:23:50 +01:00
Le Philousophe
87bad2cc7d COMMON: Allow games to use overlay for something else than GUI
This can be used for subtitles without changing the mouse coordinates.
2022-11-12 19:12:05 +01:00
Cameron Cawley
252d9f20e3 OPENGL: Fix crash in forced GLES2 mode 2022-09-24 09:14:08 +02:00
Cameron Cawley
350e21ba58 SDL: Better workaround for enabling the system cursor 2022-08-26 21:47:49 +01:00
Cameron Cawley
4f8962bff9 OPENGL3D: Restore support for aspect ratio correction 2022-08-26 21:47:11 +01:00
Le Philousophe
a13d0879f2 ANDROID: Convert mouse coordinates between screen ones and virtual ones
In 2D graphical backend it's handled in the WindowedGraphicsManager
which we inherit from through OpenGLGraphicsManager
2022-08-15 20:19:08 +02:00
Le Philousophe
98c306376f OPENGL: Merge both OpenGL shaders objects 2022-06-26 18:32:10 +02:00
Le Philousophe
4ab044a254 OPENGL: Merge both OpenGL contexts 2022-06-26 18:32:10 +02:00
Paweł Kołodziejski
e9dc4afe89
BACKENDS: SDL3D: Put debug messages to specified level 2022-06-19 08:08:32 +02:00
Cameron Cawley
60c7372198 OPENGL3D: Make use of the active rect provided by WindowedGraphicsManager 2022-06-18 19:33:27 +01:00
Le Philousophe
57e27dcf12 ANDROID: Let user customize its preferred touch modes
There are 3 settings: in menus, in 2D games, in 3D games
2022-06-14 00:08:04 +03:00
Le Philousophe
31caab89e1 SDL: Make sure a context exists when calling SDL_GL_GetAttribute 2022-05-28 15:49:54 +02:00
Le Philousophe
c9b4949746 AMIGAOS: Improve shader compatibility
OGLES2 doesn't support uniform booleans so we use macros to make it use
integers in this case. For other platforms, this change should be a
noop.
OGLES2 doesn't like float suffix for constants, remove it as well.
2022-04-17 12:34:38 +02:00
Le Philousophe
7061b4109e AMIGAOS: Remove outdated ifdefs
We now link with OpenGL dynamically so symbols are provided by GLAD.
If it's not supported pointer will be null.
OGLES2 should support these functions so they must be removed
2022-04-17 12:34:38 +02:00
Le Philousophe
1c18c269dc ANDROID: Add GLAD support 2022-01-18 16:49:03 +01:00
Le Philousophe
d9b4e457e8 ALL: Remove USE_GLES2 define
Replace it with USE_FORCED_GLES2
2022-01-18 16:49:03 +01:00
Cameron Cawley
a14c5a4a53 SDL: Replace gfx_mode with scale_factor in initSizeHint() 2022-01-16 13:22:37 +02:00
Paweł Kołodziejski
4f0e5ed3c0 GRAPHICS: Moved shader code where it's actually used 2022-01-10 03:34:48 +01:00
Paweł Kołodziejski
3dd3e76bc2 BACKENDS3D: Shader code files shouldn't be moved 2022-01-10 02:38:44 +01:00
Paweł Kołodziejski
27773309b7 BACKENDS: Corrected include paths for Android 2022-01-10 02:23:17 +01:00
Paweł Kołodziejski
f24bffc8cf BACKENDS: Drop glBegin/glEnd 2022-01-10 02:13:40 +01:00
Paweł Kołodziejski
d1d77f887e BACKENDS3D: Moved Surfaces and Texture specific backend code to backends 2022-01-10 01:21:49 +01:00
Paweł Kołodziejski
d054f7785c GRAPHICS3D: MorphOS special code case is no longer needed 2022-01-03 14:29:32 +01:00
Le Philousophe
92dd9c0911 ANDROID: Keep last touch mode when displaying overlay 2022-01-02 17:45:32 +01:00
Le Philousophe
b6c0a1c6c8 ANDROID: Refactor touch controls to be graphics backend agnostic 2022-01-02 17:45:32 +01:00
Le Philousophe
7b36b56925 ANDROID: Rework Android 3D texture interfaces 2022-01-02 17:45:32 +01:00
Cameron Cawley
21b0d6ded1 BACKENDS: Replace GLEW with GLAD, part of PR #3463 2021-12-30 14:53:48 +01:00
Cameron Cawley
43d87cb029 BACKENDS: Support detecting OpenGL ES 2 at runtime for 3D games 2021-12-30 13:57:50 +01:00
Paweł Kołodziejski
20cb0ae228
ALL: Cleanup ResidualVM -> ScummVM 2021-12-26 21:19:38 +01:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Le Philousophe
6aea08860f ANDROID: Chooose the best surface formats offered by the system 2021-12-16 00:09:25 +01:00