From f325294eaaec7ed86056894628cde42a9261ae0e Mon Sep 17 00:00:00 2001 From: DartPower <2005369+DartPower@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:06:02 +0300 Subject: [PATCH] Giga Update --- .gitattributes | 1 + .github/ISSUE_TEMPLATE/bug_report.yml | 124 + .github/ISSUE_TEMPLATE/feature_request.yml | 107 + .github/workflows/continuous_integration.yml | 4 +- .whitesource | 14 - CMakeLists.txt | 49 +- bin/windows/vpx/include/vpx/vp8.h | 148 + bin/windows/vpx/include/vpx/vp8dx.h | 176 + bin/windows/vpx/include/vpx/vpx_codec.h | 479 + bin/windows/vpx/include/vpx/vpx_decoder.h | 378 + .../vpx/include/vpx/vpx_frame_buffer.h | 83 + bin/windows/vpx/include/vpx/vpx_image.h | 235 + bin/windows/vpx/include/vpx/vpx_integer.h | 74 + bin/windows/vpx/lib/32/libcompat-to-msvc.lib | Bin 0 -> 13728 bytes bin/windows/vpx/lib/32/libvpx.lib | Bin 0 -> 959082 bytes bin/windows/vpx/lib/64/libcompat-to-msvc.lib | Bin 0 -> 3758 bytes bin/windows/vpx/lib/64/libvpx.lib | Bin 0 -> 1402288 bytes bin/windows/vpx/lib/arm64/libvpx.lib | Bin 0 -> 8151150 bytes bin/windows/vpx/lib/instructions.txt | 44 + bin/windows/vpx/src/_dbg_LOAD_IMAGE.h | 55 + bin/windows/vpx/src/_dbg_common.h | 2051 ++ bin/windows/vpx/src/backtrace.c | 702 + bin/windows/vpx/src/compat-to-msvc/Makefile | 22 + .../vpx/src/compat-to-msvc/dll_dependency.S | 88 + bin/windows/vpx/src/compat-to-msvc/dll_math.c | 572 + bin/windows/vpx/src/compat-to-msvc/io_math.c | 39 + .../vpx/src/compat-to-msvc/vsnprintf.c | 19 + bin/windows/zmusic/arm64/zmusic.dll | Bin 3704320 -> 0 bytes bin/windows/zmusic/include/zmusic.h | 26 +- cmake/FindVPX.cmake | 8 + libraries/discordrpc/.clang-format | 92 + libraries/discordrpc/.gitignore | 5 + libraries/discordrpc/.travis.yml | 47 + libraries/discordrpc/CMakeLists.txt | 16 + libraries/discordrpc/LICENSE | 19 + libraries/discordrpc/README.md | 158 + libraries/discordrpc/appveyor.yml | 17 + libraries/discordrpc/build.py | 304 + .../discordrpc/documentation/hard-mode.md | 164 + .../documentation/images/rp-dev-dashboard.png | Bin 0 -> 325539 bytes .../documentation/images/rp-profile-view.png | Bin 0 -> 1398658 bytes .../images/rp-secret-example.png | Bin 0 -> 14447 bytes .../discordrpc/include/discord_register.h | 26 + libraries/discordrpc/include/discord_rpc.h | 90 + libraries/discordrpc/src/CMakeLists.txt | 138 + libraries/discordrpc/src/backoff.h | 40 + libraries/discordrpc/src/connection.h | 19 + libraries/discordrpc/src/connection_unix.cpp | 125 + libraries/discordrpc/src/connection_win.cpp | 128 + .../discordrpc/src/discord_register_linux.cpp | 102 + .../discordrpc/src/discord_register_osx.m | 80 + .../discordrpc/src/discord_register_win.cpp | 186 + libraries/discordrpc/src/discord_rpc.cpp | 504 + libraries/discordrpc/src/dllmain.cpp | 8 + libraries/discordrpc/src/msg_queue.h | 36 + libraries/discordrpc/src/rpc_connection.cpp | 137 + libraries/discordrpc/src/rpc_connection.h | 59 + libraries/discordrpc/src/serialization.cpp | 250 + libraries/discordrpc/src/serialization.h | 216 + libraries/glslang/glslang/CMakeLists.txt | 3 +- libraries/glslang/glslang/Include/BaseTypes.h | 119 +- libraries/glslang/glslang/Include/Common.h | 76 +- .../glslang/glslang/Include/ConstantUnion.h | 2 +- libraries/glslang/glslang/Include/PoolAlloc.h | 2 + .../glslang/glslang/Include/ResourceLimits.h | 1 + .../glslang/glslang/Include/SpirvIntrinsics.h | 128 + libraries/glslang/glslang/Include/Types.h | 812 +- .../glslang/glslang/Include/build_info.h | 62 + .../glslang/glslang/Include/intermediate.h | 90 +- libraries/glslang/glslang/Include/revision.h | 3 - .../glslang/glslang/Include/revision.template | 13 - .../glslang/MachineIndependent/Constant.cpp | 69 +- .../glslang/MachineIndependent/Initialize.cpp | 1551 +- .../MachineIndependent/IntermTraverse.cpp | 7 + .../MachineIndependent/Intermediate.cpp | 472 +- .../MachineIndependent/LiveTraverser.h | 38 +- .../MachineIndependent/ParseContextBase.cpp | 180 +- .../MachineIndependent/ParseHelper.cpp | 1519 +- .../glslang/MachineIndependent/ParseHelper.h | 83 +- .../glslang/MachineIndependent/Scan.cpp | 191 +- .../glslang/MachineIndependent/ShaderLang.cpp | 245 +- .../MachineIndependent/SpirvIntrinsics.cpp | 350 + .../MachineIndependent/SymbolTable.cpp | 47 +- .../glslang/MachineIndependent/SymbolTable.h | 106 +- .../glslang/MachineIndependent/Versions.cpp | 225 +- .../glslang/MachineIndependent/Versions.h | 42 +- .../glslang/MachineIndependent/attribute.cpp | 25 + .../glslang/MachineIndependent/attribute.h | 3 +- .../glslang/MachineIndependent/gl_types.h | 14 +- .../glslang/MachineIndependent/glslang.m4 | 694 +- .../glslang/MachineIndependent/glslang.y | 694 +- .../MachineIndependent/glslang_tab.cpp | 16008 ++++++------ .../MachineIndependent/glslang_tab.cpp.h | 887 +- .../glslang/MachineIndependent/intermOut.cpp | 106 +- .../glslang/MachineIndependent/iomapper.cpp | 762 +- .../glslang/MachineIndependent/iomapper.h | 84 +- .../glslang/MachineIndependent/limits.cpp | 6 +- .../MachineIndependent/linkValidate.cpp | 845 +- .../MachineIndependent/localintermediate.h | 321 +- .../glslang/MachineIndependent/parseConst.cpp | 33 +- .../MachineIndependent/parseVersions.h | 13 +- .../MachineIndependent/preprocessor/Pp.cpp | 37 +- .../preprocessor/PpContext.cpp | 3 +- .../preprocessor/PpContext.h | 5 +- .../preprocessor/PpScanner.cpp | 84 +- .../propagateNoContraction.cpp | 2 +- .../glslang/MachineIndependent/reflection.cpp | 274 +- .../glslang/MachineIndependent/reflection.h | 4 +- .../glslang/OSDependent/Unix/CMakeLists.txt | 35 +- .../glslang/OSDependent/Unix/ossource.cpp | 8 +- .../glslang/OSDependent/Web/CMakeLists.txt | 89 +- .../glslang/OSDependent/Web/glslang.js.cpp | 26 +- .../glslang/OSDependent/Web/glslang.pre.js | 39 +- .../OSDependent/Windows/CMakeLists.txt | 37 +- libraries/glslang/glslang/Public/ShaderLang.h | 352 +- libraries/glslang/glslang/updateGrammar | 33 + libraries/glslang/spirv/GLSL.ext.EXT.h | 4 + libraries/glslang/spirv/GLSL.ext.KHR.h | 13 +- libraries/glslang/spirv/GLSL.ext.NV.h | 3 + libraries/glslang/spirv/GlslangToSpv.cpp | 1844 +- libraries/glslang/spirv/Logger.cpp | 2 +- .../glslang/spirv/NonSemanticDebugPrintf.h | 50 + libraries/glslang/spirv/SPVRemapper.cpp | 69 +- libraries/glslang/spirv/SPVRemapper.h | 8 + libraries/glslang/spirv/SpvBuilder.cpp | 360 +- libraries/glslang/spirv/SpvBuilder.h | 157 +- libraries/glslang/spirv/SpvPostProcess.cpp | 71 +- libraries/glslang/spirv/SpvTools.cpp | 125 +- libraries/glslang/spirv/SpvTools.h | 27 +- libraries/glslang/spirv/disassemble.cpp | 61 +- libraries/glslang/spirv/doc.cpp | 351 +- libraries/glslang/spirv/doc.h | 1 + libraries/glslang/spirv/hex_float.h | 4 +- libraries/glslang/spirv/spirv.hpp | 538 +- libraries/glslang/spirv/spvIR.h | 65 +- libraries/lzma/C/7z.h | 4 +- libraries/lzma/C/7zArcIn.c | 44 +- libraries/lzma/C/7zCrc.c | 196 +- libraries/lzma/C/7zCrcOpt.c | 16 +- libraries/lzma/C/7zDec.c | 47 +- libraries/lzma/C/7zStream.c | 4 +- libraries/lzma/C/7zTypes.h | 188 +- libraries/lzma/C/7zVersion.h | 10 +- libraries/lzma/C/Bcj2.c | 10 +- libraries/lzma/C/Bra.c | 14 +- libraries/lzma/C/Bra86.c | 4 +- libraries/lzma/C/Compiler.h | 12 +- libraries/lzma/C/CpuArch.c | 280 +- libraries/lzma/C/CpuArch.h | 154 +- libraries/lzma/C/Delta.c | 167 +- libraries/lzma/C/LzFind.c | 1317 +- libraries/lzma/C/LzFind.h | 41 +- libraries/lzma/C/LzFindMt.c | 1303 +- libraries/lzma/C/LzFindMt.h | 46 +- libraries/lzma/C/LzFindOpt.c | 578 + libraries/lzma/C/LzHash.h | 67 +- libraries/lzma/C/Lzma2Dec.c | 5 +- libraries/lzma/C/LzmaDec.c | 414 +- libraries/lzma/C/LzmaDec.h | 4 +- libraries/lzma/C/LzmaEnc.c | 439 +- libraries/lzma/C/LzmaEnc.h | 4 +- libraries/lzma/C/Ppmd.h | 144 +- libraries/lzma/C/Ppmd7.c | 890 +- libraries/lzma/C/Ppmd7.h | 175 +- libraries/lzma/C/Ppmd7Dec.c | 330 +- libraries/lzma/C/Threads.c | 471 +- libraries/lzma/C/Threads.h | 182 +- libraries/lzma/CMakeLists.txt | 20 +- libraries/lzma/DOC/lzma-history.txt | 74 + libraries/lzma/DOC/lzma-sdk.txt | 65 +- libraries/zlib/ChangeLog | 161 +- libraries/zlib/README | 11 +- libraries/zlib/crc32.c | 1258 +- libraries/zlib/crc32.h | 9877 +++++++- libraries/zlib/deflate.c | 108 +- libraries/zlib/deflate.h | 27 +- libraries/zlib/gzguts.h | 5 +- libraries/zlib/infback.c | 3 +- libraries/zlib/inffast.c | 28 +- libraries/zlib/inflate.c | 47 +- libraries/zlib/inflate.h | 5 +- libraries/zlib/inftrees.c | 6 +- libraries/zlib/trees.c | 75 +- libraries/zlib/win32/zlib.def | 3 + libraries/zlib/zlib.3.pdf | Bin 19318 -> 8848 bytes libraries/zlib/zlib.h | 223 +- libraries/zlib/zutil.c | 4 +- libraries/zlib/zutil.h | 21 +- options.checklist | 34 + soundfont/Goida.sf2 | Bin 3299098 -> 3283278 bytes specs/udmf_zdoom.txt | 69 +- src/CMakeLists.txt | 287 +- src/am_map.cpp | 33 +- src/common/2d/v_2ddrawer.cpp | 71 +- src/common/2d/v_2ddrawer.h | 39 +- src/common/2d/v_draw.cpp | 75 +- src/common/2d/v_draw.h | 5 +- src/common/2d/v_drawtext.cpp | 6 +- .../2d/f_wipe.cpp => common/2d/wipe.cpp} | 145 +- src/common/2d/wipe.h | 38 + src/common/audio/music/i_music.cpp | 7 +- src/common/audio/music/i_soundfont.cpp | 21 +- src/common/audio/music/i_soundfont.h | 16 +- src/common/audio/music/music.cpp | 40 +- src/common/audio/music/music_config.cpp | 2 +- src/common/audio/music/s_music.h | 1 + src/common/audio/sound/i_sound.cpp | 4 +- src/common/audio/sound/i_sound.h | 2 +- src/common/audio/sound/oalsound.cpp | 21 +- src/common/audio/sound/s_environment.cpp | 4 +- src/common/audio/sound/s_reverbedit.cpp | 5 +- src/common/audio/sound/s_sound.cpp | 32 +- src/common/audio/sound/s_soundinternal.h | 13 +- src/common/console/c_bind.cpp | 30 +- src/common/console/c_buttons.cpp | 8 +- src/common/console/c_commandbuffer.cpp | 12 +- src/common/console/c_console.cpp | 25 +- src/common/console/c_consolebuffer.cpp | 8 +- src/common/console/c_consolebuffer.h | 4 +- src/common/console/c_cvars.cpp | 44 +- src/common/console/c_cvars.h | 16 +- src/common/console/c_dispatch.cpp | 21 +- src/common/console/c_expr.cpp | 4 +- src/common/console/c_notifybufferbase.cpp | 2 +- src/common/console/c_tabcomplete.cpp | 2 +- src/common/cutscenes/movieplayer.cpp | 816 + src/common/cutscenes/playmve.cpp | 1008 + src/common/cutscenes/playmve.h | 179 + src/common/cutscenes/screenjob.cpp | 405 + src/common/cutscenes/screenjob.h | 61 + src/common/engine/cycler.cpp | 10 +- src/common/engine/cycler.h | 2 +- src/common/engine/d_event.cpp | 41 +- src/{ => common/engine}/gamestate.h | 3 + src/common/engine/i_interface.cpp | 2 + src/common/engine/i_interface.h | 5 +- src/common/engine/i_net.cpp | 101 +- src/common/engine/i_net.h | 7 +- src/common/engine/m_joy.h | 2 +- src/common/engine/namedef.h | 1019 +- src/common/engine/palettecontainer.cpp | 16 +- src/common/engine/palettecontainer.h | 5 +- src/common/engine/renderstyle.cpp | 2 +- src/common/engine/sc_man.cpp | 10 +- src/common/engine/sc_man.h | 2 +- src/common/engine/sc_man_scanner.re | 8 +- src/common/engine/serializer.cpp | 32 +- src/common/engine/serializer.h | 20 +- src/common/engine/serializer_internal.h | 8 +- src/common/engine/st_start.h | 119 +- src/common/engine/startupinfo.h | 2 + src/common/engine/stats.h | 89 +- src/common/engine/stringtable.cpp | 4 +- src/common/engine/stringtable.h | 6 +- src/common/engine/v_colortables.cpp | 10 +- src/common/filesystem/file_directory.cpp | 4 +- src/common/filesystem/file_grp.cpp | 8 +- src/common/filesystem/file_pak.cpp | 2 +- src/common/filesystem/file_rff.cpp | 6 +- src/common/filesystem/file_wad.cpp | 19 +- src/common/filesystem/file_whres.cpp | 8 +- src/common/filesystem/file_zip.cpp | 167 +- src/common/filesystem/file_zip.h | 2 +- src/common/filesystem/filesystem.cpp | 85 +- src/common/filesystem/filesystem.h | 5 +- src/common/filesystem/resourcefile.cpp | 18 +- src/common/filesystem/resourcefile.h | 1 + src/common/filesystem/w_zip.h | 33 +- src/common/fonts/font.cpp | 132 +- src/common/fonts/hexfont.cpp | 49 +- src/common/fonts/singlelumpfont.cpp | 15 +- src/common/fonts/singlepicfont.cpp | 3 - src/common/fonts/specialfont.cpp | 10 +- src/common/fonts/v_font.cpp | 61 +- src/common/fonts/v_font.h | 41 +- src/common/fonts/v_text.cpp | 33 +- src/common/menu/joystickmenu.cpp | 14 +- src/common/menu/menu.cpp | 4 +- src/common/menu/menu.h | 1 + src/common/menu/menudef.cpp | 36 +- src/common/menu/savegamemanager.cpp | 5 +- src/common/models/model.cpp | 8 +- src/common/models/model_kvx.h | 2 +- src/common/models/models_md2.cpp | 18 +- src/common/models/models_md3.cpp | 36 +- src/common/models/models_obj.cpp | 17 +- src/common/models/models_ue1.cpp | 28 +- src/common/models/models_voxel.cpp | 13 +- src/common/models/voxels.cpp | 2 +- src/common/objects/dobject.cpp | 7 +- src/common/objects/dobjgc.cpp | 101 +- src/common/objects/dobjgc.h | 47 +- src/common/platform/posix/cocoa/i_input.mm | 102 +- .../platform/posix/cocoa/i_joystick.cpp | 4 +- src/common/platform/posix/cocoa/i_main.mm | 52 +- src/common/platform/posix/cocoa/i_video.mm | 28 +- src/common/platform/posix/cocoa/st_console.mm | 8 +- src/common/platform/posix/cocoa/st_start.mm | 41 +- src/common/platform/posix/i_system.h | 2 + src/common/platform/posix/i_system_posix.cpp | 6 + .../platform/posix/osx/i_specialpaths.mm | 2 +- .../platform/posix/osx/iwadpicker_cocoa.mm | 6 +- src/common/platform/posix/sdl/hardware.cpp | 3 +- src/common/platform/posix/sdl/i_input.cpp | 18 +- src/common/platform/posix/sdl/i_joystick.cpp | 2 +- src/common/platform/posix/sdl/i_main.cpp | 4 +- src/common/platform/posix/sdl/i_system.cpp | 75 +- src/common/platform/posix/sdl/i_system.mm | 4 +- src/common/platform/posix/sdl/sdlglvideo.cpp | 28 +- src/common/platform/posix/sdl/st_start.cpp | 44 +- src/common/platform/win32/base_sysfb.cpp | 56 +- src/common/platform/win32/gl_sysfb.cpp | 11 +- src/common/platform/win32/hardware.cpp | 15 +- src/common/platform/win32/i_crash.cpp | 70 +- src/common/platform/win32/i_dijoy.cpp | 15 +- src/common/platform/win32/i_input.cpp | 89 +- src/common/platform/win32/i_input.h | 1 - src/common/platform/win32/i_keyboard.cpp | 10 +- src/common/platform/win32/i_main.cpp | 805 +- src/common/platform/win32/i_mainwindow.cpp | 887 + src/common/platform/win32/i_mainwindow.h | 90 + src/common/platform/win32/i_mouse.cpp | 30 +- src/common/platform/win32/i_rawps2.cpp | 14 +- src/common/platform/win32/i_specialpaths.cpp | 38 +- src/common/platform/win32/i_system.cpp | 136 +- src/common/platform/win32/i_system.h | 6 +- src/common/platform/win32/i_xinput.cpp | 6 +- src/common/platform/win32/resource.h | 1 + src/common/platform/win32/st_start.cpp | 536 +- src/common/platform/win32/st_start_util.cpp | 1192 - src/common/platform/win32/win32basevideo.cpp | 40 +- src/common/platform/win32/win32glvideo.cpp | 16 +- src/common/platform/win32/win32polyvideo.cpp | 23 +- .../platform/win32/win32vulkanvideo.cpp | 12 +- src/common/platform/win32/win32vulkanvideo.h | 2 +- src/common/platform/win32/zutil.natvis | 11 + src/common/rendering/gl/gl_buffers.cpp | 54 +- src/common/rendering/gl/gl_buffers.h | 7 +- src/common/rendering/gl/gl_debug.cpp | 2 +- src/common/rendering/gl/gl_framebuffer.cpp | 67 +- src/common/rendering/gl/gl_framebuffer.h | 9 +- src/common/rendering/gl/gl_hwtexture.cpp | 8 +- src/common/rendering/gl/gl_postprocess.cpp | 2 +- .../rendering/gl/gl_postprocessstate.cpp | 2 +- src/common/rendering/gl/gl_renderbuffers.cpp | 6 +- src/common/rendering/gl/gl_renderer.h | 4 +- src/common/rendering/gl/gl_renderstate.cpp | 11 +- src/common/rendering/gl/gl_renderstate.h | 2 +- src/common/rendering/gl/gl_samplers.cpp | 8 +- src/common/rendering/gl/gl_shader.cpp | 105 +- src/common/rendering/gl/gl_shader.h | 10 +- src/common/rendering/gl/gl_shaderprogram.cpp | 2 +- src/common/rendering/gl/gl_stereo3d.cpp | 58 +- src/common/rendering/gl_load/gl_interface.cpp | 2 +- src/common/rendering/gl_load/gl_load.c | 16 +- .../gles/glad/include/EGL/eglplatform.h | 125 + .../gles/glad/include/KHR/khrplatform.h | 290 + .../rendering/gles/glad/include/glad/glad.h | 874 + .../gles/glad/include/glad/glad_egl.h | 267 + src/common/rendering/gles/glad/src/glad.c | 475 + src/common/rendering/gles/glad/src/glad_egl.c | 45 + src/common/rendering/gles/gles_buffers.cpp | 337 + src/common/rendering/gles/gles_buffers.h | 82 + .../rendering/gles/gles_framebuffer.cpp | 494 + src/common/rendering/gles/gles_framebuffer.h | 72 + src/common/rendering/gles/gles_hwtexture.cpp | 345 + src/common/rendering/gles/gles_hwtexture.h | 83 + .../rendering/gles/gles_postprocess.cpp | 226 + .../rendering/gles/gles_postprocessstate.cpp | 118 + .../rendering/gles/gles_postprocessstate.h | 40 + .../rendering/gles/gles_renderbuffers.cpp | 430 + .../rendering/gles/gles_renderbuffers.h | 152 + src/common/rendering/gles/gles_renderer.cpp | 158 + src/common/rendering/gles/gles_renderer.h | 106 + .../rendering/gles/gles_renderstate.cpp | 740 + src/common/rendering/gles/gles_renderstate.h | 152 + src/common/rendering/gles/gles_samplers.cpp | 196 + src/common/rendering/gles/gles_samplers.h | 27 + src/common/rendering/gles/gles_shader.cpp | 942 + src/common/rendering/gles/gles_shader.h | 493 + .../rendering/gles/gles_shaderprogram.cpp | 293 + .../rendering/gles/gles_shaderprogram.h | 159 + src/common/rendering/gles/gles_system.cpp | 195 + src/common/rendering/gles/gles_system.h | 93 + .../rendering/hwrenderer/data/buffers.h | 25 +- .../hwrenderer/data/flatvertices.cpp | 52 +- .../rendering/hwrenderer/data/flatvertices.h | 50 +- .../rendering/hwrenderer/data/hw_clock.cpp | 3 +- .../rendering/hwrenderer/data/hw_cvars.cpp | 7 +- .../hwrenderer/data/hw_dynlightdata.h | 6 +- .../rendering/hwrenderer/data/hw_levelmesh.h | 21 + .../hwrenderer/data/hw_lightbuffer.cpp | 32 +- .../hwrenderer/data/hw_lightbuffer.h | 7 +- .../hwrenderer/data/hw_modelvertexbuffer.cpp | 5 +- .../hwrenderer/data/hw_renderstate.h | 33 +- .../hwrenderer/data/hw_shaderpatcher.cpp | 62 +- .../hwrenderer/data/hw_shaderpatcher.h | 1 + .../hwrenderer/data/hw_shadowmap.cpp | 13 +- .../rendering/hwrenderer/data/hw_shadowmap.h | 6 + .../rendering/hwrenderer/data/hw_skydome.cpp | 26 +- .../rendering/hwrenderer/data/hw_skydome.h | 19 +- .../hwrenderer/data/hw_viewpointbuffer.cpp | 35 +- .../hwrenderer/data/hw_viewpointbuffer.h | 7 +- .../rendering/hwrenderer/data/hw_vrmodes.cpp | 65 +- .../hwrenderer/data/shaderuniforms.h | 2 +- src/common/rendering/hwrenderer/hw_draw2d.cpp | 19 +- .../postprocessing/hw_postprocess.cpp | 18 +- .../postprocessing/hw_postprocessshader.cpp | 139 + .../hw_postprocessshader_ccmds.cpp | 136 + src/common/rendering/i_modelvertexbuffer.h | 7 +- src/common/rendering/i_video.h | 6 - .../polyrenderer/backend/poly_buffers.cpp | 2 +- .../polyrenderer/backend/poly_buffers.h | 2 +- .../polyrenderer/backend/poly_framebuffer.cpp | 10 +- .../polyrenderer/backend/poly_framebuffer.h | 1 + .../polyrenderer/backend/poly_hwtexture.cpp | 2 +- .../polyrenderer/backend/poly_renderstate.cpp | 2 +- .../polyrenderer/drawers/poly_thread.cpp | 28 +- .../polyrenderer/drawers/poly_thread.h | 6 +- .../polyrenderer/drawers/poly_triangle.cpp | 2 +- .../polyrenderer/drawers/screen_blend.cpp | 24 +- .../drawers/screen_scanline_setup.cpp | 40 +- .../polyrenderer/drawers/screen_shader.cpp | 31 +- .../polyrenderer/drawers/screen_triangle.cpp | 11 +- src/common/rendering/r_thread.cpp | 15 +- src/common/rendering/r_thread.h | 31 +- src/common/rendering/r_videoscale.cpp | 8 +- src/common/rendering/v_framebuffer.cpp | 13 +- src/common/rendering/v_video.cpp | 51 +- src/common/rendering/v_video.h | 21 +- .../vulkan/renderer/vk_descriptorset.cpp | 289 + .../vulkan/renderer/vk_descriptorset.h | 70 + .../vulkan/renderer/vk_postprocess.cpp | 607 +- .../vulkan/renderer/vk_postprocess.h | 92 +- .../vulkan/renderer/vk_pprenderstate.cpp | 138 + .../vulkan/renderer/vk_pprenderstate.h | 27 + .../rendering/vulkan/renderer/vk_raytrace.cpp | 283 + .../rendering/vulkan/renderer/vk_raytrace.h | 43 + .../vulkan/renderer/vk_renderbuffers.cpp | 271 - .../vulkan/renderer/vk_renderpass.cpp | 380 +- .../rendering/vulkan/renderer/vk_renderpass.h | 80 +- .../vulkan/renderer/vk_renderstate.cpp | 72 +- .../vulkan/renderer/vk_renderstate.h | 9 +- .../vulkan/renderer/vk_streambuffer.cpp | 35 +- .../vulkan/renderer/vk_streambuffer.h | 22 +- .../rendering/vulkan/shaders/vk_ppshader.cpp | 77 + .../rendering/vulkan/shaders/vk_ppshader.h | 26 + .../rendering/vulkan/shaders/vk_shader.cpp | 215 +- .../rendering/vulkan/shaders/vk_shader.h | 20 +- .../rendering/vulkan/system/vk_buffer.cpp | 133 + .../rendering/vulkan/system/vk_buffer.h | 64 + .../rendering/vulkan/system/vk_buffers.cpp | 241 - .../rendering/vulkan/system/vk_builders.cpp | 1209 +- .../rendering/vulkan/system/vk_builders.h | 1302 +- .../vulkan/system/vk_commandbuffer.cpp | 268 + .../vulkan/system/vk_commandbuffer.h | 94 + .../rendering/vulkan/system/vk_device.cpp | 159 +- .../rendering/vulkan/system/vk_device.h | 17 +- .../vulkan/system/vk_framebuffer.cpp | 423 +- .../rendering/vulkan/system/vk_framebuffer.h | 91 +- .../rendering/vulkan/system/vk_hwbuffer.cpp | 254 + .../system/{vk_buffers.h => vk_hwbuffer.h} | 34 +- .../rendering/vulkan/system/vk_objects.h | 87 +- .../rendering/vulkan/system/vk_swapchain.cpp | 26 +- .../rendering/vulkan/system/vk_swapchain.h | 9 +- .../vulkan/textures/vk_hwtexture.cpp | 297 +- .../rendering/vulkan/textures/vk_hwtexture.h | 42 +- .../vulkan/textures/vk_imagetransition.cpp | 35 +- .../vulkan/textures/vk_imagetransition.h | 19 +- .../vulkan/textures/vk_pptexture.cpp | 114 + .../rendering/vulkan/textures/vk_pptexture.h | 25 + .../vulkan/textures/vk_renderbuffers.cpp | 263 + .../{renderer => textures}/vk_renderbuffers.h | 12 +- .../rendering/vulkan/textures/vk_samplers.cpp | 150 +- .../rendering/vulkan/textures/vk_samplers.h | 38 +- .../rendering/vulkan/textures/vk_texture.cpp | 253 + .../rendering/vulkan/textures/vk_texture.h | 57 + .../thirdparty/vk_mem_alloc/vk_mem_alloc.cpp | 3 + .../thirdparty/vk_mem_alloc/vk_mem_alloc.h | 20373 ++++++++++++---- .../vk_mem_alloc/vk_mem_alloc.natvis | 40 + .../rendering/vulkan/thirdparty/volk/volk.c | 845 +- .../rendering/vulkan/thirdparty/volk/volk.h | 572 +- .../vulkan/thirdparty/vulkan/vk_icd.h | 76 +- .../vulkan/thirdparty/vulkan/vk_layer.h | 16 +- .../vulkan/vk_layer_dispatch_table.h | 525 - .../vulkan/thirdparty/vulkan/vk_platform.h | 18 +- .../vulkan/thirdparty/vulkan/vulkan.h | 30 +- .../vulkan/thirdparty/vulkan/vulkan_android.h | 23 +- .../vulkan/thirdparty/vulkan/vulkan_beta.h | 704 + .../vulkan/thirdparty/vulkan/vulkan_core.h | 12700 ++++++---- .../thirdparty/vulkan/vulkan_directfb.h | 54 + .../vulkan/thirdparty/vulkan/vulkan_fuchsia.h | 97 +- .../vulkan/thirdparty/vulkan/vulkan_ggp.h | 23 +- .../vulkan/thirdparty/vulkan/vulkan_ios.h | 25 +- .../vulkan/thirdparty/vulkan/vulkan_macos.h | 25 +- .../vulkan/thirdparty/vulkan/vulkan_metal.h | 23 +- .../vulkan/thirdparty/vulkan/vulkan_mir.h | 65 - .../vulkan/thirdparty/vulkan/vulkan_screen.h | 54 + .../vulkan/thirdparty/vulkan/vulkan_vi.h | 23 +- .../vulkan/thirdparty/vulkan/vulkan_wayland.h | 23 +- .../vulkan/thirdparty/vulkan/vulkan_win32.h | 30 +- .../vulkan/thirdparty/vulkan/vulkan_xcb.h | 23 +- .../vulkan/thirdparty/vulkan/vulkan_xlib.h | 23 +- .../thirdparty/vulkan/vulkan_xlib_xrandr.h | 23 +- src/common/scripting/backend/codegen.cpp | 180 +- src/common/scripting/backend/codegen.h | 12 +- src/common/scripting/backend/vmbuilder.cpp | 2 +- src/common/scripting/core/dynarrays.cpp | 4 +- src/common/scripting/core/imports.cpp | 2 +- src/common/scripting/core/scopebarrier.h | 2 +- src/common/scripting/core/symbols.cpp | 4 +- src/common/scripting/core/symbols.h | 1 - src/common/scripting/core/types.cpp | 53 +- src/common/scripting/core/types.h | 6 +- src/common/scripting/core/vmdisasm.cpp | 9 +- src/common/scripting/frontend/zcc_compile.cpp | 63 +- src/common/scripting/frontend/zcc_compile.h | 2 +- src/common/scripting/frontend/zcc_parser.cpp | 54 +- .../scripting/interface/stringformat.cpp | 26 +- src/common/scripting/interface/vmnatives.cpp | 95 +- src/common/scripting/jit/jit.cpp | 4 +- src/common/scripting/jit/jit.h | 2 +- src/common/scripting/jit/jit_call.cpp | 2 +- src/common/scripting/jit/jit_flow.cpp | 2 +- src/common/scripting/jit/jit_load.cpp | 48 + src/common/scripting/jit/jit_math.cpp | 6 +- src/common/scripting/jit/jit_move.cpp | 2 +- src/common/scripting/jit/jit_runtime.cpp | 50 +- src/common/scripting/jit/jit_store.cpp | 58 + src/common/scripting/vm/vm.h | 7 + src/common/scripting/vm/vmexec.h | 127 +- src/common/scripting/vm/vmframe.cpp | 8 +- src/common/scripting/vm/vmops.h | 8 + src/common/startscreen/endoom.cpp | 199 + src/common/startscreen/startscreen.cpp | 716 + src/common/startscreen/startscreen.h | 104 + .../startscreen/startscreen_generic.cpp | 127 + .../startscreen/startscreen_heretic.cpp | 181 + src/common/startscreen/startscreen_hexen.cpp | 212 + src/common/startscreen/startscreen_strife.cpp | 202 + src/common/statusbar/base_sbar.cpp | 44 +- src/common/statusbar/base_sbar.h | 2 +- src/common/textures/animlib.cpp | 333 +- src/common/textures/animlib.h | 76 +- src/common/textures/animtexture.cpp | 160 +- src/common/textures/bitmap.cpp | 13 +- src/common/textures/bitmap.h | 22 +- src/common/textures/formats/anmtexture.cpp | 6 +- src/common/textures/formats/fontchars.cpp | 4 +- src/common/textures/formats/jpegtexture.cpp | 27 +- src/common/textures/formats/md5check.cpp | 4 +- .../textures/formats/multipatchtexture.h | 1 + src/common/textures/formats/patchtexture.cpp | 10 +- src/common/textures/formats/pcxtexture.cpp | 2 +- src/common/textures/formats/pngtexture.cpp | 22 +- .../textures/formats/rawpagetexture.cpp | 6 +- .../textures/formats/startscreentexture.cpp | 82 + .../textures/formats/startuptexture.cpp | 381 + src/common/textures/formats/stb_image.h | 8 +- src/common/textures/formats/stbtexture.cpp | 4 +- src/common/textures/formats/tgatexture.cpp | 56 +- src/common/textures/gametexture.cpp | 4 +- src/common/textures/gametexture.h | 11 +- .../textures/hires/hqnx_asm/hq4x_asm.cpp | 4 +- src/common/textures/hires/hqresize.cpp | 2 +- src/common/textures/hires/xbr/xbrz_old.h | 2 +- src/common/textures/hw_ihwtexture.cpp | 6 +- src/common/textures/hw_material.cpp | 21 +- src/common/textures/hw_texcontainer.h | 8 +- src/common/textures/image.cpp | 14 +- src/common/textures/image.h | 18 +- src/common/textures/imagehelpers.h | 16 +- src/common/textures/imagetexture.cpp | 4 +- src/common/textures/m_png.cpp | 8 +- .../textures/multipatchtexturebuilder.cpp | 22 +- src/common/textures/texture.cpp | 6 +- src/common/textures/texturemanager.cpp | 111 +- src/common/textures/texturemanager.h | 10 +- src/common/textures/textures.h | 7 +- src/common/thirdparty/base64.h | 2 + src/common/thirdparty/gain_analysis.cpp | 61 +- src/common/thirdparty/libsmackerdec/COPYING | 504 + .../libsmackerdec/include/BitReader.h | 55 + .../libsmackerdec/include/FileStream.h | 63 + .../libsmackerdec/include/HuffmanVLC.h | 43 + .../libsmackerdec/include/LogError.h | 31 + .../libsmackerdec/include/SmackerDecoder.h | 168 + .../libsmackerdec/src/BitReader.cpp | 90 + .../libsmackerdec/src/FileStream.cpp | 40 + .../libsmackerdec/src/HuffmanVLC.cpp | 71 + .../thirdparty/libsmackerdec/src/LogError.cpp | 33 + .../libsmackerdec/src/SmackerDecoder.cpp | 1151 + src/common/thirdparty/math/cmath.h | 12 + src/common/thirdparty/rapidjson/document.h | 5 +- src/common/thirdparty/rapidjson/rapidjson.h | 2 + src/common/thirdparty/richpresence.cpp | 128 + src/common/thirdparty/strnatcmp.c | 4 - src/common/utility/basics.h | 8 + src/common/utility/cmdlib.cpp | 12 +- src/common/utility/colormatcher.h | 16 +- src/common/utility/filereadermusicinterface.h | 3 +- src/common/utility/files.cpp | 2 +- src/common/utility/files_decompress.cpp | 12 +- src/common/utility/findfile.cpp | 2 +- src/common/utility/findfile.h | 2 +- src/common/utility/i_time.cpp | 78 +- src/common/utility/i_time.h | 23 +- src/common/utility/matrix.cpp | 14 +- src/common/utility/matrix.h | 6 +- src/common/utility/memarena.cpp | 17 +- src/common/utility/memarena.h | 1 + src/common/utility/name.cpp | 3 + src/common/utility/name.h | 3 + src/common/utility/palentry.h | 1 + src/common/utility/palette.cpp | 59 +- src/common/utility/palutil.h | 8 +- src/common/utility/r_memory.cpp | 8 +- src/common/utility/r_memory.h | 14 +- src/common/utility/refcounted.h | 53 +- src/common/utility/s_playlist.cpp | 4 +- src/common/utility/tarray.h | 181 +- src/common/utility/templates.h | 49 - src/common/utility/tflags.h | 60 +- src/common/utility/utf8.cpp | 7 +- src/common/utility/vectors.h | 9 +- src/common/utility/x86.cpp | 2 +- src/common/utility/zstrformat.cpp | 4 +- src/common/utility/zstring.cpp | 68 +- src/common/utility/zstring.h | 38 +- src/console/c_cmds.cpp | 14 +- src/console/c_functions.cpp | 2 +- src/ct_chat.cpp | 13 +- src/d_anonstats.cpp | 35 +- src/d_defcvars.cpp | 155 + src/{rendering/2d/f_wipe.h => d_defcvars.h} | 47 +- src/d_event.h | 49 +- src/d_iwad.cpp | 51 +- src/d_main.cpp | 1503 +- src/d_main.h | 5 + src/d_net.cpp | 41 +- src/d_netinfo.cpp | 2 + src/d_protocol.h | 1 + src/doomdata.h | 7 +- src/doomdef.h | 12 +- src/events.cpp | 14 +- src/events.h | 5 +- src/g_cvars.cpp | 2 + src/g_dumpinfo.cpp | 2 +- src/g_game.cpp | 77 +- src/g_game.h | 4 + src/g_level.cpp | 380 +- src/g_levellocals.h | 33 +- src/g_statusbar/hudmessages.cpp | 6 +- src/g_statusbar/sbar.h | 3 +- src/g_statusbar/sbarinfo.cpp | 18 +- src/g_statusbar/sbarinfo_commands.cpp | 6 +- src/g_statusbar/shared_hud.cpp | 24 +- src/g_statusbar/shared_sbar.cpp | 15 +- src/g_statusbar/shiftstate.h | 33 + src/gameconfigfile.cpp | 13 +- src/gamedata/a_weapons.cpp | 14 - src/gamedata/a_weapons.h | 10 +- src/gamedata/d_dehacked.cpp | 1147 +- src/gamedata/decallib.cpp | 12 +- src/gamedata/doomfont.h | 2 +- src/gamedata/g_mapinfo.cpp | 83 +- src/gamedata/g_mapinfo.h | 19 + src/gamedata/gi.cpp | 20 +- src/gamedata/gi.h | 4 + src/gamedata/info.cpp | 2 +- src/gamedata/info.h | 4 + src/gamedata/options.cpp | 205 + src/gamedata/p_terrain.cpp | 8 +- src/gamedata/p_xlat.cpp | 8 +- src/gamedata/r_defs.h | 135 +- src/gamedata/statistics.cpp | 2 +- src/gamedata/teaminfo.cpp | 2 +- src/gamedata/textures/anim_switches.cpp | 3 +- src/gamedata/textures/animations.cpp | 11 + src/gamedata/textures/buildloader.cpp | 4 +- src/hu_scores.cpp | 13 +- src/intermission/intermission.cpp | 248 +- src/intermission/intermission.h | 44 +- src/intermission/intermission_parse.cpp | 14 +- src/m_cheat.cpp | 2 +- src/m_misc.cpp | 2 +- src/maploader/compatibility.cpp | 4 +- src/maploader/glnodes.cpp | 8 +- src/maploader/maploader.cpp | 269 +- src/maploader/maploader.h | 4 + src/maploader/polyobjects.cpp | 4 +- src/maploader/renderinfo.cpp | 11 +- src/maploader/slopes.cpp | 2 +- src/maploader/specials.cpp | 103 +- src/maploader/strifedialogue.cpp | 4 +- src/maploader/udmf.cpp | 94 +- src/menu/doommenu.cpp | 100 +- src/namedef_custom.h | 865 + src/p_conversation.cpp | 12 +- src/p_openmap.cpp | 9 + src/p_saveg.cpp | 10 +- src/p_setup.cpp | 11 +- src/p_setup.h | 1 + src/p_states.cpp | 3 +- src/p_tick.cpp | 16 - src/playsim/a_action.cpp | 3 +- src/playsim/a_decals.cpp | 37 +- src/playsim/a_dynlight.cpp | 5 +- src/playsim/a_dynlight.h | 14 +- src/playsim/a_sharedglobal.h | 5 +- src/playsim/actionspecials.h | 2 +- src/playsim/actor.h | 110 +- src/playsim/actorinlines.h | 81 + src/playsim/bots/b_bot.cpp | 2 +- src/playsim/bots/b_func.cpp | 2 +- src/playsim/d_player.h | 18 +- src/playsim/dthinker.cpp | 45 +- src/playsim/fragglescript/t_func.cpp | 4 +- src/playsim/fragglescript/t_load.cpp | 2 +- src/playsim/fragglescript/t_script.h | 7 +- src/playsim/mapthinkers/a_ceiling.h | 3 + src/playsim/mapthinkers/a_floor.cpp | 12 +- src/playsim/mapthinkers/a_lightning.cpp | 6 +- src/playsim/mapthinkers/a_lights.cpp | 4 +- src/playsim/mapthinkers/a_pusher.cpp | 2 +- src/playsim/mapthinkers/a_quake.cpp | 26 +- src/playsim/mapthinkers/dsectoreffect.cpp | 2 +- src/playsim/p_3dfloors.cpp | 4 +- src/playsim/p_3dmidtex.cpp | 6 +- src/playsim/p_acs.cpp | 19 +- src/playsim/p_actionfunctions.cpp | 18 +- src/playsim/p_effect.cpp | 1 + src/playsim/p_effect.h | 11 +- src/playsim/p_enemy.cpp | 325 +- src/playsim/p_enemy.h | 8 +- src/playsim/p_interaction.cpp | 23 +- src/playsim/p_linkedsectors.cpp | 2 +- src/playsim/p_lnspec.h | 16 +- src/playsim/p_local.h | 10 +- src/playsim/p_map.cpp | 164 +- src/playsim/p_maputl.cpp | 42 +- src/playsim/p_maputl.h | 6 +- src/playsim/p_mobj.cpp | 463 +- src/playsim/p_pspr.cpp | 36 +- src/playsim/p_pspr.h | 4 +- src/playsim/p_secnodes.cpp | 2 +- src/playsim/p_sectors.cpp | 60 +- src/playsim/p_sight.cpp | 4 +- src/playsim/p_spec.cpp | 14 +- src/playsim/p_switch.cpp | 2 +- src/playsim/p_teleport.cpp | 5 +- src/playsim/p_user.cpp | 19 +- src/playsim/po_man.cpp | 6 +- src/playsim/portal.cpp | 4 +- src/playsim/portal.h | 3 +- src/posix/osx/zdoom-info.plist | 2 +- src/r_data/colormaps.cpp | 5 +- src/r_data/gldefs.cpp | 188 +- src/r_data/models.cpp | 39 +- src/r_data/models.h | 4 + src/r_data/r_interpolate.h | 6 +- src/r_data/r_sections.h | 4 +- src/r_data/r_translate.cpp | 16 +- src/r_data/r_vanillatrans.cpp | 2 +- src/r_data/sprites.cpp | 4 +- src/r_data/v_palette.cpp | 8 +- src/rendering/2d/v_blend.cpp | 8 +- src/rendering/hwrenderer/doom_aabbtree.cpp | 40 +- src/rendering/hwrenderer/doom_levelmesh.cpp | 387 + src/rendering/hwrenderer/doom_levelmesh.h | 55 + src/rendering/hwrenderer/hw_dynlightdata.cpp | 4 +- src/rendering/hwrenderer/hw_entrypoint.cpp | 20 +- .../hwrenderer/hw_postprocessshader.cpp | 169 - src/rendering/hwrenderer/hw_vertexbuilder.cpp | 124 +- src/rendering/hwrenderer/scene/hw_bsp.cpp | 11 +- src/rendering/hwrenderer/scene/hw_decal.cpp | 15 + src/rendering/hwrenderer/scene/hw_drawinfo.h | 2 +- .../hwrenderer/scene/hw_drawlist.cpp | 11 +- src/rendering/hwrenderer/scene/hw_drawlist.h | 3 +- .../hwrenderer/scene/hw_drawstructs.h | 8 +- .../hwrenderer/scene/hw_fakeflat.cpp | 24 +- src/rendering/hwrenderer/scene/hw_flats.cpp | 2 +- src/rendering/hwrenderer/scene/hw_lighting.h | 2 +- src/rendering/hwrenderer/scene/hw_portal.cpp | 7 +- src/rendering/hwrenderer/scene/hw_portal.h | 16 +- .../hwrenderer/scene/hw_spritelight.cpp | 65 + src/rendering/hwrenderer/scene/hw_sprites.cpp | 99 +- src/rendering/hwrenderer/scene/hw_walls.cpp | 181 +- .../hwrenderer/scene/hw_walls_vertex.cpp | 28 +- src/rendering/hwrenderer/scene/hw_weapon.cpp | 20 +- src/rendering/r_sky.h | 4 +- src/rendering/r_utility.cpp | 166 +- src/rendering/r_utility.h | 2 +- src/rendering/swrenderer/drawers/r_draw.cpp | 8 +- .../swrenderer/drawers/r_draw_pal.cpp | 186 +- .../swrenderer/drawers/r_draw_rgba.cpp | 24 +- .../swrenderer/drawers/r_draw_sky32.h | 16 +- .../swrenderer/drawers/r_draw_sky32_sse2.h | 16 +- .../swrenderer/drawers/r_draw_span32.h | 44 +- .../swrenderer/drawers/r_draw_span32_sse2.h | 6 +- .../swrenderer/drawers/r_draw_sprite32.h | 42 +- .../swrenderer/drawers/r_draw_wall32.h | 34 +- .../swrenderer/drawers/r_draw_wall32_sse2.h | 2 +- .../swrenderer/line/r_farclip_line.cpp | 6 +- .../swrenderer/line/r_fogboundary.cpp | 14 +- src/rendering/swrenderer/line/r_line.cpp | 20 +- .../swrenderer/line/r_renderdrawsegment.cpp | 30 +- src/rendering/swrenderer/line/r_walldraw.cpp | 7 +- src/rendering/swrenderer/line/r_walldraw.h | 2 + src/rendering/swrenderer/line/r_wallsetup.cpp | 14 +- src/rendering/swrenderer/line/r_wallsetup.h | 2 +- .../swrenderer/plane/r_flatplane.cpp | 6 +- .../swrenderer/plane/r_planerenderer.cpp | 10 +- src/rendering/swrenderer/plane/r_skyplane.cpp | 8 +- .../swrenderer/plane/r_slopeplane.cpp | 2 +- .../swrenderer/plane/r_visibleplane.cpp | 2 +- .../swrenderer/plane/r_visibleplanelist.cpp | 2 +- src/rendering/swrenderer/r_renderthread.cpp | 2 +- src/rendering/swrenderer/r_swcolormaps.cpp | 11 +- src/rendering/swrenderer/r_swrenderer.cpp | 2 +- src/rendering/swrenderer/scene/r_3dfloors.cpp | 2 +- src/rendering/swrenderer/scene/r_light.cpp | 4 +- src/rendering/swrenderer/scene/r_light.h | 6 +- .../swrenderer/scene/r_opaque_pass.cpp | 46 +- src/rendering/swrenderer/scene/r_portal.cpp | 14 +- src/rendering/swrenderer/scene/r_portal.h | 4 + src/rendering/swrenderer/scene/r_scene.cpp | 19 +- .../swrenderer/scene/r_translucent_pass.cpp | 2 +- .../swrenderer/segments/r_clipsegment.cpp | 2 +- .../swrenderer/segments/r_drawsegment.cpp | 20 +- .../swrenderer/segments/r_portalsegment.cpp | 2 +- .../swrenderer/textures/r_swtexture.cpp | 30 +- .../swrenderer/textures/warpbuffer.h | 2 +- .../swrenderer/textures/warptexture.cpp | 12 +- src/rendering/swrenderer/things/r_decal.cpp | 8 +- src/rendering/swrenderer/things/r_model.cpp | 2 +- .../swrenderer/things/r_particle.cpp | 8 +- .../swrenderer/things/r_playersprite.cpp | 8 +- src/rendering/swrenderer/things/r_sprite.cpp | 2 +- .../swrenderer/things/r_visiblesprite.cpp | 59 +- .../swrenderer/things/r_visiblespritelist.cpp | 2 +- src/rendering/swrenderer/things/r_voxel.cpp | 34 +- .../swrenderer/things/r_wallsprite.cpp | 6 +- .../swrenderer/viewport/r_drawerargs.cpp | 2 +- .../swrenderer/viewport/r_drawerargs.h | 2 +- .../swrenderer/viewport/r_spritedrawer.cpp | 42 +- .../swrenderer/viewport/r_viewport.cpp | 2 +- src/scripting/backend/codegen_doom.cpp | 7 +- src/scripting/decorate/olddecorations.cpp | 2 +- src/scripting/decorate/thingdef_parse.cpp | 4 +- src/scripting/thingdef.cpp | 6 + src/scripting/thingdef.h | 3 +- src/scripting/thingdef_data.cpp | 35 +- src/scripting/thingdef_properties.cpp | 50 +- src/scripting/vmthunks.cpp | 39 +- src/scripting/vmthunks_actors.cpp | 80 +- src/scripting/zscript/zcc_compile_doom.cpp | 2 +- src/serializer_doom.cpp | 2 +- src/sound/s_advsound.cpp | 8 +- src/sound/s_doomsound.cpp | 25 +- src/sound/s_sndseq.cpp | 8 +- src/utility/nodebuilder/nodebuild.cpp | 10 +- src/utility/nodebuilder/nodebuild_utility.cpp | 8 +- src/version.h | 24 +- src/wi_stuff.cpp | 152 +- src/wi_stuff.h | 12 +- src/win32/i_steam.cpp | 67 +- src/win32/icon1.ico | Bin 106365 -> 103978 bytes src/win32/zdoom.rc | 33 +- wadsrc/CMakeLists.txt | 2 +- wadsrc/static/compatibility.txt | 23 +- wadsrc/static/dehsupp.txt | 42 +- wadsrc/static/fonts/indexfont/0030.png | Bin 0 -> 230 bytes wadsrc/static/fonts/indexfont/font.inf | 2 + wadsrc/static/graphics/bal7scr1.png | Bin 637 -> 637 bytes wadsrc/static/graphics/bal7scr2.png | Bin 665 -> 665 bytes wadsrc/static/in_epi1.txt | 1 + wadsrc/static/in_epi2.txt | 1 + wadsrc/static/in_epi3.txt | 1 + wadsrc/static/in_htc1.txt | 1 + wadsrc/static/in_htc2.txt | 1 + wadsrc/static/in_htc3.txt | 1 + wadsrc/static/indexfont | Bin 309 -> 0 bytes wadsrc/static/language.0 | 694 +- wadsrc/static/language.csv | 2276 +- wadsrc/static/mapinfo/GoidaGame.txt | 2 - wadsrc/static/mapinfo/chex.txt | 2 + wadsrc/static/mapinfo/common.txt | 7 +- wadsrc/static/mapinfo/doom1.txt | 10 +- wadsrc/static/mapinfo/doomcommon.txt | 2 + wadsrc/static/mapinfo/heretic.txt | 2 + wadsrc/static/mapinfo/hexen.txt | 2 + wadsrc/static/mapinfo/mindefaults.txt | 2 + wadsrc/static/mapinfo/strife.txt | 2 + wadsrc/static/menudef.txt | 33 +- wadsrc/static/menudef.zsimple | 24 +- wadsrc/static/shaders/glsl/main.fp | 54 +- wadsrc/static/shaders/glsl/main.vp | 4 + wadsrc/static/shaders/pp/present.fp | 2 + .../shaders_gles/Uniform usage notes.txt | 90 + wadsrc/static/shaders_gles/glsl/burn.fp | 13 + .../static/shaders_gles/glsl/fogboundary.fp | 30 + .../shaders_gles/glsl/func_defaultlight.fp | 5 + .../shaders_gles/glsl/func_defaultmat.fp | 7 + .../shaders_gles/glsl/func_defaultmat2.fp | 6 + .../static/shaders_gles/glsl/func_normal.fp | 5 + .../shaders_gles/glsl/func_notexture.fp | 6 + .../static/shaders_gles/glsl/func_paletted.fp | 10 + wadsrc/static/shaders_gles/glsl/func_pbr.fp | 5 + wadsrc/static/shaders_gles/glsl/func_spec.fp | 8 + wadsrc/static/shaders_gles/glsl/func_warp1.fp | 19 + wadsrc/static/shaders_gles/glsl/func_warp2.fp | 20 + wadsrc/static/shaders_gles/glsl/func_warp3.fp | 21 + wadsrc/static/shaders_gles/glsl/func_wavex.fp | 17 + .../static/shaders_gles/glsl/fuzz_jagged.fp | 24 + wadsrc/static/shaders_gles/glsl/fuzz_noise.fp | 20 + .../static/shaders_gles/glsl/fuzz_smooth.fp | 18 + .../shaders_gles/glsl/fuzz_smoothnoise.fp | 19 + .../glsl/fuzz_smoothtranslucent.fp | 18 + .../static/shaders_gles/glsl/fuzz_software.fp | 21 + .../static/shaders_gles/glsl/fuzz_standard.fp | 21 + .../static/shaders_gles/glsl/fuzz_swirly.fp | 18 + wadsrc/static/shaders_gles/glsl/main.fp | 566 + wadsrc/static/shaders_gles/glsl/main.vp | 131 + .../shaders_gles/glsl/material_nolight.fp | 5 + .../shaders_gles/glsl/material_normal.fp | 118 + wadsrc/static/shaders_gles/glsl/stencil.fp | 7 + wadsrc/static/shaders_gles/pp/present.fp | 32 + wadsrc/static/shaders_gles/pp/screenquad.vp | 11 + wadsrc/static/vga-rom-font.16 | Bin 4096 -> 0 bytes wadsrc/static/xlat/base.txt | 5 + wadsrc/static/xlat/defines.i | 1 + wadsrc/static/xlat/doom.txt | 6 +- wadsrc/static/zscript.txt | 7 +- wadsrc/static/zscript/actors/actor.zs | 77 +- wadsrc/static/zscript/actors/attacks.zs | 12 + .../static/zscript/actors/doom/arachnotron.zs | 1 + .../static/zscript/actors/doom/bossbrain.zs | 1 + wadsrc/static/zscript/actors/doom/bruiser.zs | 1 + .../static/zscript/actors/doom/cyberdemon.zs | 2 + wadsrc/static/zscript/actors/doom/doommisc.zs | 2 +- wadsrc/static/zscript/actors/doom/fatso.zs | 1 + wadsrc/static/zscript/actors/doom/lostsoul.zs | 1 - .../zscript/actors/doom/spidermaster.zs | 2 + .../zscript/actors/doom/weaponchainsaw.zs | 3 +- .../static/zscript/actors/doom/weaponfist.zs | 6 +- .../zscript/actors/doom/weaponpistol.zs | 5 + .../zscript/actors/heretic/weaponblaster.zs | 5 + .../zscript/actors/heretic/weaponwand.zs | 5 + .../zscript/actors/hexen/blastradius.zs | 5 + .../static/zscript/actors/hexen/flechette.zs | 2 +- .../static/zscript/actors/inventory/ammo.zs | 8 +- .../zscript/actors/inventory/inv_misc.zs | 5 +- .../zscript/actors/inventory/inventory.zs | 11 + .../zscript/actors/inventory/stateprovider.zs | 15 +- .../zscript/actors/inventory/weapons.zs | 16 +- .../static/zscript/actors/inventory_util.zs | 40 + wadsrc/static/zscript/actors/mbf21.zs | 513 + wadsrc/static/zscript/actors/player/player.zs | 36 +- .../zscript/actors/player/player_cheat.zs | 12 +- .../static/zscript/actors/raven/minotaur.zs | 2 +- .../static/zscript/actors/shared/dynlights.zs | 7 +- .../static/zscript/actors/shared/mapmarker.zs | 3 + .../zscript/actors/shared/movingcamera.zs | 12 +- .../zscript/actors/shared/secrettrigger.zs | 1 + .../zscript/actors/shared/sectoraction.zs | 1 + .../zscript/actors/shared/sharedmisc.zs | 7 + .../zscript/actors/shared/soundenvironment.zs | 1 + .../zscript/actors/shared/soundsequence.zs | 3 + .../static/zscript/actors/shared/splashes.zs | 5 + .../static/zscript/actors/shared/teleport.zs | 1 + wadsrc/static/zscript/constants.zs | 25 +- wadsrc/static/zscript/doombase.zs | 32 +- wadsrc/static/zscript/engine/base.zs | 171 +- wadsrc/static/zscript/engine/ppshader.zs | 8 + wadsrc/static/zscript/engine/screenjob.zs | 556 + wadsrc/static/zscript/engine/service.zs | 46 +- .../zscript/engine/ui/menu/colorpickermenu.zs | 10 +- .../zscript/engine/ui/menu/imagescroller.zs | 35 +- .../zscript/engine/ui/menu/joystickmenu.zs | 14 +- .../static/zscript/engine/ui/menu/listmenu.zs | 42 +- .../zscript/engine/ui/menu/listmenuitems.zs | 32 +- .../zscript/engine/ui/menu/loadsavemenu.zs | 31 +- wadsrc/static/zscript/engine/ui/menu/menu.zs | 16 +- .../zscript/engine/ui/menu/menucustomize.zs | 6 +- .../zscript/engine/ui/menu/menuitembase.zs | 1 + .../zscript/engine/ui/menu/messagebox.zs | 8 +- .../zscript/engine/ui/menu/optionmenu.zs | 44 +- .../zscript/engine/ui/menu/optionmenuitems.zs | 48 +- .../zscript/engine/ui/menu/reverbedit.zs | 20 +- .../zscript/engine/ui/menu/search/menu.zs | 27 +- .../zscript/engine/ui/menu/textentermenu.zs | 16 +- .../engine/ui/statusbar/statusbarcore.zs | 46 +- wadsrc/static/zscript/events.zs | 2 + wadsrc/static/zscript/level_compatibility.zs | 24 +- wadsrc/static/zscript/mapdata.zs | 10 +- wadsrc/static/zscript/ui/intermission.zs | 60 + .../zscript/ui/menu/conversationmenu.zs | 3 +- .../zscript/ui/statscreen/statscreen.zs | 73 +- .../zscript/ui/statscreen/statscreen_coop.zs | 15 +- .../zscript/ui/statscreen/statscreen_dm.zs | 17 +- wadsrc/static/zscript/ui/statusbar/alt_hud.zs | 12 + .../static/zscript/ui/statusbar/doom_sbar.zs | 4 +- .../zscript/ui/statusbar/heretic_sbar.zs | 4 +- .../static/zscript/ui/statusbar/hexen_sbar.zs | 4 +- .../static/zscript/ui/statusbar/statusbar.zs | 4 +- wadsrc_bm/static/filter/doom.id/gldefs.bm | 6 +- .../static/filter/chex.chex3/language.csv | 97 +- .../filter/hacx.hacx1/after_iwad/language.csv | 324 +- .../static/filter/harmony/language.csv | 100 +- .../static/filter/harmony/mapinfo.txt | 2 +- wadsrc_extra/static/iwadinfo.txt | 34 +- wadsrc_extra/static/language.csv | 3627 +-- .../static/filter/doom.freedoom/gldefs.txt | 2 +- wadsrc_lights/static/filter/strife/gldefs.txt | 8 - .../CMakeLists.txt | 0 wadsrc_widepix/static/credits.txt | 76 + .../filter/chex.chex1/graphics/titlepic.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex1/graphics/wimap0.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex2/graphics/credit.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex2/graphics/pfub1.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex2/graphics/pfub2.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex2/graphics/titlepic.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex2/graphics/victory2.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex3/graphics/endpic.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex3/graphics/interpic.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex3/graphics/pfub1.lmp | Bin 0 -> 68168 bytes .../filter/chex.chex3/graphics/pfub2.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex3/graphics/titlepic.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex3/graphics/victory2.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex3/graphics/wimap0.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex3/graphics/wimap1.lmp | Bin 0 -> 119288 bytes .../filter/chex.chex3/graphics/wimap2.lmp | Bin 0 -> 119288 bytes .../static/filter/chex/graphics/credit.lmp | Bin 0 -> 119288 bytes .../static/filter/chex/graphics/help1.lmp | Bin 0 -> 119288 bytes .../graphics/titlepic.lmp | Bin 0 -> 119288 bytes .../graphics/titlepic.lmp | Bin 0 -> 119288 bytes .../graphics/credit.lmp | Bin 0 -> 119288 bytes .../graphics/titlepic.lmp | Bin 0 -> 119288 bytes .../doom.id.doom1.ultimate/textures.txt | 5 + .../filter/doom.id.doom1/graphics/credit.lmp | Bin 0 -> 119288 bytes .../filter/doom.id.doom1/graphics/help1.lmp | Bin 0 -> 119288 bytes .../filter/doom.id.doom1/graphics/help2.lmp | Bin 0 -> 119288 bytes .../graphics/titlepic.lmp | Bin 0 -> 119288 bytes .../doom.id.doom2.plutonia/textures.txt | 10 + .../doom.id.doom2.tnt/graphics/titlepic.lmp | Bin 0 -> 119288 bytes .../filter/doom.id.doom2.tnt/textures.txt | 10 + .../filter/doom.id.doom2/graphics/credit.lmp | Bin 0 -> 119288 bytes .../filter/doom.id.doom2/graphics/help.lmp | Bin 0 -> 119288 bytes .../doom.id.doom2/graphics/titlepic.lmp | Bin 0 -> 119288 bytes .../filter/doom.id.doom2/sprites/SHT2E0.lmp | Bin 0 -> 8263 bytes .../doom.id.wadsmoosh/sprites/SHT2E0.lmp | Bin 0 -> 8263 bytes .../filter/doom.id/graphics/bossback.lmp | Bin 0 -> 119288 bytes .../static/filter/doom.id/graphics/credit.lmp | Bin 0 -> 119288 bytes .../static/filter/doom.id/graphics/endpic.lmp | Bin 0 -> 119288 bytes .../static/filter/doom.id/graphics/help.lmp | Bin 0 -> 119288 bytes .../filter/doom.id/graphics/inter_e4.lmp | Bin 0 -> 119288 bytes .../filter/doom.id/graphics/interpic.lmp | Bin 0 -> 119288 bytes .../static/filter/doom.id/graphics/pfub1.lmp | Bin 0 -> 68168 bytes .../static/filter/doom.id/graphics/pfub2.lmp | Bin 0 -> 119288 bytes .../filter/doom.id/graphics/pluboss.lmp | Bin 0 -> 119288 bytes .../filter/doom.id/graphics/pluinter.lmp | Bin 0 -> 119288 bytes .../filter/doom.id/graphics/tntboss.lmp | Bin 0 -> 119288 bytes .../filter/doom.id/graphics/tntinter.lmp | Bin 0 -> 119288 bytes .../filter/doom.id/graphics/victory2.lmp | Bin 0 -> 119288 bytes .../filter/doom.id/graphics/wia20000.lmp | Bin 0 -> 29120 bytes .../filter/doom.id/graphics/wia20001.lmp | Bin 0 -> 29120 bytes .../filter/doom.id/graphics/wia20002.lmp | Bin 0 -> 29120 bytes .../filter/doom.id/graphics/wia20400.lmp | Bin 0 -> 5598 bytes .../filter/doom.id/graphics/wia20401.lmp | Bin 0 -> 5598 bytes .../filter/doom.id/graphics/wia20402.lmp | Bin 0 -> 5598 bytes .../filter/doom.id/graphics/wia20500.lmp | Bin 0 -> 13208 bytes .../filter/doom.id/graphics/wia20501.lmp | Bin 0 -> 13208 bytes .../filter/doom.id/graphics/wia20502.lmp | Bin 0 -> 13208 bytes .../static/filter/doom.id/graphics/wimap0.lmp | Bin 0 -> 119288 bytes .../static/filter/doom.id/graphics/wimap1.lmp | Bin 0 -> 119288 bytes .../static/filter/doom.id/graphics/wimap2.lmp | Bin 0 -> 119288 bytes .../filter/hacx.hacx1/graphics/credit.lmp | Bin 0 -> 119288 bytes .../filter/hacx.hacx1/graphics/help.lmp | Bin 0 -> 119288 bytes .../filter/hacx.hacx1/graphics/interpic.lmp | Bin 0 -> 119288 bytes .../filter/hacx.hacx1/graphics/titlepic.lmp | Bin 0 -> 119288 bytes .../filter/hacx.hacx1/sprites/CRYGA0.lmp | Bin 0 -> 21816 bytes .../filter/hacx.hacx1/sprites/CRYGB0.lmp | Bin 0 -> 22061 bytes .../filter/hacx.hacx1/sprites/CRYGC0.lmp | Bin 0 -> 22282 bytes .../filter/hacx.hacx1/sprites/CRYGD0.lmp | Bin 0 -> 22348 bytes .../filter/hacx.hacx1/sprites/CRYGE0.lmp | Bin 0 -> 22743 bytes .../filter/hacx.hacx1/sprites/CRYGF0.lmp | Bin 0 -> 22455 bytes .../filter/hacx.hacx1/sprites/CRYGG0.lmp | Bin 0 -> 22469 bytes .../filter/hacx.hacx1/sprites/CRYGH0.lmp | Bin 0 -> 21816 bytes .../filter/hacx.hacx1/sprites/CRYGI0.lmp | Bin 0 -> 22033 bytes .../filter/hacx.hacx1/sprites/CRYGJ0.lmp | Bin 0 -> 22610 bytes .../filter/hacx.hacx1/sprites/MISFA0.lmp | Bin 0 -> 26014 bytes .../filter/hacx.hacx1/sprites/MISFB0.lmp | Bin 0 -> 34959 bytes .../filter/hacx.hacx1/sprites/MISFC0.lmp | Bin 0 -> 31235 bytes .../filter/hacx.hacx1/sprites/MISFD0.lmp | Bin 0 -> 36206 bytes .../filter/hacx.hacx1/sprites/MISGA0.lmp | Bin 0 -> 32382 bytes .../filter/hacx.hacx1/sprites/MISGB0.lmp | Bin 0 -> 35159 bytes .../filter/hacx.hacx1/sprites/PISGE0.lmp | Bin 0 -> 33893 bytes .../filter/hacx.hacx1/sprites/PLSGB0.lmp | Bin 0 -> 29120 bytes .../filter/hacx.hacx1/sprites/SHT2A0.lmp | Bin 0 -> 23409 bytes .../filter/hacx.hacx1/sprites/SHT2B0.lmp | Bin 0 -> 23639 bytes .../filter/hacx.hacx1/sprites/SHT2C0.lmp | Bin 0 -> 23931 bytes .../filter/hacx.hacx1/sprites/SHT2D0.lmp | Bin 0 -> 24035 bytes .../filter/hacx.hacx1/sprites/SHT2E0.lmp | Bin 0 -> 24084 bytes .../filter/hacx.hacx1/sprites/SHT2F0.lmp | Bin 0 -> 23942 bytes .../filter/hacx.hacx1/sprites/SHT2G0.lmp | Bin 0 -> 23898 bytes .../filter/hacx.hacx1/sprites/SHT2H0.lmp | Bin 0 -> 23409 bytes .../filter/hacx.hacx1/sprites/SHT2I0.lmp | Bin 0 -> 23469 bytes .../filter/hacx.hacx1/sprites/SHT2J0.lmp | Bin 0 -> 24019 bytes .../filter/harmony/graphics/bossback.lmp | Bin 0 -> 890008 bytes .../static/filter/harmony/graphics/credit.lmp | Bin 0 -> 890008 bytes .../filter/harmony/graphics/titlepic.lmp | Bin 0 -> 890008 bytes .../filter/heretic.shadow/graphics/title.lmp | Bin 0 -> 119288 bytes .../filter/heretic/graphics/barback.lmp | Bin 0 -> 20514 bytes .../static/filter/heretic/graphics/credit.lmp | Bin 0 -> 119288 bytes .../static/filter/heretic/graphics/e2end.png | Bin 0 -> 59112 bytes .../static/filter/heretic/graphics/final1.lmp | Bin 0 -> 119288 bytes .../static/filter/heretic/graphics/final2.lmp | Bin 0 -> 119288 bytes .../static/filter/heretic/graphics/help1.lmp | Bin 0 -> 119288 bytes .../static/filter/heretic/graphics/help2.lmp | Bin 0 -> 119288 bytes .../filter/heretic/graphics/ltfctop.lmp | Bin 0 -> 691 bytes .../static/filter/heretic/graphics/mape1.lmp | Bin 0 -> 119288 bytes .../static/filter/heretic/graphics/mape2.lmp | Bin 0 -> 119288 bytes .../static/filter/heretic/graphics/mape3.lmp | Bin 0 -> 119288 bytes .../filter/heretic/graphics/rtfctop.lmp | Bin 0 -> 749 bytes .../static/filter/heretic/graphics/title.lmp | Bin 0 -> 119288 bytes .../static/filter/heretic/sprites/CRBWA0.lmp | Bin 0 -> 5183 bytes .../static/filter/heretic/sprites/CRBWB0.lmp | Bin 0 -> 5183 bytes .../static/filter/heretic/sprites/CRBWC0.lmp | Bin 0 -> 5183 bytes .../static/filter/heretic/sprites/CRBWD0.lmp | Bin 0 -> 5206 bytes .../static/filter/heretic/sprites/CRBWE0.lmp | Bin 0 -> 5136 bytes .../static/filter/heretic/sprites/CRBWF0.lmp | Bin 0 -> 5306 bytes .../static/filter/heretic/sprites/CRBWG0.lmp | Bin 0 -> 5318 bytes .../static/filter/heretic/sprites/CRBWH0.lmp | Bin 0 -> 5184 bytes .../static/filter/heretic/sprites/HRODA0.lmp | Bin 0 -> 8368 bytes .../static/filter/heretic/sprites/HRODC0.lmp | Bin 0 -> 8394 bytes .../static/filter/heretic/sprites/HRODD0.lmp | Bin 0 -> 8394 bytes .../static/filter/heretic/sprites/HRODE0.lmp | Bin 0 -> 8392 bytes .../static/filter/heretic/sprites/HRODF0.lmp | Bin 0 -> 8772 bytes .../static/filter/heretic/sprites/PHNXA0.lmp | Bin 0 -> 7476 bytes .../static/filter/heretic/sprites/PHNXB0.lmp | Bin 0 -> 7712 bytes .../static/filter/heretic/sprites/STFFC0.lmp | Bin 0 -> 17130 bytes .../static/filter/heretic/sprites/STFFH0.lmp | Bin 0 -> 18046 bytes .../hexen.deathkings/graphics/credit.lmp | Bin 0 -> 119288 bytes .../hexen.deathkings/graphics/help1.lmp | Bin 0 -> 119288 bytes .../hexen.deathkings/graphics/help2.lmp | Bin 0 -> 119288 bytes .../hexen.deathkings/graphics/title.lmp | Bin 0 -> 119288 bytes .../static/filter/hexen/graphics/credit.lmp | Bin 0 -> 119288 bytes .../static/filter/hexen/graphics/finale1.lmp | Bin 0 -> 119288 bytes .../static/filter/hexen/graphics/finale2.lmp | Bin 0 -> 119288 bytes .../static/filter/hexen/graphics/finale3.lmp | Bin 0 -> 119288 bytes .../static/filter/hexen/graphics/h2bar.lmp | Bin 0 -> 20777 bytes .../static/filter/hexen/graphics/h2top.lmp | Bin 0 -> 5653 bytes .../static/filter/hexen/graphics/help1.lmp | Bin 0 -> 119288 bytes .../static/filter/hexen/graphics/help2.lmp | Bin 0 -> 119288 bytes .../static/filter/hexen/graphics/interpic.lmp | Bin 0 -> 119288 bytes .../static/filter/hexen/graphics/title.lmp | Bin 0 -> 119288 bytes .../static/filter/hexen/sprites/CFLME0.lmp | Bin 0 -> 18324 bytes .../static/filter/hexen/sprites/CFLMF0.lmp | Bin 0 -> 18370 bytes .../static/filter/hexen/sprites/CMCEB0.lmp | Bin 0 -> 24920 bytes .../static/filter/hexen/sprites/CMCEC0.lmp | Bin 0 -> 21821 bytes .../static/filter/hexen/sprites/CMCED0.lmp | Bin 0 -> 13571 bytes .../static/filter/hexen/sprites/CMCEE0.lmp | Bin 0 -> 12135 bytes .../static/filter/hexen/sprites/CONEA0.lmp | Bin 0 -> 10099 bytes .../static/filter/hexen/sprites/CONEB0.lmp | Bin 0 -> 8182 bytes .../static/filter/hexen/sprites/CONEC0.lmp | Bin 0 -> 10216 bytes .../static/filter/hexen/sprites/CONED0.lmp | Bin 0 -> 10193 bytes .../static/filter/hexen/sprites/CONEE0.lmp | Bin 0 -> 11486 bytes .../static/filter/hexen/sprites/CONEF0.lmp | Bin 0 -> 9121 bytes .../static/filter/hexen/sprites/CONEG0.lmp | Bin 0 -> 7565 bytes .../static/filter/hexen/sprites/FAXEB0.lmp | Bin 0 -> 27229 bytes .../static/filter/hexen/sprites/FAXEC0.lmp | Bin 0 -> 16512 bytes .../static/filter/hexen/sprites/FAXEN0.lmp | Bin 0 -> 29728 bytes .../static/filter/hexen/sprites/FAXEO0.lmp | Bin 0 -> 18482 bytes .../static/filter/hexen/sprites/FHMRB0.lmp | Bin 0 -> 27701 bytes .../static/filter/hexen/sprites/FHMRC0.lmp | Bin 0 -> 18563 bytes .../static/filter/hexen/sprites/FPCHB0.lmp | Bin 0 -> 50993 bytes .../static/filter/hexen/sprites/FPCHC0.lmp | Bin 0 -> 35988 bytes .../static/filter/hexen/sprites/FPCHD0.lmp | Bin 0 -> 35988 bytes .../static/filter/hexen/sprites/FPCHE0.lmp | Bin 0 -> 35302 bytes .../static/filter/hexen/sprites/FSRDD0.lmp | Bin 0 -> 29685 bytes .../static/filter/hexen/sprites/FSRDE0.lmp | Bin 0 -> 19405 bytes .../static/filter/hexen/sprites/FSRDH0.lmp | Bin 0 -> 4745 bytes .../static/filter/hexen/sprites/FSRDI0.lmp | Bin 0 -> 912 bytes .../static/filter/hexen/sprites/MLNGG0.lmp | Bin 0 -> 18076 bytes .../static/filter/hexen/sprites/MLNGH0.lmp | Bin 0 -> 13090 bytes .../static/filter/hexen/sprites/MLNGI0.lmp | Bin 0 -> 8874 bytes .../static/filter/strife/graphics/credit.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/help0.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/help1.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/help2.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/help3.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/invback.lmp | Bin 0 -> 14686 bytes .../static/filter/strife/graphics/invtop.lmp | Bin 0 -> 4020 bytes .../static/filter/strife/graphics/panel0.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/panel1.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/panel2.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/panel3.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/panel4.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/panel5.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/panel6.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/panel7.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/rgelogo.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss2f1.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss2f2.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss2f3.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss2f4.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss3f1.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss3f2.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss3f3.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss3f4.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss4f1.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss4f2.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss4f3.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss4f4.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss5f1.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss5f2.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss5f3.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss6f1.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss6f2.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/ss6f3.lmp | Bin 0 -> 119288 bytes .../filter/strife/graphics/titlepic.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/graphics/vellogo.lmp | Bin 0 -> 119288 bytes .../static/filter/strife/sprites/PNCHB0.lmp | Bin 0 -> 12341 bytes .../static/filter/strife/sprites/PNCHC0.lmp | Bin 0 -> 8521 bytes .../static/filter/strife/sprites/WAVEA0.lmp | Bin 0 -> 24191 bytes .../static/filter/strife/sprites/WAVEB0.lmp | Bin 0 -> 22376 bytes .../static/filter/strife/sprites/WAVEC0.lmp | Bin 0 -> 20932 bytes .../static/filter/strife/sprites/WAVED0.lmp | Bin 0 -> 22502 bytes wadsrc_widepix/static/license.md | 13 + 1230 files changed, 114166 insertions(+), 40144 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 .whitesource create mode 100644 bin/windows/vpx/include/vpx/vp8.h create mode 100644 bin/windows/vpx/include/vpx/vp8dx.h create mode 100644 bin/windows/vpx/include/vpx/vpx_codec.h create mode 100644 bin/windows/vpx/include/vpx/vpx_decoder.h create mode 100644 bin/windows/vpx/include/vpx/vpx_frame_buffer.h create mode 100644 bin/windows/vpx/include/vpx/vpx_image.h create mode 100644 bin/windows/vpx/include/vpx/vpx_integer.h create mode 100644 bin/windows/vpx/lib/32/libcompat-to-msvc.lib create mode 100644 bin/windows/vpx/lib/32/libvpx.lib create mode 100644 bin/windows/vpx/lib/64/libcompat-to-msvc.lib create mode 100644 bin/windows/vpx/lib/64/libvpx.lib create mode 100644 bin/windows/vpx/lib/arm64/libvpx.lib create mode 100644 bin/windows/vpx/lib/instructions.txt create mode 100644 bin/windows/vpx/src/_dbg_LOAD_IMAGE.h create mode 100644 bin/windows/vpx/src/_dbg_common.h create mode 100644 bin/windows/vpx/src/backtrace.c create mode 100644 bin/windows/vpx/src/compat-to-msvc/Makefile create mode 100644 bin/windows/vpx/src/compat-to-msvc/dll_dependency.S create mode 100644 bin/windows/vpx/src/compat-to-msvc/dll_math.c create mode 100644 bin/windows/vpx/src/compat-to-msvc/io_math.c create mode 100644 bin/windows/vpx/src/compat-to-msvc/vsnprintf.c delete mode 100644 bin/windows/zmusic/arm64/zmusic.dll create mode 100644 cmake/FindVPX.cmake create mode 100644 libraries/discordrpc/.clang-format create mode 100644 libraries/discordrpc/.gitignore create mode 100644 libraries/discordrpc/.travis.yml create mode 100644 libraries/discordrpc/CMakeLists.txt create mode 100644 libraries/discordrpc/LICENSE create mode 100644 libraries/discordrpc/README.md create mode 100644 libraries/discordrpc/appveyor.yml create mode 100644 libraries/discordrpc/build.py create mode 100644 libraries/discordrpc/documentation/hard-mode.md create mode 100644 libraries/discordrpc/documentation/images/rp-dev-dashboard.png create mode 100644 libraries/discordrpc/documentation/images/rp-profile-view.png create mode 100644 libraries/discordrpc/documentation/images/rp-secret-example.png create mode 100644 libraries/discordrpc/include/discord_register.h create mode 100644 libraries/discordrpc/include/discord_rpc.h create mode 100644 libraries/discordrpc/src/CMakeLists.txt create mode 100644 libraries/discordrpc/src/backoff.h create mode 100644 libraries/discordrpc/src/connection.h create mode 100644 libraries/discordrpc/src/connection_unix.cpp create mode 100644 libraries/discordrpc/src/connection_win.cpp create mode 100644 libraries/discordrpc/src/discord_register_linux.cpp create mode 100644 libraries/discordrpc/src/discord_register_osx.m create mode 100644 libraries/discordrpc/src/discord_register_win.cpp create mode 100644 libraries/discordrpc/src/discord_rpc.cpp create mode 100644 libraries/discordrpc/src/dllmain.cpp create mode 100644 libraries/discordrpc/src/msg_queue.h create mode 100644 libraries/discordrpc/src/rpc_connection.cpp create mode 100644 libraries/discordrpc/src/rpc_connection.h create mode 100644 libraries/discordrpc/src/serialization.cpp create mode 100644 libraries/discordrpc/src/serialization.h create mode 100644 libraries/glslang/glslang/Include/SpirvIntrinsics.h create mode 100644 libraries/glslang/glslang/Include/build_info.h delete mode 100644 libraries/glslang/glslang/Include/revision.h delete mode 100644 libraries/glslang/glslang/Include/revision.template create mode 100644 libraries/glslang/glslang/MachineIndependent/SpirvIntrinsics.cpp create mode 100644 libraries/glslang/spirv/NonSemanticDebugPrintf.h create mode 100644 libraries/lzma/C/LzFindOpt.c create mode 100644 options.checklist rename src/{rendering/2d/f_wipe.cpp => common/2d/wipe.cpp} (71%) create mode 100644 src/common/2d/wipe.h create mode 100644 src/common/cutscenes/movieplayer.cpp create mode 100644 src/common/cutscenes/playmve.cpp create mode 100644 src/common/cutscenes/playmve.h create mode 100644 src/common/cutscenes/screenjob.cpp create mode 100644 src/common/cutscenes/screenjob.h rename src/{ => common/engine}/gamestate.h (97%) create mode 100644 src/common/platform/win32/i_mainwindow.cpp create mode 100644 src/common/platform/win32/i_mainwindow.h delete mode 100644 src/common/platform/win32/st_start_util.cpp create mode 100644 src/common/rendering/gles/glad/include/EGL/eglplatform.h create mode 100644 src/common/rendering/gles/glad/include/KHR/khrplatform.h create mode 100644 src/common/rendering/gles/glad/include/glad/glad.h create mode 100644 src/common/rendering/gles/glad/include/glad/glad_egl.h create mode 100644 src/common/rendering/gles/glad/src/glad.c create mode 100644 src/common/rendering/gles/glad/src/glad_egl.c create mode 100644 src/common/rendering/gles/gles_buffers.cpp create mode 100644 src/common/rendering/gles/gles_buffers.h create mode 100644 src/common/rendering/gles/gles_framebuffer.cpp create mode 100644 src/common/rendering/gles/gles_framebuffer.h create mode 100644 src/common/rendering/gles/gles_hwtexture.cpp create mode 100644 src/common/rendering/gles/gles_hwtexture.h create mode 100644 src/common/rendering/gles/gles_postprocess.cpp create mode 100644 src/common/rendering/gles/gles_postprocessstate.cpp create mode 100644 src/common/rendering/gles/gles_postprocessstate.h create mode 100644 src/common/rendering/gles/gles_renderbuffers.cpp create mode 100644 src/common/rendering/gles/gles_renderbuffers.h create mode 100644 src/common/rendering/gles/gles_renderer.cpp create mode 100644 src/common/rendering/gles/gles_renderer.h create mode 100644 src/common/rendering/gles/gles_renderstate.cpp create mode 100644 src/common/rendering/gles/gles_renderstate.h create mode 100644 src/common/rendering/gles/gles_samplers.cpp create mode 100644 src/common/rendering/gles/gles_samplers.h create mode 100644 src/common/rendering/gles/gles_shader.cpp create mode 100644 src/common/rendering/gles/gles_shader.h create mode 100644 src/common/rendering/gles/gles_shaderprogram.cpp create mode 100644 src/common/rendering/gles/gles_shaderprogram.h create mode 100644 src/common/rendering/gles/gles_system.cpp create mode 100644 src/common/rendering/gles/gles_system.h create mode 100644 src/common/rendering/hwrenderer/data/hw_levelmesh.h create mode 100644 src/common/rendering/hwrenderer/postprocessing/hw_postprocessshader.cpp create mode 100644 src/common/rendering/hwrenderer/postprocessing/hw_postprocessshader_ccmds.cpp create mode 100644 src/common/rendering/vulkan/renderer/vk_descriptorset.cpp create mode 100644 src/common/rendering/vulkan/renderer/vk_descriptorset.h create mode 100644 src/common/rendering/vulkan/renderer/vk_pprenderstate.cpp create mode 100644 src/common/rendering/vulkan/renderer/vk_pprenderstate.h create mode 100644 src/common/rendering/vulkan/renderer/vk_raytrace.cpp create mode 100644 src/common/rendering/vulkan/renderer/vk_raytrace.h delete mode 100644 src/common/rendering/vulkan/renderer/vk_renderbuffers.cpp create mode 100644 src/common/rendering/vulkan/shaders/vk_ppshader.cpp create mode 100644 src/common/rendering/vulkan/shaders/vk_ppshader.h create mode 100644 src/common/rendering/vulkan/system/vk_buffer.cpp create mode 100644 src/common/rendering/vulkan/system/vk_buffer.h delete mode 100644 src/common/rendering/vulkan/system/vk_buffers.cpp create mode 100644 src/common/rendering/vulkan/system/vk_commandbuffer.cpp create mode 100644 src/common/rendering/vulkan/system/vk_commandbuffer.h create mode 100644 src/common/rendering/vulkan/system/vk_hwbuffer.cpp rename src/common/rendering/vulkan/system/{vk_buffers.h => vk_hwbuffer.h} (52%) create mode 100644 src/common/rendering/vulkan/textures/vk_pptexture.cpp create mode 100644 src/common/rendering/vulkan/textures/vk_pptexture.h create mode 100644 src/common/rendering/vulkan/textures/vk_renderbuffers.cpp rename src/common/rendering/vulkan/{renderer => textures}/vk_renderbuffers.h (83%) create mode 100644 src/common/rendering/vulkan/textures/vk_texture.cpp create mode 100644 src/common/rendering/vulkan/textures/vk_texture.h create mode 100644 src/common/rendering/vulkan/thirdparty/vk_mem_alloc/vk_mem_alloc.natvis delete mode 100644 src/common/rendering/vulkan/thirdparty/vulkan/vk_layer_dispatch_table.h create mode 100644 src/common/rendering/vulkan/thirdparty/vulkan/vulkan_beta.h create mode 100644 src/common/rendering/vulkan/thirdparty/vulkan/vulkan_directfb.h delete mode 100644 src/common/rendering/vulkan/thirdparty/vulkan/vulkan_mir.h create mode 100644 src/common/rendering/vulkan/thirdparty/vulkan/vulkan_screen.h create mode 100644 src/common/startscreen/endoom.cpp create mode 100644 src/common/startscreen/startscreen.cpp create mode 100644 src/common/startscreen/startscreen.h create mode 100644 src/common/startscreen/startscreen_generic.cpp create mode 100644 src/common/startscreen/startscreen_heretic.cpp create mode 100644 src/common/startscreen/startscreen_hexen.cpp create mode 100644 src/common/startscreen/startscreen_strife.cpp create mode 100644 src/common/textures/formats/startscreentexture.cpp create mode 100644 src/common/textures/formats/startuptexture.cpp create mode 100644 src/common/thirdparty/libsmackerdec/COPYING create mode 100644 src/common/thirdparty/libsmackerdec/include/BitReader.h create mode 100644 src/common/thirdparty/libsmackerdec/include/FileStream.h create mode 100644 src/common/thirdparty/libsmackerdec/include/HuffmanVLC.h create mode 100644 src/common/thirdparty/libsmackerdec/include/LogError.h create mode 100644 src/common/thirdparty/libsmackerdec/include/SmackerDecoder.h create mode 100644 src/common/thirdparty/libsmackerdec/src/BitReader.cpp create mode 100644 src/common/thirdparty/libsmackerdec/src/FileStream.cpp create mode 100644 src/common/thirdparty/libsmackerdec/src/HuffmanVLC.cpp create mode 100644 src/common/thirdparty/libsmackerdec/src/LogError.cpp create mode 100644 src/common/thirdparty/libsmackerdec/src/SmackerDecoder.cpp create mode 100644 src/common/thirdparty/richpresence.cpp create mode 100644 src/d_defcvars.cpp rename src/{rendering/2d/f_wipe.h => d_defcvars.h} (50%) create mode 100644 src/g_statusbar/shiftstate.h create mode 100644 src/gamedata/options.cpp create mode 100644 src/namedef_custom.h create mode 100644 src/rendering/hwrenderer/doom_levelmesh.cpp create mode 100644 src/rendering/hwrenderer/doom_levelmesh.h delete mode 100644 src/rendering/hwrenderer/hw_postprocessshader.cpp create mode 100644 wadsrc/static/fonts/indexfont/0030.png create mode 100644 wadsrc/static/fonts/indexfont/font.inf delete mode 100644 wadsrc/static/indexfont delete mode 100644 wadsrc/static/mapinfo/GoidaGame.txt create mode 100644 wadsrc/static/shaders_gles/Uniform usage notes.txt create mode 100644 wadsrc/static/shaders_gles/glsl/burn.fp create mode 100644 wadsrc/static/shaders_gles/glsl/fogboundary.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_defaultlight.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_defaultmat.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_defaultmat2.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_normal.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_notexture.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_paletted.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_pbr.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_spec.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_warp1.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_warp2.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_warp3.fp create mode 100644 wadsrc/static/shaders_gles/glsl/func_wavex.fp create mode 100644 wadsrc/static/shaders_gles/glsl/fuzz_jagged.fp create mode 100644 wadsrc/static/shaders_gles/glsl/fuzz_noise.fp create mode 100644 wadsrc/static/shaders_gles/glsl/fuzz_smooth.fp create mode 100644 wadsrc/static/shaders_gles/glsl/fuzz_smoothnoise.fp create mode 100644 wadsrc/static/shaders_gles/glsl/fuzz_smoothtranslucent.fp create mode 100644 wadsrc/static/shaders_gles/glsl/fuzz_software.fp create mode 100644 wadsrc/static/shaders_gles/glsl/fuzz_standard.fp create mode 100644 wadsrc/static/shaders_gles/glsl/fuzz_swirly.fp create mode 100644 wadsrc/static/shaders_gles/glsl/main.fp create mode 100644 wadsrc/static/shaders_gles/glsl/main.vp create mode 100644 wadsrc/static/shaders_gles/glsl/material_nolight.fp create mode 100644 wadsrc/static/shaders_gles/glsl/material_normal.fp create mode 100644 wadsrc/static/shaders_gles/glsl/stencil.fp create mode 100644 wadsrc/static/shaders_gles/pp/present.fp create mode 100644 wadsrc/static/shaders_gles/pp/screenquad.vp delete mode 100644 wadsrc/static/vga-rom-font.16 create mode 100644 wadsrc/static/zscript/actors/mbf21.zs create mode 100644 wadsrc/static/zscript/engine/ppshader.zs create mode 100644 wadsrc/static/zscript/engine/screenjob.zs create mode 100644 wadsrc/static/zscript/ui/intermission.zs rename {wadsrc_widescreen => wadsrc_widepix}/CMakeLists.txt (100%) create mode 100644 wadsrc_widepix/static/credits.txt create mode 100644 wadsrc_widepix/static/filter/chex.chex1/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex1/graphics/wimap0.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex2/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex2/graphics/pfub1.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex2/graphics/pfub2.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex2/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex2/graphics/victory2.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex3/graphics/endpic.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex3/graphics/interpic.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex3/graphics/pfub1.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex3/graphics/pfub2.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex3/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex3/graphics/victory2.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex3/graphics/wimap0.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex3/graphics/wimap1.lmp create mode 100644 wadsrc_widepix/static/filter/chex.chex3/graphics/wimap2.lmp create mode 100644 wadsrc_widepix/static/filter/chex/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/chex/graphics/help1.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom1.registered/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom1.shareware/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom1.ultimate/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom1.ultimate/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom1.ultimate/textures.txt create mode 100644 wadsrc_widepix/static/filter/doom.id.doom1/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom1/graphics/help1.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom1/graphics/help2.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom2.plutonia/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom2.plutonia/textures.txt create mode 100644 wadsrc_widepix/static/filter/doom.id.doom2.tnt/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom2.tnt/textures.txt create mode 100644 wadsrc_widepix/static/filter/doom.id.doom2/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom2/graphics/help.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom2/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.doom2/sprites/SHT2E0.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id.wadsmoosh/sprites/SHT2E0.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/bossback.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/endpic.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/help.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/inter_e4.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/interpic.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/pfub1.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/pfub2.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/pluboss.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/pluinter.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/tntboss.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/tntinter.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/victory2.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wia20000.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wia20001.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wia20002.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wia20400.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wia20401.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wia20402.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wia20500.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wia20501.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wia20502.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wimap0.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wimap1.lmp create mode 100644 wadsrc_widepix/static/filter/doom.id/graphics/wimap2.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/graphics/help.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/graphics/interpic.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/CRYGA0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/CRYGB0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/CRYGC0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/CRYGD0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/CRYGE0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/CRYGF0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/CRYGG0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/CRYGH0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/CRYGI0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/CRYGJ0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/MISFA0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/MISFB0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/MISFC0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/MISFD0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/MISGA0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/MISGB0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/PISGE0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/PLSGB0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/SHT2A0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/SHT2B0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/SHT2C0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/SHT2D0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/SHT2E0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/SHT2F0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/SHT2G0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/SHT2H0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/SHT2I0.lmp create mode 100644 wadsrc_widepix/static/filter/hacx.hacx1/sprites/SHT2J0.lmp create mode 100644 wadsrc_widepix/static/filter/harmony/graphics/bossback.lmp create mode 100644 wadsrc_widepix/static/filter/harmony/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/harmony/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/heretic.shadow/graphics/title.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/barback.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/e2end.png create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/final1.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/final2.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/help1.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/help2.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/ltfctop.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/mape1.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/mape2.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/mape3.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/rtfctop.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/graphics/title.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/CRBWA0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/CRBWB0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/CRBWC0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/CRBWD0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/CRBWE0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/CRBWF0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/CRBWG0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/CRBWH0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/HRODA0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/HRODC0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/HRODD0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/HRODE0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/HRODF0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/PHNXA0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/PHNXB0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/STFFC0.lmp create mode 100644 wadsrc_widepix/static/filter/heretic/sprites/STFFH0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen.deathkings/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/hexen.deathkings/graphics/help1.lmp create mode 100644 wadsrc_widepix/static/filter/hexen.deathkings/graphics/help2.lmp create mode 100644 wadsrc_widepix/static/filter/hexen.deathkings/graphics/title.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/graphics/finale1.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/graphics/finale2.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/graphics/finale3.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/graphics/h2bar.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/graphics/h2top.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/graphics/help1.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/graphics/help2.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/graphics/interpic.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/graphics/title.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CFLME0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CFLMF0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CMCEB0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CMCEC0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CMCED0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CMCEE0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CONEA0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CONEB0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CONEC0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CONED0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CONEE0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CONEF0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/CONEG0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FAXEB0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FAXEC0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FAXEN0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FAXEO0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FHMRB0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FHMRC0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FPCHB0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FPCHC0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FPCHD0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FPCHE0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FSRDD0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FSRDE0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FSRDH0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/FSRDI0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/MLNGG0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/MLNGH0.lmp create mode 100644 wadsrc_widepix/static/filter/hexen/sprites/MLNGI0.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/credit.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/help0.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/help1.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/help2.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/help3.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/invback.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/invtop.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/panel0.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/panel1.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/panel2.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/panel3.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/panel4.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/panel5.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/panel6.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/panel7.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/rgelogo.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss2f1.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss2f2.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss2f3.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss2f4.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss3f1.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss3f2.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss3f3.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss3f4.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss4f1.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss4f2.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss4f3.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss4f4.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss5f1.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss5f2.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss5f3.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss6f1.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss6f2.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/ss6f3.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/titlepic.lmp create mode 100644 wadsrc_widepix/static/filter/strife/graphics/vellogo.lmp create mode 100644 wadsrc_widepix/static/filter/strife/sprites/PNCHB0.lmp create mode 100644 wadsrc_widepix/static/filter/strife/sprites/PNCHC0.lmp create mode 100644 wadsrc_widepix/static/filter/strife/sprites/WAVEA0.lmp create mode 100644 wadsrc_widepix/static/filter/strife/sprites/WAVEB0.lmp create mode 100644 wadsrc_widepix/static/filter/strife/sprites/WAVEC0.lmp create mode 100644 wadsrc_widepix/static/filter/strife/sprites/WAVED0.lmp create mode 100644 wadsrc_widepix/static/license.md diff --git a/.gitattributes b/.gitattributes index d9ac56b78fb..a01ef98a581 100644 --- a/.gitattributes +++ b/.gitattributes @@ -25,3 +25,4 @@ language.* text *.lmp binary *.flac binary *.dat binary +*.ico binary diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000000..d50d0207060 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,124 @@ +name: Bug Report +description: File a Bug report +title: '[BUG] ' +labels: bug +#assignees: 'anonymous@temp' + +body: + - type: markdown + attributes: + value: | + ## Please fill out forms as cleanly as possible. + #### Make sure that you have + * properly edited & filled in the title of this bug report + - type: input + id: version + attributes: + label: GZDoom version + description: | + What version are you using? + Run `gzdoom --version` or check in the console in game. + Make sure to update to latest [release](https://github.com/coelckers/gzdoom/releases) version and test again before continuing. + placeholder: "ex: GZDoom 4.0.0, Git version, Branch, other" + validations: + required: false + - type: dropdown + id: gameid + attributes: + label: Which game are you running with GZDoom? + multiple: false + options: + - Doom + - Doom 2 + - Heretic + - Hexen + - Strife + - Other + validations: + required: false + - type: dropdown + id: OS + attributes: + label: What Operating System are you using? + multiple: false + options: + - Windows 11 + - Windows 10 + - Windows 8 + - Windows 7 + - Windows Other + - Mac OS + - Linux x86 + - Linux x86_64 + - Linux ARM (Raspberry Pi) + - Other + validations: + required: false + - type: input + id: os_detail + attributes: + label: Please describe your specific OS version + description: Other details + placeholder: "Windows 11 Home/Pro/Server/etc, Mac OSX version, Debian 10/11/etc, Ubuntu 18/20/etc, Arch, etc." + validations: + required: false + - type: input + id: hardware + attributes: + label: Relevant hardware info + description: Hardware + placeholder: "CPU, GPU, device brand/model: e.g. Intel, AMD, Nvidia, etc" + validations: + required: false + - type: checkboxes + id: checked + attributes: + label: Have you checked that no other similar issue already exists? + description: Searched issues before creating report? + options: + - label: I have searched and not found similar issues. + required: true + - type: textarea + id: description + attributes: + label: A clear and concise description of what the bug is. + description: Describe what happens, what software were you running? _Include screenshot if possible_ + placeholder: "How & When does this occur?" + validations: + required: true + - type: textarea + id: steps + attributes: + label: Steps to reproduce the behaviour. + description: How can we reproduce this? + placeholder: "Explain how to reproduce" + value: | + Explain how to reproduce + 1. + 2. + 3. + validations: + required: false + - type: textarea + id: config_file + attributes: + label: Your configuration + description: | + Share the config file(s) you've been using to run the program. (`gzdoom.ini`) + Please avoid pasting the full config, _use attachments or links_ in a [Gist](https://gist.github.com/) + placeholder: "example: cl_autorun=true" + render: ini # syntax highlighting + validations: + required: false + - type: textarea + id: log + attributes: + label: Provide a Log + description: Please avoid pasting the full log, _use attachments or links_ in a [Gist](https://gist.github.com/) + placeholder: "Copy & paste error log section or provide link" + validations: + required: false + - type: markdown + attributes: + value: | + * Make sure you have properly filled in the title of this bug report diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000000..60c7440fe58 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,107 @@ +name: Feature Request +description: Suggest an idea (a new feature or other improvement) for this project +title: '[Feature] ' +labels: enhancement +#assignees: 'anonymous@temp' + +body: + - type: markdown + attributes: + value: | + ## Please fill out forms as cleanly as possible. + #### Make sure that you have + * properly edited & filled in the title of this bug report + - type: input + id: version + attributes: + label: GZDoom version + description: | + What version are you using? + Run `gzdoom --version` or check in the console in game. + Make sure to update to latest [release](https://github.com/coelckers/gzdoom/releases) version and test again before continuing. + placeholder: "ex: GZDoom 4.0.0, Git version, Branch, other" + validations: + required: false + - type: dropdown + id: gameid + attributes: + label: Which game are you running with GZDoom? + multiple: false + options: + - Doom + - Doom 2 + - Heretic + - Hexen + - Strife + - Other + validations: + required: false + - type: dropdown + id: OS + attributes: + label: What Operating System are you using? + multiple: false + options: + - Windows 11 + - Windows 10 + - Windows 8 + - Windows 7 + - Windows Other + - Mac OS + - Linux x86 + - Linux x86_64 + - Linux ARM (Raspberry Pi) + - Other + validations: + required: false + - type: input + id: other + attributes: + label: If Other OS, please describe + description: Other details + placeholder: "Windows, Mac OSX version, Debian, Ubuntu, Arch, etc." + validations: + required: false + - type: input + id: hardware + attributes: + label: Relevant hardware info + description: Hardware + placeholder: "CPU, GPU, device brand/model: e.g. Intel, AMD, Nvidia, etc" + validations: + required: false + - type: textarea + id: related + attributes: + label: Is your feature request related to a problem? Please describe. + description: Related + placeholder: "Ex. I'm always frustrated when" + validations: + required: true + - type: textarea + id: solution + attributes: + label: Describe the solution you'd like + placeholder: "Ex. How can we make it better?" + validations: + required: false + - type: textarea + id: alternative + attributes: + label: Describe alternatives you've considered + description: A clear and concise description of any alternative solutions or features you've considered. + placeholder: "Similar idea or software" + validations: + required: false + - type: textarea + id: additional + attributes: + label: Add any other context or screenshots about the feature request here. + description: Screenshots or Links? + placeholder: "Ex. Screenshot or Link" + validations: + required: false + - type: markdown + attributes: + value: | + * Make sure you have properly filled in the title of this feature request diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 78a40e62d03..991078f6b83 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -121,9 +121,9 @@ jobs: if [[ "${{ runner.os }}" == 'Windows' ]]; then cp ${{ matrix.config.build_type }}/Goida.exe ${{ matrix.config.build_type }}/*.pk3 package elif [[ "${{ runner.os }}" == 'macOS' ]]; then - cp -r Goida.app package + cp -r goida.app package elif [[ "${{ runner.os }}" == 'Linux' ]]; then - cp Goida *.pk3 package + cp goida *.pk3 package fi - name: Upload Package diff --git a/.whitesource b/.whitesource deleted file mode 100644 index 9c7ae90b4ec..00000000000 --- a/.whitesource +++ /dev/null @@ -1,14 +0,0 @@ -{ - "scanSettings": { - "baseBranches": [] - }, - "checkRunSettings": { - "vulnerableCheckRunConclusionLevel": "failure", - "displayMode": "diff", - "useMendCheckNames": true - }, - "issueSettings": { - "minSeverityLevel": "LOW", - "issueType": "DEPENDENCY" - } -} \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c6d826595f..8ebd77853b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,7 +122,7 @@ IF( NOT CMAKE_BUILD_TYPE ) ENDIF() set( ZDOOM_OUTPUT_DIR ${CMAKE_BINARY_DIR} CACHE PATH "Directory where zdoom.pk3 and the executable will be created." ) -set( ZDOOM_EXE_NAME "Toxiphobia" CACHE FILEPATH "Name of the executable to create" ) +set( ZDOOM_EXE_NAME "Goida" CACHE FILEPATH "Name of the executable to create" ) if( MSVC ) # Allow the user to use ZDOOM_OUTPUT_DIR as a single release point. # Use zdoom, zdoomd, zdoom64, and zdoomd64 for the binary names @@ -139,12 +139,12 @@ else() endif() if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" ) - set( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE TRUE ) + set( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE TRUE ) else() - set( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE FALSE ) + set( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE FALSE ) endif() -if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE ) +if( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE ) set( PROFILE 0 CACHE BOOL "Enable profiling with gprof for Debug and RelWithDebInfo build types." ) if( CMAKE_CXX_STANDARD ) @@ -157,7 +157,7 @@ endif() # Fast math flags, required by some subprojects set( ZD_FASTMATH_FLAG "" ) -if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE ) +if( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE ) set( ZD_FASTMATH_FLAG "-ffast-math -ffp-contract=fast" ) elseif( MSVC ) set( ZD_FASTMATH_FLAG "/fp:fast" ) @@ -189,17 +189,19 @@ option( NO_OPENAL "Disable OpenAL sound support" OFF ) find_package( BZip2 ) find_package( JPEG ) +find_package( VPX ) find_package( ZLIB ) include( TargetArch ) -target_architecture(ZDOOM_TARGET_ARCH) +target_architecture(TARGET_ARCHITECTURE) -if( ${ZDOOM_TARGET_ARCH} MATCHES "x86_64" ) +if( ${TARGET_ARCHITECTURE} MATCHES "x86_64" ) set( HAVE_VM_JIT ON ) endif() option (HAVE_VULKAN "Enable Vulkan support" ON) +option (HAVE_GLES2 "Enable GLES2 support" ON) # no, we're not using external asmjit for now, we made too many modifications to our's. # if the asmjit author uses our changes then we'll update this. @@ -215,10 +217,15 @@ if( MSVC ) # String pooling # Function-level linking + # Disable run-time type information + set( ALL_C_FLAGS "/GF /Gy /permissive-" ) + if ( HAVE_VULKAN ) - set( ALL_C_FLAGS "/GF /Gy /permissive- /DHAVE_VULKAN" ) - else() - set( ALL_C_FLAGS "/GF /Gy /permissive-" ) + set( ALL_C_FLAGS "${ALL_C_FLAGS} /DHAVE_VULKAN" ) + endif() + + if ( HAVE_GLES2 ) + set( ALL_C_FLAGS "${ALL_C_FLAGS} /DHAVE_GLES2" ) endif() # Use SSE 2 as minimum always as the true color drawers needs it for __vectorcall @@ -239,7 +246,7 @@ if( MSVC ) set( DEB_C_FLAGS "/D _CRTDBG_MAP_ALLOC /MTd" ) # Disable warnings for unsecure CRT functions from VC8+ - set( ALL_C_FLAGS "${ALL_C_FLAGS} /wd4996 /DUNICODE /D_UNICODE /D_WIN32_WINNT=0x0600" ) + set( ALL_C_FLAGS "${ALL_C_FLAGS} /DUNICODE /D_UNICODE /D_WIN32_WINNT=0x0600 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS" ) # The CMake configurations set /GR and /MD by default, which conflict with our settings. string(REPLACE "/MD " " " CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} ) @@ -253,10 +260,14 @@ if( MSVC ) string(REPLACE "/MDd " " " CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG} ) else() set( REL_LINKER_FLAGS "" ) + set( ALL_C_FLAGS "-ffp-contract=off" ) + if ( HAVE_VULKAN ) - set( ALL_C_FLAGS "-ffp-contract=off -DHAVE_VULKAN" ) - else() - set( ALL_C_FLAGS "-ffp-contract=off" ) + set( ALL_C_FLAGS "${ALL_C_FLAGS} -DHAVE_VULKAN" ) + endif() + + if ( HAVE_GLES2 ) + set( ALL_C_FLAGS "${ALL_C_FLAGS} -DHAVE_GLES2" ) endif() if ( UNIX ) @@ -278,7 +289,7 @@ else() if( APPLE ) - set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9") + set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12") if( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" ) # If we're compiling with a custom GCC on the Mac (which we know since g++-4.2 doesn't support C++11) statically link libgcc. set( ALL_C_FLAGS "-static-libgcc" ) @@ -318,6 +329,11 @@ if (HAVE_VULKAN) add_subdirectory( libraries/glslang/OGLCompilersDLL ) endif() +add_subdirectory( libraries/discordrpc EXCLUDE_FROM_ALL ) +set( DRPC_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries/discordrpc/include" ) +set( DRPC_LIBRARIES discord-rpc ) +set( DRPC_LIBRARY discord-rpc ) + if( ZLIB_FOUND AND NOT FORCE_INTERNAL_ZLIB ) message( STATUS "Using system zlib, includes found at ${ZLIB_INCLUDE_DIR}" ) else() @@ -376,7 +392,6 @@ else() set( BZIP2_LIBRARY bz2 ) endif() - set( LZMA_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries/lzma/C" ) if( NOT CMAKE_CROSSCOMPILING ) @@ -404,7 +419,7 @@ add_subdirectory( wadsrc ) add_subdirectory( wadsrc_bm ) add_subdirectory( wadsrc_lights ) add_subdirectory( wadsrc_extra ) -add_subdirectory( wadsrc_widescreen ) +add_subdirectory( wadsrc_widepix ) add_subdirectory( wadsrc_conpics ) add_subdirectory( src ) diff --git a/bin/windows/vpx/include/vpx/vp8.h b/bin/windows/vpx/include/vpx/vp8.h new file mode 100644 index 00000000000..8a035f97707 --- /dev/null +++ b/bin/windows/vpx/include/vpx/vp8.h @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +/*!\defgroup vp8 VP8 + * \ingroup codecs + * VP8 is vpx's newest video compression algorithm that uses motion + * compensated prediction, Discrete Cosine Transform (DCT) coding of the + * prediction error signal and context dependent entropy coding techniques + * based on arithmetic principles. It features: + * - YUV 4:2:0 image format + * - Macro-block based coding (16x16 luma plus two 8x8 chroma) + * - 1/4 (1/8) pixel accuracy motion compensated prediction + * - 4x4 DCT transform + * - 128 level linear quantizer + * - In loop deblocking filter + * - Context-based entropy coding + * + * @{ + */ +/*!\file + * \brief Provides controls common to both the VP8 encoder and decoder. + */ +#ifndef VPX_VP8_H_ +#define VPX_VP8_H_ + +#include "./vpx_codec.h" +#include "./vpx_image.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*!\brief Control functions + * + * The set of macros define the control functions of VP8 interface + */ +enum vp8_com_control_id { + VP8_SET_REFERENCE = 1, /**< pass in an external frame into decoder to be used as reference frame */ + VP8_COPY_REFERENCE = 2, /**< get a copy of reference frame from the decoder */ + VP8_SET_POSTPROC = 3, /**< set the decoder's post processing settings */ + VP8_SET_DBG_COLOR_REF_FRAME = 4, /**< set the reference frames to color for each macroblock */ + VP8_SET_DBG_COLOR_MB_MODES = 5, /**< set which macro block modes to color */ + VP8_SET_DBG_COLOR_B_MODES = 6, /**< set which blocks modes to color */ + VP8_SET_DBG_DISPLAY_MV = 7, /**< set which motion vector modes to draw */ + + /* TODO(jkoleszar): The encoder incorrectly reuses some of these values (5+) + * for its control ids. These should be migrated to something like the + * VP8_DECODER_CTRL_ID_START range next time we're ready to break the ABI. + */ + VP9_GET_REFERENCE = 128, /**< get a pointer to a reference frame */ + VP8_COMMON_CTRL_ID_MAX, + VP8_DECODER_CTRL_ID_START = 256 +}; + +/*!\brief post process flags + * + * The set of macros define VP8 decoder post processing flags + */ +enum vp8_postproc_level { + VP8_NOFILTERING = 0, + VP8_DEBLOCK = 1 << 0, + VP8_DEMACROBLOCK = 1 << 1, + VP8_ADDNOISE = 1 << 2, + VP8_DEBUG_TXT_FRAME_INFO = 1 << 3, /**< print frame information */ + VP8_DEBUG_TXT_MBLK_MODES = 1 << 4, /**< print macro block modes over each macro block */ + VP8_DEBUG_TXT_DC_DIFF = 1 << 5, /**< print dc diff for each macro block */ + VP8_DEBUG_TXT_RATE_INFO = 1 << 6, /**< print video rate info (encoder only) */ + VP8_MFQE = 1 << 10 +}; + +/*!\brief post process flags + * + * This define a structure that describe the post processing settings. For + * the best objective measure (using the PSNR metric) set post_proc_flag + * to VP8_DEBLOCK and deblocking_level to 1. + */ + +typedef struct vp8_postproc_cfg { + int post_proc_flag; /**< the types of post processing to be done, should be combination of "vp8_postproc_level" */ + int deblocking_level; /**< the strength of deblocking, valid range [0, 16] */ + int noise_level; /**< the strength of additive noise, valid range [0, 16] */ +} vp8_postproc_cfg_t; + +/*!\brief reference frame type + * + * The set of macros define the type of VP8 reference frames + */ +typedef enum vpx_ref_frame_type { + VP8_LAST_FRAME = 1, + VP8_GOLD_FRAME = 2, + VP8_ALTR_FRAME = 4 +} vpx_ref_frame_type_t; + +/*!\brief reference frame data struct + * + * Define the data struct to access vp8 reference frames. + */ +typedef struct vpx_ref_frame { + vpx_ref_frame_type_t frame_type; /**< which reference frame */ + vpx_image_t img; /**< reference frame data in image format */ +} vpx_ref_frame_t; + +/*!\brief VP9 specific reference frame data struct + * + * Define the data struct to access vp9 reference frames. + */ +typedef struct vp9_ref_frame { + int idx; /**< frame index to get (input) */ + vpx_image_t img; /**< img structure to populate (output) */ +} vp9_ref_frame_t; + +/*!\cond */ +/*!\brief vp8 decoder control function parameter type + * + * defines the data type for each of VP8 decoder control function requires + */ +VPX_CTRL_USE_TYPE(VP8_SET_REFERENCE, vpx_ref_frame_t *) +#define VPX_CTRL_VP8_SET_REFERENCE +VPX_CTRL_USE_TYPE(VP8_COPY_REFERENCE, vpx_ref_frame_t *) +#define VPX_CTRL_VP8_COPY_REFERENCE +VPX_CTRL_USE_TYPE(VP8_SET_POSTPROC, vp8_postproc_cfg_t *) +#define VPX_CTRL_VP8_SET_POSTPROC +VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_REF_FRAME, int) +#define VPX_CTRL_VP8_SET_DBG_COLOR_REF_FRAME +VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_MB_MODES, int) +#define VPX_CTRL_VP8_SET_DBG_COLOR_MB_MODES +VPX_CTRL_USE_TYPE(VP8_SET_DBG_COLOR_B_MODES, int) +#define VPX_CTRL_VP8_SET_DBG_COLOR_B_MODES +VPX_CTRL_USE_TYPE(VP8_SET_DBG_DISPLAY_MV, int) +#define VPX_CTRL_VP8_SET_DBG_DISPLAY_MV +VPX_CTRL_USE_TYPE(VP9_GET_REFERENCE, vp9_ref_frame_t *) +#define VPX_CTRL_VP9_GET_REFERENCE + +/*!\endcond */ +/*! @} - end defgroup vp8 */ + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // VPX_VP8_H_ diff --git a/bin/windows/vpx/include/vpx/vp8dx.h b/bin/windows/vpx/include/vpx/vp8dx.h new file mode 100644 index 00000000000..67c97bb6c9a --- /dev/null +++ b/bin/windows/vpx/include/vpx/vp8dx.h @@ -0,0 +1,176 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + + +/*!\defgroup vp8_decoder WebM VP8/VP9 Decoder + * \ingroup vp8 + * + * @{ + */ +/*!\file + * \brief Provides definitions for using VP8 or VP9 within the vpx Decoder + * interface. + */ +#ifndef VPX_VP8DX_H_ +#define VPX_VP8DX_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Include controls common to both the encoder and decoder */ +#include "./vp8.h" + +/*!\name Algorithm interface for VP8 + * + * This interface provides the capability to decode VP8 streams. + * @{ + */ +extern vpx_codec_iface_t vpx_codec_vp8_dx_algo; +extern vpx_codec_iface_t *vpx_codec_vp8_dx(void); +/*!@} - end algorithm interface member group*/ + +/*!\name Algorithm interface for VP9 + * + * This interface provides the capability to decode VP9 streams. + * @{ + */ +extern vpx_codec_iface_t vpx_codec_vp9_dx_algo; +extern vpx_codec_iface_t *vpx_codec_vp9_dx(void); +/*!@} - end algorithm interface member group*/ + +/*!\enum vp8_dec_control_id + * \brief VP8 decoder control functions + * + * This set of macros define the control functions available for the VP8 + * decoder interface. + * + * \sa #vpx_codec_control + */ +enum vp8_dec_control_id { + /** control function to get info on which reference frames were updated + * by the last decode + */ + VP8D_GET_LAST_REF_UPDATES = VP8_DECODER_CTRL_ID_START, + + /** check if the indicated frame is corrupted */ + VP8D_GET_FRAME_CORRUPTED, + + /** control function to get info on which reference frames were used + * by the last decode + */ + VP8D_GET_LAST_REF_USED, + + /** decryption function to decrypt encoded buffer data immediately + * before decoding. Takes a vpx_decrypt_init, which contains + * a callback function and opaque context pointer. + */ + VPXD_SET_DECRYPTOR, + VP8D_SET_DECRYPTOR = VPXD_SET_DECRYPTOR, + + /** control function to get the dimensions that the current frame is decoded + * at. This may be different to the intended display size for the frame as + * specified in the wrapper or frame header (see VP9D_GET_DISPLAY_SIZE). */ + VP9D_GET_FRAME_SIZE, + + /** control function to get the current frame's intended display dimensions + * (as specified in the wrapper or frame header). This may be different to + * the decoded dimensions of this frame (see VP9D_GET_FRAME_SIZE). */ + VP9D_GET_DISPLAY_SIZE, + + /** control function to get the bit depth of the stream. */ + VP9D_GET_BIT_DEPTH, + + /** control function to set the byte alignment of the planes in the reference + * buffers. Valid values are power of 2, from 32 to 1024. A value of 0 sets + * legacy alignment. I.e. Y plane is aligned to 32 bytes, U plane directly + * follows Y plane, and V plane directly follows U plane. Default value is 0. + */ + VP9_SET_BYTE_ALIGNMENT, + + /** control function to invert the decoding order to from right to left. The + * function is used in a test to confirm the decoding independence of tile + * columns. The function may be used in application where this order + * of decoding is desired. + * + * TODO(yaowu): Rework the unit test that uses this control, and in a future + * release, this test-only control shall be removed. + */ + VP9_INVERT_TILE_DECODE_ORDER, + + /** control function to set the skip loop filter flag. Valid values are + * integers. The decoder will skip the loop filter when its value is set to + * nonzero. If the loop filter is skipped the decoder may accumulate decode + * artifacts. The default value is 0. + */ + VP9_SET_SKIP_LOOP_FILTER, + + VP8_DECODER_CTRL_ID_MAX +}; + +/** Decrypt n bytes of data from input -> output, using the decrypt_state + * passed in VPXD_SET_DECRYPTOR. + */ +typedef void (*vpx_decrypt_cb)(void *decrypt_state, const unsigned char *input, + unsigned char *output, int count); + +/*!\brief Structure to hold decryption state + * + * Defines a structure to hold the decryption state and access function. + */ +typedef struct vpx_decrypt_init { + /*! Decrypt callback. */ + vpx_decrypt_cb decrypt_cb; + + /*! Decryption state. */ + void *decrypt_state; +} vpx_decrypt_init; + +/*!\brief A deprecated alias for vpx_decrypt_init. + */ +typedef vpx_decrypt_init vp8_decrypt_init; + + +/*!\cond */ +/*!\brief VP8 decoder control function parameter type + * + * Defines the data types that VP8D control functions take. Note that + * additional common controls are defined in vp8.h + * + */ + + +VPX_CTRL_USE_TYPE(VP8D_GET_LAST_REF_UPDATES, int *) +#define VPX_CTRL_VP8D_GET_LAST_REF_UPDATES +VPX_CTRL_USE_TYPE(VP8D_GET_FRAME_CORRUPTED, int *) +#define VPX_CTRL_VP8D_GET_FRAME_CORRUPTED +VPX_CTRL_USE_TYPE(VP8D_GET_LAST_REF_USED, int *) +#define VPX_CTRL_VP8D_GET_LAST_REF_USED +VPX_CTRL_USE_TYPE(VPXD_SET_DECRYPTOR, vpx_decrypt_init *) +#define VPX_CTRL_VPXD_SET_DECRYPTOR +VPX_CTRL_USE_TYPE(VP8D_SET_DECRYPTOR, vpx_decrypt_init *) +#define VPX_CTRL_VP8D_SET_DECRYPTOR +VPX_CTRL_USE_TYPE(VP9D_GET_DISPLAY_SIZE, int *) +#define VPX_CTRL_VP9D_GET_DISPLAY_SIZE +VPX_CTRL_USE_TYPE(VP9D_GET_BIT_DEPTH, unsigned int *) +#define VPX_CTRL_VP9D_GET_BIT_DEPTH +VPX_CTRL_USE_TYPE(VP9D_GET_FRAME_SIZE, int *) +#define VPX_CTRL_VP9D_GET_FRAME_SIZE +VPX_CTRL_USE_TYPE(VP9_INVERT_TILE_DECODE_ORDER, int) +#define VPX_CTRL_VP9_INVERT_TILE_DECODE_ORDER + +/*!\endcond */ +/*! @} - end defgroup vp8_decoder */ + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // VPX_VP8DX_H_ diff --git a/bin/windows/vpx/include/vpx/vpx_codec.h b/bin/windows/vpx/include/vpx/vpx_codec.h new file mode 100644 index 00000000000..b6037bb4d7a --- /dev/null +++ b/bin/windows/vpx/include/vpx/vpx_codec.h @@ -0,0 +1,479 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + + +/*!\defgroup codec Common Algorithm Interface + * This abstraction allows applications to easily support multiple video + * formats with minimal code duplication. This section describes the interface + * common to all codecs (both encoders and decoders). + * @{ + */ + +/*!\file + * \brief Describes the codec algorithm interface to applications. + * + * This file describes the interface between an application and a + * video codec algorithm. + * + * An application instantiates a specific codec instance by using + * vpx_codec_init() and a pointer to the algorithm's interface structure: + *
+ * my_app.c: + * extern vpx_codec_iface_t my_codec; + * { + * vpx_codec_ctx_t algo; + * res = vpx_codec_init(&algo, &my_codec); + * } + *+ * + * Once initialized, the instance is manged using other functions from + * the vpx_codec_* family. + */ +#ifndef VPX_VPX_CODEC_H_ +#define VPX_VPX_CODEC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "./vpx_integer.h" +#include "./vpx_image.h" + + /*!\brief Decorator indicating a function is deprecated */ +#ifndef DEPRECATED +#if defined(__GNUC__) && __GNUC__ +#define DEPRECATED __attribute__ ((deprecated)) +#elif defined(_MSC_VER) +#define DEPRECATED +#else +#define DEPRECATED +#endif +#endif /* DEPRECATED */ + +#ifndef DECLSPEC_DEPRECATED +#if defined(__GNUC__) && __GNUC__ +#define DECLSPEC_DEPRECATED /**< \copydoc #DEPRECATED */ +#elif defined(_MSC_VER) +#define DECLSPEC_DEPRECATED __declspec(deprecated) /**< \copydoc #DEPRECATED */ +#else +#define DECLSPEC_DEPRECATED /**< \copydoc #DEPRECATED */ +#endif +#endif /* DECLSPEC_DEPRECATED */ + + /*!\brief Decorator indicating a function is potentially unused */ +#ifdef UNUSED +#elif defined(__GNUC__) || defined(__clang__) +#define UNUSED __attribute__ ((unused)) +#else +#define UNUSED +#endif + + /*!\brief Current ABI version number + * + * \internal + * If this file is altered in any way that changes the ABI, this value + * must be bumped. Examples include, but are not limited to, changing + * types, removing or reassigning enums, adding/removing/rearranging + * fields to structures + */ +#define VPX_CODEC_ABI_VERSION (3 + VPX_IMAGE_ABI_VERSION) /**<\hideinitializer*/ + + /*!\brief Algorithm return codes */ + typedef enum { + /*!\brief Operation completed without error */ + VPX_CODEC_OK, + + /*!\brief Unspecified error */ + VPX_CODEC_ERROR, + + /*!\brief Memory operation failed */ + VPX_CODEC_MEM_ERROR, + + /*!\brief ABI version mismatch */ + VPX_CODEC_ABI_MISMATCH, + + /*!\brief Algorithm does not have required capability */ + VPX_CODEC_INCAPABLE, + + /*!\brief The given bitstream is not supported. + * + * The bitstream was unable to be parsed at the highest level. The decoder + * is unable to proceed. This error \ref SHOULD be treated as fatal to the + * stream. */ + VPX_CODEC_UNSUP_BITSTREAM, + + /*!\brief Encoded bitstream uses an unsupported feature + * + * The decoder does not implement a feature required by the encoder. This + * return code should only be used for features that prevent future + * pictures from being properly decoded. This error \ref MAY be treated as + * fatal to the stream or \ref MAY be treated as fatal to the current GOP. + */ + VPX_CODEC_UNSUP_FEATURE, + + /*!\brief The coded data for this stream is corrupt or incomplete + * + * There was a problem decoding the current frame. This return code + * should only be used for failures that prevent future pictures from + * being properly decoded. This error \ref MAY be treated as fatal to the + * stream or \ref MAY be treated as fatal to the current GOP. If decoding + * is continued for the current GOP, artifacts may be present. + */ + VPX_CODEC_CORRUPT_FRAME, + + /*!\brief An application-supplied parameter is not valid. + * + */ + VPX_CODEC_INVALID_PARAM, + + /*!\brief An iterator reached the end of list. + * + */ + VPX_CODEC_LIST_END + + } + vpx_codec_err_t; + + + /*! \brief Codec capabilities bitfield + * + * Each codec advertises the capabilities it supports as part of its + * ::vpx_codec_iface_t interface structure. Capabilities are extra interfaces + * or functionality, and are not required to be supported. + * + * The available flags are specified by VPX_CODEC_CAP_* defines. + */ + typedef long vpx_codec_caps_t; +#define VPX_CODEC_CAP_DECODER 0x1 /**< Is a decoder */ +#define VPX_CODEC_CAP_ENCODER 0x2 /**< Is an encoder */ + + + /*! \brief Initialization-time Feature Enabling + * + * Certain codec features must be known at initialization time, to allow for + * proper memory allocation. + * + * The available flags are specified by VPX_CODEC_USE_* defines. + */ + typedef long vpx_codec_flags_t; + + + /*!\brief Codec interface structure. + * + * Contains function pointers and other data private to the codec + * implementation. This structure is opaque to the application. + */ + typedef const struct vpx_codec_iface vpx_codec_iface_t; + + + /*!\brief Codec private data structure. + * + * Contains data private to the codec implementation. This structure is opaque + * to the application. + */ + typedef struct vpx_codec_priv vpx_codec_priv_t; + + + /*!\brief Iterator + * + * Opaque storage used for iterating over lists. + */ + typedef const void *vpx_codec_iter_t; + + + /*!\brief Codec context structure + * + * All codecs \ref MUST support this context structure fully. In general, + * this data should be considered private to the codec algorithm, and + * not be manipulated or examined by the calling application. Applications + * may reference the 'name' member to get a printable description of the + * algorithm. + */ + typedef struct vpx_codec_ctx { + const char *name; /**< Printable interface name */ + vpx_codec_iface_t *iface; /**< Interface pointers */ + vpx_codec_err_t err; /**< Last returned error */ + const char *err_detail; /**< Detailed info, if available */ + vpx_codec_flags_t init_flags; /**< Flags passed at init time */ + union { + /**< Decoder Configuration Pointer */ + const struct vpx_codec_dec_cfg *dec; + /**< Encoder Configuration Pointer */ + const struct vpx_codec_enc_cfg *enc; + const void *raw; + } config; /**< Configuration pointer aliasing union */ + vpx_codec_priv_t *priv; /**< Algorithm private storage */ + } vpx_codec_ctx_t; + + /*!\brief Bit depth for codec + * * + * This enumeration determines the bit depth of the codec. + */ + typedef enum vpx_bit_depth { + VPX_BITS_8 = 8, /**< 8 bits */ + VPX_BITS_10 = 10, /**< 10 bits */ + VPX_BITS_12 = 12, /**< 12 bits */ + } vpx_bit_depth_t; + + /* + * Library Version Number Interface + * + * For example, see the following sample return values: + * vpx_codec_version() (1<<16 | 2<<8 | 3) + * vpx_codec_version_str() "v1.2.3-rc1-16-gec6a1ba" + * vpx_codec_version_extra_str() "rc1-16-gec6a1ba" + */ + + /*!\brief Return the version information (as an integer) + * + * Returns a packed encoding of the library version number. This will only include + * the major.minor.patch component of the version number. Note that this encoded + * value should be accessed through the macros provided, as the encoding may change + * in the future. + * + */ + int vpx_codec_version(void); +#define VPX_VERSION_MAJOR(v) ((v>>16)&0xff) /**< extract major from packed version */ +#define VPX_VERSION_MINOR(v) ((v>>8)&0xff) /**< extract minor from packed version */ +#define VPX_VERSION_PATCH(v) ((v>>0)&0xff) /**< extract patch from packed version */ + + /*!\brief Return the version major number */ +#define vpx_codec_version_major() ((vpx_codec_version()>>16)&0xff) + + /*!\brief Return the version minor number */ +#define vpx_codec_version_minor() ((vpx_codec_version()>>8)&0xff) + + /*!\brief Return the version patch number */ +#define vpx_codec_version_patch() ((vpx_codec_version()>>0)&0xff) + + + /*!\brief Return the version information (as a string) + * + * Returns a printable string containing the full library version number. This may + * contain additional text following the three digit version number, as to indicate + * release candidates, prerelease versions, etc. + * + */ + const char *vpx_codec_version_str(void); + + + /*!\brief Return the version information (as a string) + * + * Returns a printable "extra string". This is the component of the string returned + * by vpx_codec_version_str() following the three digit version number. + * + */ + const char *vpx_codec_version_extra_str(void); + + + /*!\brief Return the build configuration + * + * Returns a printable string containing an encoded version of the build + * configuration. This may be useful to vpx support. + * + */ + const char *vpx_codec_build_config(void); + + + /*!\brief Return the name for a given interface + * + * Returns a human readable string for name of the given codec interface. + * + * \param[in] iface Interface pointer + * + */ + const char *vpx_codec_iface_name(vpx_codec_iface_t *iface); + + + /*!\brief Convert error number to printable string + * + * Returns a human readable string for the last error returned by the + * algorithm. The returned error will be one line and will not contain + * any newline characters. + * + * + * \param[in] err Error number. + * + */ + const char *vpx_codec_err_to_string(vpx_codec_err_t err); + + + /*!\brief Retrieve error synopsis for codec context + * + * Returns a human readable string for the last error returned by the + * algorithm. The returned error will be one line and will not contain + * any newline characters. + * + * + * \param[in] ctx Pointer to this instance's context. + * + */ + const char *vpx_codec_error(vpx_codec_ctx_t *ctx); + + + /*!\brief Retrieve detailed error information for codec context + * + * Returns a human readable string providing detailed information about + * the last error. + * + * \param[in] ctx Pointer to this instance's context. + * + * \retval NULL + * No detailed information is available. + */ + const char *vpx_codec_error_detail(vpx_codec_ctx_t *ctx); + + + /* REQUIRED FUNCTIONS + * + * The following functions are required to be implemented for all codecs. + * They represent the base case functionality expected of all codecs. + */ + + /*!\brief Destroy a codec instance + * + * Destroys a codec context, freeing any associated memory buffers. + * + * \param[in] ctx Pointer to this instance's context + * + * \retval #VPX_CODEC_OK + * The codec algorithm initialized. + * \retval #VPX_CODEC_MEM_ERROR + * Memory allocation failed. + */ + vpx_codec_err_t vpx_codec_destroy(vpx_codec_ctx_t *ctx); + + + /*!\brief Get the capabilities of an algorithm. + * + * Retrieves the capabilities bitfield from the algorithm's interface. + * + * \param[in] iface Pointer to the algorithm interface + * + */ + vpx_codec_caps_t vpx_codec_get_caps(vpx_codec_iface_t *iface); + + + /*!\brief Control algorithm + * + * This function is used to exchange algorithm specific data with the codec + * instance. This can be used to implement features specific to a particular + * algorithm. + * + * This wrapper function dispatches the request to the helper function + * associated with the given ctrl_id. It tries to call this function + * transparently, but will return #VPX_CODEC_ERROR if the request could not + * be dispatched. + * + * Note that this function should not be used directly. Call the + * #vpx_codec_control wrapper macro instead. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] ctrl_id Algorithm specific control identifier + * + * \retval #VPX_CODEC_OK + * The control request was processed. + * \retval #VPX_CODEC_ERROR + * The control request was not processed. + * \retval #VPX_CODEC_INVALID_PARAM + * The data was not valid. + */ + vpx_codec_err_t vpx_codec_control_(vpx_codec_ctx_t *ctx, + int ctrl_id, + ...); +#if defined(VPX_DISABLE_CTRL_TYPECHECKS) && VPX_DISABLE_CTRL_TYPECHECKS +# define vpx_codec_control(ctx,id,data) vpx_codec_control_(ctx,id,data) +# define VPX_CTRL_USE_TYPE(id, typ) +# define VPX_CTRL_USE_TYPE_DEPRECATED(id, typ) +# define VPX_CTRL_VOID(id, typ) + +#else + /*!\brief vpx_codec_control wrapper macro + * + * This macro allows for type safe conversions across the variadic parameter + * to vpx_codec_control_(). + * + * \internal + * It works by dispatching the call to the control function through a wrapper + * function named with the id parameter. + */ +# define vpx_codec_control(ctx,id,data) vpx_codec_control_##id(ctx,id,data)\ + /**<\hideinitializer*/ + + + /*!\brief vpx_codec_control type definition macro + * + * This macro allows for type safe conversions across the variadic parameter + * to vpx_codec_control_(). It defines the type of the argument for a given + * control identifier. + * + * \internal + * It defines a static function with + * the correctly typed arguments as a wrapper to the type-unsafe internal + * function. + */ +# define VPX_CTRL_USE_TYPE(id, typ) \ + static vpx_codec_err_t \ + vpx_codec_control_##id(vpx_codec_ctx_t*, int, typ) UNUSED;\ + \ + static vpx_codec_err_t \ + vpx_codec_control_##id(vpx_codec_ctx_t *ctx, int ctrl_id, typ data) {\ + return vpx_codec_control_(ctx, ctrl_id, data);\ + } /**<\hideinitializer*/ + + + /*!\brief vpx_codec_control deprecated type definition macro + * + * Like #VPX_CTRL_USE_TYPE, but indicates that the specified control is + * deprecated and should not be used. Consult the documentation for your + * codec for more information. + * + * \internal + * It defines a static function with the correctly typed arguments as a + * wrapper to the type-unsafe internal function. + */ +# define VPX_CTRL_USE_TYPE_DEPRECATED(id, typ) \ + DECLSPEC_DEPRECATED static vpx_codec_err_t \ + vpx_codec_control_##id(vpx_codec_ctx_t*, int, typ) DEPRECATED UNUSED;\ + \ + DECLSPEC_DEPRECATED static vpx_codec_err_t \ + vpx_codec_control_##id(vpx_codec_ctx_t *ctx, int ctrl_id, typ data) {\ + return vpx_codec_control_(ctx, ctrl_id, data);\ + } /**<\hideinitializer*/ + + + /*!\brief vpx_codec_control void type definition macro + * + * This macro allows for type safe conversions across the variadic parameter + * to vpx_codec_control_(). It indicates that a given control identifier takes + * no argument. + * + * \internal + * It defines a static function without a data argument as a wrapper to the + * type-unsafe internal function. + */ +# define VPX_CTRL_VOID(id) \ + static vpx_codec_err_t \ + vpx_codec_control_##id(vpx_codec_ctx_t*, int) UNUSED;\ + \ + static vpx_codec_err_t \ + vpx_codec_control_##id(vpx_codec_ctx_t *ctx, int ctrl_id) {\ + return vpx_codec_control_(ctx, ctrl_id);\ + } /**<\hideinitializer*/ + + +#endif + + /*!@} - end defgroup codec*/ +#ifdef __cplusplus +} +#endif +#endif // VPX_VPX_CODEC_H_ + diff --git a/bin/windows/vpx/include/vpx/vpx_decoder.h b/bin/windows/vpx/include/vpx/vpx_decoder.h new file mode 100644 index 00000000000..62fd9197564 --- /dev/null +++ b/bin/windows/vpx/include/vpx/vpx_decoder.h @@ -0,0 +1,378 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ +#ifndef VPX_VPX_DECODER_H_ +#define VPX_VPX_DECODER_H_ + +/*!\defgroup decoder Decoder Algorithm Interface + * \ingroup codec + * This abstraction allows applications using this decoder to easily support + * multiple video formats with minimal code duplication. This section describes + * the interface common to all decoders. + * @{ + */ + +/*!\file + * \brief Describes the decoder algorithm interface to applications. + * + * This file describes the interface between an application and a + * video decoder algorithm. + * + */ +#ifdef __cplusplus +extern "C" { +#endif + +#include "./vpx_codec.h" +#include "./vpx_frame_buffer.h" + + /*!\brief Current ABI version number + * + * \internal + * If this file is altered in any way that changes the ABI, this value + * must be bumped. Examples include, but are not limited to, changing + * types, removing or reassigning enums, adding/removing/rearranging + * fields to structures + */ +#define VPX_DECODER_ABI_VERSION (3 + VPX_CODEC_ABI_VERSION) /**<\hideinitializer*/ + + /*! \brief Decoder capabilities bitfield + * + * Each decoder advertises the capabilities it supports as part of its + * ::vpx_codec_iface_t interface structure. Capabilities are extra interfaces + * or functionality, and are not required to be supported by a decoder. + * + * The available flags are specified by VPX_CODEC_CAP_* defines. + */ +#define VPX_CODEC_CAP_PUT_SLICE 0x10000 /**< Will issue put_slice callbacks */ +#define VPX_CODEC_CAP_PUT_FRAME 0x20000 /**< Will issue put_frame callbacks */ +#define VPX_CODEC_CAP_POSTPROC 0x40000 /**< Can postprocess decoded frame */ +#define VPX_CODEC_CAP_ERROR_CONCEALMENT 0x80000 /**< Can conceal errors due to + packet loss */ +#define VPX_CODEC_CAP_INPUT_FRAGMENTS 0x100000 /**< Can receive encoded frames + one fragment at a time */ + + /*! \brief Initialization-time Feature Enabling + * + * Certain codec features must be known at initialization time, to allow for + * proper memory allocation. + * + * The available flags are specified by VPX_CODEC_USE_* defines. + */ +#define VPX_CODEC_CAP_FRAME_THREADING 0x200000 /**< Can support frame-based + multi-threading */ +#define VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER 0x400000 /**< Can support external + frame buffers */ + +#define VPX_CODEC_USE_POSTPROC 0x10000 /**< Postprocess decoded frame */ +#define VPX_CODEC_USE_ERROR_CONCEALMENT 0x20000 /**< Conceal errors in decoded + frames */ +#define VPX_CODEC_USE_INPUT_FRAGMENTS 0x40000 /**< The input frame should be + passed to the decoder one + fragment at a time */ +#define VPX_CODEC_USE_FRAME_THREADING 0x80000 /**< Enable frame-based + multi-threading */ + + /*!\brief Stream properties + * + * This structure is used to query or set properties of the decoded + * stream. Algorithms may extend this structure with data specific + * to their bitstream by setting the sz member appropriately. + */ + typedef struct vpx_codec_stream_info { + unsigned int sz; /**< Size of this structure */ + unsigned int w; /**< Width (or 0 for unknown/default) */ + unsigned int h; /**< Height (or 0 for unknown/default) */ + unsigned int is_kf; /**< Current frame is a keyframe */ + } vpx_codec_stream_info_t; + + /* REQUIRED FUNCTIONS + * + * The following functions are required to be implemented for all decoders. + * They represent the base case functionality expected of all decoders. + */ + + + /*!\brief Initialization Configurations + * + * This structure is used to pass init time configuration options to the + * decoder. + */ + typedef struct vpx_codec_dec_cfg { + unsigned int threads; /**< Maximum number of threads to use, default 1 */ + unsigned int w; /**< Width */ + unsigned int h; /**< Height */ + } vpx_codec_dec_cfg_t; /**< alias for struct vpx_codec_dec_cfg */ + + + /*!\brief Initialize a decoder instance + * + * Initializes a decoder context using the given interface. Applications + * should call the vpx_codec_dec_init convenience macro instead of this + * function directly, to ensure that the ABI version number parameter + * is properly initialized. + * + * If the library was configured with --disable-multithread, this call + * is not thread safe and should be guarded with a lock if being used + * in a multithreaded context. + * + * \param[in] ctx Pointer to this instance's context. + * \param[in] iface Pointer to the algorithm interface to use. + * \param[in] cfg Configuration to use, if known. May be NULL. + * \param[in] flags Bitfield of VPX_CODEC_USE_* flags + * \param[in] ver ABI version number. Must be set to + * VPX_DECODER_ABI_VERSION + * \retval #VPX_CODEC_OK + * The decoder algorithm initialized. + * \retval #VPX_CODEC_MEM_ERROR + * Memory allocation failed. + */ + vpx_codec_err_t vpx_codec_dec_init_ver(vpx_codec_ctx_t *ctx, + vpx_codec_iface_t *iface, + const vpx_codec_dec_cfg_t *cfg, + vpx_codec_flags_t flags, + int ver); + + /*!\brief Convenience macro for vpx_codec_dec_init_ver() + * + * Ensures the ABI version parameter is properly set. + */ +#define vpx_codec_dec_init(ctx, iface, cfg, flags) \ + vpx_codec_dec_init_ver(ctx, iface, cfg, flags, VPX_DECODER_ABI_VERSION) + + + /*!\brief Parse stream info from a buffer + * + * Performs high level parsing of the bitstream. Construction of a decoder + * context is not necessary. Can be used to determine if the bitstream is + * of the proper format, and to extract information from the stream. + * + * \param[in] iface Pointer to the algorithm interface + * \param[in] data Pointer to a block of data to parse + * \param[in] data_sz Size of the data buffer + * \param[in,out] si Pointer to stream info to update. The size member + * \ref MUST be properly initialized, but \ref MAY be + * clobbered by the algorithm. This parameter \ref MAY + * be NULL. + * + * \retval #VPX_CODEC_OK + * Bitstream is parsable and stream information updated + */ + vpx_codec_err_t vpx_codec_peek_stream_info(vpx_codec_iface_t *iface, + const uint8_t *data, + unsigned int data_sz, + vpx_codec_stream_info_t *si); + + + /*!\brief Return information about the current stream. + * + * Returns information about the stream that has been parsed during decoding. + * + * \param[in] ctx Pointer to this instance's context + * \param[in,out] si Pointer to stream info to update. The size member + * \ref MUST be properly initialized, but \ref MAY be + * clobbered by the algorithm. This parameter \ref MAY + * be NULL. + * + * \retval #VPX_CODEC_OK + * Bitstream is parsable and stream information updated + */ + vpx_codec_err_t vpx_codec_get_stream_info(vpx_codec_ctx_t *ctx, + vpx_codec_stream_info_t *si); + + + /*!\brief Decode data + * + * Processes a buffer of coded data. If the processing results in a new + * decoded frame becoming available, PUT_SLICE and PUT_FRAME events may be + * generated, as appropriate. Encoded data \ref MUST be passed in DTS (decode + * time stamp) order. Frames produced will always be in PTS (presentation + * time stamp) order. + * If the decoder is configured with VPX_CODEC_USE_INPUT_FRAGMENTS enabled, + * data and data_sz can contain a fragment of the encoded frame. Fragment + * \#n must contain at least partition \#n, but can also contain subsequent + * partitions (\#n+1 - \#n+i), and if so, fragments \#n+1, .., \#n+i must + * be empty. When no more data is available, this function should be called + * with NULL as data and 0 as data_sz. The memory passed to this function + * must be available until the frame has been decoded. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] data Pointer to this block of new coded data. If + * NULL, a VPX_CODEC_CB_PUT_FRAME event is posted + * for the previously decoded frame. + * \param[in] data_sz Size of the coded data, in bytes. + * \param[in] user_priv Application specific data to associate with + * this frame. + * \param[in] deadline Soft deadline the decoder should attempt to meet, + * in us. Set to zero for unlimited. + * + * \return Returns #VPX_CODEC_OK if the coded data was processed completely + * and future pictures can be decoded without error. Otherwise, + * see the descriptions of the other error codes in ::vpx_codec_err_t + * for recoverability capabilities. + */ + vpx_codec_err_t vpx_codec_decode(vpx_codec_ctx_t *ctx, + const uint8_t *data, + unsigned int data_sz, + void *user_priv, + long deadline); + + + /*!\brief Decoded frames iterator + * + * Iterates over a list of the frames available for display. The iterator + * storage should be initialized to NULL to start the iteration. Iteration is + * complete when this function returns NULL. + * + * The list of available frames becomes valid upon completion of the + * vpx_codec_decode call, and remains valid until the next call to vpx_codec_decode. + * + * \param[in] ctx Pointer to this instance's context + * \param[in,out] iter Iterator storage, initialized to NULL + * + * \return Returns a pointer to an image, if one is ready for display. Frames + * produced will always be in PTS (presentation time stamp) order. + */ + vpx_image_t *vpx_codec_get_frame(vpx_codec_ctx_t *ctx, + vpx_codec_iter_t *iter); + + + /*!\defgroup cap_put_frame Frame-Based Decoding Functions + * + * The following functions are required to be implemented for all decoders + * that advertise the VPX_CODEC_CAP_PUT_FRAME capability. Calling these functions + * for codecs that don't advertise this capability will result in an error + * code being returned, usually VPX_CODEC_ERROR + * @{ + */ + + /*!\brief put frame callback prototype + * + * This callback is invoked by the decoder to notify the application of + * the availability of decoded image data. + */ + typedef void (*vpx_codec_put_frame_cb_fn_t)(void *user_priv, + const vpx_image_t *img); + + + /*!\brief Register for notification of frame completion. + * + * Registers a given function to be called when a decoded frame is + * available. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] cb Pointer to the callback function + * \param[in] user_priv User's private data + * + * \retval #VPX_CODEC_OK + * Callback successfully registered. + * \retval #VPX_CODEC_ERROR + * Decoder context not initialized, or algorithm not capable of + * posting slice completion. + */ + vpx_codec_err_t vpx_codec_register_put_frame_cb(vpx_codec_ctx_t *ctx, + vpx_codec_put_frame_cb_fn_t cb, + void *user_priv); + + + /*!@} - end defgroup cap_put_frame */ + + /*!\defgroup cap_put_slice Slice-Based Decoding Functions + * + * The following functions are required to be implemented for all decoders + * that advertise the VPX_CODEC_CAP_PUT_SLICE capability. Calling these functions + * for codecs that don't advertise this capability will result in an error + * code being returned, usually VPX_CODEC_ERROR + * @{ + */ + + /*!\brief put slice callback prototype + * + * This callback is invoked by the decoder to notify the application of + * the availability of partially decoded image data. The + */ + typedef void (*vpx_codec_put_slice_cb_fn_t)(void *user_priv, + const vpx_image_t *img, + const vpx_image_rect_t *valid, + const vpx_image_rect_t *update); + + + /*!\brief Register for notification of slice completion. + * + * Registers a given function to be called when a decoded slice is + * available. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] cb Pointer to the callback function + * \param[in] user_priv User's private data + * + * \retval #VPX_CODEC_OK + * Callback successfully registered. + * \retval #VPX_CODEC_ERROR + * Decoder context not initialized, or algorithm not capable of + * posting slice completion. + */ + vpx_codec_err_t vpx_codec_register_put_slice_cb(vpx_codec_ctx_t *ctx, + vpx_codec_put_slice_cb_fn_t cb, + void *user_priv); + + + /*!@} - end defgroup cap_put_slice*/ + + /*!\defgroup cap_external_frame_buffer External Frame Buffer Functions + * + * The following section is required to be implemented for all decoders + * that advertise the VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER capability. + * Calling this function for codecs that don't advertise this capability + * will result in an error code being returned, usually VPX_CODEC_ERROR. + * + * \note + * Currently this only works with VP9. + * @{ + */ + + /*!\brief Pass in external frame buffers for the decoder to use. + * + * Registers functions to be called when libvpx needs a frame buffer + * to decode the current frame and a function to be called when libvpx does + * not internally reference the frame buffer. This set function must + * be called before the first call to decode or libvpx will assume the + * default behavior of allocating frame buffers internally. + * + * \param[in] ctx Pointer to this instance's context + * \param[in] cb_get Pointer to the get callback function + * \param[in] cb_release Pointer to the release callback function + * \param[in] cb_priv Callback's private data + * + * \retval #VPX_CODEC_OK + * External frame buffers will be used by libvpx. + * \retval #VPX_CODEC_INVALID_PARAM + * One or more of the callbacks were NULL. + * \retval #VPX_CODEC_ERROR + * Decoder context not initialized, or algorithm not capable of + * using external frame buffers. + * + * \note + * When decoding VP9, the application may be required to pass in at least + * #VP9_MAXIMUM_REF_BUFFERS + #VPX_MAXIMUM_WORK_BUFFERS external frame + * buffers. + */ + vpx_codec_err_t vpx_codec_set_frame_buffer_functions( + vpx_codec_ctx_t *ctx, + vpx_get_frame_buffer_cb_fn_t cb_get, + vpx_release_frame_buffer_cb_fn_t cb_release, void *cb_priv); + + /*!@} - end defgroup cap_external_frame_buffer */ + + /*!@} - end defgroup decoder*/ +#ifdef __cplusplus +} +#endif +#endif // VPX_VPX_DECODER_H_ + diff --git a/bin/windows/vpx/include/vpx/vpx_frame_buffer.h b/bin/windows/vpx/include/vpx/vpx_frame_buffer.h new file mode 100644 index 00000000000..9036459af0a --- /dev/null +++ b/bin/windows/vpx/include/vpx/vpx_frame_buffer.h @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2014 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef VPX_VPX_FRAME_BUFFER_H_ +#define VPX_VPX_FRAME_BUFFER_H_ + +/*!\file + * \brief Describes the decoder external frame buffer interface. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "./vpx_integer.h" + +/*!\brief The maximum number of work buffers used by libvpx. + * Support maximum 4 threads to decode video in parallel. + * Each thread will use one work buffer. + * TODO(hkuang): Add support to set number of worker threads dynamically. + */ +#define VPX_MAXIMUM_WORK_BUFFERS 8 + +/*!\brief The maximum number of reference buffers that a VP9 encoder may use. + */ +#define VP9_MAXIMUM_REF_BUFFERS 8 + +/*!\brief External frame buffer + * + * This structure holds allocated frame buffers used by the decoder. + */ +typedef struct vpx_codec_frame_buffer { + uint8_t *data; /**< Pointer to the data buffer */ + size_t size; /**< Size of data in bytes */ + void *priv; /**< Frame's private data */ +} vpx_codec_frame_buffer_t; + +/*!\brief get frame buffer callback prototype + * + * This callback is invoked by the decoder to retrieve data for the frame + * buffer in order for the decode call to complete. The callback must + * allocate at least min_size in bytes and assign it to fb->data. The callback + * must zero out all the data allocated. Then the callback must set fb->size + * to the allocated size. The application does not need to align the allocated + * data. The callback is triggered when the decoder needs a frame buffer to + * decode a compressed image into. This function may be called more than once + * for every call to vpx_codec_decode. The application may set fb->priv to + * some data which will be passed back in the ximage and the release function + * call. |fb| is guaranteed to not be NULL. On success the callback must + * return 0. Any failure the callback must return a value less than 0. + * + * \param[in] priv Callback's private data + * \param[in] new_size Size in bytes needed by the buffer + * \param[in,out] fb Pointer to vpx_codec_frame_buffer_t + */ +typedef int (*vpx_get_frame_buffer_cb_fn_t)( + void *priv, size_t min_size, vpx_codec_frame_buffer_t *fb); + +/*!\brief release frame buffer callback prototype + * + * This callback is invoked by the decoder when the frame buffer is not + * referenced by any other buffers. |fb| is guaranteed to not be NULL. On + * success the callback must return 0. Any failure the callback must return + * a value less than 0. + * + * \param[in] priv Callback's private data + * \param[in] fb Pointer to vpx_codec_frame_buffer_t + */ +typedef int (*vpx_release_frame_buffer_cb_fn_t)( + void *priv, vpx_codec_frame_buffer_t *fb); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // VPX_VPX_FRAME_BUFFER_H_ diff --git a/bin/windows/vpx/include/vpx/vpx_image.h b/bin/windows/vpx/include/vpx/vpx_image.h new file mode 100644 index 00000000000..7958c69806e --- /dev/null +++ b/bin/windows/vpx/include/vpx/vpx_image.h @@ -0,0 +1,235 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + + +/*!\file + * \brief Describes the vpx image descriptor and associated operations + * + */ +#ifndef VPX_VPX_IMAGE_H_ +#define VPX_VPX_IMAGE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + + /*!\brief Current ABI version number + * + * \internal + * If this file is altered in any way that changes the ABI, this value + * must be bumped. Examples include, but are not limited to, changing + * types, removing or reassigning enums, adding/removing/rearranging + * fields to structures + */ +#define VPX_IMAGE_ABI_VERSION (4) /**<\hideinitializer*/ + + +#define VPX_IMG_FMT_PLANAR 0x100 /**< Image is a planar format. */ +#define VPX_IMG_FMT_UV_FLIP 0x200 /**< V plane precedes U in memory. */ +#define VPX_IMG_FMT_HAS_ALPHA 0x400 /**< Image has an alpha channel. */ +#define VPX_IMG_FMT_HIGHBITDEPTH 0x800 /**< Image uses 16bit framebuffer. */ + + /*!\brief List of supported image formats */ + typedef enum vpx_img_fmt { + VPX_IMG_FMT_NONE, + VPX_IMG_FMT_RGB24, /**< 24 bit per pixel packed RGB */ + VPX_IMG_FMT_RGB32, /**< 32 bit per pixel packed 0RGB */ + VPX_IMG_FMT_RGB565, /**< 16 bit per pixel, 565 */ + VPX_IMG_FMT_RGB555, /**< 16 bit per pixel, 555 */ + VPX_IMG_FMT_UYVY, /**< UYVY packed YUV */ + VPX_IMG_FMT_YUY2, /**< YUYV packed YUV */ + VPX_IMG_FMT_YVYU, /**< YVYU packed YUV */ + VPX_IMG_FMT_BGR24, /**< 24 bit per pixel packed BGR */ + VPX_IMG_FMT_RGB32_LE, /**< 32 bit packed BGR0 */ + VPX_IMG_FMT_ARGB, /**< 32 bit packed ARGB, alpha=255 */ + VPX_IMG_FMT_ARGB_LE, /**< 32 bit packed BGRA, alpha=255 */ + VPX_IMG_FMT_RGB565_LE, /**< 16 bit per pixel, gggbbbbb rrrrrggg */ + VPX_IMG_FMT_RGB555_LE, /**< 16 bit per pixel, gggbbbbb 0rrrrrgg */ + VPX_IMG_FMT_YV12 = VPX_IMG_FMT_PLANAR | VPX_IMG_FMT_UV_FLIP | 1, /**< planar YVU */ + VPX_IMG_FMT_I420 = VPX_IMG_FMT_PLANAR | 2, + VPX_IMG_FMT_VPXYV12 = VPX_IMG_FMT_PLANAR | VPX_IMG_FMT_UV_FLIP | 3, /** < planar 4:2:0 format with vpx color space */ + VPX_IMG_FMT_VPXI420 = VPX_IMG_FMT_PLANAR | 4, + VPX_IMG_FMT_I422 = VPX_IMG_FMT_PLANAR | 5, + VPX_IMG_FMT_I444 = VPX_IMG_FMT_PLANAR | 6, + VPX_IMG_FMT_I440 = VPX_IMG_FMT_PLANAR | 7, + VPX_IMG_FMT_444A = VPX_IMG_FMT_PLANAR | VPX_IMG_FMT_HAS_ALPHA | 6, + VPX_IMG_FMT_I42016 = VPX_IMG_FMT_I420 | VPX_IMG_FMT_HIGHBITDEPTH, + VPX_IMG_FMT_I42216 = VPX_IMG_FMT_I422 | VPX_IMG_FMT_HIGHBITDEPTH, + VPX_IMG_FMT_I44416 = VPX_IMG_FMT_I444 | VPX_IMG_FMT_HIGHBITDEPTH, + VPX_IMG_FMT_I44016 = VPX_IMG_FMT_I440 | VPX_IMG_FMT_HIGHBITDEPTH + } vpx_img_fmt_t; /**< alias for enum vpx_img_fmt */ + + /*!\brief List of supported color spaces */ + typedef enum vpx_color_space { + VPX_CS_UNKNOWN = 0, /**< Unknown */ + VPX_CS_BT_601 = 1, /**< BT.601 */ + VPX_CS_BT_709 = 2, /**< BT.709 */ + VPX_CS_SMPTE_170 = 3, /**< SMPTE.170 */ + VPX_CS_SMPTE_240 = 4, /**< SMPTE.240 */ + VPX_CS_BT_2020 = 5, /**< BT.2020 */ + VPX_CS_RESERVED = 6, /**< Reserved */ + VPX_CS_SRGB = 7 /**< sRGB */ + } vpx_color_space_t; /**< alias for enum vpx_color_space */ + + /*!\brief List of supported color range */ + typedef enum vpx_color_range { + VPX_CR_STUDIO_RANGE = 0, /**< Y [16..235], UV [16..240] */ + VPX_CR_FULL_RANGE = 1 /**< YUV/RGB [0..255] */ + } vpx_color_range_t; /**< alias for enum vpx_color_range */ + + /**\brief Image Descriptor */ + typedef struct vpx_image { + vpx_img_fmt_t fmt; /**< Image Format */ + vpx_color_space_t cs; /**< Color Space */ + vpx_color_range_t range; /**< Color Range */ + + /* Image storage dimensions */ + unsigned int w; /**< Stored image width */ + unsigned int h; /**< Stored image height */ + unsigned int bit_depth; /**< Stored image bit-depth */ + + /* Image display dimensions */ + unsigned int d_w; /**< Displayed image width */ + unsigned int d_h; /**< Displayed image height */ + + /* Image intended rendering dimensions */ + unsigned int r_w; /**< Intended rendering image width */ + unsigned int r_h; /**< Intended rendering image height */ + + /* Chroma subsampling info */ + unsigned int x_chroma_shift; /**< subsampling order, X */ + unsigned int y_chroma_shift; /**< subsampling order, Y */ + + /* Image data pointers. */ +#define VPX_PLANE_PACKED 0 /**< To be used for all packed formats */ +#define VPX_PLANE_Y 0 /**< Y (Luminance) plane */ +#define VPX_PLANE_U 1 /**< U (Chroma) plane */ +#define VPX_PLANE_V 2 /**< V (Chroma) plane */ +#define VPX_PLANE_ALPHA 3 /**< A (Transparency) plane */ + unsigned char *planes[4]; /**< pointer to the top left pixel for each plane */ + int stride[4]; /**< stride between rows for each plane */ + + int bps; /**< bits per sample (for packed formats) */ + + /* The following member may be set by the application to associate data + * with this image. + */ + void *user_priv; /**< may be set by the application to associate data + * with this image. */ + + /* The following members should be treated as private. */ + unsigned char *img_data; /**< private */ + int img_data_owner; /**< private */ + int self_allocd; /**< private */ + + void *fb_priv; /**< Frame buffer data associated with the image. */ + } vpx_image_t; /**< alias for struct vpx_image */ + + /**\brief Representation of a rectangle on a surface */ + typedef struct vpx_image_rect { + unsigned int x; /**< leftmost column */ + unsigned int y; /**< topmost row */ + unsigned int w; /**< width */ + unsigned int h; /**< height */ + } vpx_image_rect_t; /**< alias for struct vpx_image_rect */ + + /*!\brief Open a descriptor, allocating storage for the underlying image + * + * Returns a descriptor for storing an image of the given format. The + * storage for the descriptor is allocated on the heap. + * + * \param[in] img Pointer to storage for descriptor. If this parameter + * is NULL, the storage for the descriptor will be + * allocated on the heap. + * \param[in] fmt Format for the image + * \param[in] d_w Width of the image + * \param[in] d_h Height of the image + * \param[in] align Alignment, in bytes, of the image buffer and + * each row in the image(stride). + * + * \return Returns a pointer to the initialized image descriptor. If the img + * parameter is non-null, the value of the img parameter will be + * returned. + */ + vpx_image_t *vpx_img_alloc(vpx_image_t *img, + vpx_img_fmt_t fmt, + unsigned int d_w, + unsigned int d_h, + unsigned int align); + + /*!\brief Open a descriptor, using existing storage for the underlying image + * + * Returns a descriptor for storing an image of the given format. The + * storage for descriptor has been allocated elsewhere, and a descriptor is + * desired to "wrap" that storage. + * + * \param[in] img Pointer to storage for descriptor. If this parameter + * is NULL, the storage for the descriptor will be + * allocated on the heap. + * \param[in] fmt Format for the image + * \param[in] d_w Width of the image + * \param[in] d_h Height of the image + * \param[in] align Alignment, in bytes, of each row in the image. + * \param[in] img_data Storage to use for the image + * + * \return Returns a pointer to the initialized image descriptor. If the img + * parameter is non-null, the value of the img parameter will be + * returned. + */ + vpx_image_t *vpx_img_wrap(vpx_image_t *img, + vpx_img_fmt_t fmt, + unsigned int d_w, + unsigned int d_h, + unsigned int align, + unsigned char *img_data); + + + /*!\brief Set the rectangle identifying the displayed portion of the image + * + * Updates the displayed rectangle (aka viewport) on the image surface to + * match the specified coordinates and size. + * + * \param[in] img Image descriptor + * \param[in] x leftmost column + * \param[in] y topmost row + * \param[in] w width + * \param[in] h height + * + * \return 0 if the requested rectangle is valid, nonzero otherwise. + */ + int vpx_img_set_rect(vpx_image_t *img, + unsigned int x, + unsigned int y, + unsigned int w, + unsigned int h); + + + /*!\brief Flip the image vertically (top for bottom) + * + * Adjusts the image descriptor's pointers and strides to make the image + * be referenced upside-down. + * + * \param[in] img Image descriptor + */ + void vpx_img_flip(vpx_image_t *img); + + /*!\brief Close an image descriptor + * + * Frees all allocated storage associated with an image descriptor. + * + * \param[in] img Image descriptor + */ + void vpx_img_free(vpx_image_t *img); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // VPX_VPX_IMAGE_H_ diff --git a/bin/windows/vpx/include/vpx/vpx_integer.h b/bin/windows/vpx/include/vpx/vpx_integer.h new file mode 100644 index 00000000000..829c9d132c8 --- /dev/null +++ b/bin/windows/vpx/include/vpx/vpx_integer.h @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + + +#ifndef VPX_VPX_INTEGER_H_ +#define VPX_VPX_INTEGER_H_ + +/* get ptrdiff_t, size_t, wchar_t, NULL */ +#include
vQ~F>z)g9VN@r9jotXeBpEn?O2Smi9%aeWkp=o5XmF;__ns6)aU
z8sMbCIa43;HZ
zB ejbWji@Nwl
z=(Gp*@^e0@4+{N!md^I0;IPN%v$d^r6Dz|SgcPL$J*nO=F*%f%RMi@kA991WLag5E
zM^YspQpXeLz&s>_s5)1$s&i6*JrTSh(Nv(S&%;&_ru;^<312F In+Xsge8w}hUl |0-lfCf
zfNo%)0>D1fk0smVCCu{(il&M3TR=iWNKgicIKN!VcZTSu@PFC_FQw4cOiqoEOXG2h
z=?;>#VSzh8F>pLajBuGpj%gz%9T#fRDKvu5E50FP(JHD`$ebi*b;!uavb31Vh_GAc
z4ojpzYgRD1D-n4y24F_aX_B7J@@jynJ&=6fWnn>3vrza}Bzzmhvp<4KUS>v$T)B*N
znMh|TP>c+=^;R+2ke80b$b`#CJ*RW{cZ?qBFsq~c-fGxbNRrH&MUs*Y@siTtmUeR>
zmnl`4Yb4YQV8U4(39RT}w3YOOOXE>6rOB457Fe|A{yynGdW!g<7Uh?%A6!R9X)z+0
zzWIz?msn3rs!ohd)OEal?`i5xBC>DV>ZRx*)gzfGl`-3|6!-NH+T25t{`6?SauN|w
z_NXWe>UK`Yv3tK-x^wQsQlF^QN8W6pE-_X0S+!`ZT(ONtmzRWBU=UgKrmDp8`72Z0
zD^`BN^H=|PeSE(4r#9bG*G!2XrknkTjnDtGOO4OR*FUN|{sGrN$LG&~y7T947wn^#
zq&{DSZC$L$u5En}lhTZ~^(kWtYsY+YQE)|OpZ05pn%$M3dJD;!*iNT0Z_Ai2XETBo
z!~1eBgRCAi-Q^?EPaU5A6X+ku!{GVh>1%>d4NqSN-JD#Eg(K1bG&8;IS+qb`hR4@^
zgomkrVOG;n=GB4z6tvGuUgj>qs#