Add Xbox UWP port
|
After Width: | Height: | Size: 153 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 26 KiB |
@@ -0,0 +1,112 @@
|
||||
# Gen1Recomp Xbox UWP build notes
|
||||
|
||||
This is the Xbox Dev Mode package for Gen1Recomp.
|
||||
|
||||
The rough shape is:
|
||||
|
||||
- `Gen1RecompUWP.exe` starts LÖVE through SDL's WinRT wrapper
|
||||
- [love-xbox-uwp](https://github.com/caorthann-celt/love-xbox-uwp) provides the LÖVE 11.5 UWP backend and LuaJIT
|
||||
- SDL2 is built from the copy already carried by Gen1Recomp
|
||||
- ANGLE provides OpenGL ES over D3D11
|
||||
- vcpkg provides the audio, font, video, and compression libraries
|
||||
|
||||
## What You Need
|
||||
|
||||
The tested toolchain is:
|
||||
|
||||
- Visual Studio 2022 17.14
|
||||
- MSVC v143 x64/x86 build tools
|
||||
- C++ Universal Windows Platform tools
|
||||
- Windows 11 SDK `10.0.26100.0`
|
||||
- CMake 3.24 or newer
|
||||
- Git
|
||||
- vcpkg with the `x64-uwp` triplet
|
||||
|
||||
Use Visual Studio Installer to add **Universal Windows Platform development**, the v143 C++ tools, CMake tools for Windows, and Windows SDK `10.0.26100.0`.
|
||||
|
||||
## Checkouts
|
||||
|
||||
Keep the game, LÖVE backend, and vcpkg in separate folders. From the parent of the existing Gen1Recomp checkout:
|
||||
|
||||
```powershell
|
||||
git clone --branch gen1recomp --single-branch `
|
||||
https://github.com/caorthann-celt/love-xbox-uwp.git `
|
||||
love-xbox-uwp
|
||||
git clone https://github.com/microsoft/vcpkg.git vcpkg
|
||||
```
|
||||
|
||||
The LÖVE checkout must stay on the `gen1recomp` branch.
|
||||
|
||||
## vcpkg
|
||||
|
||||
Bootstrap vcpkg and install the UWP libraries used by LÖVE:
|
||||
|
||||
```powershell
|
||||
Set-Location vcpkg
|
||||
./bootstrap-vcpkg.bat
|
||||
./vcpkg.exe install `
|
||||
freetype:x64-uwp `
|
||||
openal-soft:x64-uwp `
|
||||
libtheora:x64-uwp `
|
||||
libvorbis:x64-uwp `
|
||||
libogg:x64-uwp `
|
||||
zlib:x64-uwp
|
||||
Set-Location ..
|
||||
```
|
||||
|
||||
## Environment
|
||||
|
||||
Set the three build roots from the parent folder:
|
||||
|
||||
```powershell
|
||||
$env:LOVE_UWP_ROOT = (Resolve-Path './love-xbox-uwp').Path
|
||||
$env:VCPKG_ROOT = (Resolve-Path './vcpkg').Path
|
||||
$gameRoot = (Resolve-Path './Gen1Recomp-UWP').Path
|
||||
```
|
||||
|
||||
## Build SDL2
|
||||
|
||||
Start from a Visual Studio 2022 UWP developer prompt, or initialize `VsDevCmd.bat` for x64 UWP. Then build and install SDL2:
|
||||
|
||||
```powershell
|
||||
Set-Location "$gameRoot\ports\uwp"
|
||||
./scripts/build-sdl2-angle.ps1
|
||||
$env:UWP_SDL2_ANGLE_ROOT = (Resolve-Path './build/sdl2-install').Path
|
||||
```
|
||||
|
||||
## Build LÖVE
|
||||
|
||||
Configure the backend once, then build the Release libraries and DLLs:
|
||||
|
||||
```powershell
|
||||
cmake -S $env:LOVE_UWP_ROOT -B "$env:LOVE_UWP_ROOT/build/uwp-x64-angle" `
|
||||
-G "Visual Studio 17 2022" -A x64 `
|
||||
-DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 `
|
||||
"-DCMAKE_TOOLCHAIN_FILE=$env:VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" `
|
||||
-DVCPKG_TARGET_TRIPLET=x64-uwp `
|
||||
"-DLOVE_UWP_SDL_ROOT=$env:UWP_SDL2_ANGLE_ROOT" `
|
||||
-DLOVE_UWP_LUAJIT=ON -DLOVE_UWP_ANGLE=ON
|
||||
|
||||
cmake --build "$env:LOVE_UWP_ROOT/build/uwp-x64-angle" `
|
||||
--config Release --parallel
|
||||
```
|
||||
|
||||
## Build the MSIX
|
||||
|
||||
Build the game package from `ports/uwp`:
|
||||
|
||||
```powershell
|
||||
Set-Location "$gameRoot\ports\uwp"
|
||||
cmake --preset uwp-release
|
||||
cmake --build --preset uwp-release
|
||||
```
|
||||
|
||||
The build creates `gen1recomp.love`, links the UWP host, and stages LÖVE, LuaJIT, SDL2, ANGLE, and the vcpkg runtime DLLs.
|
||||
|
||||
## Build Output
|
||||
|
||||
The Release package lands under:
|
||||
|
||||
```text
|
||||
ports\uwp\build\release\AppPackages\Gen1RecompUWP
|
||||
```
|
||||
@@ -0,0 +1,110 @@
|
||||
cmake_minimum_required(VERSION 3.24)
|
||||
project(Gen1RecompUWP LANGUAGES CXX)
|
||||
|
||||
if(NOT CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
||||
message(FATAL_ERROR "Configure with a WindowsStore preset.")
|
||||
endif()
|
||||
|
||||
foreach(required_env LOVE_UWP_ROOT UWP_SDL2_ANGLE_ROOT VCPKG_ROOT)
|
||||
if(NOT DEFINED ENV{${required_env}} OR "$ENV{${required_env}}" STREQUAL "")
|
||||
message(FATAL_ERROR "Set ${required_env} before configuring.")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
file(TO_CMAKE_PATH "$ENV{LOVE_UWP_ROOT}" LOVE_UWP_ROOT)
|
||||
file(TO_CMAKE_PATH "$ENV{UWP_SDL2_ANGLE_ROOT}" UWP_SDL2_ANGLE_ROOT)
|
||||
file(TO_CMAKE_PATH "$ENV{VCPKG_ROOT}" VCPKG_ROOT)
|
||||
get_filename_component(GAME_ROOT "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE)
|
||||
set(ANGLE_RUNTIME_ROOT "${CMAKE_CURRENT_LIST_DIR}/third_party/angle")
|
||||
|
||||
set(LOVE_BUILD_ROOT "${LOVE_UWP_ROOT}/build/uwp-x64-angle" CACHE PATH "LÖVE UWP build directory")
|
||||
set(LOVE_CONFIG "RelWithDebInfo" CACHE STRING "Configuration used for the LÖVE UWP backend")
|
||||
set(LOVE_OUTPUT_ROOT "${LOVE_BUILD_ROOT}/${LOVE_CONFIG}")
|
||||
if(LOVE_CONFIG STREQUAL "Release" OR LOVE_CONFIG STREQUAL "Debug")
|
||||
set(LOVE_LIBRARY "${LOVE_OUTPUT_ROOT}/liblove.lib")
|
||||
set(LOVE_RUNTIME "${LOVE_OUTPUT_ROOT}/love.dll")
|
||||
else()
|
||||
set(LOVE_LIBRARY "${LOVE_OUTPUT_ROOT}/libliblove.lib")
|
||||
set(LOVE_RUNTIME "${LOVE_OUTPUT_ROOT}/liblove.dll")
|
||||
endif()
|
||||
|
||||
set(REQUIRED_FILES
|
||||
"${LOVE_OUTPUT_ROOT}/lovestatic.lib"
|
||||
"${LOVE_LIBRARY}"
|
||||
"${LOVE_RUNTIME}"
|
||||
"${LOVE_OUTPUT_ROOT}/lua51.lib"
|
||||
"${LOVE_OUTPUT_ROOT}/lua51.dll"
|
||||
"${UWP_SDL2_ANGLE_ROOT}/include/SDL2/SDL.h"
|
||||
"${UWP_SDL2_ANGLE_ROOT}/lib/SDL2.lib"
|
||||
"${UWP_SDL2_ANGLE_ROOT}/bin/SDL2.dll"
|
||||
"${ANGLE_RUNTIME_ROOT}/libEGL.dll"
|
||||
"${ANGLE_RUNTIME_ROOT}/libGLESv2.dll"
|
||||
"${ANGLE_RUNTIME_ROOT}/d3dcompiler_47.dll"
|
||||
)
|
||||
foreach(path IN LISTS REQUIRED_FILES)
|
||||
if(NOT EXISTS "${path}")
|
||||
message(FATAL_ERROR "Missing UWP dependency: ${path}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
set(GAME_ARCHIVE "${CMAKE_CURRENT_BINARY_DIR}/gen1recomp.love")
|
||||
set_source_files_properties("${GAME_ARCHIVE}" PROPERTIES GENERATED TRUE)
|
||||
add_custom_target(gen1recomp_love ALL
|
||||
COMMAND powershell -NoProfile -ExecutionPolicy Bypass -File
|
||||
"${CMAKE_CURRENT_LIST_DIR}/scripts/package-game.ps1"
|
||||
-SourceRoot "${GAME_ROOT}" -Output "${GAME_ARCHIVE}"
|
||||
BYPRODUCTS "${GAME_ARCHIVE}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_executable(${PROJECT_NAME} WIN32 "app/main.cpp")
|
||||
add_dependencies(${PROJECT_NAME} gen1recomp_love)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED YES
|
||||
VS_SDK_REFERENCES "Microsoft.VCLibs, Version=14.0"
|
||||
)
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE "${UWP_SDL2_ANGLE_ROOT}/include/SDL2")
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
"${LOVE_OUTPUT_ROOT}/lovestatic.lib"
|
||||
"${LOVE_LIBRARY}"
|
||||
"${UWP_SDL2_ANGLE_ROOT}/lib/SDL2.lib"
|
||||
"${LOVE_OUTPUT_ROOT}/lua51.lib"
|
||||
WindowsApp.lib
|
||||
)
|
||||
|
||||
set(PACKAGE_ROOT_FILES
|
||||
"${CMAKE_CURRENT_LIST_DIR}/Package.appxmanifest"
|
||||
"${GAME_ARCHIVE}"
|
||||
"${LOVE_RUNTIME}"
|
||||
"${LOVE_OUTPUT_ROOT}/lua51.dll"
|
||||
"${UWP_SDL2_ANGLE_ROOT}/bin/SDL2.dll"
|
||||
"${ANGLE_RUNTIME_ROOT}/libEGL.dll"
|
||||
"${ANGLE_RUNTIME_ROOT}/libGLESv2.dll"
|
||||
"${ANGLE_RUNTIME_ROOT}/d3dcompiler_47.dll"
|
||||
)
|
||||
|
||||
set(VCPKG_RUNTIME_NAMES
|
||||
brotlicommon.dll brotlidec.dll bz2.dll fmt.dll freetype.dll libpng16.dll
|
||||
OpenAL32.dll theora.dll theoradec.dll vorbis.dll vorbisfile.dll ogg.dll z.dll
|
||||
)
|
||||
foreach(name IN LISTS VCPKG_RUNTIME_NAMES)
|
||||
set(runtime "${VCPKG_ROOT}/installed/x64-uwp/bin/${name}")
|
||||
if(NOT EXISTS "${runtime}")
|
||||
message(FATAL_ERROR "Missing UWP runtime DLL: ${name}")
|
||||
endif()
|
||||
list(APPEND PACKAGE_ROOT_FILES "${runtime}")
|
||||
endforeach()
|
||||
|
||||
set_source_files_properties(${PACKAGE_ROOT_FILES} PROPERTIES
|
||||
VS_COPY_TO_OUT_DIR Always
|
||||
VS_DEPLOYMENT_CONTENT TRUE
|
||||
VS_DEPLOYMENT_LOCATION "."
|
||||
)
|
||||
|
||||
file(GLOB PACKAGE_ASSETS CONFIGURE_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/Assets/*.png")
|
||||
set_source_files_properties(${PACKAGE_ASSETS} PROPERTIES
|
||||
VS_DEPLOYMENT_CONTENT TRUE
|
||||
VS_DEPLOYMENT_LOCATION "Assets"
|
||||
)
|
||||
target_sources(${PROJECT_NAME} PRIVATE ${PACKAGE_ROOT_FILES} ${PACKAGE_ASSETS})
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"version": 6,
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "uwp-common",
|
||||
"hidden": true,
|
||||
"generator": "Visual Studio 17 2022",
|
||||
"architecture": "x64",
|
||||
"cacheVariables": {
|
||||
"CMAKE_SYSTEM_NAME": "WindowsStore",
|
||||
"CMAKE_SYSTEM_VERSION": "10.0",
|
||||
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
|
||||
"VCPKG_TARGET_TRIPLET": "x64-uwp"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "uwp-relwithdebinfo",
|
||||
"inherits": "uwp-common",
|
||||
"displayName": "Gen1Recomp Xbox UWP (RelWithDebInfo)",
|
||||
"binaryDir": "${sourceDir}/build/relwithdebinfo",
|
||||
"cacheVariables": {
|
||||
"LOVE_CONFIG": "RelWithDebInfo"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "uwp-release",
|
||||
"inherits": "uwp-common",
|
||||
"displayName": "Gen1Recomp Xbox UWP (Release)",
|
||||
"binaryDir": "${sourceDir}/build/release",
|
||||
"cacheVariables": {
|
||||
"LOVE_CONFIG": "Release"
|
||||
}
|
||||
}
|
||||
],
|
||||
"buildPresets": [
|
||||
{
|
||||
"name": "uwp-relwithdebinfo",
|
||||
"configurePreset": "uwp-relwithdebinfo",
|
||||
"configuration": "RelWithDebInfo",
|
||||
"jobs": 8
|
||||
},
|
||||
{
|
||||
"name": "uwp-release",
|
||||
"configurePreset": "uwp-release",
|
||||
"configuration": "Release",
|
||||
"jobs": 8
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package
|
||||
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
|
||||
IgnorableNamespaces="uap mp rescap">
|
||||
<Identity Name="Gen1RecompUWP" Publisher="CN=Caorthann" Version="0.3.0.0" />
|
||||
<mp:PhoneIdentity PhoneProductId="5074018d-a46b-4dd3-b7fa-93a1e39858ad" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
|
||||
<Properties>
|
||||
<DisplayName>Gen1Recomp</DisplayName>
|
||||
<PublisherDisplayName>Gen1Recomp</PublisherDisplayName>
|
||||
<Logo>Assets\StoreLogo.png</Logo>
|
||||
</Properties>
|
||||
<Dependencies>
|
||||
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.19041.0" MaxVersionTested="10.0.26100.0" />
|
||||
</Dependencies>
|
||||
<Resources>
|
||||
<Resource Language="x-generate" />
|
||||
</Resources>
|
||||
<Applications>
|
||||
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="Gen1RecompUWP.App">
|
||||
<uap:VisualElements
|
||||
DisplayName="Gen1Recomp"
|
||||
Description="Gen1Recomp for Xbox Dev Mode"
|
||||
BackgroundColor="#101820"
|
||||
Square150x150Logo="Assets\Square150x150Logo.png"
|
||||
Square44x44Logo="Assets\Square44x44Logo.png">
|
||||
<uap:DefaultTile
|
||||
Square71x71Logo="Assets\SmallTile.png"
|
||||
Wide310x150Logo="Assets\WideTile.png"
|
||||
Square310x310Logo="Assets\LargeTile.png" />
|
||||
<uap:SplashScreen Image="Assets\SplashScreen.png" BackgroundColor="#101820" />
|
||||
</uap:VisualElements>
|
||||
</Application>
|
||||
</Applications>
|
||||
<Capabilities>
|
||||
<Capability Name="internetClient" />
|
||||
<Capability Name="internetClientServer" />
|
||||
<Capability Name="codeGeneration" />
|
||||
<uap:Capability Name="removableStorage" />
|
||||
<rescap:Capability Name="runFullTrust" />
|
||||
<rescap:Capability Name="broadFileSystemAccess" />
|
||||
<rescap:Capability Name="expandedResources" />
|
||||
</Capabilities>
|
||||
</Package>
|
||||
@@ -0,0 +1,31 @@
|
||||
#include <Windows.h>
|
||||
#include <SDL.h>
|
||||
#include <string>
|
||||
#include <winrt/Windows.ApplicationModel.h>
|
||||
#include <winrt/Windows.Storage.h>
|
||||
|
||||
extern "C" int SDL_main(int argc, char **argv);
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
int runLove(int, char **)
|
||||
{
|
||||
std::wstring packagePath = winrt::Windows::ApplicationModel::Package::Current()
|
||||
.InstalledLocation().Path().c_str();
|
||||
std::string gamePath = winrt::to_string(packagePath + L"\\gen1recomp.love");
|
||||
|
||||
char executable[] = "Gen1RecompUWP";
|
||||
char fused[] = "--fused";
|
||||
char *loveArgv[] = {executable, gamePath.data(), fused, nullptr};
|
||||
return SDL_main(3, loveArgv);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int CALLBACK WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
|
||||
{
|
||||
SDL_SetHint(SDL_HINT_WINRT_HANDLE_BACK_BUTTON, "1");
|
||||
OutputDebugStringA("Gen1Recomp UWP startup\n");
|
||||
return SDL_WinRTRunApp(runLove, nullptr);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
param(
|
||||
[string]$Configuration = "Release",
|
||||
[string]$WindowsSdkVersion = "10.0"
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$portRoot = Split-Path -Parent $PSScriptRoot
|
||||
$gameRoot = (Resolve-Path (Join-Path $portRoot "..\..")).Path
|
||||
$sourceRoot = Join-Path $gameRoot "mobile\android\love\src\jni\SDL2"
|
||||
$buildRoot = Join-Path $portRoot "build\sdl2"
|
||||
$installRoot = Join-Path $portRoot "build\sdl2-install"
|
||||
|
||||
cmake -S $sourceRoot -B $buildRoot `
|
||||
-G "Visual Studio 17 2022" -A x64 `
|
||||
-DCMAKE_SYSTEM_NAME=WindowsStore `
|
||||
"-DCMAKE_SYSTEM_VERSION=$WindowsSdkVersion" `
|
||||
"-DCMAKE_INSTALL_PREFIX=$installRoot" `
|
||||
-DSDL_SHARED=ON -DSDL_STATIC=OFF `
|
||||
-DSDL_OPENGL=OFF -DSDL_OPENGLES=ON -DSDL_VULKAN=OFF
|
||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||
|
||||
cmake --build $buildRoot --config $Configuration --target INSTALL --parallel
|
||||
exit $LASTEXITCODE
|
||||
@@ -0,0 +1,49 @@
|
||||
param(
|
||||
[Parameter(Mandatory = $true)][string]$SourceRoot,
|
||||
[Parameter(Mandatory = $true)][string]$Output
|
||||
)
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$source = (Resolve-Path -LiteralPath $SourceRoot).Path
|
||||
$required = @('main.lua', 'conf.lua', 'tools/rom_manifest.json')
|
||||
$allowedRoots = @('assets/', 'data/', 'mods/', 'src/', 'tools/rom_manifest')
|
||||
$forbidden = '(?i)(^|/)(assets/generated|data/generated|build|dist|ports|mobile|tests?)(/|$)|\.(gb|gbc|sav|srm)$'
|
||||
|
||||
$tracked = & git -C $source ls-files
|
||||
if ($LASTEXITCODE -ne 0) { throw 'git ls-files failed' }
|
||||
|
||||
$entries = $tracked |
|
||||
ForEach-Object { $_.Replace('\', '/') } |
|
||||
Where-Object {
|
||||
$path = $_
|
||||
(($required -contains $path) -or ($allowedRoots | Where-Object { $path.StartsWith($_) })) -and
|
||||
$path -notmatch $forbidden
|
||||
} |
|
||||
Sort-Object -Unique
|
||||
|
||||
foreach ($path in $required) {
|
||||
if ($entries -notcontains $path) { throw "Required game file is missing from archive input: $path" }
|
||||
}
|
||||
|
||||
$parent = Split-Path -Parent $Output
|
||||
New-Item -ItemType Directory -Force -Path $parent | Out-Null
|
||||
if (Test-Path -LiteralPath $Output) { Remove-Item -LiteralPath $Output -Force }
|
||||
|
||||
Add-Type -AssemblyName System.IO.Compression
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
$archive = [System.IO.Compression.ZipFile]::Open($Output, 'Create')
|
||||
try {
|
||||
foreach ($relative in $entries) {
|
||||
$full = Join-Path $source $relative
|
||||
if (-not (Test-Path -LiteralPath $full -PathType Leaf)) { throw "Tracked file is missing: $relative" }
|
||||
$entry = $archive.CreateEntry($relative, [System.IO.Compression.CompressionLevel]::Optimal)
|
||||
$entry.LastWriteTime = [DateTimeOffset]'2000-01-01T00:00:00Z'
|
||||
$input = [System.IO.File]::OpenRead($full)
|
||||
$outputStream = $entry.Open()
|
||||
try { $input.CopyTo($outputStream) } finally { $outputStream.Dispose(); $input.Dispose() }
|
||||
}
|
||||
} finally {
|
||||
$archive.Dispose()
|
||||
}
|
||||
|
||||
Write-Host "Created $Output with $($entries.Count) tracked, ROM-free entries."
|
||||
@@ -0,0 +1,9 @@
|
||||
# UWP dependencies
|
||||
|
||||
The ANGLE UWP runtime is committed under `angle`. The package also uses:
|
||||
|
||||
- `LOVE_UWP_ROOT`: [caorthann-celt/love-xbox-uwp](https://github.com/caorthann-celt/love-xbox-uwp) on the `gen1recomp` branch.
|
||||
- `UWP_SDL2_ANGLE_ROOT`: SDL2 built by `scripts/build-sdl2-angle.ps1`.
|
||||
- `VCPKG_ROOT`: the UWP codec, font, compression, and audio runtimes used by LÖVE.
|
||||
|
||||
SDL headers, import library, and DLL must come from the same build. Runtime DLLs stay inside the installed package.
|
||||
@@ -0,0 +1,89 @@
|
||||
# This is the official list of The ANGLE Project Authors
|
||||
# for copyright purposes.
|
||||
# This file is distinct from the CONTRIBUTORS files.
|
||||
# See the latter for an explanation.
|
||||
|
||||
# Names should be added to this file as
|
||||
# Name or Organization
|
||||
# Email addresses for individuals are tracked elsewhere to avoid spam.
|
||||
|
||||
Google Inc.
|
||||
TransGaming Inc.
|
||||
3DLabs Inc. Ltd.
|
||||
|
||||
Adobe Systems Inc.
|
||||
Autodesk, Inc.
|
||||
BlackBerry Limited
|
||||
Cable Television Laboratories, Inc.
|
||||
Collabora, Ltd.
|
||||
Cloud Party, Inc.
|
||||
Igalia, S.L.
|
||||
Imagination Technologies Ltd.
|
||||
Intel Corporation
|
||||
LunarG, Inc.
|
||||
Mozilla Corporation
|
||||
Turbulenz
|
||||
Klarälvdalens Datakonsult AB
|
||||
Microsoft Corporation
|
||||
Microsoft Open Technologies, Inc.
|
||||
NVIDIA Corporation
|
||||
Opera Software ASA
|
||||
The Qt Company Ltd.
|
||||
Advanced Micro Devices, Inc.
|
||||
LG Electronics, Inc.
|
||||
IBM Inc.
|
||||
AdaptVis GmbH
|
||||
Samsung Electronics, Inc.
|
||||
Arm Ltd.
|
||||
Broadcom Inc.
|
||||
Facebook, Inc.
|
||||
The Khronos Group, Inc.
|
||||
Numfum GmbH
|
||||
Yandex LLC
|
||||
Rive
|
||||
Institute of Software, Chinese Academy of Sciences
|
||||
Guangdong OPPO Mobile Telecommunications Corp., Ltd
|
||||
Qualcomm Innovation Center, Inc.
|
||||
|
||||
Jacek Caban
|
||||
Mark Callow
|
||||
Ginn Chen
|
||||
Tibor den Ouden
|
||||
Régis Fénéon
|
||||
James Hauxwell
|
||||
Sam Hocevar
|
||||
Pierre Leveille
|
||||
Jonathan Liu
|
||||
Boying Lu
|
||||
Aitor Moreno
|
||||
Yuri O'Donnell
|
||||
Josh Soref
|
||||
Ma Aiguo
|
||||
Maks Naumov
|
||||
Jinyoung Hur
|
||||
Sebastian Bergstein
|
||||
James Ross-Gowan
|
||||
Nickolay Artamonov
|
||||
Ihsan Akmal
|
||||
Andrei Volykhin
|
||||
Jérôme Duval
|
||||
Руслан Ижбулатов
|
||||
Thomas Miller
|
||||
Till Rathmann
|
||||
Nick Shaforostov
|
||||
Jaime Bernardo
|
||||
Le Hoang Quyen
|
||||
Lu Yahan
|
||||
Ethan Lee
|
||||
Renaud Lepage
|
||||
Artem Bolgar
|
||||
Wander Lairson Costa
|
||||
Stephan Hartmann
|
||||
SeongHwan Park
|
||||
Xiaopeng Li
|
||||
Akihiko Odaki
|
||||
Ho Cheung
|
||||
Tao Wang
|
||||
Phan Quang Minh
|
||||
Hongchen Yan
|
||||
Andrew Sumsion
|
||||
@@ -0,0 +1,32 @@
|
||||
// Copyright 2018 The ANGLE Project Authors.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions
|
||||
// are met:
|
||||
//
|
||||
// Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
//
|
||||
// Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following
|
||||
// disclaimer in the documentation and/or other materials provided
|
||||
// with the distribution.
|
||||
//
|
||||
// Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
|
||||
// Ltd., nor the names of their contributors may be used to endorse
|
||||
// or promote products derived from this software without specific
|
||||
// prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
// POSSIBILITY OF SUCH DAMAGE.
|
||||
@@ -0,0 +1,13 @@
|
||||
# ANGLE UWP runtime
|
||||
|
||||
`libEGL.dll` and `libGLESv2.dll` were built for x64 UWP from [SternXD/angle](https://github.com/SternXD/angle) commit `45b0b1e03400b7a10aaa9a077e196d1abcddafce`. They report ANGLE version `2.1.25011` and source hash `45b0b1e03400`.
|
||||
|
||||
`d3dcompiler_47.dll` is the x64 Direct3D HLSL compiler redistributable from Windows SDK `10.0.26100.7705`.
|
||||
|
||||
SHA-256:
|
||||
|
||||
- `d3dcompiler_47.dll`: `A05F99734F7C4822FEFC12B367AF21FD0976ED6608752FB1E1E80B6ECE7ECBBB`
|
||||
- `libEGL.dll`: `FE2AC107D0B6CAAE917E755064B430E4ECC52495B12E44EC7B0218E10504ECD1`
|
||||
- `libGLESv2.dll`: `C8A7E08E0C34E534A781DD8784065CC0608D6E497ADB451F6EEF348E594A00CF`
|
||||
|
||||
ANGLE's upstream `LICENSE` and `AUTHORS` files are included beside its binaries.
|
||||