219 Commits

Author SHA1 Message Date
Cameron Cawley
a7c8056d73 ULTIMA: Split Ultima 8 resources into a separate archive 2023-08-28 21:51:17 +02:00
Lars Sundström
6078586aec CREATE_PROJECT: Correct spelling of definition and shader file name
The GRIM define was incorrectly spelled GRIME which cause no shader
files to be included to the project preventing the game to start.

The freescape shader file freescape_triange.vertex also contained
a spelling error preventing the game to start.
2023-07-03 21:50:32 +02:00
Lars Sundström
fb4f7d6de2 IOS7: Remove old IOS7 graphic handling
Delete the old graphic handling in the IOS7 backend which is not
used anymore after implementing iOSGraphicsManager.

The Accelerate framework is not used anymore. The OpenGLGraphics
manager handles the different color formats.
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
Lars Sundström
d66538a133 CREATE_PROJECT: Set bitcode as disabled as default in Xcode
Apple never required bitcode to be enabled and with Xcode 14
bitcode is deprecated.

Set bitcode to disabled for iOS and tvOS projects. Else it will
be default on and give a build error due to the libraries in
scummvm-ios7-libs-v3 doesn't include bitcode.
2023-05-02 08:02:12 +02:00
Thierry Crozat
a0e32ee370 IOS7: Remove support for non-sandboxed mode 2023-04-26 22:31:31 +01:00
Walter Agazzi
a6fa65e87a CREATE_PROJECT: Add option to use XCFramework in iOS, tvOS and macOS
The introduction of Apple M1 processor, which is based on the arm64
architecture, makes it impossible to use fat static libraries for iOS
and tvOS since building libraries for the simulators targeting the
arm64 architecture conflicts with the iOS and tvOS native arm64
libraries. It's not possible to have two arm64 libraries targeting
different platforms in the same fat library.

Apple resolves this problem with XCFrameworks. Each XCFramework
contain an Info.plist specifying which platforms and architectures it
targets.

The new iOS and tvOS library package, scummvm-ios7-libs-v3, utilize
the XCFramework format and includes pre-compiled libraries for both
iOS and tvOS with corresponding simulator.

Add the option to use XCFramework in create_project by passing the
switch '--use-xcframework'

Implement support to use XCFrameworks for iOS, tvOS and macOS. If not
passing '--use-xcframework' to create_project, legacy behaviour is
applied.

