mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-25 07:48:24 +02:00
RTI will use docking with sdl3+vulkan. Reviewed-by: Natalie Vock <natalie.vock@gmx.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41806>
77 lines
2.8 KiB
Python
Executable file
77 lines
2.8 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
import base64
|
|
import pathlib
|
|
import requests
|
|
import subprocess
|
|
import typing
|
|
|
|
|
|
def error(msg: str) -> None:
|
|
print('\033[31m' + msg + '\033[0m')
|
|
|
|
|
|
class Source:
|
|
def __init__(self, filename: str, url: typing.Optional[str],
|
|
template: typing.Optional[str] = None, remove:
|
|
typing.Optional[str] = None):
|
|
self.file = pathlib.Path(filename)
|
|
self.url = url
|
|
self.template = template
|
|
self.remove = remove
|
|
|
|
def sync(self) -> None:
|
|
if self.url is None:
|
|
return
|
|
|
|
print('Syncing {}...'.format(self.file), end=' ', flush=True)
|
|
req = requests.get(self.url)
|
|
|
|
if not req.ok:
|
|
error('Failed to retrieve file: {} {}'.format(req.status_code, req.reason))
|
|
return
|
|
|
|
content = req.content
|
|
|
|
content = str(content, encoding='utf-8')
|
|
if self.remove is not None:
|
|
content = content.replace(self.remove, '')
|
|
if self.template is not None:
|
|
content = self.template % content
|
|
|
|
with open(self.file, 'w') as f:
|
|
f.write(content)
|
|
|
|
print('Done')
|
|
|
|
# rtinspector needs the docking branch of imgui
|
|
BASE_URL = 'https://raw.githubusercontent.com/ocornut/imgui/refs/heads/docking'
|
|
|
|
SOURCES = [
|
|
Source('src/imgui/backends/imgui_impl_sdl3.cpp', f'{BASE_URL}/backends/imgui_impl_sdl3.cpp'),
|
|
Source('src/imgui/backends/imgui_impl_sdl3.h', f'{BASE_URL}/backends/imgui_impl_sdl3.h'),
|
|
Source('src/imgui/backends/imgui_impl_vulkan.cpp', f'{BASE_URL}/backends/imgui_impl_vulkan.cpp'),
|
|
Source('src/imgui/backends/imgui_impl_vulkan.h', f'{BASE_URL}/backends/imgui_impl_vulkan.h'),
|
|
Source('src/imgui/imconfig.h', f'{BASE_URL}/imconfig.h'),
|
|
Source('src/imgui/imgui.cpp', f'{BASE_URL}/imgui.cpp'),
|
|
Source('src/imgui/imgui.h', f'{BASE_URL}/imgui.h'),
|
|
Source('src/imgui/imgui_draw.cpp', f'{BASE_URL}/imgui_draw.cpp'),
|
|
Source('src/imgui/imgui_internal.h', f'{BASE_URL}/imgui_internal.h'),
|
|
Source('src/imgui/imgui_tables.cpp', f'{BASE_URL}/imgui_tables.cpp'),
|
|
Source('src/imgui/imgui_widgets.cpp', f'{BASE_URL}/imgui_widgets.cpp'),
|
|
Source('src/imgui/imstb_rectpack.h', f'{BASE_URL}/imstb_rectpack.h'),
|
|
Source('src/imgui/imstb_textedit.h', f'{BASE_URL}/imstb_textedit.h'),
|
|
Source('src/imgui/imstb_truetype.h', f'{BASE_URL}/imstb_truetype.h'),
|
|
]
|
|
|
|
|
|
if __name__ == '__main__':
|
|
git_toplevel = subprocess.check_output(['git', 'rev-parse', '--show-toplevel'],
|
|
stderr=subprocess.DEVNULL).decode("ascii").strip()
|
|
if not pathlib.Path(git_toplevel).resolve() == pathlib.Path('.').resolve():
|
|
error('Please run this script from the root folder ({})'.format(git_toplevel))
|
|
exit(1)
|
|
|
|
for source in SOURCES:
|
|
source.sync()
|