* First steps towards shader transpilation Needs to be manually enabled via -Dshader_transpiler=true. Requires shaderc. https://github.com/google/shaderc Not yet functional due to missing SPIRV-Cross integration. SPIRV-Cross currently does not have an official C API, and crossc is too minimal to be useful. The current plan is to extend crossc and vendor it, while also sending PRs upstream. * Integrate crossc; shader transpilation for GLES now works * fix leak * gles30 backend now playable on Mesa with 3.2 context Some rendering issues are present. Identified so far: - Marisa's lasers are invisible - Death effect looks wrong Also, a small pixmap manipulation library has been written, and the texture uploading API redesigned around it. * fix marisa lasers in GLES (uniform name clashed with builtin) * fix player death effect in GLES (another name clash) * Dump ANGLE's translated shader code in debug log * fix screenshots * Drop support for triangle fans, switch to strips Fans offer no advantage over strips, and they've been removed in D3D10+, so ANGLE has to emulate them. * crude workaround for an ANGLE bug * Re-enable GL debug labels, fix an issue with them that affected ANGLE (but was always technically a bug) * fix race condition in shaderc initialization * New SDL_RWops interface for vertex buffers * Optimize VBO streaming via buffering updates Measurable performance improvement even with the main gl33 renderer, drastic improvement with ANGLE. * Fix the depth texture binding problem under ANGLE Apparently it hates GL_DEPTH_COMPONENT16 for some reason. Sized internal formats are not supported in GLES 2.0 anyway, so not using them is probably a good idea. * fix GLES2.0 segfault (the backend still doesn't work, though) * dump GL extensions at info log level, not debug * get around a Mesa bug; more correct texture format table for GLES2 * Correct GLES3 texture format table according to the spec Not a Mesa bug after all * require crossc>=1.5.0, fallback to subproject * Request at least 8bit per color channel in GL backends * Forbid lto for static windows builds with shader_transpiler=true * fix edge case segfault * Add basic ANGLE bundling support to the build system Windows only, and no NSIS support yet * Fix various windows-related build system and installer brokenness * Disable gles backends by default * update documentation
33 lines
846 B
Python
Executable file
33 lines
846 B
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import sys
|
|
|
|
if __name__ == '__main__':
|
|
args = sys.argv[1:]
|
|
linemode = args.pop(0).lower()
|
|
use_bom = linemode == 'crlf'
|
|
|
|
if args[0] == '--no-bom':
|
|
use_bom = False
|
|
args.pop(0)
|
|
|
|
inpath = args.pop(0)
|
|
outpath = args.pop(0)
|
|
assert linemode in ('lf', 'crlf')
|
|
|
|
bom = b'\xef\xbb\xbf'
|
|
|
|
# Open in text mode to have Python normalize the line terminators for us
|
|
with open(inpath, 'r', encoding='utf8') as infile:
|
|
content = infile.read().encode('utf8')
|
|
|
|
if linemode == 'crlf':
|
|
content = content.replace(b'\n', b'\r\n')
|
|
|
|
if use_bom and not content.startswith(bom):
|
|
content = bom + content
|
|
elif not use_bom and content.startswith(bom):
|
|
content = content[len(bom):]
|
|
|
|
with open(outpath, 'wb') as outfile:
|
|
outfile.write(content)
|