This commit also add support for mikmod for tvOS.
2023-04-24 22:34:55 +02:00
Donovan Watteau
db9f13d475 CREATE_PROJECT: Add libmikmod support 2023-04-10 20:14:22 +02:00
neuromancer
4f29dd4299 FREESCAPE: renamed shaders filenames and added them into shader.dat 2023-04-02 15:56:10 +02:00
Eugene Sandulenko
3a8312c072
DISTS: Added missing engine-data files to various lists 2023-03-17 13:37:26 +01:00
Eugene Sandulenko
db16979e52
DEVTOOLS: Add missing freescape.dat to Xcode project 2023-03-17 11:32:31 +01:00
Donovan Watteau
18ab6803d6 JANITORIAL: Fix various "an" typos in comments 2023-03-16 14:47:28 +01:00
Eugene Sandulenko
43d7792d4e
DEVTOOLS: Add USE_SDL2 to Xcode project 2023-03-09 01:32:54 +01:00
Eugene Sandulenko
10dda78ecc
DISTS: Include MKV license in distribution packages 2023-03-05 21:47:13 +01:00
Eugene Sandulenko
53163f427a DEVTOOLS: Added libvpx support to create_project 2023-03-05 21:29:03 +01:00
Eugene Sandulenko
ee048ce267
BUILD: Add nancy.dat to the DISTS list for all platforms 2023-03-02 14:33:21 +01:00
Lars Sundström
0d03655605 CREATE_PROJECT: Add Accelerate framework to iOS and tvOS
Add Apple Accelerate framework to iOS and tvOS targets. The framework
utilizes NEON extensions on the ARM chip to accelerate calculations.
This will come to use when processing texture data.
2023-02-09 22:52:11 +01:00
sluicebox
d97bd0c817 CREATE_PROJECT: Set Xcode MACOSX_DEPLOYMENT_TARGET 2023-02-05 23:12:06 +01:00
Cameron Cawley
1558f7a784 STARK: Add a method for drawing filled rectangles 2023-02-03 00:37:20 +00:00
Lars Sundström
29efa1922e CREATE_PROJECT: Add Apple TV OS XCode target
Add Apple TV OS as a new target to the xcode project creator utility.
Make sure that TV OS specific files are not part of the iOS and macOS
targets and the other way around.
The TV OS project will utilize the same source code files as the iOS
project but will instead use the tvos dist files.
2023-01-29 21:13:51 +00:00
Paul Gilbert
027d7a5102
MM: Remove old xeen.ccs, change references to be mm.dat 2023-01-22 20:06:41 +01:00
Lothar Serra Mari
54d7bcd902 MACOSX: Add shaders.dat datafile to resource list 2023-01-22 18:45:14 +01:00
elasota
843776dd85 DEVTOOLS: Promote numerous VS warnings to errors.
Changes the following warnings to errors:
C4701: potential use of uninitialized local variable
C4703: potential use of uninitialized local pointer
C4456: declaration hides previous local declaration
C4003: not enough arguments for function-like macro invocation
C4840: use of non-trivial class as an argument to a variadic function
C4805: unsafe mix of bool and int in a numeric operation or comparison
C4305: truncation of double to float or int to bool
C4366: address taken of unaligned field and used as an aligned pointer
C4315: object constructed into an unaligned field with a constructor that expects it to be aligned
2022-12-25 16:31:57 +01:00
Donovan Watteau
700a8071e5 BUILD: Check if there's an fseeko/ftello with 64-bit off_t
Some systems have fseeko but you need to check that off_t is a 64-bit
value (and this requires some magic incantation on some platforms),
others need fseeko64(), Windows has a different symbol, and then some
systems only have an fseek() that's limited to <2GB files.

This is a first step in trying to improve this.
2022-12-11 21:48:33 +01:00
Donovan Watteau
78fc47552d CREATE_PROJECT: Disable Xcode GCC_WARN_64_TO_32_BIT_CONVERSION on macOS too
This is an equivalent to -Wno-shorten-64-to-32 which we already use in
the regular configure build system, and for iOS Xcode builds.
2022-11-17 00:42:57 +02:00
Lars Sundström
4133cf4b9f IOS7: Add GameController capability
Add the GameController framework to the project and enable support for
controller user interaction in the Info.plist file. This allows for
Game Controller compatible devices to notify the application when
connected.

Add GameController framework to configure and ports.mk if not using
Xcode to build the target.
2022-08-08 21:08:56 +01:00
sluicebox
924f208a03 CREATE_PROJECT: Text console debugger optional on Xcode
Prior to this, create_project always set USE_TEXT_CONSOLE_FOR_DEBUGGER on Xcode.
This was hard-coded behavior that I should have removed when I added configuring
this feature on the command line in 8c32927f393dddcbe3dfa1b19b38cd332283b6bd

Now it's disabled by default and can be enabled by --enable-text-console, just
like the other projects.
2022-05-20 23:43:59 -04:00
Paweł Kołodziejski
8b6df2de29
DEVTOOLS: XCode: Update iOS deployment version 2022-03-11 17:24:13 +01:00
Paweł Kołodziejski
2ac26ade3e
DEVTOOLS: Xcode project: Add shaders files only for specific enabled engines 2022-03-07 11:08:57 +01:00
Paweł Kołodziejski
b21a081f2c
DEVTOOLS: Added shader files to Xcode project 2022-03-06 23:30:02 +01:00
Orgad Shaneh
097b543c6c CREATE_PROJECT: Replace c++0x with c++11 in Xcode generator 2022-03-05 21:34:01 +02:00
Paweł Kołodziejski
fbd6b1ceed
DEVTOOLS: Skip 'openglsdl' directory for iOS Xcode project 2022-03-04 19:22:17 +01:00
NMIError
221fa4c841
AUDIO: Add support for RetroWave OPL3
This commit adds support for the SudoMaker RetroWave OPL3 sound card. Requires
the retrowave library.

Add the following settings to scummvm.ini:
retrowaveopl3_bus=serial
retrowaveopl3_port=<port> f.e. COM3 or ttyACM0
2022-01-29 17:33:29 +01:00
Orgad Shaneh
7998025b98 CREATE_PROJECT: Centralize toUpper 2022-01-18 09:24:29 +02:00
Orgad Shaneh
aa24872dc6 CREATE_PROJECT: Accept std::ostream in writeFileListToProject 2022-01-14 12:53:21 +02:00
Cameron Cawley
21b0d6ded1 BACKENDS: Replace GLEW with GLAD, part of PR #3463 2021-12-30 14:53:48 +01:00
Eugene Sandulenko
d79b75dce5
DOCS: Moved all non-main licenses to LICENSES/ directory. Synced all lists
I could potentially break some port packaging as my changes were not tested
2021-12-27 14:58:23 +01:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Paweł Kołodziejski
02dd2eb068
DEVTOOLS: Added suppress options in xcode for pragma and deprecated opengl/es 2021-12-05 16:38:56 +01:00
Orgad Shaneh
62797daf3c DEVTOOLS: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Eugene Sandulenko
c69fadfa65 BUILD: Added gui-icons.dat to the list of redistributable files 2021-11-12 14:46:34 +01:00
sluicebox
16bf767de3 CREATE_PROJECT: Add --include-dir and --library-dir
Additional include and library directories can now be added.

This is most useful to Xcode Mac projects where a vanilla Homebrew setup
requires manually adding five directories through the Xcode UI and then
repeating that every time the project needs to be regenerated.

Now create_project can be scripted to regenerate a working Mac project
without any extra Xcode steps.
2021-11-06 19:08:06 -05:00
Eugene Sandulenko
e5a60d34cc
CREATE_PROJECT: Enable C++11 for Xcode by default 2021-10-31 11:52:06 +02:00
sluicebox
f0fd086948 CREATE_PROJECT: Fix enabling fluidlite 2021-07-24 22:02:38 +01:00
lb_ii
fb1f399f5a DISTS: Add achievements.dat to various dat file lists 2021-06-10 01:56:23 +03:00
SupSuper
3b43a99fda CREATE_PROJECT: Support building with FluidLite 2021-04-25 20:39:55 +03:00
Eugene Sandulenko
5e7fe2dc57
JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
Le Philousophe
224729ebde BUILD: Add GIF to Apple specific build code 2021-04-11 10:34:57 +02:00
Donovan Watteau
03960d5663 CREATE-PROJECT: Call realpath() in a more portable way
Non POSIX.1-2008 systems will not necessarily accept NULL as the
second argument, and could crash the program here. Provide a
temporary buffer on the stack instead, and don't count on realpath()
allocating one on the heap. This will work on older POSIX.1-2001
systems.

(In theory, this older POSIX.1-2001 syntax could have portability
problems too, because of PATH_MAX, but in practice this shouldn't
be a problem for the systems intended to be used by create_project.)

Fixes the build on Mac OS X Leopard.
2021-02-09 13:33:56 -08:00
Donovan Watteau
7e79fd6e61 CREATE-PROJECT: Include CommonDigest.h for macOS, not CommonCrypto
<CommonCrypto/CommonDigest.h> should be used for CC_MD5() on macOS.

Fixes the build on Leopard.
2021-02-09 13:33:56 -08:00