diff --git a/.github/workflows/build_android.yml b/.github/workflows/build_android.yml new file mode 100644 index 0000000..19739d8 --- /dev/null +++ b/.github/workflows/build_android.yml @@ -0,0 +1,51 @@ +name: Build Android +on: + workflow_dispatch: + workflow_call: + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + - precision: single + arch: arm64 + - precision: single + arch: arm32 + - precision: single + arch: x86_64 + - precision: single + arch: x86_32 + + - precision: double + arch: arm64 + - precision: double + arch: arm32 + - precision: double + arch: x86_64 + - precision: double + arch: x86_32 + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + fetch-depth: 0 + + - name: 🔗 GDExtension Build + uses: godotengine/godot-cpp-template/.github/actions/build@main + with: + platform: android + arch: ${{ matrix.arch }} + float-precision: ${{ matrix.precision }} + build-target-type: template_release + + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: Godot_Speech + path: | + ${{ github.workspace }}/bin/**/*.so + if-no-files-found: error diff --git a/.github/workflows/build_ios.yml b/.github/workflows/build_ios.yml new file mode 100644 index 0000000..4146b1d --- /dev/null +++ b/.github/workflows/build_ios.yml @@ -0,0 +1,40 @@ +name: Build iOS +on: + workflow_dispatch: + workflow_call: + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + - precision: single + arch: arm64 + ios_precision_extension: + - precision: double + arch: arm64 + ios_precision_extension: .double + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + fetch-depth: 0 + + - name: 🔗 GDExtension Build + uses: godotengine/godot-cpp-template/.github/actions/build@main + with: + platform: ios + arch: ${{ matrix.arch }} + float-precision: ${{ matrix.precision }} + build-target-type: template_release + + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: Godot_Speech + path: | + ${{ github.workspace }}/bin/**/libgodot_speech.ios.template_release${{ matrix.ios_precision_extension }}.arm64.framework/** + if-no-files-found: error diff --git a/.github/workflows/build_linux.yml b/.github/workflows/build_linux.yml new file mode 100644 index 0000000..76d226d --- /dev/null +++ b/.github/workflows/build_linux.yml @@ -0,0 +1,39 @@ +name: Build Linux +on: + workflow_dispatch: + workflow_call: + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + - precision: single + arch: x86_64 + - precision: double + arch: x86_64 + + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + fetch-depth: 0 + + - name: 🔗 GDExtension Build + uses: godotengine/godot-cpp-template/.github/actions/build@main + with: + platform: linux + arch: ${{ matrix.arch }} + float-precision: ${{ matrix.precision }} + build-target-type: template_release + + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: Godot_Speech + path: | + ${{ github.workspace }}/bin/**/*.so + if-no-files-found: error diff --git a/.github/workflows/build_macos.yml b/.github/workflows/build_macos.yml new file mode 100644 index 0000000..efcfc68 --- /dev/null +++ b/.github/workflows/build_macos.yml @@ -0,0 +1,63 @@ +name: Build MacOS +on: + workflow_dispatch: + workflow_call: + secrets: + APPLE_CERT_BASE64: + required: true + APPLE_CERT_PASSWORD: + required: true + APPLE_DEV_PASSWORD: + required: true + APPLE_DEV_ID: + required: true + APPLE_DEV_TEAM_ID: + required: true + APPLE_DEV_APP_ID: + required: true + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + - precision: single + mac_precision_extension: + arch: universal + - precision: double + mac_precision_extension: .double + arch: universal + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + fetch-depth: 0 + - name: 🔗 GDExtension Build + uses: godotengine/godot-cpp-template/.github/actions/build@main + with: + platform: macos + arch: ${{ matrix.arch }} + float-precision: ${{ matrix.precision }} + build-target-type: template_release + + - name: Mac Sign + uses: godotengine/godot-cpp-template/.github/actions/sign@main + with: + FRAMEWORK_PATH: bin/addons/godot_speech/bin/libgodot_speech.macos.template_release${{ matrix.mac_precision_extension }}.universal.framework + SIGN_FLAGS: "--deep" + APPLE_CERT_BASE64: ${{ secrets.APPLE_CERT_BASE64 }} + APPLE_CERT_PASSWORD: ${{ secrets.APPLE_CERT_PASSWORD }} + APPLE_DEV_PASSWORD: ${{ secrets.APPLE_DEV_PASSWORD }} + APPLE_DEV_ID: ${{ secrets.APPLE_DEV_ID }} + APPLE_DEV_TEAM_ID: ${{ secrets.APPLE_DEV_TEAM_ID }} + APPLE_DEV_APP_ID: ${{ secrets.APPLE_DEV_APP_ID }} + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: Godot_Speech + path: | + ${{ github.workspace }}/bin/**/libgodot_speech.macos.template_release${{ matrix.mac_precision_extension }}.universal.framework/** + if-no-files-found: error diff --git a/.github/workflows/build_web.yml b/.github/workflows/build_web.yml new file mode 100644 index 0000000..171e4be --- /dev/null +++ b/.github/workflows/build_web.yml @@ -0,0 +1,38 @@ +name: Build Web +on: + workflow_dispatch: + workflow_call: + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + - precision: single + arch: wasm32 + - precision: double + arch: wasm32 + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + fetch-depth: 0 + + - name: 🔗 GDExtension Build + uses: godotengine/godot-cpp-template/.github/actions/build@main + with: + platform: web + arch: ${{ matrix.arch }} + float-precision: ${{ matrix.precision }} + build-target-type: template_release + + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: Godot_Speech + path: | + ${{ github.workspace }}/bin/**/*.wasm + if-no-files-found: error diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows.yml new file mode 100644 index 0000000..6064253 --- /dev/null +++ b/.github/workflows/build_windows.yml @@ -0,0 +1,47 @@ +name: Build Windows +on: + workflow_dispatch: + workflow_call: + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + - precision: single + arch: x86_32 + opencl_arch: Win32 + - precision: single + arch: x86_64 + opencl_arch: x64 + - precision: double + arch: x86_32 + opencl_arch: Win32 + - precision: double + arch: x86_64 + opencl_arch: x64 + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + fetch-depth: 0 + + - name: 🔗 GDExtension Build + uses: godotengine/godot-cpp-template/.github/actions/build@main + with: + platform: windows + arch: ${{ matrix.arch }} + float-precision: ${{ matrix.precision }} + build-target-type: template_release + + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: Godot_Speech + path: | + ${{ github.workspace }}/bin/**/*.dll + ${{ github.workspace }}/bin/addons/godot_speech/godot_speech.gdextension + if-no-files-found: error diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..2d454d5 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,20 @@ +name: Lint +on: + workflow_dispatch: + workflow_call: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v2 + - name: Setup clang-format + shell: bash + run: | + python -m pip install clang-format + - name: Run clang-format + shell: bash + run: | + clang-format --style=file:.clang-format *.cpp *.h --dry-run --Werror diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..c8107c8 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,36 @@ +name: Release +on: + workflow_call: + +jobs: + release: + runs-on: ubuntu-20.04 + permissions: + contents: write + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: true + fetch-depth: 0 + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: Godot_Speech + path: godot-speech + - name: Delete draft release(s) + uses: hugo19941994/delete-draft-releases@v1.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Archive + shell: sh + run: zip -r "Godot_Speech.zip" godot-speech + - name: Release + uses: softprops/action-gh-release@v1 + with: + name: Godot Speech + files: Godot_Speech.zip + generate_release_notes: true + draft: true + prerelease: true + fail_on_unmatched_files: true diff --git a/.github/workflows/runner.yml b/.github/workflows/runner.yml new file mode 100644 index 0000000..d49c9aa --- /dev/null +++ b/.github/workflows/runner.yml @@ -0,0 +1,44 @@ +name: Builds + +on: + workflow_dispatch: + pull_request: + push: + branches: + - "main" + +jobs: + lint: + uses: ./.github/workflows/lint.yml + build_android: + needs: [lint] + uses: ./.github/workflows/build_android.yml + build_ios: + needs: [lint] + uses: ./.github/workflows/build_ios.yml + build_linux: + needs: [lint] + uses: ./.github/workflows/build_linux.yml + build_macos: + needs: [lint] + uses: ./.github/workflows/build_macos.yml + secrets: + APPLE_CERT_BASE64: ${{ secrets.APPLE_CERT_BASE64 }} + APPLE_CERT_PASSWORD: ${{ secrets.APPLE_CERT_PASSWORD }} + APPLE_DEV_PASSWORD: ${{ secrets.APPLE_DEV_PASSWORD }} + APPLE_DEV_ID: ${{ secrets.APPLE_DEV_ID }} + APPLE_DEV_TEAM_ID: ${{ secrets.APPLE_DEV_TEAM_ID }} + APPLE_DEV_APP_ID: ${{ secrets.APPLE_DEV_APP_ID }} + build_windows: + needs: [lint] + uses: ./.github/workflows/build_windows.yml + build_web: + needs: [lint] + uses: ./.github/workflows/build_web.yml + + release: + name: Create Release + permissions: + contents: write + needs: [build_android, build_ios, build_linux, build_macos, build_windows, build_web] + uses: ./.github/workflows/release.yml diff --git a/SConstruct b/SConstruct new file mode 100644 index 0000000..4d1bfac --- /dev/null +++ b/SConstruct @@ -0,0 +1,421 @@ +#!/usr/bin/env python +import os +import sys + +env = SConscript("thirdparty/godot-cpp/SConstruct") + +if env["platform"] != "windows": + env.Append(CCFLAGS=["-Wno-error=non-virtual-dtor"]) + env.Append(CCFLAGS=["-Wno-error=ctor-dtor-privacy"]) + +env.Append( + CPPDEFINES=[ + "HAVE_CONFIG_H", + "PACKAGE=", + "VERSION=", + "CPU_CLIPS_POSITIVE=0", + "CPU_CLIPS_NEGATIVE=0", + "WEBRTC_APM_DEBUG_DUMP=0", + ] +) + +enable_webrtc_logging = env["target"] == "debug" + +if not enable_webrtc_logging: + env.Append(CPPDEFINES=["RTC_DISABLE_LOGGING", "RTC_DISABLE_METRICS"]) + +if env["platform"] == "windows" or env["platform"] == "uwp": + env.Append(CPPDEFINES=["WEBRTC_WIN"]) +elif env["platform"] == "ios": + env.Append(CPPDEFINES=["WEBRTC_POSIX", "WEBRTC_IOS"]) +elif env["platform"] == "macos": + env.Append(CPPDEFINES=["WEBRTC_POSIX", "WEBRTC_MAC"]) +elif env["platform"] == "linux": + env.Append(CPPDEFINES=["WEBRTC_POSIX", "WEBRTC_LINUX"]) +elif env["platform"] == "android": + env.Append(CPPDEFINES=["WEBRTC_POSIX", "WEBRTC_ANDROID"]) +else: # including if env["platform"] == "javascript": + env.Append(CPPDEFINES=["WEBRTC_POSIX"]) + +env.Prepend(CPPPATH=["thirdparty"]) +env.Prepend(CPPPATH=["thirdparty/libsamplerate/src"]) +env.Prepend(CPPPATH=["thirdparty/opus"]) +env.Prepend(CPPPATH=["thirdparty/opus/opus"]) +env.Prepend(CPPPATH=["include"]) +env.Prepend(CPPPATH=["thirdparty/AEC3"]) +env.Prepend(CPPPATH=["thirdparty/AEC3/base"]) +env.Prepend(CPPPATH=["thirdparty/AEC3/base/abseil"]) +env.Prepend(CPPPATH=["thirdparty/AEC3/audio_processing"]) +env.Prepend(CPPPATH=["thirdparty/AEC3/audio_processing/aec3"]) +env.Prepend(CPPPATH=["thirdparty/AEC3/audio_processing/include"]) +env.Prepend(CPPPATH=["thirdparty/AEC3/audio_processing/logging"]) +env.Prepend(CPPPATH=["thirdparty/AEC3/audio_processing/resampler"]) +env.Prepend(CPPPATH=["thirdparty/AEC3/audio_processing/utility"]) +env.Prepend(CPPPATH=["thirdparty/AEC3/base/jsoncpp/include"]) + +thirdparty_dir = "thirdparty/opus/" +thirdparty_sources = [ + # Sync with opus_sources.mk + "opus.c", + "opus_decoder.c", + "opus_encoder.c", + "opus_multistream.c", + "opus_multistream_encoder.c", + "opus_multistream_decoder.c", + "repacketizer.c", + "analysis.c", + "mlp.c", + "mlp_data.c", + # Sync with libopusfile Makefile.am + "info.c", + "internal.c", + "opusfile.c", + "stream.c", + # Sync with celt_sources.mk + "celt/bands.c", + "celt/celt.c", + "celt/celt_encoder.c", + "celt/celt_decoder.c", + "celt/cwrs.c", + "celt/entcode.c", + "celt/entdec.c", + "celt/entenc.c", + "celt/kiss_fft.c", + "celt/laplace.c", + "celt/mathops.c", + "celt/mdct.c", + "celt/modes.c", + "celt/pitch.c", + "celt/celt_lpc.c", + "celt/quant_bands.c", + "celt/rate.c", + "celt/vq.c", + # "celt/arm/arm_celt_map.c", + # "celt/arm/armcpu.c", + # "celt/arm/celt_ne10_fft.c", + # "celt/arm/celt_ne10_mdct.c", + # "celt/arm/celt_neon_intr.c", + # Sync with silk_sources.mk + "silk/CNG.c", + "silk/code_signs.c", + "silk/init_decoder.c", + "silk/decode_core.c", + "silk/decode_frame.c", + "silk/decode_parameters.c", + "silk/decode_indices.c", + "silk/decode_pulses.c", + "silk/decoder_set_fs.c", + "silk/dec_API.c", + "silk/enc_API.c", + "silk/encode_indices.c", + "silk/encode_pulses.c", + "silk/gain_quant.c", + "silk/interpolate.c", + "silk/LP_variable_cutoff.c", + "silk/NLSF_decode.c", + "silk/NSQ.c", + "silk/NSQ_del_dec.c", + "silk/PLC.c", + "silk/shell_coder.c", + "silk/tables_gain.c", + "silk/tables_LTP.c", + "silk/tables_NLSF_CB_NB_MB.c", + "silk/tables_NLSF_CB_WB.c", + "silk/tables_other.c", + "silk/tables_pitch_lag.c", + "silk/tables_pulses_per_block.c", + "silk/VAD.c", + "silk/control_audio_bandwidth.c", + "silk/quant_LTP_gains.c", + "silk/VQ_WMat_EC.c", + "silk/HP_variable_cutoff.c", + "silk/NLSF_encode.c", + "silk/NLSF_VQ.c", + "silk/NLSF_unpack.c", + "silk/NLSF_del_dec_quant.c", + "silk/process_NLSFs.c", + "silk/stereo_LR_to_MS.c", + "silk/stereo_MS_to_LR.c", + "silk/check_control_input.c", + "silk/control_SNR.c", + "silk/init_encoder.c", + "silk/control_codec.c", + "silk/A2NLSF.c", + "silk/ana_filt_bank_1.c", + "silk/biquad_alt.c", + "silk/bwexpander_32.c", + "silk/bwexpander.c", + "silk/debug.c", + "silk/decode_pitch.c", + "silk/inner_prod_aligned.c", + "silk/lin2log.c", + "silk/log2lin.c", + "silk/LPC_analysis_filter.c", + "silk/LPC_inv_pred_gain.c", + "silk/table_LSF_cos.c", + "silk/NLSF2A.c", + "silk/NLSF_stabilize.c", + "silk/NLSF_VQ_weights_laroia.c", + "silk/pitch_est_tables.c", + "silk/resampler.c", + "silk/resampler_down2_3.c", + "silk/resampler_down2.c", + "silk/resampler_private_AR2.c", + "silk/resampler_private_down_FIR.c", + "silk/resampler_private_IIR_FIR.c", + "silk/resampler_private_up2_HQ.c", + "silk/resampler_rom.c", + "silk/sigm_Q15.c", + "silk/sort.c", + "silk/sum_sqr_shift.c", + "silk/stereo_decode_pred.c", + "silk/stereo_encode_pred.c", + "silk/stereo_find_predictor.c", + "silk/stereo_quant_pred.c", +] + +opus_sources_silk = [] + +if env["platform"] in ["android", "iphone", "javascript"]: + env.Append(CPPDEFINES=["FIXED_POINT"]) + opus_sources_silk = [ + "silk/fixed/LTP_analysis_filter_FIX.c", + "silk/fixed/LTP_scale_ctrl_FIX.c", + "silk/fixed/corrMatrix_FIX.c", + "silk/fixed/encode_frame_FIX.c", + "silk/fixed/find_LPC_FIX.c", + "silk/fixed/find_LTP_FIX.c", + "silk/fixed/find_pitch_lags_FIX.c", + "silk/fixed/find_pred_coefs_FIX.c", + "silk/fixed/noise_shape_analysis_FIX.c", + "silk/fixed/prefilter_FIX.c", + "silk/fixed/process_gains_FIX.c", + "silk/fixed/regularize_correlations_FIX.c", + "silk/fixed/residual_energy16_FIX.c", + "silk/fixed/residual_energy_FIX.c", + "silk/fixed/solve_LS_FIX.c", + "silk/fixed/warped_autocorrelation_FIX.c", + "silk/fixed/apply_sine_window_FIX.c", + "silk/fixed/autocorr_FIX.c", + "silk/fixed/burg_modified_FIX.c", + "silk/fixed/k2a_FIX.c", + "silk/fixed/k2a_Q16_FIX.c", + "silk/fixed/pitch_analysis_core_FIX.c", + "silk/fixed/vector_ops_FIX.c", + "silk/fixed/schur64_FIX.c", + "silk/fixed/schur_FIX.c", + ] +else: + opus_sources_silk = [ + "silk/float/apply_sine_window_FLP.c", + "silk/float/corrMatrix_FLP.c", + "silk/float/encode_frame_FLP.c", + "silk/float/find_LPC_FLP.c", + "silk/float/find_LTP_FLP.c", + "silk/float/find_pitch_lags_FLP.c", + "silk/float/find_pred_coefs_FLP.c", + "silk/float/LPC_analysis_filter_FLP.c", + "silk/float/LTP_analysis_filter_FLP.c", + "silk/float/LTP_scale_ctrl_FLP.c", + "silk/float/noise_shape_analysis_FLP.c", + "silk/float/prefilter_FLP.c", + "silk/float/process_gains_FLP.c", + "silk/float/regularize_correlations_FLP.c", + "silk/float/residual_energy_FLP.c", + "silk/float/solve_LS_FLP.c", + "silk/float/warped_autocorrelation_FLP.c", + "silk/float/wrappers_FLP.c", + "silk/float/autocorrelation_FLP.c", + "silk/float/burg_modified_FLP.c", + "silk/float/bwexpander_FLP.c", + "silk/float/energy_FLP.c", + "silk/float/inner_product_FLP.c", + "silk/float/k2a_FLP.c", + "silk/float/levinsondurbin_FLP.c", + "silk/float/LPC_inv_pred_gain_FLP.c", + "silk/float/pitch_analysis_core_FLP.c", + "silk/float/scale_copy_vector_FLP.c", + "silk/float/scale_vector_FLP.c", + "silk/float/schur_FLP.c", + "silk/float/sort_FLP.c", + ] +aec3_sources = [ + "AEC3/audio_processing/aec3/adaptive_fir_filter.cc", + "AEC3/audio_processing/aec3/adaptive_fir_filter_erl.cc", + "AEC3/audio_processing/aec3/aec3_common.cc", + "AEC3/audio_processing/aec3/aec3_fft.cc", + "AEC3/audio_processing/aec3/aec_state.cc", + "AEC3/audio_processing/aec3/alignment_mixer.cc", + "AEC3/audio_processing/aec3/api_call_jitter_metrics.cc", + "AEC3/audio_processing/aec3/block_buffer.cc", + "AEC3/audio_processing/aec3/block_delay_buffer.cc", + "AEC3/audio_processing/aec3/block_framer.cc", + "AEC3/audio_processing/aec3/block_processor.cc", + "AEC3/audio_processing/aec3/block_processor_metrics.cc", + "AEC3/audio_processing/aec3/clockdrift_detector.cc", + "AEC3/audio_processing/aec3/comfort_noise_generator.cc", + "AEC3/audio_processing/aec3/decimator.cc", + "AEC3/audio_processing/aec3/dominant_nearend_detector.cc", + "AEC3/audio_processing/aec3/downsampled_render_buffer.cc", + "AEC3/audio_processing/aec3/echo_audibility.cc", + "AEC3/audio_processing/aec3/echo_canceller3.cc", + "AEC3/audio_processing/aec3/echo_path_delay_estimator.cc", + "AEC3/audio_processing/aec3/echo_path_variability.cc", + "AEC3/audio_processing/aec3/echo_remover.cc", + "AEC3/audio_processing/aec3/echo_remover_metrics.cc", + "AEC3/audio_processing/aec3/erle_estimator.cc", + "AEC3/audio_processing/aec3/erl_estimator.cc", + "AEC3/audio_processing/aec3/fft_buffer.cc", + "AEC3/audio_processing/aec3/filter_analyzer.cc", + "AEC3/audio_processing/aec3/frame_blocker.cc", + "AEC3/audio_processing/aec3/fullband_erle_estimator.cc", + "AEC3/audio_processing/aec3/main_filter_update_gain.cc", + "AEC3/audio_processing/aec3/matched_filter.cc", + "AEC3/audio_processing/aec3/matched_filter_lag_aggregator.cc", + "AEC3/audio_processing/aec3/moving_average.cc", + "AEC3/audio_processing/aec3/render_buffer.cc", + "AEC3/audio_processing/aec3/render_delay_buffer.cc", + "AEC3/audio_processing/aec3/render_delay_controller.cc", + "AEC3/audio_processing/aec3/render_delay_controller_metrics.cc", + "AEC3/audio_processing/aec3/render_signal_analyzer.cc", + "AEC3/audio_processing/aec3/residual_echo_estimator.cc", + "AEC3/audio_processing/aec3/reverb_decay_estimator.cc", + "AEC3/audio_processing/aec3/reverb_frequency_response.cc", + "AEC3/audio_processing/aec3/reverb_model.cc", + "AEC3/audio_processing/aec3/reverb_model_estimator.cc", + "AEC3/audio_processing/aec3/shadow_filter_update_gain.cc", + "AEC3/audio_processing/aec3/signal_dependent_erle_estimator.cc", + "AEC3/audio_processing/aec3/spectrum_buffer.cc", + "AEC3/audio_processing/aec3/stationarity_estimator.cc", + "AEC3/audio_processing/aec3/subband_erle_estimator.cc", + "AEC3/audio_processing/aec3/subband_nearend_detector.cc", + "AEC3/audio_processing/aec3/subtractor.cc", + "AEC3/audio_processing/aec3/subtractor_output.cc", + "AEC3/audio_processing/aec3/subtractor_output_analyzer.cc", + "AEC3/audio_processing/aec3/suppression_filter.cc", + "AEC3/audio_processing/aec3/suppression_gain.cc", + "AEC3/audio_processing/audio_buffer.cc", + "AEC3/audio_processing/audio_frame.cc", + "AEC3/audio_processing/channel_buffer.cc", + "AEC3/audio_processing/channel_layout.cc", + "AEC3/audio_processing/high_pass_filter.cc", + "AEC3/audio_processing/logging/apm_data_dumper.cc", + "AEC3/audio_processing/logging/wav_file.cc", + "AEC3/audio_processing/logging/wav_header.cc", + "AEC3/audio_processing/resampler/push_sinc_resampler.cc", + "AEC3/audio_processing/resampler/sinc_resampler.cc", + "AEC3/audio_processing/sparse_fir_filter.cc", + "AEC3/audio_processing/splitting_filter_c.c", + "AEC3/audio_processing/splitting_filter.cc", + "AEC3/audio_processing/three_band_filter_bank.cc", + "AEC3/audio_processing/utility/cascaded_biquad_filter.cc", + "AEC3/audio_processing/utility/ooura_fft.cc", + "AEC3/api/echo_canceller3_config.cc", + "AEC3/api/echo_canceller3_config_json.cc", + "AEC3/api/echo_canceller3_factory.cc", + "AEC3/base/system_wrappers/source/cpu_features.cc", + "AEC3/base/system_wrappers/source/field_trial.cc", + "AEC3/base/abseil/absl/base/internal/throw_delegate.cc", + "AEC3/base/abseil/absl/strings/ascii.cc", + "AEC3/base/abseil/absl/strings/charconv.cc", + "AEC3/base/abseil/absl/strings/escaping.cc", + "AEC3/base/abseil/absl/strings/internal/charconv_bigint.cc", + "AEC3/base/abseil/absl/strings/internal/charconv_parse.cc", + "AEC3/base/abseil/absl/strings/internal/memutil.cc", + "AEC3/base/abseil/absl/strings/match.cc", + "AEC3/base/abseil/absl/strings/numbers.cc", + "AEC3/base/abseil/absl/strings/string_view.cc", + "AEC3/base/abseil/absl/strings/str_cat.cc", + "AEC3/base/abseil/absl/strings/str_replace.cc", + "AEC3/base/abseil/absl/strings/str_split.cc", + "AEC3/base/abseil/absl/strings/substitute.cc", + "AEC3/base/abseil/absl/types/bad_optional_access.cc", + # "AEC3/base/jsoncpp/src/lib_json/json_reader.cpp", + # "AEC3/base/jsoncpp/src/lib_json/json_value.cpp", + # "AEC3/base/jsoncpp/src/lib_json/json_writer.cpp", + "AEC3/base/rtc_base/checks.cc", + "AEC3/base/rtc_base/memory/aligned_malloc.cc", + "AEC3/base/rtc_base/platform_thread_types.cc", + "AEC3/base/rtc_base/race_checker.cc", + "AEC3/base/rtc_base/strings/json.cc", + "AEC3/base/rtc_base/strings/string_builder.cc", + "AEC3/base/rtc_base/string_encode.cc", + "AEC3/base/rtc_base/string_to_number.cc", + "AEC3/base/rtc_base/string_utils.cc", + "AEC3/base/rtc_base/system/file_wrapper.cc", + "AEC3/base/rtc_base/time_utils.cc", +] +if enable_webrtc_logging: + aec3_sources += [ + "AEC3/base/system_wrappers/source/metrics.cc", + "AEC3/base/rtc_base/critical_section.cc", + "AEC3/base/rtc_base/logging.cc", + ] +if env["arch"] == "arm64": + aec3_sources += [ + "AEC3/audio_processing/utility/ooura_fft_neon.cc", + "AEC3/audio_processing/resampler/sinc_resampler_neon.cc", + ] +elif env["arch"] == "mips64": # Check if supported. + aec3_sources += ["AEC3/audio_processing/resampler/ooura_fft_mips.cc"] +elif env["arch"] == "x86_64" and env["platform"] != "ios": + aec3_sources += [ + "AEC3/audio_processing/utility/ooura_fft_sse2.cc", + "AEC3/audio_processing/resampler/sinc_resampler_sse.cc", + ] + +thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources + opus_sources_silk] + [ + "thirdparty/" + file for file in aec3_sources +] + +env.Prepend(CPPPATH=["#thirdparty/libogg"]) +env.Append(CPPDEFINES=["HAVE_CONFIG_H"]) +thirdparty_include_paths = [ + #"", + "celt", + "opus", + "silk", + "silk/fixed", + "silk/float", +] +env.Prepend(CPPPATH=[thirdparty_dir + "/" + dir for dir in thirdparty_include_paths]) + +if env["platform"] == "android": + if "android_arch" in env and env["android_arch"] == "armv7": + env.Append(CPPDEFINES=["OPUS_ARM_OPT"]) + elif "android_arch" in env and env["android_arch"] == "arm64v8": + env.Append(CPPDEFINES=["OPUS_ARM64_OPT"]) +elif env["platform"] == "iphone": + if "arch" in env and env["arch"] == "arm": + env.Append(CPPDEFINES=["OPUS_ARM_OPT"]) + elif "arch" in env and env["arch"] == "arm64": + env.Append(CPPDEFINES=["OPUS_ARM64_OPT"]) +elif env["platform"] == "osx": + if "arch" in env and env["arch"] == "arm64": + env.Append(CPPDEFINES=["OPUS_ARM64_OPT"]) + +sources = [Glob("*.cpp")] +sources.extend(Glob("thirdparty/libsamplerate/src/*.c")) +sources.extend(thirdparty_sources) +sources.extend(Glob("thirdparty/*.cpp")) +print(sources) +if env["platform"] == "macos": + library = env.SharedLibrary( + "bin/addons/godot_speech/bin/libgodot_speech{}.framework/libgodot_speech{}".format( + env["suffix"], env["suffix"] + ), + source=sources, + ) +elif env["platform"] == "ios": + library = env.SharedLibrary( + "bin/addons/godot_speech/bin/libgodot_speech{}.framework/libgodot_speech{}".format( + env["suffix"], env["suffix"] + ), + source=sources, + ) +else: + library = env.SharedLibrary( + "bin/addons/godot_speech/bin/libgodot_speech{}{}".format(env["suffix"], env["SHLIBSUFFIX"]), + source=sources, + ) +Default(library) diff --git a/bin/addons/godot_speech/bin/libgodot_speech.ios.template_release.arm64.framework/Info.plist b/bin/addons/godot_speech/bin/libgodot_speech.ios.template_release.arm64.framework/Info.plist new file mode 100644 index 0000000..d98a1e1 --- /dev/null +++ b/bin/addons/godot_speech/bin/libgodot_speech.ios.template_release.arm64.framework/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDevelopmentRegion + en + CFBundleExecutable + libgodot_speech.ios.template_release.arm64.dylib + CFBundleName + GodotSpeech + CFBundleDisplayName + GodotSpeech + CFBundleIdentifier + com.appsinacup.godotspeech + NSHumanReadableCopyright + Copyright (c) Speech contributors. + CFBundleVersion + 0.12.0 + CFBundleShortVersionString + 0.12.0 + CFBundlePackageType + FMWK + CSResourcesFileMapped + + DTPlatformName + iphoneos + MinimumOSVersion + 12.0 + + diff --git a/bin/addons/godot_speech/bin/libgodot_speech.ios.template_release.double.arm64.framework/Info.plist b/bin/addons/godot_speech/bin/libgodot_speech.ios.template_release.double.arm64.framework/Info.plist new file mode 100644 index 0000000..22859d3 --- /dev/null +++ b/bin/addons/godot_speech/bin/libgodot_speech.ios.template_release.double.arm64.framework/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDevelopmentRegion + en + CFBundleExecutable + libgodot_speech.ios.template_release.double.arm64.dylib + CFBundleName + GodotSpeech + CFBundleDisplayName + GodotSpeech + CFBundleIdentifier + com.appsinacup.godotspeech + NSHumanReadableCopyright + Copyright (c) Speech contributors. + CFBundleVersion + 0.12.0 + CFBundleShortVersionString + 0.12.0 + CFBundlePackageType + FMWK + CSResourcesFileMapped + + DTPlatformName + iphoneos + MinimumOSVersion + 12.0 + + diff --git a/bin/addons/godot_speech/bin/libgodot_speech.macos.template_release.double.universal.framework/Resources/Info.plist b/bin/addons/godot_speech/bin/libgodot_speech.macos.template_release.double.universal.framework/Resources/Info.plist new file mode 100644 index 0000000..0f996bc --- /dev/null +++ b/bin/addons/godot_speech/bin/libgodot_speech.macos.template_release.double.universal.framework/Resources/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDevelopmentRegion + en + CFBundleExecutable + libgodot_speech.macos.template_release.double.universal + CFBundleName + Godot Speech + CFBundleDisplayName + Godot Speech + CFBundleIdentifier + org.godot-speech.godot-speech + NSHumanReadableCopyright + Copyright (c) Speech contributors. + CFBundleVersion + 0.12.0 + CFBundleShortVersionString + 0.12.0 + CFBundlePackageType + FMWK + CSResourcesFileMapped + + DTPlatformName + macosx + LSMinimumSystemVersion + 10.12 + + diff --git a/bin/addons/godot_speech/bin/libgodot_speech.macos.template_release.universal.framework/Resources/Info.plist b/bin/addons/godot_speech/bin/libgodot_speech.macos.template_release.universal.framework/Resources/Info.plist new file mode 100644 index 0000000..afbbeeb --- /dev/null +++ b/bin/addons/godot_speech/bin/libgodot_speech.macos.template_release.universal.framework/Resources/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDevelopmentRegion + en + CFBundleExecutable + libgodot_speech.macos.template_release.universal + CFBundleName + GodotSpeech + CFBundleDisplayName + GodotSpeech + CFBundleIdentifier + com.vsekai.godotspeech + NSHumanReadableCopyright + Copyright (c) Speech contributors. + CFBundleVersion + 0.12.0 + CFBundleShortVersionString + 0.12.0 + CFBundlePackageType + FMWK + CSResourcesFileMapped + + DTPlatformName + macosx + LSMinimumSystemVersion + 10.12 + + diff --git a/bin/addons/godot_speech/godot_speech.gdextension b/bin/addons/godot_speech/godot_speech.gdextension new file mode 100644 index 0000000..e71995e --- /dev/null +++ b/bin/addons/godot_speech/godot_speech.gdextension @@ -0,0 +1,53 @@ +[configuration] + +entry_symbol = "godot_speech_library_init" +compatibility_minimum = 4.2 + +[libraries] + +macos.debug = "bin/libgodot_speech.macos.template_debug.universal.framework" +macos.release = "bin/libgodot_speech.macos.template_release.universal.framework" +macos.debug.double = "bin/libgodot_speech.macos.template_release.double.universal.framework" +macos.release.double = "bin/libgodot_speech.macos.template_release.double.universal.framework" + +ios.debug = "bin/libgodot_speech.ios.template_release.arm64.dylib" +ios.release = "bin/libgodot_speech.ios.template_release.arm64.dylib" +ios.debug.double = "bin/libgodot_speech.ios.template_release.double.arm64.dylib" +ios.release.double = "bin/libgodot_speech.ios.template_release.double.arm64.dylib" + +windows.debug.x86_32 = "bin/libgodot_speech.windows.template_release.x86_32.dll" +windows.release.x86_32 = "bin/libgodot_speech.windows.template_release.x86_32.dll" +windows.debug.x86_64 = "bin/libgodot_speech.windows.template_release.x86_64.dll" +windows.release.x86_64 = "bin/libgodot_speech.windows.template_release.x86_64.dll" +windows.debug.double.x86_32 = "bin/libgodot_speech.windows.template_release.double.x86_32.dll" +windows.release.double.x86_32 = "bin/libgodot_speech.windows.template_release.double.x86_32.dll" +windows.debug.double.x86_64 = "bin/libgodot_speech.windows.template_release.double.x86_64.dll" +windows.release.double.x86_64 = "bin/libgodot_speech.windows.template_release.double.x86_64.dll" + +linux.debug.x86_64 = "bin/libgodot_speech.linux.template_release.x86_64.so" +linux.release.x86_64 = "bin/libgodot_speech.linux.template_release.x86_64.so" +linux.debug.double.x86_64 = "bin/libgodot_speech.linux.template_release.double.x86_64.so" +linux.release.double.x86_64 = "bin/libgodot_speech.linux.template_release.double.x86_64.so" + +android.debug.x86_64 = "bin/libgodot_speech.android.template_release.x86_64.so" +android.release.x86_64 = "bin/libgodot_speech.android.template_release.x86_64.so" +android.debug.x86_32 = "bin/libgodot_speech.android.template_release.x86_32.so" +android.release.x86_32 = "bin/libgodot_speech.android.template_release.x86_32.so" +android.debug.arm64 = "bin/libgodot_speech.android.template_release.arm64.so" +android.release.arm64 = "bin/libgodot_speech.android.template_release.arm64.so" +android.debug.arm32 = "bin/libgodot_speech.android.template_release.arm32.so" +android.release.arm32 = "bin/libgodot_speech.android.template_release.arm32.so" + +android.debug.double.x86_64 = "bin/libgodot_speech.android.template_release.double.x86_64.so" +android.release.double.x86_64 = "bin/libgodot_speech.android.template_release.double.x86_64.so" +android.debug.double.x86_32 = "bin/libgodot_speech.android.template_release.double.x86_32.so" +android.release.double.x86_32 = "bin/libgodot_speech.android.template_release.double.x86_32.so" +android.debug.double.arm64 = "bin/libgodot_speech.android.template_release.double.arm64.so" +android.release.double.arm64 = "bin/libgodot_speech.android.template_release.double.arm64.so" +android.debug.double.arm32 = "bin/libgodot_speech.android.template_release.double.arm32.so" +android.release.double.arm32 = "bin/libgodot_speech.android.template_release.double.arm32.so" + +web.debug.wasm32 = "bin/libgodot_speech.web.template_release.wasm32.wasm" +web.release.wasm32 = "bin/libgodot_speech.web.template_release.wasm32.wasm" +web.debug.double.wasm32 = "bin/libgodot_speech.web.template_release.double.wasm32.wasm" +web.release.double.wasm32 = "bin/libgodot_speech.web.template_release.double.wasm32.wasm" diff --git a/build_godot-cpp.sh b/build_godot-cpp.sh new file mode 100755 index 0000000..130c34c --- /dev/null +++ b/build_godot-cpp.sh @@ -0,0 +1,7 @@ +cd ../godot +# Create output_header_mapping.json file +python ../godot-speech/thirdparty/godot-cpp/compat_generator.py +cp output_header_mapping.json ../godot-speech/thirdparty/godot-cpp/output_header_mapping_godot.json +cd ../godot-speech/thirdparty/godot-cpp +scons +cd ../.. diff --git a/demo/.gitignore b/demo/.gitignore deleted file mode 100644 index 16293bd..0000000 --- a/demo/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.godot diff --git a/demo/LICENSE b/demo/LICENSE deleted file mode 100644 index 08a95d9..0000000 --- a/demo/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2022 K. S. Ernest (iFire) Lee & V-Sekai -Copyright (c) 2019 SaracenOne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/demo/default_bus_layout.tres b/demo/default_bus_layout.tres deleted file mode 100644 index 29e49cf..0000000 --- a/demo/default_bus_layout.tres +++ /dev/null @@ -1,19 +0,0 @@ -[gd_resource type="AudioBusLayout" load_steps=3 format=3 uid="uid://bdisip03skrxl"] - -[sub_resource type="AudioEffectCapture" id="AudioEffectCapture_iefbo"] -resource_name = "EchoCancellation" - -[sub_resource type="AudioEffectCapture" id="AudioEffectCapture_htrdp"] -resource_name = "Stream" - -[resource] -bus/0/effect/0/effect = SubResource("AudioEffectCapture_iefbo") -bus/0/effect/0/enabled = true -bus/1/name = &"Mic" -bus/1/solo = false -bus/1/mute = true -bus/1/bypass_fx = false -bus/1/volume_db = 0.696087 -bus/1/send = &"Mute" -bus/1/effect/0/effect = SubResource("AudioEffectCapture_htrdp") -bus/1/effect/0/enabled = true diff --git a/demo/export_presets.cfg b/demo/export_presets.cfg deleted file mode 100644 index 6ac924a..0000000 --- a/demo/export_presets.cfg +++ /dev/null @@ -1,47 +0,0 @@ -[preset.0] - -name="Windows Desktop" -platform="Windows Desktop" -runnable=true -custom_features="" -export_filter="all_resources" -include_filter="" -exclude_filter="" -export_path="../../../../Speech Voip Demo.exe" -encryption_include_filters="" -encryption_exclude_filters="" -encrypt_pck=false -encrypt_directory=false -script_export_mode=1 -script_encryption_key="" - -[preset.0.options] - -custom_template/debug="C:/Users/elee/Chibifire/groups-engine-workspace/godot/bin/godot.windows.tools.64.exe" -custom_template/release="C:/Users/elee/Chibifire/groups-engine-workspace/godot/bin/godot.windows.tools.64.exe" -debug/export_console_script=2 -binary_format/64_bits=true -binary_format/embed_pck=false -texture_format/bptc=true -texture_format/s3tc=true -texture_format/etc=false -texture_format/etc2=false -texture_format/no_bptc_fallbacks=false -codesign/enable=false -codesign/identity_type=0 -codesign/identity="" -codesign/password="" -codesign/timestamp=true -codesign/timestamp_server_url="" -codesign/digest_algorithm=1 -codesign/description="" -codesign/custom_options=PackedStringArray() -application/modify_resources=true -application/icon="" -application/file_version="" -application/product_version="" -application/company_name="" -application/product_name="" -application/file_description="" -application/copyright="" -application/trademarks="" diff --git a/demo/icon.png b/demo/icon.png deleted file mode 100644 index 6c6d133..0000000 Binary files a/demo/icon.png and /dev/null differ diff --git a/demo/icon.png.import b/demo/icon.png.import deleted file mode 100644 index bfe2ee5..0000000 --- a/demo/icon.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dkuj6eirnsdmw" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/demo/project.godot b/demo/project.godot deleted file mode 100644 index 05ee9b2..0000000 --- a/demo/project.godot +++ /dev/null @@ -1,40 +0,0 @@ -; Engine configuration file. -; It's best edited using the editor UI and not directly, -; since the parameters that go here are not all obvious. -; -; Format: -; [section] ; section goes between [] -; param=value ; assign values to parameters - -config_version=5 - -[application] - -config/name="Speech Voip Demo" -run/main_scene="res://vsk_speech/scenes/entry_point.tscn" -config/features=PackedStringArray("4.3", "Double Precision") -config/icon="res://icon.png" - -[audio] - -driver/enable_input=true -driver/mix_rate=48000 -enable_audio_input=true -mix_rate=48000 - -[autoload] - -network_layer="*res://vsk_speech/scenes/network_layer.gd" - -[editor_plugins] - -enabled=PackedStringArray() - -[gdnative] - -singletons=[] -singletons_disabled=[] - -[rendering] - -quality/filters/msaa=4 diff --git a/demo/vsk_speech/scenes/entry_point.gd b/demo/vsk_speech/scenes/entry_point.gd deleted file mode 100644 index 0caf813..0000000 --- a/demo/vsk_speech/scenes/entry_point.gd +++ /dev/null @@ -1,221 +0,0 @@ -extends Node - -const lobby_scene_const = preload("lobby.tscn") -const PACKET_TICK_TIMESLICE = 10 -const MIC_BUS_NAME = "Mic" -const AEC_BUS_NAME = "Master" -var lobby_scene : Node = null -var debug_output : Label = null -@onready var godot_speech : Node = get_node("GodotSpeech") -var is_connected : bool = false -var audio_players : Dictionary -var audio_mutex : Mutex = Mutex.new() -const MAX_VOICE_BUFFERS = 16 -var voice_buffers : Array = [] -var audio_start_tick: int = 0 -var voice_buffer_overrun_count: int = 0 -var voice_id: int = 0 -var voice_timeslice: int = 0 -var voice_recording_started: bool = false - -func _init() -> void: - if godot_speech == null: - return - var nodes : Array = godot_speech.get_children() - if nodes != null and nodes.size(): - for n in nodes: - n.queue_free() - - -func _exit_tree() -> void: - if godot_speech == null: - return - var nodes : Array = godot_speech.get_children() - if nodes != null and nodes.size(): - for n in nodes: - n.queue_free() - - -func get_voice_timeslice() -> int: - return voice_timeslice - - -func reset_voice_timeslice() -> void: - audio_start_tick = Time.get_ticks_msec() - voice_timeslice = 0 - - -func get_current_voice_id() -> int: - return voice_id - - -func reset_voice_id() -> void: - voice_id = 0 - - -func started() -> void: - if not godot_speech: - return - godot_speech.start_recording() - voice_recording_started = true - reset_voice_id() - reset_voice_timeslice() - - -func ended() -> void: - if not godot_speech: - return - godot_speech.end_recording() - voice_recording_started = false - - -func host(p_player_name : String, p_port : int, p_server_only : bool) -> void: - if network_layer.host_game(p_player_name, p_port, p_server_only): - if lobby_scene: - if network_layer.is_active_player(): - started() - lobby_scene.refresh_lobby(network_layer.get_full_player_list()) - confirm_connection() - - -func confirm_connection() -> void: - is_connected = true - voice_id = 0 - - -func _on_connection_success() -> void: - if network_layer.is_active_player(): - started() - if lobby_scene: - lobby_scene.on_connection_success() - lobby_scene.refresh_lobby(network_layer.get_full_player_list()) - confirm_connection() - - -func _on_connection_failed() -> void: - if lobby_scene: - lobby_scene.on_connection_failed() - - -func _player_list_changed() -> void: - if lobby_scene: - lobby_scene.refresh_lobby(network_layer.get_full_player_list()) - - -func _on_game_ended() -> void: - if network_layer.is_active_player(): - ended() - - if lobby_scene: - lobby_scene.on_game_ended() - - -func _on_game_error(p_errtxt : String) -> void: - if not lobby_scene: - return - lobby_scene.on_game_error(p_errtxt) - - -func _on_received_audio_packet(p_id : int, p_index : int, p_packet : PackedByteArray) -> void: - if network_layer.is_active_player(): - godot_speech.on_received_audio_packet(p_id, p_index, p_packet) - - -func get_ticks_since_recording_started() -> int: - return (Time.get_ticks_msec() - audio_start_tick) - - -func add_player_audio(p_id) -> void: - var audio_stream_player : AudioStreamPlayer = AudioStreamPlayer.new() - audio_players[p_id] = audio_stream_player - audio_stream_player.set_name(str(p_id)) - add_child(audio_stream_player, true) - audio_stream_player.owner = owner - godot_speech.add_player_audio(p_id, audio_stream_player) - -func remove_player_audio(p_id) -> void: - if not godot_speech.get_property_list().has("voice_controller"): - return - godot_speech.voice_controller.remove_player_audio(p_id) - var audio_stream_player : AudioStreamPlayer = audio_players[p_id] - audio_stream_player.queue_free() - audio_players.erase(p_id) - -func setup_connections() -> void: - if network_layer.connect("connection_failed", self._on_connection_failed) != OK: - printerr("connection_failed could not be connected!") - if network_layer.connect("connection_succeeded", self._on_connection_success) != OK: - printerr("connection_succeeded could not be connected!") - if network_layer.connect("player_list_changed", self._player_list_changed) != OK: - printerr("player_list_changed could not be connected!") - if network_layer.connect("game_ended", self._on_game_ended) != OK: - printerr("game_ended could not be connected!") - if network_layer.connect("game_error", self._on_game_error) != OK: - printerr("game_error could not be connected!") - if network_layer.connect("received_audio_packet", self._on_received_audio_packet) != OK: - printerr("received_audio_packet could not be connected!") - if network_layer.connect("peer_connected", self.add_player_audio): - printerr("peer_connected could not be connected!") - if network_layer.connect("peer_disconnected", self.remove_player_audio): - printerr("peer_disconnected could not be connected!") - if not lobby_scene: - return - if lobby_scene.connect("host_requested", self.host) != OK: - printerr("audio_packet_processed could not be connected!") - - -func process_input_audio(_delta : float) -> void: - if not godot_speech: - return - var copied_voice_buffers : Array = godot_speech.copy_and_clear_buffers() - var current_skipped: int = godot_speech.get_skipped_audio_packets() - godot_speech.clear_skipped_audio_packets() - voice_id += current_skipped - voice_timeslice = int(float(get_ticks_since_recording_started()) / PACKET_TICK_TIMESLICE)\ - - (copied_voice_buffers.size() + int(current_skipped)) - if copied_voice_buffers.size() > 0: - for voice_buffer in copied_voice_buffers: - voice_buffers.push_back(voice_buffer) - if voice_buffers.size() > MAX_VOICE_BUFFERS: - printerr("Voice buffer overrun!") - voice_buffers.pop_front() - voice_buffer_overrun_count += 1 - - -# This function increments the internal voice_id. -# Make sure to get it before calling it. -func get_voice_buffers() -> Array: - # Increment the internal voice id. - voice_id += voice_buffers.size() - - var copied_voice_buffers : Array = voice_buffers - voice_buffers = [] - return copied_voice_buffers - - -func _process(p_delta) -> void: - if not voice_recording_started: - return - process_input_audio(p_delta) - var index : int = get_current_voice_id() - var buffers: Array = get_voice_buffers() - for buffer in buffers: - network_layer.send_audio_packet(index, buffer["byte_array"].slice(0, buffer["buffer_size"])) - index += 1 - var speech_stat_dict : Dictionary = godot_speech.get_stats() - var stat_dict : Dictionary = godot_speech.get_playback_stats(speech_stat_dict) - var json : JSON = JSON.new() - debug_output.set_text(json.stringify(stat_dict, "\t")) - - -func _ready() -> void: - lobby_scene = lobby_scene_const.instantiate() - add_child(lobby_scene, true) - debug_output = lobby_scene.get_node("debug_output") - debug_output.set_text("Ready.") - var microphone_stream : AudioStreamPlayer = get_node("MicrophoneStreamAudio") - godot_speech.set_audio_input_stream_player(microphone_stream) - godot_speech.set_streaming_bus(MIC_BUS_NAME) - godot_speech.set_error_cancellation_bus(AEC_BUS_NAME) - setup_connections() - set_process(true) diff --git a/demo/vsk_speech/scenes/entry_point.tscn b/demo/vsk_speech/scenes/entry_point.tscn deleted file mode 100644 index a888a33..0000000 --- a/demo/vsk_speech/scenes/entry_point.tscn +++ /dev/null @@ -1,57 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://qb561bq27ksx"] - -[ext_resource type="Script" path="res://vsk_speech/scenes/entry_point.gd" id="1_rgc2c"] - -[sub_resource type="AudioStreamMicrophone" id="AudioStreamMicrophone_tmvyd"] - -[node name="EntryPoint" type="Node"] -script = ExtResource("1_rgc2c") - -[node name="MicrophoneStreamAudio" type="AudioStreamPlayer" parent="."] -stream = SubResource("AudioStreamMicrophone_tmvyd") -volume_db = 1.0 -bus = &"Mic" - -[node name="GodotSpeech" type="Speech" parent="."] - -[node name="SpeechProcessor" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor2" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor3" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor4" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor5" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor6" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor7" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor8" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor9" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor10" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor11" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor12" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor13" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor14" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor15" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor16" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor17" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor18" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor19" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor20" type="SpeechProcessor" parent="GodotSpeech"] - -[node name="SpeechProcessor21" type="SpeechProcessor" parent="GodotSpeech"] diff --git a/demo/vsk_speech/scenes/error_dialog.tscn b/demo/vsk_speech/scenes/error_dialog.tscn deleted file mode 100644 index 87026f0..0000000 --- a/demo/vsk_speech/scenes/error_dialog.tscn +++ /dev/null @@ -1,4 +0,0 @@ -[gd_scene format=3 uid="uid://ckd3o3tkmnmr0"] - -[node name="error" type="AcceptDialog"] -size = Vector2i(176, 100) diff --git a/demo/vsk_speech/scenes/lobby.gd b/demo/vsk_speech/scenes/lobby.gd deleted file mode 100644 index 167f047..0000000 --- a/demo/vsk_speech/scenes/lobby.gd +++ /dev/null @@ -1,65 +0,0 @@ -extends Control - -signal host_requested(p_player_name, p_port, p_server_only) -@export_file var const_error_dialog_scene : String = "res://vsk_speech/scenes/error_dialog.tscn" -var error_dialog : Node = load(const_error_dialog_scene).instantiate() - -func _on_host_pressed() -> void: - if get_node("connect/name").text == "": - get_node("connect/error_label").text = "Invalid name!" - return - get_node("connect").hide() - get_node("players").show() - get_node("connect/error_label").text = "" - var player_name : String = get_node("connect/name").text - var port : int = get_node("connect/port").value - emit_signal("host_requested", player_name, port, true) - - -func _on_join_pressed() -> void: - if get_node("connect/name").text == "": - get_node("connect/error_label").text = "Invalid name!" - return - var port : int = get_node("connect/port").value - var ip : String = get_node("connect/ip").text - if not ip.is_valid_ip_address(): - get_node("connect/error_label").text = "Invalid IPv4 address!" - return - get_node("connect/error_label").text="" - get_node("connect/host").disabled = true - get_node("connect/join").disabled = true - var player_name : String = get_node("connect/name").text - network_layer.join_game(ip, port, player_name) - - -func on_connection_success() -> void: - get_node("connect").hide() - get_node("players").show() - - -func on_connection_failed() -> void: - get_node("connect/host").disabled = false - get_node("connect/join").disabled = false - get_node("connect/error_label").set_text("Connection failed.") - - -func on_game_ended() -> void: - show() - get_node("connect").show() - get_node("players").hide() - get_node("connect/host").disabled = false - - -func on_game_error(p_errtxt : String) -> void: - if error_dialog.get_parent() == null: - error_dialog.set_name("error") - add_child(error_dialog, true) - get_node("error").dialog_text = p_errtxt - get_node("error").popup_centered() - - -func refresh_lobby(p_player_names : Array) -> void: - get_node("players/list").clear() - - for p in p_player_names: - get_node("players/list").add_item(p) diff --git a/demo/vsk_speech/scenes/lobby.tscn b/demo/vsk_speech/scenes/lobby.tscn deleted file mode 100644 index f6979c6..0000000 --- a/demo/vsk_speech/scenes/lobby.tscn +++ /dev/null @@ -1,219 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://d0iiss7ddmto5"] - -[sub_resource type="GDScript" id="GDScript_mqu05"] -script/source = "extends Control - -signal host_requested(p_player_name, p_port, p_server_only) - -@export_file -var const_error_dialog_scene : String = \"res://vsk_speech/scenes/error_dialog.tscn\" - -var error_dialog : Node = load(const_error_dialog_scene).instantiate() - -func _on_host_pressed() -> void: - if get_node(\"connect/name\").text == \"\": - get_node(\"connect/error_label\").text = \"Invalid name!\" - return - - get_node(\"connect\").hide() - get_node(\"players\").show() - get_node(\"connect/error_label\").text = \"\" - - var player_name : String = get_node(\"connect/name\").text - var port : int = get_node(\"connect/port\").value - - emit_signal(\"host_requested\", player_name, port, true) - -func _on_join_pressed() -> void: - if get_node(\"connect/name\").text == \"\": - get_node(\"connect/error_label\").text = \"Invalid name!\" - return - - var port : int = get_node(\"connect/port\").value - - var ip : String = get_node(\"connect/ip\").text - if not ip.is_valid_ip_address(): - get_node(\"connect/error_label\").text = \"Invalid IPv4 address!\" - return - - get_node(\"connect/error_label\").text=\"\" - get_node(\"connect/host\").disabled = true - get_node(\"connect/join\").disabled = true - - var player_name : String = get_node(\"connect/name\").text - network_layer.join_game(ip, port, player_name) - -func on_connection_success() -> void: - get_node(\"connect\").hide() - get_node(\"players\").show() - # on_game_error(\"Connected\") - -func on_connection_failed() -> void: - get_node(\"connect/host\").disabled = false - get_node(\"connect/join\").disabled = false - get_node(\"connect/error_label\").set_text(\"Connection failed.\") - -func on_game_ended() -> void: - show() - get_node(\"connect\").show() - get_node(\"players\").hide() - get_node(\"connect/host\").disabled = false - -func on_game_error(p_errtxt : String) -> void: - if error_dialog.get_parent() == null: - error_dialog.set_name(\"error\") - add_child(error_dialog, true) - get_node(\"error\").dialog_text = p_errtxt - get_node(\"error\").popup_centered() - -func refresh_lobby(p_player_names : Array) -> void: - get_node(\"players/list\").clear() - - for p in p_player_names: - get_node(\"players/list\").add_item(p) -" - -[node name="SpeechLobby" type="Control"] -anchor_right = 1.0 -anchor_bottom = 1.0 -size_flags_horizontal = 2 -size_flags_vertical = 2 -script = SubResource("GDScript_mqu05") - -[node name="ColorRect" type="ColorRect" parent="."] -anchor_right = 1.0 -anchor_bottom = 1.0 -color = Color(0.576471, 0.25098, 0.231373, 1) - -[node name="label" type="Label" parent="."] -offset_right = 1024.0 -offset_bottom = 40.0 -size_flags_horizontal = 3 -size_flags_vertical = 3 -theme_override_colors/font_color = Color(0.843137, 0.882353, 0.909804, 1) -text = "Lobby" -horizontal_alignment = 1 - -[node name="players" type="HBoxContainer" parent="."] -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = 768.0 -grow_horizontal = 2 -grow_vertical = 2 -size_flags_horizontal = 2 -size_flags_vertical = 2 -metadata/_edit_layout_mode = 1 - -[node name="list" type="ItemList" parent="players"] -offset_right = 256.0 -offset_bottom = 600.0 -size_flags_horizontal = 3 -size_flags_vertical = 3 -metadata/_edit_group_ = true -metadata/_edit_lock_ = true - -[node name="connect" type="VFlowContainer" parent="."] -anchor_top = 0.5 -anchor_right = 1.0 -anchor_bottom = 0.5 -offset_left = 16.0 -offset_top = -236.0 -offset_right = -624.0 -offset_bottom = -172.0 -grow_horizontal = 2 -grow_vertical = 2 -size_flags_horizontal = 2 -size_flags_vertical = 2 -metadata/_edit_use_custom_anchors = false -metadata/_edit_layout_mode = 1 - -[node name="name_label" type="Label" parent="connect"] -offset_right = 51.0 -offset_bottom = 26.0 -size_flags_horizontal = 2 -size_flags_vertical = 0 -text = "Name:" - -[node name="name" type="LineEdit" parent="connect"] -offset_top = 30.0 -offset_right = 87.7656 -offset_bottom = 61.0 -size_flags_horizontal = 2 -size_flags_vertical = 2 -text = "Player" -expand_to_text_length = true -clear_button_enabled = true - -[node name="ip_label" type="Label" parent="connect"] -offset_left = 91.0 -offset_right = 111.0 -offset_bottom = 26.0 -size_flags_horizontal = 2 -size_flags_vertical = 0 -text = "IP:" - -[node name="ip" type="LineEdit" parent="connect"] -offset_left = 91.0 -offset_top = 30.0 -offset_right = 198.766 -offset_bottom = 61.0 -size_flags_horizontal = 2 -size_flags_vertical = 2 -text = "127.0.0.1" -expand_to_text_length = true -clear_button_enabled = true - -[node name="port_label" type="Label" parent="connect"] -offset_left = 202.0 -offset_right = 240.0 -offset_bottom = 26.0 -size_flags_horizontal = 2 -size_flags_vertical = 0 -text = "Port:" - -[node name="port" type="SpinBox" parent="connect"] -offset_left = 202.0 -offset_top = 30.0 -offset_right = 285.063 -offset_bottom = 61.0 -size_flags_horizontal = 2 -size_flags_vertical = 2 -max_value = 99999.0 -value = 10567.0 - -[node name="host" type="Button" parent="connect"] -offset_left = 289.0 -offset_right = 333.0 -offset_bottom = 31.0 -size_flags_horizontal = 2 -size_flags_vertical = 2 -text = "Host" - -[node name="join" type="Button" parent="connect"] -offset_left = 337.0 -offset_right = 375.0 -offset_bottom = 31.0 -size_flags_horizontal = 2 -size_flags_vertical = 2 -text = "Join" - -[node name="error_label" type="Label" parent="connect"] -offset_left = 337.0 -offset_top = 41.0 -offset_right = 338.0 -offset_bottom = 64.0 -size_flags_horizontal = 2 -size_flags_vertical = 0 -theme_override_colors/font_color = Color(0.820312, 0.291595, 0.291595, 1) - -[node name="debug_output" type="Label" parent="."] -anchor_right = 0.446 -anchor_bottom = 1.0 -offset_top = 160.0 -offset_right = 311.296 -theme_override_font_sizes/font_size = 16 -metadata/_edit_layout_mode = 1 -metadata/_edit_use_custom_anchors = true - -[connection signal="pressed" from="connect/host" to="." method="_on_host_pressed"] -[connection signal="pressed" from="connect/join" to="." method="_on_join_pressed"] diff --git a/demo/vsk_speech/scenes/network_layer.gd b/demo/vsk_speech/scenes/network_layer.gd deleted file mode 100644 index 2bb5b8f..0000000 --- a/demo/vsk_speech/scenes/network_layer.gd +++ /dev/null @@ -1,236 +0,0 @@ -extends Node - -const MAX_PEERS = 32 - -var blocking_sending_audio_packets : bool = false - -var is_server_only : bool = false -var player_name : String = "Player" -var players : Dictionary - -@export var debug_output_path : NodePath -var debug_output: Label = null - -signal peer_connected(p_id) -signal peer_disconnected(p_id) -signal player_list_changed() -signal connection_failed() -signal connection_succeeded() -signal game_ended() -signal game_error(what) -signal received_audio_packet(p_id, p_index, p_packet) - -static func bitand(a : int, b : int) -> int: - var c : int = 0 - for x in range(64): - c += c - if (a < 0): - if (b < 0): - c += 1 - a += a - b += b - return c - - -static func encode_16_bit_value(p_value : int) -> PackedByteArray: - return PackedByteArray([bitand(p_value, 0x000000ff), bitand(p_value, 0x0000ff00) >> 8]) - - -static func decode_16_bit_value(p_buffer : PackedByteArray) -> int: - var integer : int = 0 - integer = bitand(p_buffer[0], 0x000000ff) | bitand((p_buffer[1] << 8), 0x0000ff00) - return integer - - -static func encode_24_bit_value(p_value : int) -> PackedByteArray: - return PackedByteArray([bitand(p_value, 0x000000ff), bitand(p_value, 0x0000ff00) >> 8, bitand(p_value, 0x00ff0000) >> 16]) - - -static func decode_24_bit_value(p_buffer : PackedByteArray) -> int: - var integer : int = 0 - integer = bitand(p_buffer[0], 0x000000ff) | bitand((p_buffer[1] << 8), 0x0000ff00) | bitand((p_buffer[2] << 16), 0x00ff0000) - return integer - - -func is_active_player() -> bool: - if get_tree().get_multiplayer().is_server(): - if !is_server_only: - return true - else: - return false - else: - return true - - -func _player_connected(p_id : int) -> void: - print(str(p_id) + " connected!") - emit_signal("peer_connected", p_id) - - -func _player_disconnected(p_id : int) -> void: - if get_tree().get_multiplayer().is_server(): - unregister_player(p_id) - for id in players: - # Erase in the server. - rpc_id(id, StringName("unregister_player"), p_id) - emit_signal("peer_disconnected", p_id) - - -func _connected_ok() -> void: - rpc(StringName("register_player"), get_tree().get_multiplayer().get_unique_id(), player_name) - emit_signal("connection_succeeded") - - -# Callback from the SceneTree, only for the clients (not the server). -func _server_disconnected() -> void: - emit_signal("game_error", "Server disconnected") - end_game() - - -# Callback from the SceneTree, only for the clients (not the server). -func _connected_fail() -> void: - get_tree().set_multiplayer(null) # Remove the peer. - emit_signal("connection_failed") - - -func _network_peer_packet(p_id : int, packet : PackedByteArray) -> void: - var result : Array = decode_voice_packet(packet) - emit_signal("received_audio_packet", p_id, result[0], result[1]) - - -# Functions to manage the lobby. -@rpc("any_peer") -func register_player(id : int, new_player_name : String) -> void: - if get_tree().get_multiplayer().is_server(): - var remote_id: int = get_tree().get_multiplayer().get_remote_sender_id() - if is_server_only == false: - rpc_id(remote_id, StringName("register_player"), 1, player_name) - for p_id in players: - rpc_id(remote_id, StringName("register_player"), p_id, players[p_id]) - rpc_id(p_id, StringName("register_player"), remote_id, new_player_name) - players[id] = new_player_name - emit_signal("player_list_changed") - - -@rpc("any_peer") -func unregister_player(p_id : int) -> void: - var remote_id: int = p_id - if get_tree().get_multiplayer().is_server(): - remote_id = get_tree().get_multiplayer().get_remote_sender_id() - if players.erase(remote_id): - emit_signal("player_list_changed") - else: - printerr("unregister_player: invalid id " + str(remote_id)) - - -func is_network_server() -> bool: - return get_tree().get_multiplayer().is_server() - - -func host_game(new_player_name : String, port : int, p_is_server_only : bool) -> bool: - player_name = new_player_name - is_server_only = p_is_server_only - var host : ENetMultiplayerPeer = ENetMultiplayerPeer.new() - if host.create_server(port, MAX_PEERS) == OK: - get_tree().get_multiplayer().multiplayer_peer = host - host.host.compress(ENetConnection.COMPRESS_RANGE_CODER) - return true - return false - - -func join_game(ip : String, port : int, new_player_name : String) -> void: - player_name = new_player_name - var host : ENetMultiplayerPeer = ENetMultiplayerPeer.new() - if host.create_client(ip, port) == OK: - get_tree().get_multiplayer().multiplayer_peer = host - host.host.compress(ENetConnection.COMPRESS_RANGE_CODER) - - -func get_player_list() -> Array: - return players.values() - - -func get_player_ids() -> Array: - return players.keys() - - -func get_player_name() -> String: - return player_name - - -func end_game() -> void: - emit_signal("game_ended") - players.clear() - get_tree().get_multiplayer().multiplayer_peer = null - - -func encode_voice_packet(p_index : int, p_voice_buffer : PackedByteArray) -> PackedByteArray: - var encoded_index : PackedByteArray = encode_24_bit_value(p_index) - var encoded_size : PackedByteArray = encode_16_bit_value(p_voice_buffer.size()) - var new_bytes : PackedByteArray - new_bytes.append_array(encoded_index) - new_bytes.append_array(encoded_size) - new_bytes.append_array(p_voice_buffer) - return new_bytes - - -func decode_voice_packet(p_voice_buffer : PackedByteArray) -> Array: - var new_bytes : PackedByteArray = PackedByteArray() - var encoded_id : int = -1 - if p_voice_buffer.size() > 5: - var index : int = 0 - encoded_id = decode_24_bit_value(PackedByteArray([p_voice_buffer[index + 0], p_voice_buffer[index + 1], p_voice_buffer[index + 2]])) - index += 3 - var encoded_size : int = decode_16_bit_value(PackedByteArray([p_voice_buffer[index + 0], p_voice_buffer[index + 1]])) - index += 2 - new_bytes = p_voice_buffer.slice(index, index + (encoded_size)) - return [encoded_id, new_bytes] - - -func send_audio_packet(p_index : int, p_data : PackedByteArray) -> void: - if not blocking_sending_audio_packets: - var compressed_audio_packet : PackedByteArray = encode_voice_packet(p_index , p_data) - var e = get_tree().get_multiplayer().send_bytes(compressed_audio_packet, 0, MultiplayerPeer.TRANSFER_MODE_UNRELIABLE, 1) - if (e & 0xffffffff) != OK: - printerr("send_audio_packet: send_bytes failed! %s" % e) - - -func get_full_player_list() -> Array: - var player_list : Array = get_player_list() - player_list.sort() - if is_active_player(): - player_list.push_front(get_player_name() + " (You)") - return player_list - - -func _input(p_event : InputEvent) -> void: - if not p_event is InputEventKey: - return - if p_event.keycode != KEY_X: - return - if p_event.pressed: - blocking_sending_audio_packets = true - else: - blocking_sending_audio_packets = false - - -func _ready() -> void: - var connect_result : int = OK - if get_tree().get_multiplayer().connect("peer_connected", self._player_connected) != OK: - printerr("could not connect network_peer_connected!") - if get_tree().get_multiplayer().connect("peer_disconnected", self._player_disconnected) != OK: - printerr("could not connect network_peer_disconnected!") - if get_tree().get_multiplayer().connect("connected_to_server", self._connected_ok) != OK: - printerr("could not connect connected_to_server!") - if get_tree().get_multiplayer().connect("connection_failed", self._connected_fail) != OK: - printerr("could not connect connection_failed!") - if get_tree().get_multiplayer().connect("server_disconnected", self._server_disconnected) != OK: - printerr("could not connect server_disconnected!") - connect_result = get_tree().get_multiplayer().connect("peer_packet", self._network_peer_packet) - if connect_result == OK: - return - printerr("NetworkManager: network_peer_packet could not be connected!") - - -func _init() -> void: - players = Dictionary() diff --git a/output_header_mapping_godot.json b/output_header_mapping_godot.json new file mode 100644 index 0000000..103934c --- /dev/null +++ b/output_header_mapping_godot.json @@ -0,0 +1,24753 @@ +{ + "drivers/register_driver_types.h": { + "classes": [], + "structs": [], + "defines": [ + "REGISTER_DRIVER_TYPES_H" + ] + }, + "drivers/gles3/rasterizer_gles3.h": { + "classes": [ + "RasterizerGLES3" + ], + "structs": [], + "defines": [ + "RASTERIZER_GLES3_H" + ] + }, + "drivers/gles3/shader_gles3.h": { + "classes": [ + "ShaderGLES3" + ], + "structs": [ + "TextureUniformData", + "TexUnitPair", + "UBOPair", + "Specialization", + "Feedback", + "Version", + "Specialization", + "StageTemplate", + "Chunk" + ], + "defines": [ + "SHADER_GLES3_H" + ] + }, + "drivers/gles3/rasterizer_scene_gles3.h": { + "classes": [ + "RasterizerSceneGLES3", + "GeometryInstanceGLES3" + ], + "structs": [ + "RenderDataGLES3", + "InstanceSort", + "SceneGlobals", + "LightData", + "DirectionalLightData", + "ShadowData", + "DirectionalShadowData", + "GeometryInstanceSurface", + "GeometryInstanceLightmapSH", + "LightPass", + "SceneState", + "UBO", + "MultiviewUBO", + "TonemapUBO", + "RenderListParameters", + "RenderList", + "SortByKey", + "SortByDepth", + "SortByReverseDepthAndPriority", + "CameraAttributes", + "SkyGlobals", + "Sky" + ], + "defines": [ + "RASTERIZER_SCENE_GLES3_H" + ] + }, + "drivers/gles3/rasterizer_canvas_gles3.h": { + "classes": [ + "RasterizerCanvasGLES3" + ], + "structs": [ + "CanvasLight", + "OccluderPolygon", + "LightUniform", + "StateBuffer", + "PolygonBuffers", + "InstanceData", + "Data", + "Batch", + "DataBuffer", + "State" + ], + "defines": [ + "RASTERIZER_CANVAS_GLES3_H" + ] + }, + "drivers/gles3/storage/particles_storage.h": { + "classes": [ + "ParticlesStorage" + ], + "structs": [ + "ParticleInstanceData3D", + "ParticleInstanceData2D", + "ParticlesViewSort", + "ParticlesFrameParams", + "Attractor", + "Collider", + "Particles", + "ParticlesShader", + "ParticlesCollision", + "ParticlesCollisionInstance" + ], + "defines": [ + "PARTICLES_STORAGE_GLES3_H" + ] + }, + "drivers/gles3/storage/light_storage.h": { + "classes": [ + "LightStorage" + ], + "structs": [ + "Light", + "LightInstance", + "ShadowTransform", + "ReflectionProbe", + "Lightmap", + "BSP", + "LightmapInstance", + "ShadowAtlas", + "Quadrant", + "Shadow", + "DirectionalShadow" + ], + "defines": [ + "LIGHT_STORAGE_GLES3_H" + ] + }, + "drivers/gles3/storage/material_storage.h": { + "classes": [ + "MaterialStorage" + ], + "structs": [ + "ShaderData", + "Shader", + "MaterialData", + "Material", + "CanvasShaderData", + "CanvasMaterialData", + "SkyShaderData", + "SkyMaterialData", + "SceneShaderData", + "SceneMaterialData", + "ParticlesShaderData", + "ParticleProcessMaterialData", + "GlobalShaderUniforms", + "Variable", + "Value", + "ValueInt", + "ValueUInt", + "ValueUsage", + "Shaders" + ], + "defines": [ + "MATERIAL_STORAGE_GLES3_H" + ] + }, + "drivers/gles3/storage/config.h": { + "classes": [ + "Config" + ], + "structs": [], + "defines": [ + "CONFIG_GLES3_H" + ] + }, + "drivers/gles3/storage/utilities.h": { + "classes": [ + "Utilities" + ], + "structs": [ + "VisibilityNotifier", + "ResourceAllocation", + "Frame" + ], + "defines": [ + "UTILITIES_GLES3_H", + "MAX_QUERIES", + "FRAME_COUNT" + ] + }, + "drivers/gles3/storage/texture_storage.h": { + "classes": [ + "TextureStorage" + ], + "structs": [ + "CanvasTexture", + "Texture", + "RenderTarget", + "RTOverridden", + "FBOCacheEntry", + "TextureAtlas", + "Texture", + "SortItem", + "RenderTargetSDF" + ], + "defines": [ + "TEXTURE_STORAGE_GLES3_H", + "_GL_TEXTURE_MAX_ANISOTROPY_EXT", + "_GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT", + "_EXT_COMPRESSED_RGBA_S3TC_DXT1_EXT", + "_EXT_COMPRESSED_RGBA_S3TC_DXT3_EXT", + "_EXT_COMPRESSED_RGBA_S3TC_DXT5_EXT", + "_EXT_COMPRESSED_RED_RGTC1_EXT", + "_EXT_COMPRESSED_RED_RGTC1", + "_EXT_COMPRESSED_SIGNED_RED_RGTC1", + "_EXT_COMPRESSED_RG_RGTC2", + "_EXT_COMPRESSED_SIGNED_RG_RGTC2", + "_EXT_COMPRESSED_SIGNED_RED_RGTC1_EXT", + "_EXT_COMPRESSED_RED_GREEN_RGTC2_EXT", + "_EXT_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT", + "_EXT_ETC1_RGB8_OES", + "_EXT_COMPRESSED_RGBA_BPTC_UNORM", + "_EXT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM", + "_EXT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT", + "_EXT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT", + "_EXT_COMPRESSED_R11_EAC", + "_EXT_COMPRESSED_SIGNED_R11_EAC", + "_EXT_COMPRESSED_RG11_EAC", + "_EXT_COMPRESSED_SIGNED_RG11_EAC", + "_EXT_COMPRESSED_RGB8_ETC2", + "_EXT_COMPRESSED_SRGB8_ETC2", + "_EXT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", + "_EXT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2", + "_EXT_COMPRESSED_RGBA8_ETC2_EAC", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", + "_EXT_COMPRESSED_RGBA_ASTC_4x4_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_5x4_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_5x5_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_6x5_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_6x6_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_8x5_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_8x6_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_8x8_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_10x5_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_10x6_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_10x8_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_10x10_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_12x10_KHR", + "_EXT_COMPRESSED_RGBA_ASTC_12x12_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR", + "_EXT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR", + "_GL_TEXTURE_EXTERNAL_OES", + "_EXT_TEXTURE_CUBE_MAP_SEAMLESS" + ] + }, + "drivers/gles3/storage/mesh_storage.h": { + "classes": [ + "MeshStorage" + ], + "structs": [ + "Mesh", + "Surface", + "Attrib", + "Version", + "Wireframe", + "LOD", + "BlendShape", + "MeshInstance", + "Surface", + "MultiMesh", + "Skeleton" + ], + "defines": [ + "MESH_STORAGE_GLES3_H" + ] + }, + "drivers/gles3/storage/render_scene_buffers_gles3.h": { + "classes": [ + "RenderSceneBuffersGLES3" + ], + "structs": [ + "FBDEF", + "RTMSAA3D", + "GLOW" + ], + "defines": [ + "RENDER_SCENE_BUFFERS_GLES3_H" + ] + }, + "drivers/gles3/shaders/skeleton.glsl.gen.h": { + "classes": [ + "SkeletonShaderGLES3" + ], + "structs": [], + "defines": [ + "SKELETON_GLSL_GEN_HGLES3_GLES3", + "_FU", + "MODE_BLEND_PASS" + ] + }, + "drivers/gles3/shaders/cubemap_filter.glsl.gen.h": { + "classes": [ + "CubemapFilterShaderGLES3" + ], + "structs": [], + "defines": [ + "CUBEMAP_FILTER_GLSL_GEN_HGLES3_GLES3", + "_FU", + "MODE_DIRECT_WRITE" + ] + }, + "drivers/gles3/shaders/sky.glsl.gen.h": { + "classes": [ + "SkyShaderGLES3" + ], + "structs": [], + "defines": [ + "SKY_GLSL_GEN_HGLES3_GLES3", + "_FU", + "USE_HALF_RES_PASS", + "USE_QUARTER_RES_PASS", + "USE_CUBEMAP_PASS", + "USE_CUBEMAP_PASS", + "USE_HALF_RES_PASS", + "USE_CUBEMAP_PASS", + "USE_QUARTER_RES_PASS" + ] + }, + "drivers/gles3/shaders/canvas.glsl.gen.h": { + "classes": [ + "CanvasShaderGLES3" + ], + "structs": [], + "defines": [ + "CANVAS_GLSL_GEN_HGLES3_GLES3", + "_FU", + "USE_NINEPATCH", + "USE_PRIMITIVE", + "USE_ATTRIBUTES", + "USE_ATTRIBUTES", + "USE_INSTANCING" + ] + }, + "drivers/gles3/shaders/canvas_sdf.glsl.gen.h": { + "classes": [ + "CanvasSdfShaderGLES3" + ], + "structs": [], + "defines": [ + "CANVAS_SDF_GLSL_GEN_HGLES3_GLES3", + "_FU", + "MODE_LOAD", + "MODE_LOAD_SHRINK", + "MODE_PROCESS", + "MODE_STORE", + "MODE_STORE_SHRINK" + ] + }, + "drivers/gles3/shaders/canvas_occlusion.glsl.gen.h": { + "classes": [ + "CanvasOcclusionShaderGLES3" + ], + "structs": [], + "defines": [ + "CANVAS_OCCLUSION_GLSL_GEN_HGLES3_GLES3", + "_FU", + "MODE_SHADOW", + "MODE_SHADOW", + "USE_RGBA_SHADOWS" + ] + }, + "drivers/gles3/shaders/scene.glsl.gen.h": { + "classes": [ + "SceneShaderGLES3" + ], + "structs": [], + "defines": [ + "SCENE_GLSL_GEN_HGLES3_GLES3", + "_FU", + "USE_INSTANCING", + "MODE_RENDER_DEPTH", + "MODE_RENDER_DEPTH", + "USE_INSTANCING" + ] + }, + "drivers/gles3/shaders/copy.glsl.gen.h": { + "classes": [ + "CopyShaderGLES3" + ], + "structs": [], + "defines": [ + "COPY_GLSL_GEN_HGLES3_GLES3", + "_FU", + "MODE_SIMPLE_COPY", + "USE_COPY_SECTION", + "MODE_SIMPLE_COPY", + "MODE_GAUSSIAN_BLUR", + "MODE_MIPMAP", + "MODE_SIMPLE_COLOR", + "USE_COPY_SECTION", + "CUBE_TO_OCTAHEDRAL", + "USE_COPY_SECTION" + ] + }, + "drivers/gles3/shaders/particles.glsl.gen.h": { + "classes": [ + "ParticlesShaderGLES3" + ], + "structs": [], + "defines": [ + "PARTICLES_GLSL_GEN_HGLES3_GLES3", + "_FU" + ] + }, + "drivers/gles3/shaders/particles_copy.glsl.gen.h": { + "classes": [ + "ParticlesCopyShaderGLES3" + ], + "structs": [], + "defines": [ + "PARTICLES_COPY_GLSL_GEN_HGLES3_GLES3", + "_FU" + ] + }, + "drivers/gles3/shaders/effects/post.glsl.gen.h": { + "classes": [ + "PostShaderGLES3" + ], + "structs": [], + "defines": [ + "POST_GLSL_GEN_HGLES3_GLES3", + "_FU", + "MODE_DEFAULT", + "MODE_GLOW" + ] + }, + "drivers/gles3/shaders/effects/glow.glsl.gen.h": { + "classes": [ + "GlowShaderGLES3" + ], + "structs": [], + "defines": [ + "GLOW_GLSL_GEN_HGLES3_GLES3", + "_FU", + "MODE_FILTER", + "MODE_DOWNSAMPLE", + "MODE_UPSAMPLE" + ] + }, + "drivers/gles3/shaders/effects/copy.glsl.gen.h": { + "classes": [ + "CopyShaderGLES3" + ], + "structs": [], + "defines": [ + "COPY_GLSL_GEN_HGLES3_GLES3", + "_FU", + "MODE_SIMPLE_COPY", + "USE_COPY_SECTION", + "MODE_SIMPLE_COPY", + "USE_COPY_SECTION", + "MODE_SIMPLE_COPY", + "MODE_COPY_FROM", + "USE_COPY_SECTION", + "MODE_SIMPLE_COPY", + "USE_TEXTURE_3D", + "USE_COPY_SECTION", + "MODE_SIMPLE_COPY", + "USE_TEXTURE_2D_ARRAY", + "MODE_SIMPLE_COPY", + "MODE_MULTIPLY", + "MODE_GAUSSIAN_BLUR", + "MODE_MIPMAP", + "MODE_SIMPLE_COLOR", + "USE_COPY_SECTION", + "CUBE_TO_OCTAHEDRAL", + "USE_COPY_SECTION", + "CUBE_TO_PANORAMA" + ] + }, + "drivers/gles3/environment/fog.h": { + "classes": [ + "Fog" + ], + "structs": [], + "defines": [ + "FOG_GLES3_H" + ] + }, + "drivers/gles3/environment/gi.h": { + "classes": [ + "GI" + ], + "structs": [], + "defines": [ + "GI_GLES3_H" + ] + }, + "drivers/gles3/effects/copy_effects.h": { + "classes": [ + "CopyEffects" + ], + "structs": [ + "Copy" + ], + "defines": [ + "COPY_EFFECTS_GLES3_H" + ] + }, + "drivers/gles3/effects/post_effects.h": { + "classes": [ + "PostEffects" + ], + "structs": [ + "Post" + ], + "defines": [ + "POST_EFFECTS_GLES3_H" + ] + }, + "drivers/gles3/effects/glow.h": { + "classes": [ + "Glow" + ], + "structs": [ + "GLOW", + "GLOWLEVEL" + ], + "defines": [ + "GLOW_GLES3_H" + ] + }, + "drivers/pulseaudio/audio_driver_pulseaudio.h": { + "classes": [ + "AudioDriverPulseAudio" + ], + "structs": [], + "defines": [ + "AUDIO_DRIVER_PULSEAUDIO_H" + ] + }, + "drivers/pulseaudio/pulse-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_PULSE", + "pa_get_library_version", + "pa_bytes_per_second", + "pa_frame_size", + "pa_sample_size", + "pa_sample_size_of_format", + "pa_bytes_to_usec", + "pa_usec_to_bytes", + "pa_sample_spec_init", + "pa_sample_format_valid", + "pa_sample_rate_valid", + "pa_channels_valid", + "pa_sample_spec_valid", + "pa_sample_spec_equal", + "pa_sample_format_to_string", + "pa_parse_sample_format", + "pa_sample_spec_snprint", + "pa_bytes_snprint", + "pa_sample_format_is_le", + "pa_sample_format_is_be", + "pa_direction_valid", + "pa_direction_to_string", + "pa_mainloop_api_once", + "pa_proplist_new", + "pa_proplist_free", + "pa_proplist_key_valid", + "pa_proplist_sets", + "pa_proplist_setp", + "pa_proplist_setf", + "pa_proplist_set", + "pa_proplist_gets", + "pa_proplist_get", + "pa_proplist_update", + "pa_proplist_unset", + "pa_proplist_unset_many", + "pa_proplist_iterate", + "pa_proplist_to_string", + "pa_proplist_to_string_sep", + "pa_proplist_from_string", + "pa_proplist_contains", + "pa_proplist_clear", + "pa_proplist_copy", + "pa_proplist_size", + "pa_proplist_isempty", + "pa_proplist_equal", + "pa_channel_map_init", + "pa_channel_map_init_mono", + "pa_channel_map_init_stereo", + "pa_channel_map_init_auto", + "pa_channel_map_init_extend", + "pa_channel_position_to_string", + "pa_channel_position_from_string", + "pa_channel_position_to_pretty_string", + "pa_channel_map_snprint", + "pa_channel_map_parse", + "pa_channel_map_equal", + "pa_channel_map_valid", + "pa_channel_map_compatible", + "pa_channel_map_superset", + "pa_channel_map_can_balance", + "pa_channel_map_can_fade", + "pa_channel_map_can_lfe_balance", + "pa_channel_map_to_name", + "pa_channel_map_to_pretty_name", + "pa_channel_map_has_position", + "pa_channel_map_mask", + "pa_encoding_to_string", + "pa_encoding_from_string", + "pa_format_info_new", + "pa_format_info_copy", + "pa_format_info_free", + "pa_format_info_valid", + "pa_format_info_is_pcm", + "pa_format_info_is_compatible", + "pa_format_info_snprint", + "pa_format_info_from_string", + "pa_format_info_from_sample_spec", + "pa_format_info_to_sample_spec", + "pa_format_info_get_prop_type", + "pa_format_info_get_prop_int", + "pa_format_info_get_prop_int_range", + "pa_format_info_get_prop_int_array", + "pa_format_info_get_prop_string", + "pa_format_info_get_prop_string_array", + "pa_format_info_free_string_array", + "pa_format_info_set_prop_int", + "pa_format_info_set_prop_int_array", + "pa_format_info_set_prop_int_range", + "pa_format_info_set_prop_string", + "pa_format_info_set_prop_string_array", + "pa_format_info_set_sample_format", + "pa_format_info_set_rate", + "pa_format_info_set_channels", + "pa_format_info_set_channel_map", + "pa_operation_ref", + "pa_operation_unref", + "pa_operation_cancel", + "pa_operation_get_state", + "pa_operation_set_state_callback", + "pa_context_new", + "pa_context_new_with_proplist", + "pa_context_unref", + "pa_context_ref", + "pa_context_set_state_callback", + "pa_context_set_event_callback", + "pa_context_errno", + "pa_context_is_pending", + "pa_context_get_state", + "pa_context_connect", + "pa_context_disconnect", + "pa_context_drain", + "pa_context_exit_daemon", + "pa_context_set_default_sink", + "pa_context_set_default_source", + "pa_context_is_local", + "pa_context_set_name", + "pa_context_get_server", + "pa_context_get_protocol_version", + "pa_context_get_server_protocol_version", + "pa_context_proplist_update", + "pa_context_proplist_remove", + "pa_context_get_index", + "pa_context_rttime_new", + "pa_context_rttime_restart", + "pa_context_get_tile_size", + "pa_context_load_cookie_from_file", + "pa_cvolume_equal", + "pa_cvolume_init", + "pa_cvolume_set", + "pa_cvolume_snprint", + "pa_sw_cvolume_snprint_dB", + "pa_cvolume_snprint_verbose", + "pa_volume_snprint", + "pa_sw_volume_snprint_dB", + "pa_volume_snprint_verbose", + "pa_cvolume_avg", + "pa_cvolume_avg_mask", + "pa_cvolume_max", + "pa_cvolume_max_mask", + "pa_cvolume_min", + "pa_cvolume_min_mask", + "pa_cvolume_valid", + "pa_cvolume_channels_equal_to", + "pa_sw_volume_multiply", + "pa_sw_cvolume_multiply", + "pa_sw_cvolume_multiply_scalar", + "pa_sw_volume_divide", + "pa_sw_cvolume_divide", + "pa_sw_cvolume_divide_scalar", + "pa_sw_volume_from_dB", + "pa_sw_volume_to_dB", + "pa_sw_volume_from_linear", + "pa_sw_volume_to_linear", + "pa_cvolume_remap", + "pa_cvolume_compatible", + "pa_cvolume_compatible_with_channel_map", + "pa_cvolume_get_balance", + "pa_cvolume_set_balance", + "pa_cvolume_get_fade", + "pa_cvolume_set_fade", + "pa_cvolume_get_lfe_balance", + "pa_cvolume_set_lfe_balance", + "pa_cvolume_scale", + "pa_cvolume_scale_mask", + "pa_cvolume_set_position", + "pa_cvolume_get_position", + "pa_cvolume_merge", + "pa_cvolume_inc_clamp", + "pa_cvolume_inc", + "pa_cvolume_dec", + "pa_stream_new", + "pa_stream_new_with_proplist", + "pa_stream_new_extended", + "pa_stream_unref", + "pa_stream_ref", + "pa_stream_get_state", + "pa_stream_get_context", + "pa_stream_get_index", + "pa_stream_get_device_index", + "pa_stream_get_device_name", + "pa_stream_is_suspended", + "pa_stream_is_corked", + "pa_stream_connect_playback", + "pa_stream_connect_record", + "pa_stream_disconnect", + "pa_stream_begin_write", + "pa_stream_cancel_write", + "pa_stream_write", + "pa_stream_write_ext_free", + "pa_stream_peek", + "pa_stream_drop", + "pa_stream_writable_size", + "pa_stream_readable_size", + "pa_stream_drain", + "pa_stream_update_timing_info", + "pa_stream_set_state_callback", + "pa_stream_set_write_callback", + "pa_stream_set_read_callback", + "pa_stream_set_overflow_callback", + "pa_stream_get_underflow_index", + "pa_stream_set_underflow_callback", + "pa_stream_set_started_callback", + "pa_stream_set_latency_update_callback", + "pa_stream_set_moved_callback", + "pa_stream_set_suspended_callback", + "pa_stream_set_event_callback", + "pa_stream_set_buffer_attr_callback", + "pa_stream_cork", + "pa_stream_flush", + "pa_stream_prebuf", + "pa_stream_trigger", + "pa_stream_set_name", + "pa_stream_get_time", + "pa_stream_get_latency", + "pa_stream_get_timing_info", + "pa_stream_get_sample_spec", + "pa_stream_get_channel_map", + "pa_stream_get_format_info", + "pa_stream_get_buffer_attr", + "pa_stream_set_buffer_attr", + "pa_stream_update_sample_rate", + "pa_stream_proplist_update", + "pa_stream_proplist_remove", + "pa_stream_set_monitor_stream", + "pa_stream_get_monitor_stream", + "pa_context_get_sink_info_by_name", + "pa_context_get_sink_info_by_index", + "pa_context_get_sink_info_list", + "pa_context_set_sink_volume_by_index", + "pa_context_set_sink_volume_by_name", + "pa_context_set_sink_mute_by_index", + "pa_context_set_sink_mute_by_name", + "pa_context_suspend_sink_by_name", + "pa_context_suspend_sink_by_index", + "pa_context_set_sink_port_by_index", + "pa_context_set_sink_port_by_name", + "pa_context_get_source_info_by_name", + "pa_context_get_source_info_by_index", + "pa_context_get_source_info_list", + "pa_context_set_source_volume_by_index", + "pa_context_set_source_volume_by_name", + "pa_context_set_source_mute_by_index", + "pa_context_set_source_mute_by_name", + "pa_context_suspend_source_by_name", + "pa_context_suspend_source_by_index", + "pa_context_set_source_port_by_index", + "pa_context_set_source_port_by_name", + "pa_context_get_server_info", + "pa_context_get_module_info", + "pa_context_get_module_info_list", + "pa_context_load_module", + "pa_context_unload_module", + "pa_context_get_client_info", + "pa_context_get_client_info_list", + "pa_context_kill_client", + "pa_context_get_card_info_by_index", + "pa_context_get_card_info_by_name", + "pa_context_get_card_info_list", + "pa_context_set_card_profile_by_index", + "pa_context_set_card_profile_by_name", + "pa_context_set_port_latency_offset", + "pa_context_get_sink_input_info", + "pa_context_get_sink_input_info_list", + "pa_context_move_sink_input_by_name", + "pa_context_move_sink_input_by_index", + "pa_context_set_sink_input_volume", + "pa_context_set_sink_input_mute", + "pa_context_kill_sink_input", + "pa_context_get_source_output_info", + "pa_context_get_source_output_info_list", + "pa_context_move_source_output_by_name", + "pa_context_move_source_output_by_index", + "pa_context_set_source_output_volume", + "pa_context_set_source_output_mute", + "pa_context_kill_source_output", + "pa_context_stat", + "pa_context_get_sample_info_by_name", + "pa_context_get_sample_info_by_index", + "pa_context_get_sample_info_list", + "pa_context_get_autoload_info_by_name", + "pa_context_get_autoload_info_by_index", + "pa_context_get_autoload_info_list", + "pa_context_add_autoload", + "pa_context_remove_autoload_by_name", + "pa_context_remove_autoload_by_index", + "pa_context_subscribe", + "pa_context_set_subscribe_callback", + "pa_stream_connect_upload", + "pa_stream_finish_upload", + "pa_context_remove_sample", + "pa_context_play_sample", + "pa_context_play_sample_with_proplist", + "pa_strerror", + "pa_xmalloc", + "pa_xmalloc0", + "pa_xrealloc", + "pa_xfree", + "pa_xstrdup", + "pa_xstrndup", + "pa_xmemdup", + "pa_utf8_valid", + "pa_ascii_valid", + "pa_utf8_filter", + "pa_ascii_filter", + "pa_utf8_to_locale", + "pa_locale_to_utf8", + "pa_threaded_mainloop_new", + "pa_threaded_mainloop_free", + "pa_threaded_mainloop_start", + "pa_threaded_mainloop_stop", + "pa_threaded_mainloop_lock", + "pa_threaded_mainloop_unlock", + "pa_threaded_mainloop_wait", + "pa_threaded_mainloop_signal", + "pa_threaded_mainloop_accept", + "pa_threaded_mainloop_get_retval", + "pa_threaded_mainloop_get_api", + "pa_threaded_mainloop_in_thread", + "pa_threaded_mainloop_set_name", + "pa_mainloop_new", + "pa_mainloop_free", + "pa_mainloop_prepare", + "pa_mainloop_poll", + "pa_mainloop_dispatch", + "pa_mainloop_get_retval", + "pa_mainloop_iterate", + "pa_mainloop_run", + "pa_mainloop_get_api", + "pa_mainloop_quit", + "pa_mainloop_wakeup", + "pa_mainloop_set_poll_func", + "pa_signal_init", + "pa_signal_done", + "pa_signal_new", + "pa_signal_free", + "pa_signal_set_destroy", + "pa_get_user_name", + "pa_get_host_name", + "pa_get_fqdn", + "pa_get_home_dir", + "pa_get_binary_name", + "pa_path_get_filename", + "pa_msleep", + "pa_gettimeofday", + "pa_timeval_diff", + "pa_timeval_cmp", + "pa_timeval_age", + "pa_timeval_add", + "pa_timeval_sub", + "pa_timeval_store", + "pa_timeval_load", + "pa_rtclock_now", + "pa_get_library_version", + "pa_bytes_per_second", + "pa_frame_size", + "pa_sample_size", + "pa_sample_size_of_format", + "pa_bytes_to_usec", + "pa_usec_to_bytes", + "pa_sample_spec_init", + "pa_sample_format_valid", + "pa_sample_rate_valid", + "pa_channels_valid", + "pa_sample_spec_valid", + "pa_sample_spec_equal", + "pa_sample_format_to_string", + "pa_parse_sample_format", + "pa_sample_spec_snprint", + "pa_bytes_snprint", + "pa_sample_format_is_le", + "pa_sample_format_is_be", + "pa_direction_valid", + "pa_direction_to_string", + "pa_mainloop_api_once", + "pa_proplist_new", + "pa_proplist_free", + "pa_proplist_key_valid", + "pa_proplist_sets", + "pa_proplist_setp", + "pa_proplist_setf", + "pa_proplist_set", + "pa_proplist_gets", + "pa_proplist_get", + "pa_proplist_update", + "pa_proplist_unset", + "pa_proplist_unset_many", + "pa_proplist_iterate", + "pa_proplist_to_string", + "pa_proplist_to_string_sep", + "pa_proplist_from_string", + "pa_proplist_contains", + "pa_proplist_clear", + "pa_proplist_copy", + "pa_proplist_size", + "pa_proplist_isempty", + "pa_proplist_equal", + "pa_channel_map_init", + "pa_channel_map_init_mono", + "pa_channel_map_init_stereo", + "pa_channel_map_init_auto", + "pa_channel_map_init_extend", + "pa_channel_position_to_string", + "pa_channel_position_from_string", + "pa_channel_position_to_pretty_string", + "pa_channel_map_snprint", + "pa_channel_map_parse", + "pa_channel_map_equal", + "pa_channel_map_valid", + "pa_channel_map_compatible", + "pa_channel_map_superset", + "pa_channel_map_can_balance", + "pa_channel_map_can_fade", + "pa_channel_map_can_lfe_balance", + "pa_channel_map_to_name", + "pa_channel_map_to_pretty_name", + "pa_channel_map_has_position", + "pa_channel_map_mask", + "pa_encoding_to_string", + "pa_encoding_from_string", + "pa_format_info_new", + "pa_format_info_copy", + "pa_format_info_free", + "pa_format_info_valid", + "pa_format_info_is_pcm", + "pa_format_info_is_compatible", + "pa_format_info_snprint", + "pa_format_info_from_string", + "pa_format_info_from_sample_spec", + "pa_format_info_to_sample_spec", + "pa_format_info_get_prop_type", + "pa_format_info_get_prop_int", + "pa_format_info_get_prop_int_range", + "pa_format_info_get_prop_int_array", + "pa_format_info_get_prop_string", + "pa_format_info_get_prop_string_array", + "pa_format_info_free_string_array", + "pa_format_info_set_prop_int", + "pa_format_info_set_prop_int_array", + "pa_format_info_set_prop_int_range", + "pa_format_info_set_prop_string", + "pa_format_info_set_prop_string_array", + "pa_format_info_set_sample_format", + "pa_format_info_set_rate", + "pa_format_info_set_channels", + "pa_format_info_set_channel_map", + "pa_operation_ref", + "pa_operation_unref", + "pa_operation_cancel", + "pa_operation_get_state", + "pa_operation_set_state_callback", + "pa_context_new", + "pa_context_new_with_proplist", + "pa_context_unref", + "pa_context_ref", + "pa_context_set_state_callback", + "pa_context_set_event_callback", + "pa_context_errno", + "pa_context_is_pending", + "pa_context_get_state", + "pa_context_connect", + "pa_context_disconnect", + "pa_context_drain", + "pa_context_exit_daemon", + "pa_context_set_default_sink", + "pa_context_set_default_source", + "pa_context_is_local", + "pa_context_set_name", + "pa_context_get_server", + "pa_context_get_protocol_version", + "pa_context_get_server_protocol_version", + "pa_context_proplist_update", + "pa_context_proplist_remove", + "pa_context_get_index", + "pa_context_rttime_new", + "pa_context_rttime_restart", + "pa_context_get_tile_size", + "pa_context_load_cookie_from_file", + "pa_cvolume_equal", + "pa_cvolume_init", + "pa_cvolume_set", + "pa_cvolume_snprint", + "pa_sw_cvolume_snprint_dB", + "pa_cvolume_snprint_verbose", + "pa_volume_snprint", + "pa_sw_volume_snprint_dB", + "pa_volume_snprint_verbose", + "pa_cvolume_avg", + "pa_cvolume_avg_mask", + "pa_cvolume_max", + "pa_cvolume_max_mask", + "pa_cvolume_min", + "pa_cvolume_min_mask", + "pa_cvolume_valid", + "pa_cvolume_channels_equal_to", + "pa_sw_volume_multiply", + "pa_sw_cvolume_multiply", + "pa_sw_cvolume_multiply_scalar", + "pa_sw_volume_divide", + "pa_sw_cvolume_divide", + "pa_sw_cvolume_divide_scalar", + "pa_sw_volume_from_dB", + "pa_sw_volume_to_dB", + "pa_sw_volume_from_linear", + "pa_sw_volume_to_linear", + "pa_cvolume_remap", + "pa_cvolume_compatible", + "pa_cvolume_compatible_with_channel_map", + "pa_cvolume_get_balance", + "pa_cvolume_set_balance", + "pa_cvolume_get_fade", + "pa_cvolume_set_fade", + "pa_cvolume_get_lfe_balance", + "pa_cvolume_set_lfe_balance", + "pa_cvolume_scale", + "pa_cvolume_scale_mask", + "pa_cvolume_set_position", + "pa_cvolume_get_position", + "pa_cvolume_merge", + "pa_cvolume_inc_clamp", + "pa_cvolume_inc", + "pa_cvolume_dec", + "pa_stream_new", + "pa_stream_new_with_proplist", + "pa_stream_new_extended", + "pa_stream_unref", + "pa_stream_ref", + "pa_stream_get_state", + "pa_stream_get_context", + "pa_stream_get_index", + "pa_stream_get_device_index", + "pa_stream_get_device_name", + "pa_stream_is_suspended", + "pa_stream_is_corked", + "pa_stream_connect_playback", + "pa_stream_connect_record", + "pa_stream_disconnect", + "pa_stream_begin_write", + "pa_stream_cancel_write", + "pa_stream_write", + "pa_stream_write_ext_free", + "pa_stream_peek", + "pa_stream_drop", + "pa_stream_writable_size", + "pa_stream_readable_size", + "pa_stream_drain", + "pa_stream_update_timing_info", + "pa_stream_set_state_callback", + "pa_stream_set_write_callback", + "pa_stream_set_read_callback", + "pa_stream_set_overflow_callback", + "pa_stream_get_underflow_index", + "pa_stream_set_underflow_callback", + "pa_stream_set_started_callback", + "pa_stream_set_latency_update_callback", + "pa_stream_set_moved_callback", + "pa_stream_set_suspended_callback", + "pa_stream_set_event_callback", + "pa_stream_set_buffer_attr_callback", + "pa_stream_cork", + "pa_stream_flush", + "pa_stream_prebuf", + "pa_stream_trigger", + "pa_stream_set_name", + "pa_stream_get_time", + "pa_stream_get_latency", + "pa_stream_get_timing_info", + "pa_stream_get_sample_spec", + "pa_stream_get_channel_map", + "pa_stream_get_format_info", + "pa_stream_get_buffer_attr", + "pa_stream_set_buffer_attr", + "pa_stream_update_sample_rate", + "pa_stream_proplist_update", + "pa_stream_proplist_remove", + "pa_stream_set_monitor_stream", + "pa_stream_get_monitor_stream", + "pa_context_get_sink_info_by_name", + "pa_context_get_sink_info_by_index", + "pa_context_get_sink_info_list", + "pa_context_set_sink_volume_by_index", + "pa_context_set_sink_volume_by_name", + "pa_context_set_sink_mute_by_index", + "pa_context_set_sink_mute_by_name", + "pa_context_suspend_sink_by_name", + "pa_context_suspend_sink_by_index", + "pa_context_set_sink_port_by_index", + "pa_context_set_sink_port_by_name", + "pa_context_get_source_info_by_name", + "pa_context_get_source_info_by_index", + "pa_context_get_source_info_list", + "pa_context_set_source_volume_by_index", + "pa_context_set_source_volume_by_name", + "pa_context_set_source_mute_by_index", + "pa_context_set_source_mute_by_name", + "pa_context_suspend_source_by_name", + "pa_context_suspend_source_by_index", + "pa_context_set_source_port_by_index", + "pa_context_set_source_port_by_name", + "pa_context_get_server_info", + "pa_context_get_module_info", + "pa_context_get_module_info_list", + "pa_context_load_module", + "pa_context_unload_module", + "pa_context_get_client_info", + "pa_context_get_client_info_list", + "pa_context_kill_client", + "pa_context_get_card_info_by_index", + "pa_context_get_card_info_by_name", + "pa_context_get_card_info_list", + "pa_context_set_card_profile_by_index", + "pa_context_set_card_profile_by_name", + "pa_context_set_port_latency_offset", + "pa_context_get_sink_input_info", + "pa_context_get_sink_input_info_list", + "pa_context_move_sink_input_by_name", + "pa_context_move_sink_input_by_index", + "pa_context_set_sink_input_volume", + "pa_context_set_sink_input_mute", + "pa_context_kill_sink_input", + "pa_context_get_source_output_info", + "pa_context_get_source_output_info_list", + "pa_context_move_source_output_by_name", + "pa_context_move_source_output_by_index", + "pa_context_set_source_output_volume", + "pa_context_set_source_output_mute", + "pa_context_kill_source_output", + "pa_context_stat", + "pa_context_get_sample_info_by_name", + "pa_context_get_sample_info_by_index", + "pa_context_get_sample_info_list", + "pa_context_get_autoload_info_by_name", + "pa_context_get_autoload_info_by_index", + "pa_context_get_autoload_info_list", + "pa_context_add_autoload", + "pa_context_remove_autoload_by_name", + "pa_context_remove_autoload_by_index", + "pa_context_subscribe", + "pa_context_set_subscribe_callback", + "pa_stream_connect_upload", + "pa_stream_finish_upload", + "pa_context_remove_sample", + "pa_context_play_sample", + "pa_context_play_sample_with_proplist", + "pa_strerror", + "pa_xmalloc", + "pa_xmalloc0", + "pa_xrealloc", + "pa_xfree", + "pa_xstrdup", + "pa_xstrndup", + "pa_xmemdup", + "pa_utf8_valid", + "pa_ascii_valid", + "pa_utf8_filter", + "pa_ascii_filter", + "pa_utf8_to_locale", + "pa_locale_to_utf8", + "pa_threaded_mainloop_new", + "pa_threaded_mainloop_free", + "pa_threaded_mainloop_start", + "pa_threaded_mainloop_stop", + "pa_threaded_mainloop_lock", + "pa_threaded_mainloop_unlock", + "pa_threaded_mainloop_wait", + "pa_threaded_mainloop_signal", + "pa_threaded_mainloop_accept", + "pa_threaded_mainloop_get_retval", + "pa_threaded_mainloop_get_api", + "pa_threaded_mainloop_in_thread", + "pa_threaded_mainloop_set_name", + "pa_mainloop_new", + "pa_mainloop_free", + "pa_mainloop_prepare", + "pa_mainloop_poll", + "pa_mainloop_dispatch", + "pa_mainloop_get_retval", + "pa_mainloop_iterate", + "pa_mainloop_run", + "pa_mainloop_get_api", + "pa_mainloop_quit", + "pa_mainloop_wakeup", + "pa_mainloop_set_poll_func", + "pa_signal_init", + "pa_signal_done", + "pa_signal_new", + "pa_signal_free", + "pa_signal_set_destroy", + "pa_get_user_name", + "pa_get_host_name", + "pa_get_fqdn", + "pa_get_home_dir", + "pa_get_binary_name", + "pa_path_get_filename", + "pa_msleep", + "pa_gettimeofday", + "pa_timeval_diff", + "pa_timeval_cmp", + "pa_timeval_age", + "pa_timeval_add", + "pa_timeval_sub", + "pa_timeval_store", + "pa_timeval_load", + "pa_rtclock_now" + ] + }, + "drivers/xaudio2/audio_driver_xaudio2.h": { + "classes": [ + "AudioDriverXAudio2" + ], + "structs": [ + "XAudio2DriverVoiceCallback" + ], + "defines": [ + "AUDIO_DRIVER_XAUDIO2_H", + "WIN32_LEAN_AND_MEAN" + ] + }, + "drivers/winmidi/midi_driver_winmidi.h": { + "classes": [ + "MIDIDriverWinMidi" + ], + "structs": [], + "defines": [ + "MIDI_DRIVER_WINMIDI_H", + "WIN32_LEAN_AND_MEAN" + ] + }, + "drivers/wasapi/audio_driver_wasapi.h": { + "classes": [ + "AudioDriverWASAPI", + "AudioDeviceWASAPI" + ], + "structs": [], + "defines": [ + "AUDIO_DRIVER_WASAPI_H", + "WIN32_LEAN_AND_MEAN" + ] + }, + "drivers/png/png_driver_common.h": { + "classes": [], + "structs": [], + "defines": [ + "PNG_DRIVER_COMMON_H" + ] + }, + "drivers/png/image_loader_png.h": { + "classes": [ + "ImageLoaderPNG" + ], + "structs": [], + "defines": [ + "IMAGE_LOADER_PNG_H" + ] + }, + "drivers/png/resource_saver_png.h": { + "classes": [ + "ResourceSaverPNG" + ], + "structs": [], + "defines": [ + "RESOURCE_SAVER_PNG_H" + ] + }, + "drivers/egl/egl_manager.h": { + "classes": [ + "EGLManager" + ], + "structs": [ + "GLDisplay", + "GLWindow" + ], + "defines": [ + "EGL_MANAGER_H" + ] + }, + "drivers/coremidi/midi_driver_coremidi.h": { + "classes": [ + "MIDIDriverCoreMidi" + ], + "structs": [], + "defines": [ + "MIDI_DRIVER_COREMIDI_H" + ] + }, + "drivers/unix/thread_posix.h": { + "classes": [], + "structs": [], + "defines": [ + "THREAD_POSIX_H" + ] + }, + "drivers/unix/syslog_logger.h": { + "classes": [ + "SyslogLogger" + ], + "structs": [], + "defines": [ + "SYSLOG_LOGGER_H" + ] + }, + "drivers/unix/net_socket_posix.h": { + "classes": [ + "NetSocketPosix" + ], + "structs": [], + "defines": [ + "NET_SOCKET_POSIX_H", + "SOCKET_TYPE", + "SOCKET_TYPE" + ] + }, + "drivers/unix/dir_access_unix.h": { + "classes": [ + "DirAccessUnix" + ], + "structs": [], + "defines": [ + "DIR_ACCESS_UNIX_H" + ] + }, + "drivers/unix/os_unix.h": { + "classes": [ + "OS_Unix", + "UnixTerminalLogger" + ], + "structs": [], + "defines": [ + "OS_UNIX_H" + ] + }, + "drivers/unix/ip_unix.h": { + "classes": [ + "IPUnix" + ], + "structs": [], + "defines": [ + "IP_UNIX_H" + ] + }, + "drivers/unix/file_access_unix.h": { + "classes": [ + "FileAccessUnix" + ], + "structs": [], + "defines": [ + "FILE_ACCESS_UNIX_H" + ] + }, + "drivers/vulkan/rendering_device_driver_vulkan.h": { + "classes": [ + "RenderingDeviceDriverVulkan" + ], + "structs": [ + "Queue", + "SubgroupCapabilities", + "VRSCapabilities", + "ShaderCapabilities", + "StorageBufferCapabilities", + "DeviceFunctions", + "BufferInfo", + "TextureInfo", + "VertexFormatInfo", + "Fence", + "CommandQueue", + "CommandPool", + "SwapChain", + "ShaderBinary", + "DataBinding", + "SpecializationConstant", + "Data", + "ShaderInfo", + "DescriptorSetPoolKey", + "UniformSetInfo", + "PipelineCacheHeader", + "PipelineCache" + ], + "defines": [ + "RENDERING_DEVICE_DRIVER_VULKAN_H", + "_DEBUG" + ] + }, + "drivers/vulkan/vulkan_hooks.h": { + "classes": [ + "VulkanHooks" + ], + "structs": [], + "defines": [ + "VULKAN_HOOKS_H" + ] + }, + "drivers/vulkan/rendering_context_driver_vulkan.h": { + "classes": [ + "RenderingContextDriverVulkan" + ], + "structs": [ + "Functions", + "DeviceQueueFamilies", + "Surface" + ], + "defines": [ + "RENDERING_CONTEXT_DRIVER_VULKAN_H" + ] + }, + "drivers/d3d12/rendering_context_driver_d3d12.h": { + "classes": [ + "RenderingContextDriverD3D12" + ], + "structs": [ + "WindowPlatformData", + "Surface" + ], + "defines": [ + "RENDERING_CONTEXT_DRIVER_D3D12_H", + "ARRAY_SIZE" + ] + }, + "drivers/d3d12/d3d12_godot_nir_bridge.h": { + "classes": [], + "structs": [ + "GodotNirCallbacks" + ], + "defines": [ + "D3D12_GODOT_NIR_BRIDGE_H" + ] + }, + "drivers/d3d12/rendering_device_driver_d3d12.h": { + "classes": [ + "RenderingDeviceDriverD3D12", + "DescriptorsHeap", + "Walker" + ], + "structs": [ + "D3D12Format", + "DeviceLimits", + "SubgroupCapabilities", + "VRSCapabilities", + "ShaderCapabilities", + "StorageBufferCapabilities", + "FormatCapabilities", + "ResourceInfo", + "States", + "CrossFamillyFallback", + "BarrierRequest", + "Group", + "BufferInfo", + "TextureInfo", + "VertexFormatInfo", + "FenceInfo", + "SemaphoreInfo", + "CommandQueueInfo", + "CommandPoolInfo", + "RenderPassState", + "CommandBufferInfo", + "FamilyFallbackCopy", + "SwapChain", + "FramebufferInfo", + "ShaderBinary", + "DataBinding", + "RootSignatureLocation", + "SpecializationConstant", + "Data", + "ShaderInfo", + "UniformBindingInfo", + "RootSignatureLocation", + "UniformSet", + "SpecializationConstant", + "RootDescriptorTable", + "UniformSetInfo", + "StateRequirement", + "RecentBind", + "ResourceDescInfo", + "RenderPassInfo", + "RenderPipelineExtraInfo", + "TimestampQueryPoolInfo", + "FrameInfo" + ], + "defines": [ + "RENDERING_DEVICE_DRIVER_D3D12_H", + "D3D12MA_D3D12_HEADERS_ALREADY_INCLUDED", + "D3D12_BITCODE_OFFSETS_NUM_STAGES", + "USE_SMALL_ALLOCS_POOL" + ] + }, + "drivers/alsa/asound-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_ASOUND", + "snd_asoundlib_version", + "snd_dlopen", + "snd_dlsym", + "snd_dlclose", + "snd_async_add_handler", + "snd_async_del_handler", + "snd_async_handler_get_fd", + "snd_async_handler_get_signo", + "snd_async_handler_get_callback_private", + "snd_shm_area_create", + "snd_shm_area_share", + "snd_shm_area_destroy", + "snd_user_file", + "snd_input_stdio_open", + "snd_input_stdio_attach", + "snd_input_buffer_open", + "snd_input_close", + "snd_input_scanf", + "snd_input_gets", + "snd_input_getc", + "snd_input_ungetc", + "snd_output_stdio_open", + "snd_output_stdio_attach", + "snd_output_buffer_open", + "snd_output_buffer_string", + "snd_output_close", + "snd_output_printf", + "snd_output_vprintf", + "snd_output_puts", + "snd_output_putc", + "snd_output_flush", + "snd_strerror", + "snd_lib_error_set_handler", + "snd_lib_error_set_local", + "snd_config_top", + "snd_config_load", + "snd_config_load_override", + "snd_config_save", + "snd_config_update", + "snd_config_update_r", + "snd_config_update_free", + "snd_config_update_free_global", + "snd_config_update_ref", + "snd_config_ref", + "snd_config_unref", + "snd_config_search", + "snd_config_searchv", + "snd_config_search_definition", + "snd_config_expand", + "snd_config_evaluate", + "snd_config_add", + "snd_config_delete", + "snd_config_delete_compound_members", + "snd_config_copy", + "snd_config_make", + "snd_config_make_integer", + "snd_config_make_integer64", + "snd_config_make_real", + "snd_config_make_string", + "snd_config_make_pointer", + "snd_config_make_compound", + "snd_config_imake_integer", + "snd_config_imake_integer64", + "snd_config_imake_real", + "snd_config_imake_string", + "snd_config_imake_safe_string", + "snd_config_imake_pointer", + "snd_config_get_type", + "snd_config_set_id", + "snd_config_set_integer", + "snd_config_set_integer64", + "snd_config_set_real", + "snd_config_set_string", + "snd_config_set_ascii", + "snd_config_set_pointer", + "snd_config_get_id", + "snd_config_get_integer", + "snd_config_get_integer64", + "snd_config_get_real", + "snd_config_get_ireal", + "snd_config_get_string", + "snd_config_get_ascii", + "snd_config_get_pointer", + "snd_config_test_id", + "snd_config_iterator_first", + "snd_config_iterator_next", + "snd_config_iterator_end", + "snd_config_iterator_entry", + "snd_config_get_bool_ascii", + "snd_config_get_bool", + "snd_config_get_ctl_iface_ascii", + "snd_config_get_ctl_iface", + "snd_names_list", + "snd_names_list_free", + "snd_pcm_open", + "snd_pcm_open_lconf", + "snd_pcm_open_fallback", + "snd_pcm_close", + "snd_pcm_name", + "snd_pcm_type", + "snd_pcm_stream", + "snd_pcm_poll_descriptors_count", + "snd_pcm_poll_descriptors", + "snd_pcm_poll_descriptors_revents", + "snd_pcm_nonblock", + "snd_async_add_pcm_handler", + "snd_async_handler_get_pcm", + "snd_pcm_info", + "snd_pcm_hw_params_current", + "snd_pcm_hw_params", + "snd_pcm_hw_free", + "snd_pcm_sw_params_current", + "snd_pcm_sw_params", + "snd_pcm_prepare", + "snd_pcm_reset", + "snd_pcm_status", + "snd_pcm_start", + "snd_pcm_drop", + "snd_pcm_drain", + "snd_pcm_pause", + "snd_pcm_state", + "snd_pcm_hwsync", + "snd_pcm_delay", + "snd_pcm_resume", + "snd_pcm_htimestamp", + "snd_pcm_avail", + "snd_pcm_avail_update", + "snd_pcm_avail_delay", + "snd_pcm_rewindable", + "snd_pcm_rewind", + "snd_pcm_forwardable", + "snd_pcm_forward", + "snd_pcm_writei", + "snd_pcm_readi", + "snd_pcm_writen", + "snd_pcm_readn", + "snd_pcm_wait", + "snd_pcm_link", + "snd_pcm_unlink", + "snd_pcm_query_chmaps", + "snd_pcm_query_chmaps_from_hw", + "snd_pcm_free_chmaps", + "snd_pcm_get_chmap", + "snd_pcm_set_chmap", + "snd_pcm_chmap_type_name", + "snd_pcm_chmap_name", + "snd_pcm_chmap_long_name", + "snd_pcm_chmap_print", + "snd_pcm_chmap_from_string", + "snd_pcm_chmap_parse_string", + "snd_pcm_recover", + "snd_pcm_set_params", + "snd_pcm_get_params", + "snd_pcm_info_sizeof", + "snd_pcm_info_malloc", + "snd_pcm_info_free", + "snd_pcm_info_copy", + "snd_pcm_info_get_device", + "snd_pcm_info_get_subdevice", + "snd_pcm_info_get_stream", + "snd_pcm_info_get_card", + "snd_pcm_info_get_id", + "snd_pcm_info_get_name", + "snd_pcm_info_get_subdevice_name", + "snd_pcm_info_get_class", + "snd_pcm_info_get_subclass", + "snd_pcm_info_get_subdevices_count", + "snd_pcm_info_get_subdevices_avail", + "snd_pcm_info_get_sync", + "snd_pcm_info_set_device", + "snd_pcm_info_set_subdevice", + "snd_pcm_info_set_stream", + "snd_pcm_hw_params_any", + "snd_pcm_hw_params_can_mmap_sample_resolution", + "snd_pcm_hw_params_is_double", + "snd_pcm_hw_params_is_batch", + "snd_pcm_hw_params_is_block_transfer", + "snd_pcm_hw_params_is_monotonic", + "snd_pcm_hw_params_can_overrange", + "snd_pcm_hw_params_can_pause", + "snd_pcm_hw_params_can_resume", + "snd_pcm_hw_params_is_half_duplex", + "snd_pcm_hw_params_is_joint_duplex", + "snd_pcm_hw_params_can_sync_start", + "snd_pcm_hw_params_can_disable_period_wakeup", + "snd_pcm_hw_params_supports_audio_wallclock_ts", + "snd_pcm_hw_params_supports_audio_ts_type", + "snd_pcm_hw_params_get_rate_numden", + "snd_pcm_hw_params_get_sbits", + "snd_pcm_hw_params_get_fifo_size", + "snd_pcm_hw_params_sizeof", + "snd_pcm_hw_params_malloc", + "snd_pcm_hw_params_free", + "snd_pcm_hw_params_copy", + "snd_pcm_hw_params_get_access", + "snd_pcm_hw_params_test_access", + "snd_pcm_hw_params_set_access", + "snd_pcm_hw_params_set_access_first", + "snd_pcm_hw_params_set_access_last", + "snd_pcm_hw_params_set_access_mask", + "snd_pcm_hw_params_get_access_mask", + "snd_pcm_hw_params_get_format", + "snd_pcm_hw_params_test_format", + "snd_pcm_hw_params_set_format", + "snd_pcm_hw_params_set_format_first", + "snd_pcm_hw_params_set_format_last", + "snd_pcm_hw_params_set_format_mask", + "snd_pcm_hw_params_get_format_mask", + "snd_pcm_hw_params_get_subformat", + "snd_pcm_hw_params_test_subformat", + "snd_pcm_hw_params_set_subformat", + "snd_pcm_hw_params_set_subformat_first", + "snd_pcm_hw_params_set_subformat_last", + "snd_pcm_hw_params_set_subformat_mask", + "snd_pcm_hw_params_get_subformat_mask", + "snd_pcm_hw_params_get_channels", + "snd_pcm_hw_params_get_channels_min", + "snd_pcm_hw_params_get_channels_max", + "snd_pcm_hw_params_test_channels", + "snd_pcm_hw_params_set_channels", + "snd_pcm_hw_params_set_channels_min", + "snd_pcm_hw_params_set_channels_max", + "snd_pcm_hw_params_set_channels_minmax", + "snd_pcm_hw_params_set_channels_near", + "snd_pcm_hw_params_set_channels_first", + "snd_pcm_hw_params_set_channels_last", + "snd_pcm_hw_params_get_rate", + "snd_pcm_hw_params_get_rate_min", + "snd_pcm_hw_params_get_rate_max", + "snd_pcm_hw_params_test_rate", + "snd_pcm_hw_params_set_rate", + "snd_pcm_hw_params_set_rate_min", + "snd_pcm_hw_params_set_rate_max", + "snd_pcm_hw_params_set_rate_minmax", + "snd_pcm_hw_params_set_rate_near", + "snd_pcm_hw_params_set_rate_first", + "snd_pcm_hw_params_set_rate_last", + "snd_pcm_hw_params_set_rate_resample", + "snd_pcm_hw_params_get_rate_resample", + "snd_pcm_hw_params_set_export_buffer", + "snd_pcm_hw_params_get_export_buffer", + "snd_pcm_hw_params_set_period_wakeup", + "snd_pcm_hw_params_get_period_wakeup", + "snd_pcm_hw_params_get_period_time", + "snd_pcm_hw_params_get_period_time_min", + "snd_pcm_hw_params_get_period_time_max", + "snd_pcm_hw_params_test_period_time", + "snd_pcm_hw_params_set_period_time", + "snd_pcm_hw_params_set_period_time_min", + "snd_pcm_hw_params_set_period_time_max", + "snd_pcm_hw_params_set_period_time_minmax", + "snd_pcm_hw_params_set_period_time_near", + "snd_pcm_hw_params_set_period_time_first", + "snd_pcm_hw_params_set_period_time_last", + "snd_pcm_hw_params_get_period_size", + "snd_pcm_hw_params_get_period_size_min", + "snd_pcm_hw_params_get_period_size_max", + "snd_pcm_hw_params_test_period_size", + "snd_pcm_hw_params_set_period_size", + "snd_pcm_hw_params_set_period_size_min", + "snd_pcm_hw_params_set_period_size_max", + "snd_pcm_hw_params_set_period_size_minmax", + "snd_pcm_hw_params_set_period_size_near", + "snd_pcm_hw_params_set_period_size_first", + "snd_pcm_hw_params_set_period_size_last", + "snd_pcm_hw_params_set_period_size_integer", + "snd_pcm_hw_params_get_periods", + "snd_pcm_hw_params_get_periods_min", + "snd_pcm_hw_params_get_periods_max", + "snd_pcm_hw_params_test_periods", + "snd_pcm_hw_params_set_periods", + "snd_pcm_hw_params_set_periods_min", + "snd_pcm_hw_params_set_periods_max", + "snd_pcm_hw_params_set_periods_minmax", + "snd_pcm_hw_params_set_periods_near", + "snd_pcm_hw_params_set_periods_first", + "snd_pcm_hw_params_set_periods_last", + "snd_pcm_hw_params_set_periods_integer", + "snd_pcm_hw_params_get_buffer_time", + "snd_pcm_hw_params_get_buffer_time_min", + "snd_pcm_hw_params_get_buffer_time_max", + "snd_pcm_hw_params_test_buffer_time", + "snd_pcm_hw_params_set_buffer_time", + "snd_pcm_hw_params_set_buffer_time_min", + "snd_pcm_hw_params_set_buffer_time_max", + "snd_pcm_hw_params_set_buffer_time_minmax", + "snd_pcm_hw_params_set_buffer_time_near", + "snd_pcm_hw_params_set_buffer_time_first", + "snd_pcm_hw_params_set_buffer_time_last", + "snd_pcm_hw_params_get_buffer_size", + "snd_pcm_hw_params_get_buffer_size_min", + "snd_pcm_hw_params_get_buffer_size_max", + "snd_pcm_hw_params_test_buffer_size", + "snd_pcm_hw_params_set_buffer_size", + "snd_pcm_hw_params_set_buffer_size_min", + "snd_pcm_hw_params_set_buffer_size_max", + "snd_pcm_hw_params_set_buffer_size_minmax", + "snd_pcm_hw_params_set_buffer_size_near", + "snd_pcm_hw_params_set_buffer_size_first", + "snd_pcm_hw_params_set_buffer_size_last", + "snd_pcm_hw_params_get_min_align", + "snd_pcm_sw_params_sizeof", + "snd_pcm_sw_params_malloc", + "snd_pcm_sw_params_free", + "snd_pcm_sw_params_copy", + "snd_pcm_sw_params_get_boundary", + "snd_pcm_sw_params_set_tstamp_mode", + "snd_pcm_sw_params_get_tstamp_mode", + "snd_pcm_sw_params_set_avail_min", + "snd_pcm_sw_params_get_avail_min", + "snd_pcm_sw_params_set_period_event", + "snd_pcm_sw_params_get_period_event", + "snd_pcm_sw_params_set_start_threshold", + "snd_pcm_sw_params_get_start_threshold", + "snd_pcm_sw_params_set_stop_threshold", + "snd_pcm_sw_params_get_stop_threshold", + "snd_pcm_sw_params_set_silence_threshold", + "snd_pcm_sw_params_get_silence_threshold", + "snd_pcm_sw_params_set_silence_size", + "snd_pcm_sw_params_get_silence_size", + "snd_pcm_access_mask_sizeof", + "snd_pcm_access_mask_malloc", + "snd_pcm_access_mask_free", + "snd_pcm_access_mask_copy", + "snd_pcm_access_mask_none", + "snd_pcm_access_mask_any", + "snd_pcm_access_mask_test", + "snd_pcm_access_mask_empty", + "snd_pcm_access_mask_set", + "snd_pcm_access_mask_reset", + "snd_pcm_format_mask_sizeof", + "snd_pcm_format_mask_malloc", + "snd_pcm_format_mask_free", + "snd_pcm_format_mask_copy", + "snd_pcm_format_mask_none", + "snd_pcm_format_mask_any", + "snd_pcm_format_mask_test", + "snd_pcm_format_mask_empty", + "snd_pcm_format_mask_set", + "snd_pcm_format_mask_reset", + "snd_pcm_subformat_mask_sizeof", + "snd_pcm_subformat_mask_malloc", + "snd_pcm_subformat_mask_free", + "snd_pcm_subformat_mask_copy", + "snd_pcm_subformat_mask_none", + "snd_pcm_subformat_mask_any", + "snd_pcm_subformat_mask_test", + "snd_pcm_subformat_mask_empty", + "snd_pcm_subformat_mask_set", + "snd_pcm_subformat_mask_reset", + "snd_pcm_status_sizeof", + "snd_pcm_status_malloc", + "snd_pcm_status_free", + "snd_pcm_status_copy", + "snd_pcm_status_get_state", + "snd_pcm_status_get_trigger_tstamp", + "snd_pcm_status_get_trigger_htstamp", + "snd_pcm_status_get_tstamp", + "snd_pcm_status_get_htstamp", + "snd_pcm_status_get_audio_htstamp", + "snd_pcm_status_get_driver_htstamp", + "snd_pcm_status_get_delay", + "snd_pcm_status_get_avail", + "snd_pcm_status_get_avail_max", + "snd_pcm_status_get_overrange", + "snd_pcm_type_name", + "snd_pcm_stream_name", + "snd_pcm_access_name", + "snd_pcm_format_name", + "snd_pcm_format_description", + "snd_pcm_subformat_name", + "snd_pcm_subformat_description", + "snd_pcm_format_value", + "snd_pcm_tstamp_mode_name", + "snd_pcm_state_name", + "snd_pcm_dump", + "snd_pcm_dump_hw_setup", + "snd_pcm_dump_sw_setup", + "snd_pcm_dump_setup", + "snd_pcm_hw_params_dump", + "snd_pcm_sw_params_dump", + "snd_pcm_status_dump", + "snd_pcm_mmap_begin", + "snd_pcm_mmap_commit", + "snd_pcm_mmap_writei", + "snd_pcm_mmap_readi", + "snd_pcm_mmap_writen", + "snd_pcm_mmap_readn", + "snd_pcm_format_signed", + "snd_pcm_format_unsigned", + "snd_pcm_format_linear", + "snd_pcm_format_float", + "snd_pcm_format_little_endian", + "snd_pcm_format_big_endian", + "snd_pcm_format_cpu_endian", + "snd_pcm_format_width", + "snd_pcm_format_physical_width", + "snd_pcm_build_linear_format", + "snd_pcm_format_size", + "snd_pcm_format_silence", + "snd_pcm_format_silence_16", + "snd_pcm_format_silence_32", + "snd_pcm_format_silence_64", + "snd_pcm_format_set_silence", + "snd_pcm_bytes_to_frames", + "snd_pcm_frames_to_bytes", + "snd_pcm_bytes_to_samples", + "snd_pcm_samples_to_bytes", + "snd_pcm_area_silence", + "snd_pcm_areas_silence", + "snd_pcm_area_copy", + "snd_pcm_areas_copy", + "snd_pcm_hook_get_pcm", + "snd_pcm_hook_get_private", + "snd_pcm_hook_set_private", + "snd_pcm_hook_add", + "snd_pcm_hook_remove", + "snd_pcm_meter_get_bufsize", + "snd_pcm_meter_get_channels", + "snd_pcm_meter_get_rate", + "snd_pcm_meter_get_now", + "snd_pcm_meter_get_boundary", + "snd_pcm_meter_add_scope", + "snd_pcm_meter_search_scope", + "snd_pcm_scope_malloc", + "snd_pcm_scope_set_ops", + "snd_pcm_scope_set_name", + "snd_pcm_scope_get_name", + "snd_pcm_scope_get_callback_private", + "snd_pcm_scope_set_callback_private", + "snd_pcm_scope_s16_open", + "snd_pcm_scope_s16_get_channel_buffer", + "snd_spcm_init", + "snd_spcm_init_duplex", + "snd_spcm_init_get_params", + "snd_pcm_start_mode_name", + "snd_pcm_xrun_mode_name", + "snd_pcm_sw_params_set_start_mode", + "snd_pcm_sw_params_get_start_mode", + "snd_pcm_sw_params_set_xrun_mode", + "snd_pcm_sw_params_get_xrun_mode", + "snd_pcm_sw_params_set_xfer_align", + "snd_pcm_sw_params_get_xfer_align", + "snd_pcm_sw_params_set_sleep_min", + "snd_pcm_sw_params_get_sleep_min", + "snd_pcm_hw_params_get_tick_time", + "snd_pcm_hw_params_get_tick_time_min", + "snd_pcm_hw_params_get_tick_time_max", + "snd_pcm_hw_params_test_tick_time", + "snd_pcm_hw_params_set_tick_time", + "snd_pcm_hw_params_set_tick_time_min", + "snd_pcm_hw_params_set_tick_time_max", + "snd_pcm_hw_params_set_tick_time_minmax", + "snd_pcm_hw_params_set_tick_time_near", + "snd_pcm_hw_params_set_tick_time_first", + "snd_pcm_hw_params_set_tick_time_last", + "snd_rawmidi_open", + "snd_rawmidi_open_lconf", + "snd_rawmidi_close", + "snd_rawmidi_poll_descriptors_count", + "snd_rawmidi_poll_descriptors", + "snd_rawmidi_poll_descriptors_revents", + "snd_rawmidi_nonblock", + "snd_rawmidi_info_sizeof", + "snd_rawmidi_info_malloc", + "snd_rawmidi_info_free", + "snd_rawmidi_info_copy", + "snd_rawmidi_info_get_device", + "snd_rawmidi_info_get_subdevice", + "snd_rawmidi_info_get_stream", + "snd_rawmidi_info_get_card", + "snd_rawmidi_info_get_flags", + "snd_rawmidi_info_get_id", + "snd_rawmidi_info_get_name", + "snd_rawmidi_info_get_subdevice_name", + "snd_rawmidi_info_get_subdevices_count", + "snd_rawmidi_info_get_subdevices_avail", + "snd_rawmidi_info_set_device", + "snd_rawmidi_info_set_subdevice", + "snd_rawmidi_info_set_stream", + "snd_rawmidi_info", + "snd_rawmidi_params_sizeof", + "snd_rawmidi_params_malloc", + "snd_rawmidi_params_free", + "snd_rawmidi_params_copy", + "snd_rawmidi_params_set_buffer_size", + "snd_rawmidi_params_get_buffer_size", + "snd_rawmidi_params_set_avail_min", + "snd_rawmidi_params_get_avail_min", + "snd_rawmidi_params_set_no_active_sensing", + "snd_rawmidi_params_get_no_active_sensing", + "snd_rawmidi_params", + "snd_rawmidi_params_current", + "snd_rawmidi_status_sizeof", + "snd_rawmidi_status_malloc", + "snd_rawmidi_status_free", + "snd_rawmidi_status_copy", + "snd_rawmidi_status_get_tstamp", + "snd_rawmidi_status_get_avail", + "snd_rawmidi_status_get_xruns", + "snd_rawmidi_status", + "snd_rawmidi_drain", + "snd_rawmidi_drop", + "snd_rawmidi_write", + "snd_rawmidi_read", + "snd_rawmidi_name", + "snd_rawmidi_type", + "snd_rawmidi_stream", + "snd_timer_query_open", + "snd_timer_query_open_lconf", + "snd_timer_query_close", + "snd_timer_query_next_device", + "snd_timer_query_info", + "snd_timer_query_params", + "snd_timer_query_status", + "snd_timer_open", + "snd_timer_open_lconf", + "snd_timer_close", + "snd_async_add_timer_handler", + "snd_async_handler_get_timer", + "snd_timer_poll_descriptors_count", + "snd_timer_poll_descriptors", + "snd_timer_poll_descriptors_revents", + "snd_timer_info", + "snd_timer_params", + "snd_timer_status", + "snd_timer_start", + "snd_timer_stop", + "snd_timer_continue", + "snd_timer_read", + "snd_timer_id_sizeof", + "snd_timer_id_malloc", + "snd_timer_id_free", + "snd_timer_id_copy", + "snd_timer_id_set_class", + "snd_timer_id_get_class", + "snd_timer_id_set_sclass", + "snd_timer_id_get_sclass", + "snd_timer_id_set_card", + "snd_timer_id_get_card", + "snd_timer_id_set_device", + "snd_timer_id_get_device", + "snd_timer_id_set_subdevice", + "snd_timer_id_get_subdevice", + "snd_timer_ginfo_sizeof", + "snd_timer_ginfo_malloc", + "snd_timer_ginfo_free", + "snd_timer_ginfo_copy", + "snd_timer_ginfo_set_tid", + "snd_timer_ginfo_get_tid", + "snd_timer_ginfo_get_flags", + "snd_timer_ginfo_get_card", + "snd_timer_ginfo_get_id", + "snd_timer_ginfo_get_name", + "snd_timer_ginfo_get_resolution", + "snd_timer_ginfo_get_resolution_min", + "snd_timer_ginfo_get_resolution_max", + "snd_timer_ginfo_get_clients", + "snd_timer_info_sizeof", + "snd_timer_info_malloc", + "snd_timer_info_free", + "snd_timer_info_copy", + "snd_timer_info_is_slave", + "snd_timer_info_get_card", + "snd_timer_info_get_id", + "snd_timer_info_get_name", + "snd_timer_info_get_resolution", + "snd_timer_params_sizeof", + "snd_timer_params_malloc", + "snd_timer_params_free", + "snd_timer_params_copy", + "snd_timer_params_set_auto_start", + "snd_timer_params_get_auto_start", + "snd_timer_params_set_exclusive", + "snd_timer_params_get_exclusive", + "snd_timer_params_set_early_event", + "snd_timer_params_get_early_event", + "snd_timer_params_set_ticks", + "snd_timer_params_get_ticks", + "snd_timer_params_set_queue_size", + "snd_timer_params_get_queue_size", + "snd_timer_params_set_filter", + "snd_timer_params_get_filter", + "snd_timer_status_sizeof", + "snd_timer_status_malloc", + "snd_timer_status_free", + "snd_timer_status_copy", + "snd_timer_status_get_timestamp", + "snd_timer_status_get_resolution", + "snd_timer_status_get_lost", + "snd_timer_status_get_overrun", + "snd_timer_status_get_queue", + "snd_timer_info_get_ticks", + "snd_hwdep_open", + "snd_hwdep_close", + "snd_hwdep_poll_descriptors", + "snd_hwdep_poll_descriptors_count", + "snd_hwdep_poll_descriptors_revents", + "snd_hwdep_nonblock", + "snd_hwdep_info", + "snd_hwdep_dsp_status", + "snd_hwdep_dsp_load", + "snd_hwdep_ioctl", + "snd_hwdep_write", + "snd_hwdep_read", + "snd_hwdep_info_sizeof", + "snd_hwdep_info_malloc", + "snd_hwdep_info_free", + "snd_hwdep_info_copy", + "snd_hwdep_info_get_device", + "snd_hwdep_info_get_card", + "snd_hwdep_info_get_id", + "snd_hwdep_info_get_name", + "snd_hwdep_info_get_iface", + "snd_hwdep_info_set_device", + "snd_hwdep_dsp_status_sizeof", + "snd_hwdep_dsp_status_malloc", + "snd_hwdep_dsp_status_free", + "snd_hwdep_dsp_status_copy", + "snd_hwdep_dsp_status_get_version", + "snd_hwdep_dsp_status_get_id", + "snd_hwdep_dsp_status_get_num_dsps", + "snd_hwdep_dsp_status_get_dsp_loaded", + "snd_hwdep_dsp_status_get_chip_ready", + "snd_hwdep_dsp_image_sizeof", + "snd_hwdep_dsp_image_malloc", + "snd_hwdep_dsp_image_free", + "snd_hwdep_dsp_image_copy", + "snd_hwdep_dsp_image_get_index", + "snd_hwdep_dsp_image_get_name", + "snd_hwdep_dsp_image_get_image", + "snd_hwdep_dsp_image_get_length", + "snd_hwdep_dsp_image_set_index", + "snd_hwdep_dsp_image_set_name", + "snd_hwdep_dsp_image_set_image", + "snd_hwdep_dsp_image_set_length", + "snd_card_load", + "snd_card_next", + "snd_card_get_index", + "snd_card_get_name", + "snd_card_get_longname", + "snd_device_name_hint", + "snd_device_name_free_hint", + "snd_device_name_get_hint", + "snd_ctl_open", + "snd_ctl_open_lconf", + "snd_ctl_open_fallback", + "snd_ctl_close", + "snd_ctl_nonblock", + "snd_async_add_ctl_handler", + "snd_async_handler_get_ctl", + "snd_ctl_poll_descriptors_count", + "snd_ctl_poll_descriptors", + "snd_ctl_poll_descriptors_revents", + "snd_ctl_subscribe_events", + "snd_ctl_card_info", + "snd_ctl_elem_list", + "snd_ctl_elem_info", + "snd_ctl_elem_read", + "snd_ctl_elem_write", + "snd_ctl_elem_lock", + "snd_ctl_elem_unlock", + "snd_ctl_elem_tlv_read", + "snd_ctl_elem_tlv_write", + "snd_ctl_elem_tlv_command", + "snd_ctl_hwdep_next_device", + "snd_ctl_hwdep_info", + "snd_ctl_pcm_next_device", + "snd_ctl_pcm_info", + "snd_ctl_pcm_prefer_subdevice", + "snd_ctl_rawmidi_next_device", + "snd_ctl_rawmidi_info", + "snd_ctl_rawmidi_prefer_subdevice", + "snd_ctl_set_power_state", + "snd_ctl_get_power_state", + "snd_ctl_read", + "snd_ctl_wait", + "snd_ctl_name", + "snd_ctl_type", + "snd_ctl_elem_type_name", + "snd_ctl_elem_iface_name", + "snd_ctl_event_type_name", + "snd_ctl_event_elem_get_mask", + "snd_ctl_event_elem_get_numid", + "snd_ctl_event_elem_get_id", + "snd_ctl_event_elem_get_interface", + "snd_ctl_event_elem_get_device", + "snd_ctl_event_elem_get_subdevice", + "snd_ctl_event_elem_get_name", + "snd_ctl_event_elem_get_index", + "snd_ctl_elem_list_alloc_space", + "snd_ctl_elem_list_free_space", + "snd_ctl_ascii_elem_id_get", + "snd_ctl_ascii_elem_id_parse", + "snd_ctl_ascii_value_parse", + "snd_ctl_elem_id_sizeof", + "snd_ctl_elem_id_malloc", + "snd_ctl_elem_id_free", + "snd_ctl_elem_id_clear", + "snd_ctl_elem_id_copy", + "snd_ctl_elem_id_get_numid", + "snd_ctl_elem_id_get_interface", + "snd_ctl_elem_id_get_device", + "snd_ctl_elem_id_get_subdevice", + "snd_ctl_elem_id_get_name", + "snd_ctl_elem_id_get_index", + "snd_ctl_elem_id_set_numid", + "snd_ctl_elem_id_set_interface", + "snd_ctl_elem_id_set_device", + "snd_ctl_elem_id_set_subdevice", + "snd_ctl_elem_id_set_name", + "snd_ctl_elem_id_set_index", + "snd_ctl_card_info_sizeof", + "snd_ctl_card_info_malloc", + "snd_ctl_card_info_free", + "snd_ctl_card_info_clear", + "snd_ctl_card_info_copy", + "snd_ctl_card_info_get_card", + "snd_ctl_card_info_get_id", + "snd_ctl_card_info_get_driver", + "snd_ctl_card_info_get_name", + "snd_ctl_card_info_get_longname", + "snd_ctl_card_info_get_mixername", + "snd_ctl_card_info_get_components", + "snd_ctl_event_sizeof", + "snd_ctl_event_malloc", + "snd_ctl_event_free", + "snd_ctl_event_clear", + "snd_ctl_event_copy", + "snd_ctl_event_get_type", + "snd_ctl_elem_list_sizeof", + "snd_ctl_elem_list_malloc", + "snd_ctl_elem_list_free", + "snd_ctl_elem_list_clear", + "snd_ctl_elem_list_copy", + "snd_ctl_elem_list_set_offset", + "snd_ctl_elem_list_get_used", + "snd_ctl_elem_list_get_count", + "snd_ctl_elem_list_get_id", + "snd_ctl_elem_list_get_numid", + "snd_ctl_elem_list_get_interface", + "snd_ctl_elem_list_get_device", + "snd_ctl_elem_list_get_subdevice", + "snd_ctl_elem_list_get_name", + "snd_ctl_elem_list_get_index", + "snd_ctl_elem_info_sizeof", + "snd_ctl_elem_info_malloc", + "snd_ctl_elem_info_free", + "snd_ctl_elem_info_clear", + "snd_ctl_elem_info_copy", + "snd_ctl_elem_info_get_type", + "snd_ctl_elem_info_is_readable", + "snd_ctl_elem_info_is_writable", + "snd_ctl_elem_info_is_volatile", + "snd_ctl_elem_info_is_inactive", + "snd_ctl_elem_info_is_locked", + "snd_ctl_elem_info_is_tlv_readable", + "snd_ctl_elem_info_is_tlv_writable", + "snd_ctl_elem_info_is_tlv_commandable", + "snd_ctl_elem_info_is_owner", + "snd_ctl_elem_info_is_user", + "snd_ctl_elem_info_get_owner", + "snd_ctl_elem_info_get_count", + "snd_ctl_elem_info_get_min", + "snd_ctl_elem_info_get_max", + "snd_ctl_elem_info_get_step", + "snd_ctl_elem_info_get_min64", + "snd_ctl_elem_info_get_max64", + "snd_ctl_elem_info_get_step64", + "snd_ctl_elem_info_get_items", + "snd_ctl_elem_info_set_item", + "snd_ctl_elem_info_get_item_name", + "snd_ctl_elem_info_get_dimensions", + "snd_ctl_elem_info_get_dimension", + "snd_ctl_elem_info_set_dimension", + "snd_ctl_elem_info_get_id", + "snd_ctl_elem_info_get_numid", + "snd_ctl_elem_info_get_interface", + "snd_ctl_elem_info_get_device", + "snd_ctl_elem_info_get_subdevice", + "snd_ctl_elem_info_get_name", + "snd_ctl_elem_info_get_index", + "snd_ctl_elem_info_set_id", + "snd_ctl_elem_info_set_numid", + "snd_ctl_elem_info_set_interface", + "snd_ctl_elem_info_set_device", + "snd_ctl_elem_info_set_subdevice", + "snd_ctl_elem_info_set_name", + "snd_ctl_elem_info_set_index", + "snd_ctl_add_integer_elem_set", + "snd_ctl_add_integer64_elem_set", + "snd_ctl_add_boolean_elem_set", + "snd_ctl_add_enumerated_elem_set", + "snd_ctl_add_bytes_elem_set", + "snd_ctl_elem_add_integer", + "snd_ctl_elem_add_integer64", + "snd_ctl_elem_add_boolean", + "snd_ctl_elem_add_enumerated", + "snd_ctl_elem_add_iec958", + "snd_ctl_elem_remove", + "snd_ctl_elem_value_sizeof", + "snd_ctl_elem_value_malloc", + "snd_ctl_elem_value_free", + "snd_ctl_elem_value_clear", + "snd_ctl_elem_value_copy", + "snd_ctl_elem_value_compare", + "snd_ctl_elem_value_get_id", + "snd_ctl_elem_value_get_numid", + "snd_ctl_elem_value_get_interface", + "snd_ctl_elem_value_get_device", + "snd_ctl_elem_value_get_subdevice", + "snd_ctl_elem_value_get_name", + "snd_ctl_elem_value_get_index", + "snd_ctl_elem_value_set_id", + "snd_ctl_elem_value_set_numid", + "snd_ctl_elem_value_set_interface", + "snd_ctl_elem_value_set_device", + "snd_ctl_elem_value_set_subdevice", + "snd_ctl_elem_value_set_name", + "snd_ctl_elem_value_set_index", + "snd_ctl_elem_value_get_boolean", + "snd_ctl_elem_value_get_integer", + "snd_ctl_elem_value_get_integer64", + "snd_ctl_elem_value_get_enumerated", + "snd_ctl_elem_value_get_byte", + "snd_ctl_elem_value_set_boolean", + "snd_ctl_elem_value_set_integer", + "snd_ctl_elem_value_set_integer64", + "snd_ctl_elem_value_set_enumerated", + "snd_ctl_elem_value_set_byte", + "snd_ctl_elem_set_bytes", + "snd_ctl_elem_value_get_bytes", + "snd_ctl_elem_value_get_iec958", + "snd_ctl_elem_value_set_iec958", + "snd_tlv_parse_dB_info", + "snd_tlv_get_dB_range", + "snd_tlv_convert_to_dB", + "snd_tlv_convert_from_dB", + "snd_ctl_get_dB_range", + "snd_ctl_convert_to_dB", + "snd_ctl_convert_from_dB", + "snd_hctl_compare_fast", + "snd_hctl_open", + "snd_hctl_open_ctl", + "snd_hctl_close", + "snd_hctl_nonblock", + "snd_hctl_poll_descriptors_count", + "snd_hctl_poll_descriptors", + "snd_hctl_poll_descriptors_revents", + "snd_hctl_get_count", + "snd_hctl_set_compare", + "snd_hctl_first_elem", + "snd_hctl_last_elem", + "snd_hctl_find_elem", + "snd_hctl_set_callback", + "snd_hctl_set_callback_private", + "snd_hctl_get_callback_private", + "snd_hctl_load", + "snd_hctl_free", + "snd_hctl_handle_events", + "snd_hctl_name", + "snd_hctl_wait", + "snd_hctl_ctl", + "snd_hctl_elem_next", + "snd_hctl_elem_prev", + "snd_hctl_elem_info", + "snd_hctl_elem_read", + "snd_hctl_elem_write", + "snd_hctl_elem_tlv_read", + "snd_hctl_elem_tlv_write", + "snd_hctl_elem_tlv_command", + "snd_hctl_elem_get_hctl", + "snd_hctl_elem_get_id", + "snd_hctl_elem_get_numid", + "snd_hctl_elem_get_interface", + "snd_hctl_elem_get_device", + "snd_hctl_elem_get_subdevice", + "snd_hctl_elem_get_name", + "snd_hctl_elem_get_index", + "snd_hctl_elem_set_callback", + "snd_hctl_elem_get_callback_private", + "snd_hctl_elem_set_callback_private", + "snd_sctl_build", + "snd_sctl_free", + "snd_sctl_install", + "snd_sctl_remove", + "snd_mixer_open", + "snd_mixer_close", + "snd_mixer_first_elem", + "snd_mixer_last_elem", + "snd_mixer_handle_events", + "snd_mixer_attach", + "snd_mixer_attach_hctl", + "snd_mixer_detach", + "snd_mixer_detach_hctl", + "snd_mixer_get_hctl", + "snd_mixer_poll_descriptors_count", + "snd_mixer_poll_descriptors", + "snd_mixer_poll_descriptors_revents", + "snd_mixer_load", + "snd_mixer_free", + "snd_mixer_wait", + "snd_mixer_set_compare", + "snd_mixer_set_callback", + "snd_mixer_get_callback_private", + "snd_mixer_set_callback_private", + "snd_mixer_get_count", + "snd_mixer_class_unregister", + "snd_mixer_elem_next", + "snd_mixer_elem_prev", + "snd_mixer_elem_set_callback", + "snd_mixer_elem_get_callback_private", + "snd_mixer_elem_set_callback_private", + "snd_mixer_elem_get_type", + "snd_mixer_class_register", + "snd_mixer_elem_new", + "snd_mixer_elem_add", + "snd_mixer_elem_remove", + "snd_mixer_elem_free", + "snd_mixer_elem_info", + "snd_mixer_elem_value", + "snd_mixer_elem_attach", + "snd_mixer_elem_detach", + "snd_mixer_elem_empty", + "snd_mixer_elem_get_private", + "snd_mixer_class_sizeof", + "snd_mixer_class_malloc", + "snd_mixer_class_free", + "snd_mixer_class_copy", + "snd_mixer_class_get_mixer", + "snd_mixer_class_get_event", + "snd_mixer_class_get_private", + "snd_mixer_class_get_compare", + "snd_mixer_class_set_event", + "snd_mixer_class_set_private", + "snd_mixer_class_set_private_free", + "snd_mixer_class_set_compare", + "snd_mixer_selem_channel_name", + "snd_mixer_selem_register", + "snd_mixer_selem_get_id", + "snd_mixer_selem_get_name", + "snd_mixer_selem_get_index", + "snd_mixer_find_selem", + "snd_mixer_selem_is_active", + "snd_mixer_selem_is_playback_mono", + "snd_mixer_selem_has_playback_channel", + "snd_mixer_selem_is_capture_mono", + "snd_mixer_selem_has_capture_channel", + "snd_mixer_selem_get_capture_group", + "snd_mixer_selem_has_common_volume", + "snd_mixer_selem_has_playback_volume", + "snd_mixer_selem_has_playback_volume_joined", + "snd_mixer_selem_has_capture_volume", + "snd_mixer_selem_has_capture_volume_joined", + "snd_mixer_selem_has_common_switch", + "snd_mixer_selem_has_playback_switch", + "snd_mixer_selem_has_playback_switch_joined", + "snd_mixer_selem_has_capture_switch", + "snd_mixer_selem_has_capture_switch_joined", + "snd_mixer_selem_has_capture_switch_exclusive", + "snd_mixer_selem_ask_playback_vol_dB", + "snd_mixer_selem_ask_capture_vol_dB", + "snd_mixer_selem_ask_playback_dB_vol", + "snd_mixer_selem_ask_capture_dB_vol", + "snd_mixer_selem_get_playback_volume", + "snd_mixer_selem_get_capture_volume", + "snd_mixer_selem_get_playback_dB", + "snd_mixer_selem_get_capture_dB", + "snd_mixer_selem_get_playback_switch", + "snd_mixer_selem_get_capture_switch", + "snd_mixer_selem_set_playback_volume", + "snd_mixer_selem_set_capture_volume", + "snd_mixer_selem_set_playback_dB", + "snd_mixer_selem_set_capture_dB", + "snd_mixer_selem_set_playback_volume_all", + "snd_mixer_selem_set_capture_volume_all", + "snd_mixer_selem_set_playback_dB_all", + "snd_mixer_selem_set_capture_dB_all", + "snd_mixer_selem_set_playback_switch", + "snd_mixer_selem_set_capture_switch", + "snd_mixer_selem_set_playback_switch_all", + "snd_mixer_selem_set_capture_switch_all", + "snd_mixer_selem_get_playback_volume_range", + "snd_mixer_selem_get_playback_dB_range", + "snd_mixer_selem_set_playback_volume_range", + "snd_mixer_selem_get_capture_volume_range", + "snd_mixer_selem_get_capture_dB_range", + "snd_mixer_selem_set_capture_volume_range", + "snd_mixer_selem_is_enumerated", + "snd_mixer_selem_is_enum_playback", + "snd_mixer_selem_is_enum_capture", + "snd_mixer_selem_get_enum_items", + "snd_mixer_selem_get_enum_item_name", + "snd_mixer_selem_get_enum_item", + "snd_mixer_selem_set_enum_item", + "snd_mixer_selem_id_sizeof", + "snd_mixer_selem_id_malloc", + "snd_mixer_selem_id_free", + "snd_mixer_selem_id_copy", + "snd_mixer_selem_id_get_name", + "snd_mixer_selem_id_get_index", + "snd_mixer_selem_id_set_name", + "snd_mixer_selem_id_set_index", + "snd_seq_open", + "snd_seq_open_lconf", + "snd_seq_name", + "snd_seq_type", + "snd_seq_close", + "snd_seq_poll_descriptors_count", + "snd_seq_poll_descriptors", + "snd_seq_poll_descriptors_revents", + "snd_seq_nonblock", + "snd_seq_client_id", + "snd_seq_get_output_buffer_size", + "snd_seq_get_input_buffer_size", + "snd_seq_set_output_buffer_size", + "snd_seq_set_input_buffer_size", + "snd_seq_system_info_sizeof", + "snd_seq_system_info_malloc", + "snd_seq_system_info_free", + "snd_seq_system_info_copy", + "snd_seq_system_info_get_queues", + "snd_seq_system_info_get_clients", + "snd_seq_system_info_get_ports", + "snd_seq_system_info_get_channels", + "snd_seq_system_info_get_cur_clients", + "snd_seq_system_info_get_cur_queues", + "snd_seq_system_info", + "snd_seq_client_info_sizeof", + "snd_seq_client_info_malloc", + "snd_seq_client_info_free", + "snd_seq_client_info_copy", + "snd_seq_client_info_get_client", + "snd_seq_client_info_get_type", + "snd_seq_client_info_get_name", + "snd_seq_client_info_get_broadcast_filter", + "snd_seq_client_info_get_error_bounce", + "snd_seq_client_info_get_card", + "snd_seq_client_info_get_pid", + "snd_seq_client_info_get_event_filter", + "snd_seq_client_info_get_num_ports", + "snd_seq_client_info_get_event_lost", + "snd_seq_client_info_set_client", + "snd_seq_client_info_set_name", + "snd_seq_client_info_set_broadcast_filter", + "snd_seq_client_info_set_error_bounce", + "snd_seq_client_info_set_event_filter", + "snd_seq_client_info_event_filter_clear", + "snd_seq_client_info_event_filter_add", + "snd_seq_client_info_event_filter_del", + "snd_seq_client_info_event_filter_check", + "snd_seq_get_client_info", + "snd_seq_get_any_client_info", + "snd_seq_set_client_info", + "snd_seq_query_next_client", + "snd_seq_client_pool_sizeof", + "snd_seq_client_pool_malloc", + "snd_seq_client_pool_free", + "snd_seq_client_pool_copy", + "snd_seq_client_pool_get_client", + "snd_seq_client_pool_get_output_pool", + "snd_seq_client_pool_get_input_pool", + "snd_seq_client_pool_get_output_room", + "snd_seq_client_pool_get_output_free", + "snd_seq_client_pool_get_input_free", + "snd_seq_client_pool_set_output_pool", + "snd_seq_client_pool_set_input_pool", + "snd_seq_client_pool_set_output_room", + "snd_seq_get_client_pool", + "snd_seq_set_client_pool", + "snd_seq_port_info_sizeof", + "snd_seq_port_info_malloc", + "snd_seq_port_info_free", + "snd_seq_port_info_copy", + "snd_seq_port_info_get_client", + "snd_seq_port_info_get_port", + "snd_seq_port_info_get_addr", + "snd_seq_port_info_get_name", + "snd_seq_port_info_get_capability", + "snd_seq_port_info_get_type", + "snd_seq_port_info_get_midi_channels", + "snd_seq_port_info_get_midi_voices", + "snd_seq_port_info_get_synth_voices", + "snd_seq_port_info_get_read_use", + "snd_seq_port_info_get_write_use", + "snd_seq_port_info_get_port_specified", + "snd_seq_port_info_get_timestamping", + "snd_seq_port_info_get_timestamp_real", + "snd_seq_port_info_get_timestamp_queue", + "snd_seq_port_info_set_client", + "snd_seq_port_info_set_port", + "snd_seq_port_info_set_addr", + "snd_seq_port_info_set_name", + "snd_seq_port_info_set_capability", + "snd_seq_port_info_set_type", + "snd_seq_port_info_set_midi_channels", + "snd_seq_port_info_set_midi_voices", + "snd_seq_port_info_set_synth_voices", + "snd_seq_port_info_set_port_specified", + "snd_seq_port_info_set_timestamping", + "snd_seq_port_info_set_timestamp_real", + "snd_seq_port_info_set_timestamp_queue", + "snd_seq_create_port", + "snd_seq_delete_port", + "snd_seq_get_port_info", + "snd_seq_get_any_port_info", + "snd_seq_set_port_info", + "snd_seq_query_next_port", + "snd_seq_port_subscribe_sizeof", + "snd_seq_port_subscribe_malloc", + "snd_seq_port_subscribe_free", + "snd_seq_port_subscribe_copy", + "snd_seq_port_subscribe_get_sender", + "snd_seq_port_subscribe_get_dest", + "snd_seq_port_subscribe_get_queue", + "snd_seq_port_subscribe_get_exclusive", + "snd_seq_port_subscribe_get_time_update", + "snd_seq_port_subscribe_get_time_real", + "snd_seq_port_subscribe_set_sender", + "snd_seq_port_subscribe_set_dest", + "snd_seq_port_subscribe_set_queue", + "snd_seq_port_subscribe_set_exclusive", + "snd_seq_port_subscribe_set_time_update", + "snd_seq_port_subscribe_set_time_real", + "snd_seq_get_port_subscription", + "snd_seq_subscribe_port", + "snd_seq_unsubscribe_port", + "snd_seq_query_subscribe_sizeof", + "snd_seq_query_subscribe_malloc", + "snd_seq_query_subscribe_free", + "snd_seq_query_subscribe_copy", + "snd_seq_query_subscribe_get_client", + "snd_seq_query_subscribe_get_port", + "snd_seq_query_subscribe_get_root", + "snd_seq_query_subscribe_get_type", + "snd_seq_query_subscribe_get_index", + "snd_seq_query_subscribe_get_num_subs", + "snd_seq_query_subscribe_get_addr", + "snd_seq_query_subscribe_get_queue", + "snd_seq_query_subscribe_get_exclusive", + "snd_seq_query_subscribe_get_time_update", + "snd_seq_query_subscribe_get_time_real", + "snd_seq_query_subscribe_set_client", + "snd_seq_query_subscribe_set_port", + "snd_seq_query_subscribe_set_root", + "snd_seq_query_subscribe_set_type", + "snd_seq_query_subscribe_set_index", + "snd_seq_query_port_subscribers", + "snd_seq_queue_info_sizeof", + "snd_seq_queue_info_malloc", + "snd_seq_queue_info_free", + "snd_seq_queue_info_copy", + "snd_seq_queue_info_get_queue", + "snd_seq_queue_info_get_name", + "snd_seq_queue_info_get_owner", + "snd_seq_queue_info_get_locked", + "snd_seq_queue_info_get_flags", + "snd_seq_queue_info_set_name", + "snd_seq_queue_info_set_owner", + "snd_seq_queue_info_set_locked", + "snd_seq_queue_info_set_flags", + "snd_seq_create_queue", + "snd_seq_alloc_named_queue", + "snd_seq_alloc_queue", + "snd_seq_free_queue", + "snd_seq_get_queue_info", + "snd_seq_set_queue_info", + "snd_seq_query_named_queue", + "snd_seq_get_queue_usage", + "snd_seq_set_queue_usage", + "snd_seq_queue_status_sizeof", + "snd_seq_queue_status_malloc", + "snd_seq_queue_status_free", + "snd_seq_queue_status_copy", + "snd_seq_queue_status_get_queue", + "snd_seq_queue_status_get_events", + "snd_seq_queue_status_get_tick_time", + "snd_seq_queue_status_get_real_time", + "snd_seq_queue_status_get_status", + "snd_seq_get_queue_status", + "snd_seq_queue_tempo_sizeof", + "snd_seq_queue_tempo_malloc", + "snd_seq_queue_tempo_free", + "snd_seq_queue_tempo_copy", + "snd_seq_queue_tempo_get_queue", + "snd_seq_queue_tempo_get_tempo", + "snd_seq_queue_tempo_get_ppq", + "snd_seq_queue_tempo_get_skew", + "snd_seq_queue_tempo_get_skew_base", + "snd_seq_queue_tempo_set_tempo", + "snd_seq_queue_tempo_set_ppq", + "snd_seq_queue_tempo_set_skew", + "snd_seq_queue_tempo_set_skew_base", + "snd_seq_get_queue_tempo", + "snd_seq_set_queue_tempo", + "snd_seq_queue_timer_sizeof", + "snd_seq_queue_timer_malloc", + "snd_seq_queue_timer_free", + "snd_seq_queue_timer_copy", + "snd_seq_queue_timer_get_queue", + "snd_seq_queue_timer_get_type", + "snd_seq_queue_timer_get_id", + "snd_seq_queue_timer_get_resolution", + "snd_seq_queue_timer_set_type", + "snd_seq_queue_timer_set_id", + "snd_seq_queue_timer_set_resolution", + "snd_seq_get_queue_timer", + "snd_seq_set_queue_timer", + "snd_seq_free_event", + "snd_seq_event_length", + "snd_seq_event_output", + "snd_seq_event_output_buffer", + "snd_seq_event_output_direct", + "snd_seq_event_input", + "snd_seq_event_input_pending", + "snd_seq_drain_output", + "snd_seq_event_output_pending", + "snd_seq_extract_output", + "snd_seq_drop_output", + "snd_seq_drop_output_buffer", + "snd_seq_drop_input", + "snd_seq_drop_input_buffer", + "snd_seq_remove_events_sizeof", + "snd_seq_remove_events_malloc", + "snd_seq_remove_events_free", + "snd_seq_remove_events_copy", + "snd_seq_remove_events_get_condition", + "snd_seq_remove_events_get_queue", + "snd_seq_remove_events_get_time", + "snd_seq_remove_events_get_dest", + "snd_seq_remove_events_get_channel", + "snd_seq_remove_events_get_event_type", + "snd_seq_remove_events_get_tag", + "snd_seq_remove_events_set_condition", + "snd_seq_remove_events_set_queue", + "snd_seq_remove_events_set_time", + "snd_seq_remove_events_set_dest", + "snd_seq_remove_events_set_channel", + "snd_seq_remove_events_set_event_type", + "snd_seq_remove_events_set_tag", + "snd_seq_remove_events", + "snd_seq_set_bit", + "snd_seq_unset_bit", + "snd_seq_change_bit", + "snd_seq_get_bit", + "snd_seq_control_queue", + "snd_seq_create_simple_port", + "snd_seq_delete_simple_port", + "snd_seq_connect_from", + "snd_seq_connect_to", + "snd_seq_disconnect_from", + "snd_seq_disconnect_to", + "snd_seq_set_client_name", + "snd_seq_set_client_event_filter", + "snd_seq_set_client_pool_output", + "snd_seq_set_client_pool_output_room", + "snd_seq_set_client_pool_input", + "snd_seq_sync_output_queue", + "snd_seq_parse_address", + "snd_seq_reset_pool_output", + "snd_seq_reset_pool_input", + "snd_midi_event_new", + "snd_midi_event_resize_buffer", + "snd_midi_event_free", + "snd_midi_event_init", + "snd_midi_event_reset_encode", + "snd_midi_event_reset_decode", + "snd_midi_event_no_status", + "snd_midi_event_encode", + "snd_midi_event_encode_byte", + "snd_midi_event_decode", + "snd_asoundlib_version", + "snd_dlopen", + "snd_dlsym", + "snd_dlclose", + "snd_async_add_handler", + "snd_async_del_handler", + "snd_async_handler_get_fd", + "snd_async_handler_get_signo", + "snd_async_handler_get_callback_private", + "snd_shm_area_create", + "snd_shm_area_share", + "snd_shm_area_destroy", + "snd_user_file", + "snd_input_stdio_open", + "snd_input_stdio_attach", + "snd_input_buffer_open", + "snd_input_close", + "snd_input_scanf", + "snd_input_gets", + "snd_input_getc", + "snd_input_ungetc", + "snd_output_stdio_open", + "snd_output_stdio_attach", + "snd_output_buffer_open", + "snd_output_buffer_string", + "snd_output_close", + "snd_output_printf", + "snd_output_vprintf", + "snd_output_puts", + "snd_output_putc", + "snd_output_flush", + "snd_strerror", + "snd_lib_error_set_handler", + "snd_lib_error_set_local", + "snd_config_top", + "snd_config_load", + "snd_config_load_override", + "snd_config_save", + "snd_config_update", + "snd_config_update_r", + "snd_config_update_free", + "snd_config_update_free_global", + "snd_config_update_ref", + "snd_config_ref", + "snd_config_unref", + "snd_config_search", + "snd_config_searchv", + "snd_config_search_definition", + "snd_config_expand", + "snd_config_evaluate", + "snd_config_add", + "snd_config_delete", + "snd_config_delete_compound_members", + "snd_config_copy", + "snd_config_make", + "snd_config_make_integer", + "snd_config_make_integer64", + "snd_config_make_real", + "snd_config_make_string", + "snd_config_make_pointer", + "snd_config_make_compound", + "snd_config_imake_integer", + "snd_config_imake_integer64", + "snd_config_imake_real", + "snd_config_imake_string", + "snd_config_imake_safe_string", + "snd_config_imake_pointer", + "snd_config_get_type", + "snd_config_set_id", + "snd_config_set_integer", + "snd_config_set_integer64", + "snd_config_set_real", + "snd_config_set_string", + "snd_config_set_ascii", + "snd_config_set_pointer", + "snd_config_get_id", + "snd_config_get_integer", + "snd_config_get_integer64", + "snd_config_get_real", + "snd_config_get_ireal", + "snd_config_get_string", + "snd_config_get_ascii", + "snd_config_get_pointer", + "snd_config_test_id", + "snd_config_iterator_first", + "snd_config_iterator_next", + "snd_config_iterator_end", + "snd_config_iterator_entry", + "snd_config_get_bool_ascii", + "snd_config_get_bool", + "snd_config_get_ctl_iface_ascii", + "snd_config_get_ctl_iface", + "snd_names_list", + "snd_names_list_free", + "snd_pcm_open", + "snd_pcm_open_lconf", + "snd_pcm_open_fallback", + "snd_pcm_close", + "snd_pcm_name", + "snd_pcm_type", + "snd_pcm_stream", + "snd_pcm_poll_descriptors_count", + "snd_pcm_poll_descriptors", + "snd_pcm_poll_descriptors_revents", + "snd_pcm_nonblock", + "snd_async_add_pcm_handler", + "snd_async_handler_get_pcm", + "snd_pcm_info", + "snd_pcm_hw_params_current", + "snd_pcm_hw_params", + "snd_pcm_hw_free", + "snd_pcm_sw_params_current", + "snd_pcm_sw_params", + "snd_pcm_prepare", + "snd_pcm_reset", + "snd_pcm_status", + "snd_pcm_start", + "snd_pcm_drop", + "snd_pcm_drain", + "snd_pcm_pause", + "snd_pcm_state", + "snd_pcm_hwsync", + "snd_pcm_delay", + "snd_pcm_resume", + "snd_pcm_htimestamp", + "snd_pcm_avail", + "snd_pcm_avail_update", + "snd_pcm_avail_delay", + "snd_pcm_rewindable", + "snd_pcm_rewind", + "snd_pcm_forwardable", + "snd_pcm_forward", + "snd_pcm_writei", + "snd_pcm_readi", + "snd_pcm_writen", + "snd_pcm_readn", + "snd_pcm_wait", + "snd_pcm_link", + "snd_pcm_unlink", + "snd_pcm_query_chmaps", + "snd_pcm_query_chmaps_from_hw", + "snd_pcm_free_chmaps", + "snd_pcm_get_chmap", + "snd_pcm_set_chmap", + "snd_pcm_chmap_type_name", + "snd_pcm_chmap_name", + "snd_pcm_chmap_long_name", + "snd_pcm_chmap_print", + "snd_pcm_chmap_from_string", + "snd_pcm_chmap_parse_string", + "snd_pcm_recover", + "snd_pcm_set_params", + "snd_pcm_get_params", + "snd_pcm_info_sizeof", + "snd_pcm_info_malloc", + "snd_pcm_info_free", + "snd_pcm_info_copy", + "snd_pcm_info_get_device", + "snd_pcm_info_get_subdevice", + "snd_pcm_info_get_stream", + "snd_pcm_info_get_card", + "snd_pcm_info_get_id", + "snd_pcm_info_get_name", + "snd_pcm_info_get_subdevice_name", + "snd_pcm_info_get_class", + "snd_pcm_info_get_subclass", + "snd_pcm_info_get_subdevices_count", + "snd_pcm_info_get_subdevices_avail", + "snd_pcm_info_get_sync", + "snd_pcm_info_set_device", + "snd_pcm_info_set_subdevice", + "snd_pcm_info_set_stream", + "snd_pcm_hw_params_any", + "snd_pcm_hw_params_can_mmap_sample_resolution", + "snd_pcm_hw_params_is_double", + "snd_pcm_hw_params_is_batch", + "snd_pcm_hw_params_is_block_transfer", + "snd_pcm_hw_params_is_monotonic", + "snd_pcm_hw_params_can_overrange", + "snd_pcm_hw_params_can_pause", + "snd_pcm_hw_params_can_resume", + "snd_pcm_hw_params_is_half_duplex", + "snd_pcm_hw_params_is_joint_duplex", + "snd_pcm_hw_params_can_sync_start", + "snd_pcm_hw_params_can_disable_period_wakeup", + "snd_pcm_hw_params_supports_audio_wallclock_ts", + "snd_pcm_hw_params_supports_audio_ts_type", + "snd_pcm_hw_params_get_rate_numden", + "snd_pcm_hw_params_get_sbits", + "snd_pcm_hw_params_get_fifo_size", + "snd_pcm_hw_params_sizeof", + "snd_pcm_hw_params_malloc", + "snd_pcm_hw_params_free", + "snd_pcm_hw_params_copy", + "snd_pcm_hw_params_get_access", + "snd_pcm_hw_params_test_access", + "snd_pcm_hw_params_set_access", + "snd_pcm_hw_params_set_access_first", + "snd_pcm_hw_params_set_access_last", + "snd_pcm_hw_params_set_access_mask", + "snd_pcm_hw_params_get_access_mask", + "snd_pcm_hw_params_get_format", + "snd_pcm_hw_params_test_format", + "snd_pcm_hw_params_set_format", + "snd_pcm_hw_params_set_format_first", + "snd_pcm_hw_params_set_format_last", + "snd_pcm_hw_params_set_format_mask", + "snd_pcm_hw_params_get_format_mask", + "snd_pcm_hw_params_get_subformat", + "snd_pcm_hw_params_test_subformat", + "snd_pcm_hw_params_set_subformat", + "snd_pcm_hw_params_set_subformat_first", + "snd_pcm_hw_params_set_subformat_last", + "snd_pcm_hw_params_set_subformat_mask", + "snd_pcm_hw_params_get_subformat_mask", + "snd_pcm_hw_params_get_channels", + "snd_pcm_hw_params_get_channels_min", + "snd_pcm_hw_params_get_channels_max", + "snd_pcm_hw_params_test_channels", + "snd_pcm_hw_params_set_channels", + "snd_pcm_hw_params_set_channels_min", + "snd_pcm_hw_params_set_channels_max", + "snd_pcm_hw_params_set_channels_minmax", + "snd_pcm_hw_params_set_channels_near", + "snd_pcm_hw_params_set_channels_first", + "snd_pcm_hw_params_set_channels_last", + "snd_pcm_hw_params_get_rate", + "snd_pcm_hw_params_get_rate_min", + "snd_pcm_hw_params_get_rate_max", + "snd_pcm_hw_params_test_rate", + "snd_pcm_hw_params_set_rate", + "snd_pcm_hw_params_set_rate_min", + "snd_pcm_hw_params_set_rate_max", + "snd_pcm_hw_params_set_rate_minmax", + "snd_pcm_hw_params_set_rate_near", + "snd_pcm_hw_params_set_rate_first", + "snd_pcm_hw_params_set_rate_last", + "snd_pcm_hw_params_set_rate_resample", + "snd_pcm_hw_params_get_rate_resample", + "snd_pcm_hw_params_set_export_buffer", + "snd_pcm_hw_params_get_export_buffer", + "snd_pcm_hw_params_set_period_wakeup", + "snd_pcm_hw_params_get_period_wakeup", + "snd_pcm_hw_params_get_period_time", + "snd_pcm_hw_params_get_period_time_min", + "snd_pcm_hw_params_get_period_time_max", + "snd_pcm_hw_params_test_period_time", + "snd_pcm_hw_params_set_period_time", + "snd_pcm_hw_params_set_period_time_min", + "snd_pcm_hw_params_set_period_time_max", + "snd_pcm_hw_params_set_period_time_minmax", + "snd_pcm_hw_params_set_period_time_near", + "snd_pcm_hw_params_set_period_time_first", + "snd_pcm_hw_params_set_period_time_last", + "snd_pcm_hw_params_get_period_size", + "snd_pcm_hw_params_get_period_size_min", + "snd_pcm_hw_params_get_period_size_max", + "snd_pcm_hw_params_test_period_size", + "snd_pcm_hw_params_set_period_size", + "snd_pcm_hw_params_set_period_size_min", + "snd_pcm_hw_params_set_period_size_max", + "snd_pcm_hw_params_set_period_size_minmax", + "snd_pcm_hw_params_set_period_size_near", + "snd_pcm_hw_params_set_period_size_first", + "snd_pcm_hw_params_set_period_size_last", + "snd_pcm_hw_params_set_period_size_integer", + "snd_pcm_hw_params_get_periods", + "snd_pcm_hw_params_get_periods_min", + "snd_pcm_hw_params_get_periods_max", + "snd_pcm_hw_params_test_periods", + "snd_pcm_hw_params_set_periods", + "snd_pcm_hw_params_set_periods_min", + "snd_pcm_hw_params_set_periods_max", + "snd_pcm_hw_params_set_periods_minmax", + "snd_pcm_hw_params_set_periods_near", + "snd_pcm_hw_params_set_periods_first", + "snd_pcm_hw_params_set_periods_last", + "snd_pcm_hw_params_set_periods_integer", + "snd_pcm_hw_params_get_buffer_time", + "snd_pcm_hw_params_get_buffer_time_min", + "snd_pcm_hw_params_get_buffer_time_max", + "snd_pcm_hw_params_test_buffer_time", + "snd_pcm_hw_params_set_buffer_time", + "snd_pcm_hw_params_set_buffer_time_min", + "snd_pcm_hw_params_set_buffer_time_max", + "snd_pcm_hw_params_set_buffer_time_minmax", + "snd_pcm_hw_params_set_buffer_time_near", + "snd_pcm_hw_params_set_buffer_time_first", + "snd_pcm_hw_params_set_buffer_time_last", + "snd_pcm_hw_params_get_buffer_size", + "snd_pcm_hw_params_get_buffer_size_min", + "snd_pcm_hw_params_get_buffer_size_max", + "snd_pcm_hw_params_test_buffer_size", + "snd_pcm_hw_params_set_buffer_size", + "snd_pcm_hw_params_set_buffer_size_min", + "snd_pcm_hw_params_set_buffer_size_max", + "snd_pcm_hw_params_set_buffer_size_minmax", + "snd_pcm_hw_params_set_buffer_size_near", + "snd_pcm_hw_params_set_buffer_size_first", + "snd_pcm_hw_params_set_buffer_size_last", + "snd_pcm_hw_params_get_min_align", + "snd_pcm_sw_params_sizeof", + "snd_pcm_sw_params_malloc", + "snd_pcm_sw_params_free", + "snd_pcm_sw_params_copy", + "snd_pcm_sw_params_get_boundary", + "snd_pcm_sw_params_set_tstamp_mode", + "snd_pcm_sw_params_get_tstamp_mode", + "snd_pcm_sw_params_set_avail_min", + "snd_pcm_sw_params_get_avail_min", + "snd_pcm_sw_params_set_period_event", + "snd_pcm_sw_params_get_period_event", + "snd_pcm_sw_params_set_start_threshold", + "snd_pcm_sw_params_get_start_threshold", + "snd_pcm_sw_params_set_stop_threshold", + "snd_pcm_sw_params_get_stop_threshold", + "snd_pcm_sw_params_set_silence_threshold", + "snd_pcm_sw_params_get_silence_threshold", + "snd_pcm_sw_params_set_silence_size", + "snd_pcm_sw_params_get_silence_size", + "snd_pcm_access_mask_sizeof", + "snd_pcm_access_mask_malloc", + "snd_pcm_access_mask_free", + "snd_pcm_access_mask_copy", + "snd_pcm_access_mask_none", + "snd_pcm_access_mask_any", + "snd_pcm_access_mask_test", + "snd_pcm_access_mask_empty", + "snd_pcm_access_mask_set", + "snd_pcm_access_mask_reset", + "snd_pcm_format_mask_sizeof", + "snd_pcm_format_mask_malloc", + "snd_pcm_format_mask_free", + "snd_pcm_format_mask_copy", + "snd_pcm_format_mask_none", + "snd_pcm_format_mask_any", + "snd_pcm_format_mask_test", + "snd_pcm_format_mask_empty", + "snd_pcm_format_mask_set", + "snd_pcm_format_mask_reset", + "snd_pcm_subformat_mask_sizeof", + "snd_pcm_subformat_mask_malloc", + "snd_pcm_subformat_mask_free", + "snd_pcm_subformat_mask_copy", + "snd_pcm_subformat_mask_none", + "snd_pcm_subformat_mask_any", + "snd_pcm_subformat_mask_test", + "snd_pcm_subformat_mask_empty", + "snd_pcm_subformat_mask_set", + "snd_pcm_subformat_mask_reset", + "snd_pcm_status_sizeof", + "snd_pcm_status_malloc", + "snd_pcm_status_free", + "snd_pcm_status_copy", + "snd_pcm_status_get_state", + "snd_pcm_status_get_trigger_tstamp", + "snd_pcm_status_get_trigger_htstamp", + "snd_pcm_status_get_tstamp", + "snd_pcm_status_get_htstamp", + "snd_pcm_status_get_audio_htstamp", + "snd_pcm_status_get_driver_htstamp", + "snd_pcm_status_get_delay", + "snd_pcm_status_get_avail", + "snd_pcm_status_get_avail_max", + "snd_pcm_status_get_overrange", + "snd_pcm_type_name", + "snd_pcm_stream_name", + "snd_pcm_access_name", + "snd_pcm_format_name", + "snd_pcm_format_description", + "snd_pcm_subformat_name", + "snd_pcm_subformat_description", + "snd_pcm_format_value", + "snd_pcm_tstamp_mode_name", + "snd_pcm_state_name", + "snd_pcm_dump", + "snd_pcm_dump_hw_setup", + "snd_pcm_dump_sw_setup", + "snd_pcm_dump_setup", + "snd_pcm_hw_params_dump", + "snd_pcm_sw_params_dump", + "snd_pcm_status_dump", + "snd_pcm_mmap_begin", + "snd_pcm_mmap_commit", + "snd_pcm_mmap_writei", + "snd_pcm_mmap_readi", + "snd_pcm_mmap_writen", + "snd_pcm_mmap_readn", + "snd_pcm_format_signed", + "snd_pcm_format_unsigned", + "snd_pcm_format_linear", + "snd_pcm_format_float", + "snd_pcm_format_little_endian", + "snd_pcm_format_big_endian", + "snd_pcm_format_cpu_endian", + "snd_pcm_format_width", + "snd_pcm_format_physical_width", + "snd_pcm_build_linear_format", + "snd_pcm_format_size", + "snd_pcm_format_silence", + "snd_pcm_format_silence_16", + "snd_pcm_format_silence_32", + "snd_pcm_format_silence_64", + "snd_pcm_format_set_silence", + "snd_pcm_bytes_to_frames", + "snd_pcm_frames_to_bytes", + "snd_pcm_bytes_to_samples", + "snd_pcm_samples_to_bytes", + "snd_pcm_area_silence", + "snd_pcm_areas_silence", + "snd_pcm_area_copy", + "snd_pcm_areas_copy", + "snd_pcm_hook_get_pcm", + "snd_pcm_hook_get_private", + "snd_pcm_hook_set_private", + "snd_pcm_hook_add", + "snd_pcm_hook_remove", + "snd_pcm_meter_get_bufsize", + "snd_pcm_meter_get_channels", + "snd_pcm_meter_get_rate", + "snd_pcm_meter_get_now", + "snd_pcm_meter_get_boundary", + "snd_pcm_meter_add_scope", + "snd_pcm_meter_search_scope", + "snd_pcm_scope_malloc", + "snd_pcm_scope_set_ops", + "snd_pcm_scope_set_name", + "snd_pcm_scope_get_name", + "snd_pcm_scope_get_callback_private", + "snd_pcm_scope_set_callback_private", + "snd_pcm_scope_s16_open", + "snd_pcm_scope_s16_get_channel_buffer", + "snd_spcm_init", + "snd_spcm_init_duplex", + "snd_spcm_init_get_params", + "snd_pcm_start_mode_name", + "snd_pcm_xrun_mode_name", + "snd_pcm_sw_params_set_start_mode", + "snd_pcm_sw_params_get_start_mode", + "snd_pcm_sw_params_set_xrun_mode", + "snd_pcm_sw_params_get_xrun_mode", + "snd_pcm_sw_params_set_xfer_align", + "snd_pcm_sw_params_get_xfer_align", + "snd_pcm_sw_params_set_sleep_min", + "snd_pcm_sw_params_get_sleep_min", + "snd_pcm_hw_params_get_tick_time", + "snd_pcm_hw_params_get_tick_time_min", + "snd_pcm_hw_params_get_tick_time_max", + "snd_pcm_hw_params_test_tick_time", + "snd_pcm_hw_params_set_tick_time", + "snd_pcm_hw_params_set_tick_time_min", + "snd_pcm_hw_params_set_tick_time_max", + "snd_pcm_hw_params_set_tick_time_minmax", + "snd_pcm_hw_params_set_tick_time_near", + "snd_pcm_hw_params_set_tick_time_first", + "snd_pcm_hw_params_set_tick_time_last", + "snd_rawmidi_open", + "snd_rawmidi_open_lconf", + "snd_rawmidi_close", + "snd_rawmidi_poll_descriptors_count", + "snd_rawmidi_poll_descriptors", + "snd_rawmidi_poll_descriptors_revents", + "snd_rawmidi_nonblock", + "snd_rawmidi_info_sizeof", + "snd_rawmidi_info_malloc", + "snd_rawmidi_info_free", + "snd_rawmidi_info_copy", + "snd_rawmidi_info_get_device", + "snd_rawmidi_info_get_subdevice", + "snd_rawmidi_info_get_stream", + "snd_rawmidi_info_get_card", + "snd_rawmidi_info_get_flags", + "snd_rawmidi_info_get_id", + "snd_rawmidi_info_get_name", + "snd_rawmidi_info_get_subdevice_name", + "snd_rawmidi_info_get_subdevices_count", + "snd_rawmidi_info_get_subdevices_avail", + "snd_rawmidi_info_set_device", + "snd_rawmidi_info_set_subdevice", + "snd_rawmidi_info_set_stream", + "snd_rawmidi_info", + "snd_rawmidi_params_sizeof", + "snd_rawmidi_params_malloc", + "snd_rawmidi_params_free", + "snd_rawmidi_params_copy", + "snd_rawmidi_params_set_buffer_size", + "snd_rawmidi_params_get_buffer_size", + "snd_rawmidi_params_set_avail_min", + "snd_rawmidi_params_get_avail_min", + "snd_rawmidi_params_set_no_active_sensing", + "snd_rawmidi_params_get_no_active_sensing", + "snd_rawmidi_params", + "snd_rawmidi_params_current", + "snd_rawmidi_status_sizeof", + "snd_rawmidi_status_malloc", + "snd_rawmidi_status_free", + "snd_rawmidi_status_copy", + "snd_rawmidi_status_get_tstamp", + "snd_rawmidi_status_get_avail", + "snd_rawmidi_status_get_xruns", + "snd_rawmidi_status", + "snd_rawmidi_drain", + "snd_rawmidi_drop", + "snd_rawmidi_write", + "snd_rawmidi_read", + "snd_rawmidi_name", + "snd_rawmidi_type", + "snd_rawmidi_stream", + "snd_timer_query_open", + "snd_timer_query_open_lconf", + "snd_timer_query_close", + "snd_timer_query_next_device", + "snd_timer_query_info", + "snd_timer_query_params", + "snd_timer_query_status", + "snd_timer_open", + "snd_timer_open_lconf", + "snd_timer_close", + "snd_async_add_timer_handler", + "snd_async_handler_get_timer", + "snd_timer_poll_descriptors_count", + "snd_timer_poll_descriptors", + "snd_timer_poll_descriptors_revents", + "snd_timer_info", + "snd_timer_params", + "snd_timer_status", + "snd_timer_start", + "snd_timer_stop", + "snd_timer_continue", + "snd_timer_read", + "snd_timer_id_sizeof", + "snd_timer_id_malloc", + "snd_timer_id_free", + "snd_timer_id_copy", + "snd_timer_id_set_class", + "snd_timer_id_get_class", + "snd_timer_id_set_sclass", + "snd_timer_id_get_sclass", + "snd_timer_id_set_card", + "snd_timer_id_get_card", + "snd_timer_id_set_device", + "snd_timer_id_get_device", + "snd_timer_id_set_subdevice", + "snd_timer_id_get_subdevice", + "snd_timer_ginfo_sizeof", + "snd_timer_ginfo_malloc", + "snd_timer_ginfo_free", + "snd_timer_ginfo_copy", + "snd_timer_ginfo_set_tid", + "snd_timer_ginfo_get_tid", + "snd_timer_ginfo_get_flags", + "snd_timer_ginfo_get_card", + "snd_timer_ginfo_get_id", + "snd_timer_ginfo_get_name", + "snd_timer_ginfo_get_resolution", + "snd_timer_ginfo_get_resolution_min", + "snd_timer_ginfo_get_resolution_max", + "snd_timer_ginfo_get_clients", + "snd_timer_info_sizeof", + "snd_timer_info_malloc", + "snd_timer_info_free", + "snd_timer_info_copy", + "snd_timer_info_is_slave", + "snd_timer_info_get_card", + "snd_timer_info_get_id", + "snd_timer_info_get_name", + "snd_timer_info_get_resolution", + "snd_timer_params_sizeof", + "snd_timer_params_malloc", + "snd_timer_params_free", + "snd_timer_params_copy", + "snd_timer_params_set_auto_start", + "snd_timer_params_get_auto_start", + "snd_timer_params_set_exclusive", + "snd_timer_params_get_exclusive", + "snd_timer_params_set_early_event", + "snd_timer_params_get_early_event", + "snd_timer_params_set_ticks", + "snd_timer_params_get_ticks", + "snd_timer_params_set_queue_size", + "snd_timer_params_get_queue_size", + "snd_timer_params_set_filter", + "snd_timer_params_get_filter", + "snd_timer_status_sizeof", + "snd_timer_status_malloc", + "snd_timer_status_free", + "snd_timer_status_copy", + "snd_timer_status_get_timestamp", + "snd_timer_status_get_resolution", + "snd_timer_status_get_lost", + "snd_timer_status_get_overrun", + "snd_timer_status_get_queue", + "snd_timer_info_get_ticks", + "snd_hwdep_open", + "snd_hwdep_close", + "snd_hwdep_poll_descriptors", + "snd_hwdep_poll_descriptors_count", + "snd_hwdep_poll_descriptors_revents", + "snd_hwdep_nonblock", + "snd_hwdep_info", + "snd_hwdep_dsp_status", + "snd_hwdep_dsp_load", + "snd_hwdep_ioctl", + "snd_hwdep_write", + "snd_hwdep_read", + "snd_hwdep_info_sizeof", + "snd_hwdep_info_malloc", + "snd_hwdep_info_free", + "snd_hwdep_info_copy", + "snd_hwdep_info_get_device", + "snd_hwdep_info_get_card", + "snd_hwdep_info_get_id", + "snd_hwdep_info_get_name", + "snd_hwdep_info_get_iface", + "snd_hwdep_info_set_device", + "snd_hwdep_dsp_status_sizeof", + "snd_hwdep_dsp_status_malloc", + "snd_hwdep_dsp_status_free", + "snd_hwdep_dsp_status_copy", + "snd_hwdep_dsp_status_get_version", + "snd_hwdep_dsp_status_get_id", + "snd_hwdep_dsp_status_get_num_dsps", + "snd_hwdep_dsp_status_get_dsp_loaded", + "snd_hwdep_dsp_status_get_chip_ready", + "snd_hwdep_dsp_image_sizeof", + "snd_hwdep_dsp_image_malloc", + "snd_hwdep_dsp_image_free", + "snd_hwdep_dsp_image_copy", + "snd_hwdep_dsp_image_get_index", + "snd_hwdep_dsp_image_get_name", + "snd_hwdep_dsp_image_get_image", + "snd_hwdep_dsp_image_get_length", + "snd_hwdep_dsp_image_set_index", + "snd_hwdep_dsp_image_set_name", + "snd_hwdep_dsp_image_set_image", + "snd_hwdep_dsp_image_set_length", + "snd_card_load", + "snd_card_next", + "snd_card_get_index", + "snd_card_get_name", + "snd_card_get_longname", + "snd_device_name_hint", + "snd_device_name_free_hint", + "snd_device_name_get_hint", + "snd_ctl_open", + "snd_ctl_open_lconf", + "snd_ctl_open_fallback", + "snd_ctl_close", + "snd_ctl_nonblock", + "snd_async_add_ctl_handler", + "snd_async_handler_get_ctl", + "snd_ctl_poll_descriptors_count", + "snd_ctl_poll_descriptors", + "snd_ctl_poll_descriptors_revents", + "snd_ctl_subscribe_events", + "snd_ctl_card_info", + "snd_ctl_elem_list", + "snd_ctl_elem_info", + "snd_ctl_elem_read", + "snd_ctl_elem_write", + "snd_ctl_elem_lock", + "snd_ctl_elem_unlock", + "snd_ctl_elem_tlv_read", + "snd_ctl_elem_tlv_write", + "snd_ctl_elem_tlv_command", + "snd_ctl_hwdep_next_device", + "snd_ctl_hwdep_info", + "snd_ctl_pcm_next_device", + "snd_ctl_pcm_info", + "snd_ctl_pcm_prefer_subdevice", + "snd_ctl_rawmidi_next_device", + "snd_ctl_rawmidi_info", + "snd_ctl_rawmidi_prefer_subdevice", + "snd_ctl_set_power_state", + "snd_ctl_get_power_state", + "snd_ctl_read", + "snd_ctl_wait", + "snd_ctl_name", + "snd_ctl_type", + "snd_ctl_elem_type_name", + "snd_ctl_elem_iface_name", + "snd_ctl_event_type_name", + "snd_ctl_event_elem_get_mask", + "snd_ctl_event_elem_get_numid", + "snd_ctl_event_elem_get_id", + "snd_ctl_event_elem_get_interface", + "snd_ctl_event_elem_get_device", + "snd_ctl_event_elem_get_subdevice", + "snd_ctl_event_elem_get_name", + "snd_ctl_event_elem_get_index", + "snd_ctl_elem_list_alloc_space", + "snd_ctl_elem_list_free_space", + "snd_ctl_ascii_elem_id_get", + "snd_ctl_ascii_elem_id_parse", + "snd_ctl_ascii_value_parse", + "snd_ctl_elem_id_sizeof", + "snd_ctl_elem_id_malloc", + "snd_ctl_elem_id_free", + "snd_ctl_elem_id_clear", + "snd_ctl_elem_id_copy", + "snd_ctl_elem_id_get_numid", + "snd_ctl_elem_id_get_interface", + "snd_ctl_elem_id_get_device", + "snd_ctl_elem_id_get_subdevice", + "snd_ctl_elem_id_get_name", + "snd_ctl_elem_id_get_index", + "snd_ctl_elem_id_set_numid", + "snd_ctl_elem_id_set_interface", + "snd_ctl_elem_id_set_device", + "snd_ctl_elem_id_set_subdevice", + "snd_ctl_elem_id_set_name", + "snd_ctl_elem_id_set_index", + "snd_ctl_card_info_sizeof", + "snd_ctl_card_info_malloc", + "snd_ctl_card_info_free", + "snd_ctl_card_info_clear", + "snd_ctl_card_info_copy", + "snd_ctl_card_info_get_card", + "snd_ctl_card_info_get_id", + "snd_ctl_card_info_get_driver", + "snd_ctl_card_info_get_name", + "snd_ctl_card_info_get_longname", + "snd_ctl_card_info_get_mixername", + "snd_ctl_card_info_get_components", + "snd_ctl_event_sizeof", + "snd_ctl_event_malloc", + "snd_ctl_event_free", + "snd_ctl_event_clear", + "snd_ctl_event_copy", + "snd_ctl_event_get_type", + "snd_ctl_elem_list_sizeof", + "snd_ctl_elem_list_malloc", + "snd_ctl_elem_list_free", + "snd_ctl_elem_list_clear", + "snd_ctl_elem_list_copy", + "snd_ctl_elem_list_set_offset", + "snd_ctl_elem_list_get_used", + "snd_ctl_elem_list_get_count", + "snd_ctl_elem_list_get_id", + "snd_ctl_elem_list_get_numid", + "snd_ctl_elem_list_get_interface", + "snd_ctl_elem_list_get_device", + "snd_ctl_elem_list_get_subdevice", + "snd_ctl_elem_list_get_name", + "snd_ctl_elem_list_get_index", + "snd_ctl_elem_info_sizeof", + "snd_ctl_elem_info_malloc", + "snd_ctl_elem_info_free", + "snd_ctl_elem_info_clear", + "snd_ctl_elem_info_copy", + "snd_ctl_elem_info_get_type", + "snd_ctl_elem_info_is_readable", + "snd_ctl_elem_info_is_writable", + "snd_ctl_elem_info_is_volatile", + "snd_ctl_elem_info_is_inactive", + "snd_ctl_elem_info_is_locked", + "snd_ctl_elem_info_is_tlv_readable", + "snd_ctl_elem_info_is_tlv_writable", + "snd_ctl_elem_info_is_tlv_commandable", + "snd_ctl_elem_info_is_owner", + "snd_ctl_elem_info_is_user", + "snd_ctl_elem_info_get_owner", + "snd_ctl_elem_info_get_count", + "snd_ctl_elem_info_get_min", + "snd_ctl_elem_info_get_max", + "snd_ctl_elem_info_get_step", + "snd_ctl_elem_info_get_min64", + "snd_ctl_elem_info_get_max64", + "snd_ctl_elem_info_get_step64", + "snd_ctl_elem_info_get_items", + "snd_ctl_elem_info_set_item", + "snd_ctl_elem_info_get_item_name", + "snd_ctl_elem_info_get_dimensions", + "snd_ctl_elem_info_get_dimension", + "snd_ctl_elem_info_set_dimension", + "snd_ctl_elem_info_get_id", + "snd_ctl_elem_info_get_numid", + "snd_ctl_elem_info_get_interface", + "snd_ctl_elem_info_get_device", + "snd_ctl_elem_info_get_subdevice", + "snd_ctl_elem_info_get_name", + "snd_ctl_elem_info_get_index", + "snd_ctl_elem_info_set_id", + "snd_ctl_elem_info_set_numid", + "snd_ctl_elem_info_set_interface", + "snd_ctl_elem_info_set_device", + "snd_ctl_elem_info_set_subdevice", + "snd_ctl_elem_info_set_name", + "snd_ctl_elem_info_set_index", + "snd_ctl_add_integer_elem_set", + "snd_ctl_add_integer64_elem_set", + "snd_ctl_add_boolean_elem_set", + "snd_ctl_add_enumerated_elem_set", + "snd_ctl_add_bytes_elem_set", + "snd_ctl_elem_add_integer", + "snd_ctl_elem_add_integer64", + "snd_ctl_elem_add_boolean", + "snd_ctl_elem_add_enumerated", + "snd_ctl_elem_add_iec958", + "snd_ctl_elem_remove", + "snd_ctl_elem_value_sizeof", + "snd_ctl_elem_value_malloc", + "snd_ctl_elem_value_free", + "snd_ctl_elem_value_clear", + "snd_ctl_elem_value_copy", + "snd_ctl_elem_value_compare", + "snd_ctl_elem_value_get_id", + "snd_ctl_elem_value_get_numid", + "snd_ctl_elem_value_get_interface", + "snd_ctl_elem_value_get_device", + "snd_ctl_elem_value_get_subdevice", + "snd_ctl_elem_value_get_name", + "snd_ctl_elem_value_get_index", + "snd_ctl_elem_value_set_id", + "snd_ctl_elem_value_set_numid", + "snd_ctl_elem_value_set_interface", + "snd_ctl_elem_value_set_device", + "snd_ctl_elem_value_set_subdevice", + "snd_ctl_elem_value_set_name", + "snd_ctl_elem_value_set_index", + "snd_ctl_elem_value_get_boolean", + "snd_ctl_elem_value_get_integer", + "snd_ctl_elem_value_get_integer64", + "snd_ctl_elem_value_get_enumerated", + "snd_ctl_elem_value_get_byte", + "snd_ctl_elem_value_set_boolean", + "snd_ctl_elem_value_set_integer", + "snd_ctl_elem_value_set_integer64", + "snd_ctl_elem_value_set_enumerated", + "snd_ctl_elem_value_set_byte", + "snd_ctl_elem_set_bytes", + "snd_ctl_elem_value_get_bytes", + "snd_ctl_elem_value_get_iec958", + "snd_ctl_elem_value_set_iec958", + "snd_tlv_parse_dB_info", + "snd_tlv_get_dB_range", + "snd_tlv_convert_to_dB", + "snd_tlv_convert_from_dB", + "snd_ctl_get_dB_range", + "snd_ctl_convert_to_dB", + "snd_ctl_convert_from_dB", + "snd_hctl_compare_fast", + "snd_hctl_open", + "snd_hctl_open_ctl", + "snd_hctl_close", + "snd_hctl_nonblock", + "snd_hctl_poll_descriptors_count", + "snd_hctl_poll_descriptors", + "snd_hctl_poll_descriptors_revents", + "snd_hctl_get_count", + "snd_hctl_set_compare", + "snd_hctl_first_elem", + "snd_hctl_last_elem", + "snd_hctl_find_elem", + "snd_hctl_set_callback", + "snd_hctl_set_callback_private", + "snd_hctl_get_callback_private", + "snd_hctl_load", + "snd_hctl_free", + "snd_hctl_handle_events", + "snd_hctl_name", + "snd_hctl_wait", + "snd_hctl_ctl", + "snd_hctl_elem_next", + "snd_hctl_elem_prev", + "snd_hctl_elem_info", + "snd_hctl_elem_read", + "snd_hctl_elem_write", + "snd_hctl_elem_tlv_read", + "snd_hctl_elem_tlv_write", + "snd_hctl_elem_tlv_command", + "snd_hctl_elem_get_hctl", + "snd_hctl_elem_get_id", + "snd_hctl_elem_get_numid", + "snd_hctl_elem_get_interface", + "snd_hctl_elem_get_device", + "snd_hctl_elem_get_subdevice", + "snd_hctl_elem_get_name", + "snd_hctl_elem_get_index", + "snd_hctl_elem_set_callback", + "snd_hctl_elem_get_callback_private", + "snd_hctl_elem_set_callback_private", + "snd_sctl_build", + "snd_sctl_free", + "snd_sctl_install", + "snd_sctl_remove", + "snd_mixer_open", + "snd_mixer_close", + "snd_mixer_first_elem", + "snd_mixer_last_elem", + "snd_mixer_handle_events", + "snd_mixer_attach", + "snd_mixer_attach_hctl", + "snd_mixer_detach", + "snd_mixer_detach_hctl", + "snd_mixer_get_hctl", + "snd_mixer_poll_descriptors_count", + "snd_mixer_poll_descriptors", + "snd_mixer_poll_descriptors_revents", + "snd_mixer_load", + "snd_mixer_free", + "snd_mixer_wait", + "snd_mixer_set_compare", + "snd_mixer_set_callback", + "snd_mixer_get_callback_private", + "snd_mixer_set_callback_private", + "snd_mixer_get_count", + "snd_mixer_class_unregister", + "snd_mixer_elem_next", + "snd_mixer_elem_prev", + "snd_mixer_elem_set_callback", + "snd_mixer_elem_get_callback_private", + "snd_mixer_elem_set_callback_private", + "snd_mixer_elem_get_type", + "snd_mixer_class_register", + "snd_mixer_elem_new", + "snd_mixer_elem_add", + "snd_mixer_elem_remove", + "snd_mixer_elem_free", + "snd_mixer_elem_info", + "snd_mixer_elem_value", + "snd_mixer_elem_attach", + "snd_mixer_elem_detach", + "snd_mixer_elem_empty", + "snd_mixer_elem_get_private", + "snd_mixer_class_sizeof", + "snd_mixer_class_malloc", + "snd_mixer_class_free", + "snd_mixer_class_copy", + "snd_mixer_class_get_mixer", + "snd_mixer_class_get_event", + "snd_mixer_class_get_private", + "snd_mixer_class_get_compare", + "snd_mixer_class_set_event", + "snd_mixer_class_set_private", + "snd_mixer_class_set_private_free", + "snd_mixer_class_set_compare", + "snd_mixer_selem_channel_name", + "snd_mixer_selem_register", + "snd_mixer_selem_get_id", + "snd_mixer_selem_get_name", + "snd_mixer_selem_get_index", + "snd_mixer_find_selem", + "snd_mixer_selem_is_active", + "snd_mixer_selem_is_playback_mono", + "snd_mixer_selem_has_playback_channel", + "snd_mixer_selem_is_capture_mono", + "snd_mixer_selem_has_capture_channel", + "snd_mixer_selem_get_capture_group", + "snd_mixer_selem_has_common_volume", + "snd_mixer_selem_has_playback_volume", + "snd_mixer_selem_has_playback_volume_joined", + "snd_mixer_selem_has_capture_volume", + "snd_mixer_selem_has_capture_volume_joined", + "snd_mixer_selem_has_common_switch", + "snd_mixer_selem_has_playback_switch", + "snd_mixer_selem_has_playback_switch_joined", + "snd_mixer_selem_has_capture_switch", + "snd_mixer_selem_has_capture_switch_joined", + "snd_mixer_selem_has_capture_switch_exclusive", + "snd_mixer_selem_ask_playback_vol_dB", + "snd_mixer_selem_ask_capture_vol_dB", + "snd_mixer_selem_ask_playback_dB_vol", + "snd_mixer_selem_ask_capture_dB_vol", + "snd_mixer_selem_get_playback_volume", + "snd_mixer_selem_get_capture_volume", + "snd_mixer_selem_get_playback_dB", + "snd_mixer_selem_get_capture_dB", + "snd_mixer_selem_get_playback_switch", + "snd_mixer_selem_get_capture_switch", + "snd_mixer_selem_set_playback_volume", + "snd_mixer_selem_set_capture_volume", + "snd_mixer_selem_set_playback_dB", + "snd_mixer_selem_set_capture_dB", + "snd_mixer_selem_set_playback_volume_all", + "snd_mixer_selem_set_capture_volume_all", + "snd_mixer_selem_set_playback_dB_all", + "snd_mixer_selem_set_capture_dB_all", + "snd_mixer_selem_set_playback_switch", + "snd_mixer_selem_set_capture_switch", + "snd_mixer_selem_set_playback_switch_all", + "snd_mixer_selem_set_capture_switch_all", + "snd_mixer_selem_get_playback_volume_range", + "snd_mixer_selem_get_playback_dB_range", + "snd_mixer_selem_set_playback_volume_range", + "snd_mixer_selem_get_capture_volume_range", + "snd_mixer_selem_get_capture_dB_range", + "snd_mixer_selem_set_capture_volume_range", + "snd_mixer_selem_is_enumerated", + "snd_mixer_selem_is_enum_playback", + "snd_mixer_selem_is_enum_capture", + "snd_mixer_selem_get_enum_items", + "snd_mixer_selem_get_enum_item_name", + "snd_mixer_selem_get_enum_item", + "snd_mixer_selem_set_enum_item", + "snd_mixer_selem_id_sizeof", + "snd_mixer_selem_id_malloc", + "snd_mixer_selem_id_free", + "snd_mixer_selem_id_copy", + "snd_mixer_selem_id_get_name", + "snd_mixer_selem_id_get_index", + "snd_mixer_selem_id_set_name", + "snd_mixer_selem_id_set_index", + "snd_seq_open", + "snd_seq_open_lconf", + "snd_seq_name", + "snd_seq_type", + "snd_seq_close", + "snd_seq_poll_descriptors_count", + "snd_seq_poll_descriptors", + "snd_seq_poll_descriptors_revents", + "snd_seq_nonblock", + "snd_seq_client_id", + "snd_seq_get_output_buffer_size", + "snd_seq_get_input_buffer_size", + "snd_seq_set_output_buffer_size", + "snd_seq_set_input_buffer_size", + "snd_seq_system_info_sizeof", + "snd_seq_system_info_malloc", + "snd_seq_system_info_free", + "snd_seq_system_info_copy", + "snd_seq_system_info_get_queues", + "snd_seq_system_info_get_clients", + "snd_seq_system_info_get_ports", + "snd_seq_system_info_get_channels", + "snd_seq_system_info_get_cur_clients", + "snd_seq_system_info_get_cur_queues", + "snd_seq_system_info", + "snd_seq_client_info_sizeof", + "snd_seq_client_info_malloc", + "snd_seq_client_info_free", + "snd_seq_client_info_copy", + "snd_seq_client_info_get_client", + "snd_seq_client_info_get_type", + "snd_seq_client_info_get_name", + "snd_seq_client_info_get_broadcast_filter", + "snd_seq_client_info_get_error_bounce", + "snd_seq_client_info_get_card", + "snd_seq_client_info_get_pid", + "snd_seq_client_info_get_event_filter", + "snd_seq_client_info_get_num_ports", + "snd_seq_client_info_get_event_lost", + "snd_seq_client_info_set_client", + "snd_seq_client_info_set_name", + "snd_seq_client_info_set_broadcast_filter", + "snd_seq_client_info_set_error_bounce", + "snd_seq_client_info_set_event_filter", + "snd_seq_client_info_event_filter_clear", + "snd_seq_client_info_event_filter_add", + "snd_seq_client_info_event_filter_del", + "snd_seq_client_info_event_filter_check", + "snd_seq_get_client_info", + "snd_seq_get_any_client_info", + "snd_seq_set_client_info", + "snd_seq_query_next_client", + "snd_seq_client_pool_sizeof", + "snd_seq_client_pool_malloc", + "snd_seq_client_pool_free", + "snd_seq_client_pool_copy", + "snd_seq_client_pool_get_client", + "snd_seq_client_pool_get_output_pool", + "snd_seq_client_pool_get_input_pool", + "snd_seq_client_pool_get_output_room", + "snd_seq_client_pool_get_output_free", + "snd_seq_client_pool_get_input_free", + "snd_seq_client_pool_set_output_pool", + "snd_seq_client_pool_set_input_pool", + "snd_seq_client_pool_set_output_room", + "snd_seq_get_client_pool", + "snd_seq_set_client_pool", + "snd_seq_port_info_sizeof", + "snd_seq_port_info_malloc", + "snd_seq_port_info_free", + "snd_seq_port_info_copy", + "snd_seq_port_info_get_client", + "snd_seq_port_info_get_port", + "snd_seq_port_info_get_addr", + "snd_seq_port_info_get_name", + "snd_seq_port_info_get_capability", + "snd_seq_port_info_get_type", + "snd_seq_port_info_get_midi_channels", + "snd_seq_port_info_get_midi_voices", + "snd_seq_port_info_get_synth_voices", + "snd_seq_port_info_get_read_use", + "snd_seq_port_info_get_write_use", + "snd_seq_port_info_get_port_specified", + "snd_seq_port_info_get_timestamping", + "snd_seq_port_info_get_timestamp_real", + "snd_seq_port_info_get_timestamp_queue", + "snd_seq_port_info_set_client", + "snd_seq_port_info_set_port", + "snd_seq_port_info_set_addr", + "snd_seq_port_info_set_name", + "snd_seq_port_info_set_capability", + "snd_seq_port_info_set_type", + "snd_seq_port_info_set_midi_channels", + "snd_seq_port_info_set_midi_voices", + "snd_seq_port_info_set_synth_voices", + "snd_seq_port_info_set_port_specified", + "snd_seq_port_info_set_timestamping", + "snd_seq_port_info_set_timestamp_real", + "snd_seq_port_info_set_timestamp_queue", + "snd_seq_create_port", + "snd_seq_delete_port", + "snd_seq_get_port_info", + "snd_seq_get_any_port_info", + "snd_seq_set_port_info", + "snd_seq_query_next_port", + "snd_seq_port_subscribe_sizeof", + "snd_seq_port_subscribe_malloc", + "snd_seq_port_subscribe_free", + "snd_seq_port_subscribe_copy", + "snd_seq_port_subscribe_get_sender", + "snd_seq_port_subscribe_get_dest", + "snd_seq_port_subscribe_get_queue", + "snd_seq_port_subscribe_get_exclusive", + "snd_seq_port_subscribe_get_time_update", + "snd_seq_port_subscribe_get_time_real", + "snd_seq_port_subscribe_set_sender", + "snd_seq_port_subscribe_set_dest", + "snd_seq_port_subscribe_set_queue", + "snd_seq_port_subscribe_set_exclusive", + "snd_seq_port_subscribe_set_time_update", + "snd_seq_port_subscribe_set_time_real", + "snd_seq_get_port_subscription", + "snd_seq_subscribe_port", + "snd_seq_unsubscribe_port", + "snd_seq_query_subscribe_sizeof", + "snd_seq_query_subscribe_malloc", + "snd_seq_query_subscribe_free", + "snd_seq_query_subscribe_copy", + "snd_seq_query_subscribe_get_client", + "snd_seq_query_subscribe_get_port", + "snd_seq_query_subscribe_get_root", + "snd_seq_query_subscribe_get_type", + "snd_seq_query_subscribe_get_index", + "snd_seq_query_subscribe_get_num_subs", + "snd_seq_query_subscribe_get_addr", + "snd_seq_query_subscribe_get_queue", + "snd_seq_query_subscribe_get_exclusive", + "snd_seq_query_subscribe_get_time_update", + "snd_seq_query_subscribe_get_time_real", + "snd_seq_query_subscribe_set_client", + "snd_seq_query_subscribe_set_port", + "snd_seq_query_subscribe_set_root", + "snd_seq_query_subscribe_set_type", + "snd_seq_query_subscribe_set_index", + "snd_seq_query_port_subscribers", + "snd_seq_queue_info_sizeof", + "snd_seq_queue_info_malloc", + "snd_seq_queue_info_free", + "snd_seq_queue_info_copy", + "snd_seq_queue_info_get_queue", + "snd_seq_queue_info_get_name", + "snd_seq_queue_info_get_owner", + "snd_seq_queue_info_get_locked", + "snd_seq_queue_info_get_flags", + "snd_seq_queue_info_set_name", + "snd_seq_queue_info_set_owner", + "snd_seq_queue_info_set_locked", + "snd_seq_queue_info_set_flags", + "snd_seq_create_queue", + "snd_seq_alloc_named_queue", + "snd_seq_alloc_queue", + "snd_seq_free_queue", + "snd_seq_get_queue_info", + "snd_seq_set_queue_info", + "snd_seq_query_named_queue", + "snd_seq_get_queue_usage", + "snd_seq_set_queue_usage", + "snd_seq_queue_status_sizeof", + "snd_seq_queue_status_malloc", + "snd_seq_queue_status_free", + "snd_seq_queue_status_copy", + "snd_seq_queue_status_get_queue", + "snd_seq_queue_status_get_events", + "snd_seq_queue_status_get_tick_time", + "snd_seq_queue_status_get_real_time", + "snd_seq_queue_status_get_status", + "snd_seq_get_queue_status", + "snd_seq_queue_tempo_sizeof", + "snd_seq_queue_tempo_malloc", + "snd_seq_queue_tempo_free", + "snd_seq_queue_tempo_copy", + "snd_seq_queue_tempo_get_queue", + "snd_seq_queue_tempo_get_tempo", + "snd_seq_queue_tempo_get_ppq", + "snd_seq_queue_tempo_get_skew", + "snd_seq_queue_tempo_get_skew_base", + "snd_seq_queue_tempo_set_tempo", + "snd_seq_queue_tempo_set_ppq", + "snd_seq_queue_tempo_set_skew", + "snd_seq_queue_tempo_set_skew_base", + "snd_seq_get_queue_tempo", + "snd_seq_set_queue_tempo", + "snd_seq_queue_timer_sizeof", + "snd_seq_queue_timer_malloc", + "snd_seq_queue_timer_free", + "snd_seq_queue_timer_copy", + "snd_seq_queue_timer_get_queue", + "snd_seq_queue_timer_get_type", + "snd_seq_queue_timer_get_id", + "snd_seq_queue_timer_get_resolution", + "snd_seq_queue_timer_set_type", + "snd_seq_queue_timer_set_id", + "snd_seq_queue_timer_set_resolution", + "snd_seq_get_queue_timer", + "snd_seq_set_queue_timer", + "snd_seq_free_event", + "snd_seq_event_length", + "snd_seq_event_output", + "snd_seq_event_output_buffer", + "snd_seq_event_output_direct", + "snd_seq_event_input", + "snd_seq_event_input_pending", + "snd_seq_drain_output", + "snd_seq_event_output_pending", + "snd_seq_extract_output", + "snd_seq_drop_output", + "snd_seq_drop_output_buffer", + "snd_seq_drop_input", + "snd_seq_drop_input_buffer", + "snd_seq_remove_events_sizeof", + "snd_seq_remove_events_malloc", + "snd_seq_remove_events_free", + "snd_seq_remove_events_copy", + "snd_seq_remove_events_get_condition", + "snd_seq_remove_events_get_queue", + "snd_seq_remove_events_get_time", + "snd_seq_remove_events_get_dest", + "snd_seq_remove_events_get_channel", + "snd_seq_remove_events_get_event_type", + "snd_seq_remove_events_get_tag", + "snd_seq_remove_events_set_condition", + "snd_seq_remove_events_set_queue", + "snd_seq_remove_events_set_time", + "snd_seq_remove_events_set_dest", + "snd_seq_remove_events_set_channel", + "snd_seq_remove_events_set_event_type", + "snd_seq_remove_events_set_tag", + "snd_seq_remove_events", + "snd_seq_set_bit", + "snd_seq_unset_bit", + "snd_seq_change_bit", + "snd_seq_get_bit", + "snd_seq_control_queue", + "snd_seq_create_simple_port", + "snd_seq_delete_simple_port", + "snd_seq_connect_from", + "snd_seq_connect_to", + "snd_seq_disconnect_from", + "snd_seq_disconnect_to", + "snd_seq_set_client_name", + "snd_seq_set_client_event_filter", + "snd_seq_set_client_pool_output", + "snd_seq_set_client_pool_output_room", + "snd_seq_set_client_pool_input", + "snd_seq_sync_output_queue", + "snd_seq_parse_address", + "snd_seq_reset_pool_output", + "snd_seq_reset_pool_input", + "snd_midi_event_new", + "snd_midi_event_resize_buffer", + "snd_midi_event_free", + "snd_midi_event_init", + "snd_midi_event_reset_encode", + "snd_midi_event_reset_decode", + "snd_midi_event_no_status", + "snd_midi_event_encode", + "snd_midi_event_encode_byte", + "snd_midi_event_decode" + ] + }, + "drivers/alsa/audio_driver_alsa.h": { + "classes": [ + "AudioDriverALSA" + ], + "structs": [], + "defines": [ + "AUDIO_DRIVER_ALSA_H" + ] + }, + "drivers/windows/file_access_windows.h": { + "classes": [ + "FileAccessWindows" + ], + "structs": [], + "defines": [ + "FILE_ACCESS_WINDOWS_H" + ] + }, + "drivers/windows/dir_access_windows.h": { + "classes": [ + "DirAccessWindows" + ], + "structs": [], + "defines": [ + "DIR_ACCESS_WINDOWS_H" + ] + }, + "drivers/coreaudio/audio_driver_coreaudio.h": { + "classes": [ + "AudioDriverCoreAudio" + ], + "structs": [], + "defines": [ + "AUDIO_DRIVER_COREAUDIO_H" + ] + }, + "drivers/alsamidi/midi_driver_alsamidi.h": { + "classes": [ + "MIDIDriverALSAMidi", + "InputConnection", + "MessageCategory" + ], + "structs": [], + "defines": [ + "MIDI_DRIVER_ALSAMIDI_H" + ] + }, + "core/core_globals.h": { + "classes": [ + "CoreGlobals" + ], + "structs": [], + "defines": [ + "CORE_GLOBALS_H" + ] + }, + "core/version.h": { + "classes": [], + "structs": [], + "defines": [ + "VERSION_H", + "_STR", + "_MKSTR", + "VERSION_BRANCH", + "VERSION_NUMBER", + "VERSION_NUMBER", + "VERSION_HEX", + "VERSION_FULL_CONFIG", + "VERSION_FULL_BUILD", + "VERSION_FULL_NAME" + ] + }, + "core/typedefs.h": { + "classes": [], + "structs": [ + "Comparator", + "_GlobalLock", + "IndexSequence", + "BuildIndexSequence" + ], + "defines": [ + "TYPEDEFS_H", + "_STR", + "_MKSTR", + "_ALWAYS_INLINE_", + "_ALWAYS_INLINE_", + "_ALWAYS_INLINE_", + "_FORCE_INLINE_", + "_FORCE_INLINE_", + "_NO_DISCARD_", + "_ALLOW_DISCARD_", + "SWAP", + "BSWAP16", + "BSWAP32", + "BSWAP64", + "BSWAP16", + "BSWAP32", + "BSWAP64", + "GLOBAL_LOCK_FUNCTION", + "likely", + "unlikely", + "likely", + "unlikely", + "_PRINTF_FORMAT_ATTRIBUTE_2_0", + "_PRINTF_FORMAT_ATTRIBUTE_2_3", + "_PRINTF_FORMAT_ATTRIBUTE_2_0", + "_PRINTF_FORMAT_ATTRIBUTE_2_3", + "CAST_INT_TO_UCHAR_PTR", + "MAX_RECURSION", + "DEBUG_METHODS_ENABLED", + "__GDARG_PLACEHOLDER_1", + "__gd_take_second_arg", + "____gd_is_defined", + "___gd_is_defined", + "GD_IS_DEFINED" + ] + }, + "core/doc_data.h": { + "classes": [ + "DocData" + ], + "structs": [ + "ScriptMemberInfo", + "ArgumentDoc", + "MethodDoc", + "ConstantDoc", + "PropertyDoc", + "ThemeItemDoc", + "TutorialDoc", + "EnumDoc", + "ClassDoc" + ], + "defines": [ + "DOC_DATA_H" + ] + }, + "core/authors.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "AUTHORS_GEN_H" + ] + }, + "core/version_generated.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "VERSION_GENERATED_GEN_H", + "VERSION_SHORT_NAME", + "VERSION_NAME", + "VERSION_MAJOR", + "VERSION_MINOR", + "VERSION_PATCH", + "VERSION_STATUS", + "VERSION_BUILD", + "VERSION_MODULE_CONFIG", + "VERSION_WEBSITE", + "VERSION_DOCS_BRANCH", + "VERSION_DOCS_URL" + ] + }, + "core/license.gen.h": { + "classes": [], + "structs": [ + "ComponentCopyrightPart", + "ComponentCopyright" + ], + "defines": [ + "LICENSE_GEN_H" + ] + }, + "core/disabled_classes.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "DISABLED_CLASSES_GEN_H" + ] + }, + "core/core_string_names.h": { + "classes": [ + "CoreStringNames" + ], + "structs": [], + "defines": [ + "CORE_STRING_NAMES_H" + ] + }, + "core/core_constants.h": { + "classes": [ + "CoreConstants" + ], + "structs": [], + "defines": [ + "CORE_CONSTANTS_H" + ] + }, + "core/core_bind.h": { + "classes": [ + "ResourceLoader", + "ResourceSaver", + "OS", + "Geometry2D", + "Geometry3D", + "Marshalls", + "Mutex", + "Semaphore", + "Thread", + "ClassDB", + "Engine", + "EngineDebugger" + ], + "structs": [], + "defines": [ + "CORE_BIND_H" + ] + }, + "core/donors.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "DONORS_GEN_H" + ] + }, + "core/register_core_types.h": { + "classes": [], + "structs": [], + "defines": [ + "REGISTER_CORE_TYPES_H" + ] + }, + "core/crypto/crypto.h": { + "classes": [ + "CryptoKey", + "X509Certificate", + "TLSOptions", + "HMACContext", + "Crypto", + "ResourceFormatLoaderCrypto", + "ResourceFormatSaverCrypto" + ], + "structs": [], + "defines": [ + "CRYPTO_H" + ] + }, + "core/crypto/hashing_context.h": { + "classes": [ + "HashingContext" + ], + "structs": [], + "defines": [ + "HASHING_CONTEXT_H" + ] + }, + "core/crypto/aes_context.h": { + "classes": [ + "AESContext" + ], + "structs": [], + "defines": [ + "AES_CONTEXT_H" + ] + }, + "core/crypto/crypto_core.h": { + "classes": [ + "CryptoCore", + "RandomGenerator", + "MD5Context", + "SHA1Context", + "SHA256Context", + "AESContext" + ], + "structs": [], + "defines": [ + "CRYPTO_CORE_H" + ] + }, + "core/extension/extension_api_dump.h": { + "classes": [ + "GDExtensionAPIDump" + ], + "structs": [], + "defines": [ + "EXTENSION_API_DUMP_H" + ] + }, + "core/extension/gdnative_interface_dump.gen.h": { + "classes": [ + "GDNativeInterfaceDump" + ], + "structs": [], + "defines": [ + "GDNATIVE_INTERFACE_DUMP_H", + "GDNATIVE_INTERFACE_H" + ] + }, + "core/extension/gdextension_interface.h": { + "classes": [], + "structs": [], + "defines": [ + "GDEXTENSION_INTERFACE_H" + ] + }, + "core/extension/gdextension_interface_dump.gen.h": { + "classes": [ + "GDExtensionInterfaceDump" + ], + "structs": [], + "defines": [ + "GDEXTENSION_INTERFACE_DUMP_H" + ] + }, + "core/extension/gdextension_compat_hashes.h": { + "classes": [ + "GDExtensionCompatHashes" + ], + "structs": [ + "Mapping" + ], + "defines": [ + "GDEXTENSION_COMPAT_HASHES_H" + ] + }, + "core/extension/gdextension_manager.h": { + "classes": [ + "GDExtensionManager" + ], + "structs": [], + "defines": [ + "GDEXTENSION_MANAGER_H" + ] + }, + "core/extension/gdextension.h": { + "classes": [ + "GDExtension", + "GDExtensionResourceLoader", + "GDExtensionEditorPlugins", + "GDExtensionEditorHelp" + ], + "structs": [ + "Extension", + "InstanceState", + "ClassCreationDeprecatedInfo" + ], + "defines": [ + "GDEXTENSION_H" + ] + }, + "core/config/project_settings.h": { + "classes": [ + "ProjectSettings" + ], + "structs": [ + "AutoloadInfo", + "VariantContainer" + ], + "defines": [ + "PROJECT_SETTINGS_H", + "GLOBAL_DEF", + "GLOBAL_DEF_RST", + "GLOBAL_DEF_NOVAL", + "GLOBAL_DEF_RST_NOVAL", + "GLOBAL_GET", + "GLOBAL_DEF_BASIC", + "GLOBAL_DEF_RST_BASIC", + "GLOBAL_DEF_NOVAL_BASIC", + "GLOBAL_DEF_RST_NOVAL_BASIC", + "GLOBAL_DEF_INTERNAL" + ] + }, + "core/config/engine.h": { + "classes": [ + "Engine" + ], + "structs": [ + "Singleton" + ], + "defines": [ + "ENGINE_H" + ] + }, + "core/input/shortcut.h": { + "classes": [ + "Shortcut" + ], + "structs": [], + "defines": [ + "SHORTCUT_H" + ] + }, + "core/input/input_event.h": { + "classes": [ + "InputEvent", + "InputEventFromWindow", + "InputEventWithModifiers", + "InputEventKey", + "InputEventMouse", + "InputEventMouseButton", + "InputEventMouseMotion", + "InputEventJoypadMotion", + "InputEventJoypadButton", + "InputEventScreenTouch", + "InputEventScreenDrag", + "InputEventAction", + "InputEventGesture", + "InputEventMagnifyGesture", + "InputEventPanGesture", + "InputEventMIDI", + "InputEventShortcut" + ], + "structs": [], + "defines": [ + "INPUT_EVENT_H" + ] + }, + "core/input/input.h": { + "classes": [ + "Input" + ], + "structs": [ + "ActionState", + "DeviceState", + "ActionStateCache", + "VibrationInfo", + "VelocityTrack", + "Joypad", + "JoyEvent", + "JoyBinding", + "JoyDeviceMapping" + ], + "defines": [ + "INPUT_H" + ] + }, + "core/input/input_map.h": { + "classes": [ + "InputMap" + ], + "structs": [ + "Action" + ], + "defines": [ + "INPUT_MAP_H" + ] + }, + "core/input/default_controller_mappings.h": { + "classes": [ + "DefaultControllerMappings" + ], + "structs": [], + "defines": [ + "DEFAULT_CONTROLLER_MAPPINGS_H" + ] + }, + "core/input/input_enums.h": { + "classes": [ + "HatDir", + "HatMask", + "JoyAxis", + "JoyButton", + "MIDIMessage", + "MouseButton", + "MouseButtonMask" + ], + "structs": [], + "defines": [ + "INPUT_ENUMS_H" + ] + }, + "core/io/http_client_tcp.h": { + "classes": [ + "HTTPClientTCP" + ], + "structs": [], + "defines": [ + "HTTP_CLIENT_TCP_H" + ] + }, + "core/io/file_access_compressed.h": { + "classes": [ + "FileAccessCompressed" + ], + "structs": [ + "ReadBlock" + ], + "defines": [ + "FILE_ACCESS_COMPRESSED_H" + ] + }, + "core/io/http_client.h": { + "classes": [ + "HTTPClient" + ], + "structs": [], + "defines": [ + "HTTP_CLIENT_H" + ] + }, + "core/io/stream_peer.h": { + "classes": [ + "StreamPeer", + "StreamPeerExtension", + "StreamPeerBuffer" + ], + "structs": [], + "defines": [ + "STREAM_PEER_H" + ] + }, + "core/io/image_loader.h": { + "classes": [ + "ImageFormatLoader", + "ImageFormatLoaderExtension", + "ImageLoader", + "ResourceFormatLoaderImage" + ], + "structs": [], + "defines": [ + "IMAGE_LOADER_H" + ] + }, + "core/io/file_access_pack.h": { + "classes": [ + "PackedData", + "PackSource", + "PackedSourcePCK", + "FileAccessPack", + "DirAccessPack" + ], + "structs": [ + "PackedFile", + "PackedDir", + "PathMD5" + ], + "defines": [ + "FILE_ACCESS_PACK_H", + "PACK_HEADER_MAGIC", + "PACK_FORMAT_VERSION" + ] + }, + "core/io/tcp_server.h": { + "classes": [ + "TCPServer" + ], + "structs": [], + "defines": [ + "TCP_SERVER_H" + ] + }, + "core/io/resource_importer.h": { + "classes": [ + "ResourceFormatImporter", + "ResourceImporter", + "ResourceFormatImporterSaver" + ], + "structs": [ + "PathAndType", + "SortImporterByName", + "ImportOption" + ], + "defines": [ + "RESOURCE_IMPORTER_H" + ] + }, + "core/io/stream_peer_tls.h": { + "classes": [ + "StreamPeerTLS" + ], + "structs": [], + "defines": [ + "STREAM_PEER_TLS_H" + ] + }, + "core/io/net_socket.h": { + "classes": [ + "NetSocket" + ], + "structs": [], + "defines": [ + "NET_SOCKET_H" + ] + }, + "core/io/config_file.h": { + "classes": [ + "ConfigFile" + ], + "structs": [], + "defines": [ + "CONFIG_FILE_H" + ] + }, + "core/io/resource_loader.h": { + "classes": [ + "ResourceFormatLoader", + "ResourceLoader" + ], + "structs": [ + "LoadToken", + "ThreadLoadTask" + ], + "defines": [ + "RESOURCE_LOADER_H" + ] + }, + "core/io/dir_access.h": { + "classes": [ + "DirAccess" + ], + "structs": [], + "defines": [ + "DIR_ACCESS_H" + ] + }, + "core/io/stream_peer_tcp.h": { + "classes": [ + "StreamPeerTCP" + ], + "structs": [], + "defines": [ + "STREAM_PEER_TCP_H" + ] + }, + "core/io/xml_parser.h": { + "classes": [ + "XMLParser" + ], + "structs": [ + "Attribute" + ], + "defines": [ + "XML_PARSER_H" + ] + }, + "core/io/packet_peer_dtls.h": { + "classes": [ + "PacketPeerDTLS" + ], + "structs": [], + "defines": [ + "PACKET_PEER_DTLS_H" + ] + }, + "core/io/file_access_zip.h": { + "classes": [ + "ZipArchive", + "FileAccessZip" + ], + "structs": [ + "File", + "Package" + ], + "defines": [ + "FILE_ACCESS_ZIP_H" + ] + }, + "core/io/file_access_memory.h": { + "classes": [ + "FileAccessMemory" + ], + "structs": [], + "defines": [ + "FILE_ACCESS_MEMORY_H" + ] + }, + "core/io/compression.h": { + "classes": [ + "Compression" + ], + "structs": [], + "defines": [ + "COMPRESSION_H" + ] + }, + "core/io/resource_saver.h": { + "classes": [ + "ResourceFormatSaver", + "ResourceSaver" + ], + "structs": [], + "defines": [ + "RESOURCE_SAVER_H" + ] + }, + "core/io/certs_compressed.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "CERTS_COMPRESSED_GEN_H", + "_SYSTEM_CERTS_PATH", + "BUILTIN_CERTS_ENABLED" + ] + }, + "core/io/dtls_server.h": { + "classes": [ + "DTLSServer" + ], + "structs": [], + "defines": [ + "DTLS_SERVER_H" + ] + }, + "core/io/file_access.h": { + "classes": [ + "FileAccess" + ], + "structs": [], + "defines": [ + "FILE_ACCESS_H" + ] + }, + "core/io/remote_filesystem_client.h": { + "classes": [ + "RemoteFilesystemClient" + ], + "structs": [ + "FileCache" + ], + "defines": [ + "REMOTE_FILESYSTEM_CLIENT_H" + ] + }, + "core/io/resource_uid.h": { + "classes": [ + "ResourceUID" + ], + "structs": [ + "Cache" + ], + "defines": [ + "RESOURCE_UID_H" + ] + }, + "core/io/pck_packer.h": { + "classes": [ + "PCKPacker" + ], + "structs": [ + "File" + ], + "defines": [ + "PCK_PACKER_H" + ] + }, + "core/io/packet_peer.h": { + "classes": [ + "PacketPeer", + "PacketPeerExtension", + "PacketPeerStream" + ], + "structs": [], + "defines": [ + "PACKET_PEER_H" + ] + }, + "core/io/json.h": { + "classes": [ + "JSON", + "ResourceFormatLoaderJSON", + "ResourceFormatSaverJSON" + ], + "structs": [ + "Token" + ], + "defines": [ + "JSON_H" + ] + }, + "core/io/stream_peer_gzip.h": { + "classes": [ + "StreamPeerGZIP" + ], + "structs": [], + "defines": [ + "STREAM_PEER_GZIP_H" + ] + }, + "core/io/packet_peer_udp.h": { + "classes": [ + "PacketPeerUDP" + ], + "structs": [], + "defines": [ + "PACKET_PEER_UDP_H" + ] + }, + "core/io/translation_loader_po.h": { + "classes": [ + "TranslationLoaderPO" + ], + "structs": [], + "defines": [ + "TRANSLATION_LOADER_PO_H" + ] + }, + "core/io/resource_format_binary.h": { + "classes": [ + "ResourceLoaderBinary", + "ResourceFormatLoaderBinary", + "ResourceFormatSaverBinaryInstance", + "ResourceFormatSaverBinary" + ], + "structs": [ + "ExtResource", + "IntResource", + "NonPersistentKey", + "Property", + "ResourceData" + ], + "defines": [ + "RESOURCE_FORMAT_BINARY_H" + ] + }, + "core/io/resource.h": { + "classes": [ + "Resource", + "ResourceCache" + ], + "structs": [], + "defines": [ + "RESOURCE_H", + "RES_BASE_EXTENSION" + ] + }, + "core/io/ip_address.h": { + "classes": [], + "structs": [ + "IPAddress" + ], + "defines": [ + "IP_ADDRESS_H" + ] + }, + "core/io/zip_io.h": { + "classes": [], + "structs": [], + "defines": [ + "ZIP_IO_H" + ] + }, + "core/io/logger.h": { + "classes": [ + "Logger", + "StdLogger", + "RotatedFileLogger", + "CompositeLogger" + ], + "structs": [], + "defines": [ + "LOGGER_H" + ] + }, + "core/io/ip.h": { + "classes": [ + "IP" + ], + "structs": [ + "Interface_Info" + ], + "defines": [ + "IP_H" + ] + }, + "core/io/marshalls.h": { + "classes": [ + "EncodedObjectAsID" + ], + "structs": [], + "defines": [ + "MARSHALLS_H" + ] + }, + "core/io/plist.h": { + "classes": [ + "PList", + "PListNode" + ], + "structs": [ + "PListTrailer" + ], + "defines": [ + "PLIST_H" + ] + }, + "core/io/udp_server.h": { + "classes": [ + "UDPServer" + ], + "structs": [ + "Peer" + ], + "defines": [ + "UDP_SERVER_H" + ] + }, + "core/io/packed_data_container.h": { + "classes": [ + "PackedDataContainer", + "PackedDataContainerRef" + ], + "structs": [ + "DictKey" + ], + "defines": [ + "PACKED_DATA_CONTAINER_H" + ] + }, + "core/io/image.h": { + "classes": [ + "Image" + ], + "structs": [], + "defines": [ + "IMAGE_H" + ] + }, + "core/io/missing_resource.h": { + "classes": [ + "MissingResource" + ], + "structs": [], + "defines": [ + "MISSING_RESOURCE_H", + "META_PROPERTY_MISSING_RESOURCES", + "META_MISSING_RESOURCES" + ] + }, + "core/io/file_access_encrypted.h": { + "classes": [ + "FileAccessEncrypted" + ], + "structs": [], + "defines": [ + "FILE_ACCESS_ENCRYPTED_H", + "ENCRYPTED_HEADER_MAGIC" + ] + }, + "core/math/geometry_2d.h": { + "classes": [ + "Geometry2D" + ], + "structs": [], + "defines": [ + "GEOMETRY_2D_H" + ] + }, + "core/math/a_star_grid_2d.h": { + "classes": [ + "AStarGrid2D" + ], + "structs": [ + "Point", + "SortPoints" + ], + "defines": [ + "A_STAR_GRID_2D_H" + ] + }, + "core/math/basis.h": { + "classes": [], + "structs": [], + "defines": [ + "BASIS_H" + ] + }, + "core/math/math_funcs.h": { + "classes": [ + "Math" + ], + "structs": [], + "defines": [ + "MATH_FUNCS_H" + ] + }, + "core/math/math_defs.h": { + "classes": [ + "EulerOrder" + ], + "structs": [], + "defines": [ + "MATH_DEFS_H", + "CMP_EPSILON", + "CMP_EPSILON2", + "CMP_NORMALIZE_TOLERANCE", + "CMP_POINT_IN_PLANE_EPSILON", + "Math_SQRT12", + "Math_SQRT2", + "Math_LN2", + "Math_TAU", + "Math_PI", + "Math_E", + "MATH_CHECKS", + "UNIT_EPSILON", + "UNIT_EPSILON", + "USEC_TO_SEC" + ] + }, + "core/math/bvh_tree.h": { + "classes": [ + "BVH_IterativeInfo", + "BVH_DummyPairTestFunction", + "BVH_DummyCullTestFunction", + "BVH_Tree" + ], + "structs": [ + "BVHCommon", + "BVHHandle" + ], + "defines": [ + "BVH_TREE_H", + "BVHABB_CLASS", + "BVH_EXPAND_LEAF_AABBS", + "BVH_VERBOSE", + "BVH_VERBOSE_TREE", + "BVH_VERBOSE_PAIRING", + "BVH_VERBOSE_MOVES", + "BVH_VERBOSE_FRAME", + "BVH_CHECKS", + "BVH_INTEGRITY_CHECKS", + "BVH_ASSERT", + "BVH_ASSERT", + "VERBOSE_PRINT", + "VERBOSE_PRINT" + ] + }, + "core/math/projection.h": { + "classes": [], + "structs": [], + "defines": [ + "PROJECTION_H" + ] + }, + "core/math/face3.h": { + "classes": [], + "structs": [], + "defines": [ + "FACE3_H", + "TEST_AXIS" + ] + }, + "core/math/geometry_3d.h": { + "classes": [ + "Geometry3D" + ], + "structs": [ + "MeshData", + "Face", + "Edge" + ], + "defines": [ + "GEOMETRY_3D_H", + "FINDMINMAX", + "AXISTEST_X01", + "AXISTEST_X2", + "AXISTEST_Y02", + "AXISTEST_Y1", + "AXISTEST_Z12", + "AXISTEST_Z0", + "STP" + ] + }, + "core/math/vector2.h": { + "classes": [], + "structs": [], + "defines": [ + "VECTOR2_H" + ] + }, + "core/math/static_raycaster.h": { + "classes": [ + "StaticRaycaster" + ], + "structs": [], + "defines": [ + "STATIC_RAYCASTER_H", + "__aligned", + "__aligned" + ] + }, + "core/math/random_number_generator.h": { + "classes": [ + "RandomNumberGenerator" + ], + "structs": [], + "defines": [ + "RANDOM_NUMBER_GENERATOR_H" + ] + }, + "core/math/quaternion.h": { + "classes": [], + "structs": [], + "defines": [ + "QUATERNION_H" + ] + }, + "core/math/color.h": { + "classes": [], + "structs": [], + "defines": [ + "COLOR_H" + ] + }, + "core/math/plane.h": { + "classes": [], + "structs": [], + "defines": [ + "PLANE_H" + ] + }, + "core/math/rect2.h": { + "classes": [], + "structs": [], + "defines": [ + "RECT2_H" + ] + }, + "core/math/vector4i.h": { + "classes": [], + "structs": [], + "defines": [ + "VECTOR4I_H" + ] + }, + "core/math/math_fieldwise.h": { + "classes": [], + "structs": [], + "defines": [ + "MATH_FIELDWISE_H" + ] + }, + "core/math/vector3i.h": { + "classes": [], + "structs": [], + "defines": [ + "VECTOR3I_H" + ] + }, + "core/math/bvh.h": { + "classes": [ + "BVH_Manager", + "BVHLockedFunction" + ], + "structs": [], + "defines": [ + "BVH_H", + "BVHTREE_CLASS", + "BVH_LOCKED_FUNCTION" + ] + }, + "core/math/expression.h": { + "classes": [ + "Expression" + ], + "structs": [ + "Input", + "Token", + "ENode", + "ExpressionNode", + "InputNode", + "ConstantNode", + "OperatorNode", + "SelfNode", + "IndexNode", + "NamedIndexNode", + "ConstructorNode", + "CallNode", + "ArrayNode", + "DictionaryNode", + "BuiltinFuncNode" + ], + "defines": [ + "EXPRESSION_H" + ] + }, + "core/math/rect2i.h": { + "classes": [], + "structs": [], + "defines": [ + "RECT2I_H" + ] + }, + "core/math/bvh_abb.h": { + "classes": [], + "structs": [ + "BVH_ABB", + "ConvexHull", + "Segment" + ], + "defines": [ + "BVH_ABB_H" + ] + }, + "core/math/audio_frame.h": { + "classes": [], + "structs": [ + "AudioFrame" + ], + "defines": [ + "AUDIO_FRAME_H" + ] + }, + "core/math/vector4.h": { + "classes": [], + "structs": [], + "defines": [ + "VECTOR4_H" + ] + }, + "core/math/vector2i.h": { + "classes": [], + "structs": [], + "defines": [ + "VECTOR2I_H" + ] + }, + "core/math/convex_hull.h": { + "classes": [ + "ConvexHullComputer", + "Edge" + ], + "structs": [], + "defines": [ + "CONVEX_HULL_H" + ] + }, + "core/math/quick_hull.h": { + "classes": [ + "QuickHull" + ], + "structs": [ + "Edge", + "Face", + "FaceConnect", + "RetFaceConnect" + ], + "defines": [ + "QUICK_HULL_H" + ] + }, + "core/math/random_pcg.h": { + "classes": [ + "RandomPCG" + ], + "structs": [], + "defines": [ + "RANDOM_PCG_H", + "CLZ32", + "CLZ32", + "LDEXP", + "LDEXPF", + "LDEXP", + "LDEXPF" + ] + }, + "core/math/triangulate.h": { + "classes": [ + "Triangulate" + ], + "structs": [], + "defines": [ + "TRIANGULATE_H" + ] + }, + "core/math/delaunay_2d.h": { + "classes": [ + "Delaunay2D" + ], + "structs": [ + "Triangle", + "Edge" + ], + "defines": [ + "DELAUNAY_2D_H" + ] + }, + "core/math/disjoint_set.h": { + "classes": [ + "DisjointSet" + ], + "structs": [ + "Element" + ], + "defines": [ + "DISJOINT_SET_H" + ] + }, + "core/math/a_star.h": { + "classes": [ + "AStar3D", + "AStar2D" + ], + "structs": [ + "Point", + "SortPoints", + "Segment" + ], + "defines": [ + "A_STAR_H" + ] + }, + "core/math/dynamic_bvh.h": { + "classes": [ + "DynamicBVH" + ], + "structs": [ + "ID", + "Volume", + "Node", + "DefaultQueryResult" + ], + "defines": [ + "DYNAMIC_BVH_H" + ] + }, + "core/math/transform_2d.h": { + "classes": [], + "structs": [], + "defines": [ + "TRANSFORM_2D_H" + ] + }, + "core/math/transform_3d.h": { + "classes": [], + "structs": [], + "defines": [ + "TRANSFORM_3D_H" + ] + }, + "core/math/triangle_mesh.h": { + "classes": [ + "TriangleMesh" + ], + "structs": [ + "Triangle", + "BVH", + "BVHCmpX", + "BVHCmpY", + "BVHCmpZ" + ], + "defines": [ + "TRIANGLE_MESH_H" + ] + }, + "core/math/aabb.h": { + "classes": [], + "structs": [], + "defines": [ + "AABB_H" + ] + }, + "core/math/vector3.h": { + "classes": [], + "structs": [], + "defines": [ + "VECTOR3_H" + ] + }, + "core/math/delaunay_3d.h": { + "classes": [ + "Delaunay3D" + ], + "structs": [ + "GridPos", + "Simplex", + "Triangle", + "TriangleHasher", + "OutputSimplex" + ], + "defines": [ + "DELAUNAY_3D_H" + ] + }, + "core/object/method_bind.h": { + "classes": [ + "MethodBind", + "MethodBindVarArgBase", + "MethodBindVarArgT", + "MethodBindVarArgTR", + "MethodBindT", + "MethodBindTC", + "MethodBindTR", + "MethodBindTRC", + "MethodBindTS", + "MethodBindTRS" + ], + "structs": [], + "defines": [ + "METHOD_BIND_H", + "MB_T", + "MB_T" + ] + }, + "core/object/object_id.h": { + "classes": [ + "ObjectID" + ], + "structs": [], + "defines": [ + "OBJECT_ID_H" + ] + }, + "core/object/callable_method_pointer.h": { + "classes": [ + "CallableCustomMethodPointerBase", + "CallableCustomMethodPointer", + "CallableCustomMethodPointerRet", + "CallableCustomMethodPointerRetC", + "CallableCustomStaticMethodPointer", + "CallableCustomStaticMethodPointerRet" + ], + "structs": [ + "Data", + "Data", + "Data", + "Data", + "Data" + ], + "defines": [ + "CALLABLE_METHOD_POINTER_H", + "callable_mp", + "callable_mp", + "callable_mp_static", + "callable_mp_static" + ] + }, + "core/object/script_language_extension.h": { + "classes": [ + "ScriptExtension", + "ScriptLanguageExtension", + "ScriptInstanceExtension" + ], + "structs": [ + "DeprecatedNativeInfo" + ], + "defines": [ + "SCRIPT_LANGUAGE_EXTENSION_H" + ] + }, + "core/object/class_db.h": { + "classes": [ + "ClassDB" + ], + "structs": [ + "MethodDefinition", + "PropertySetGet", + "ClassInfo", + "EnumInfo", + "NativeStruct" + ], + "defines": [ + "CLASS_DB_H", + "DEFVAL", + "D_METHOD", + "BIND_ENUM_CONSTANT", + "BIND_BITFIELD_FLAG", + "BIND_CONSTANT", + "BIND_METHOD_ERR_RETURN_DOC", + "BIND_METHOD_ERR_RETURN_DOC", + "GDREGISTER_CLASS", + "GDREGISTER_VIRTUAL_CLASS", + "GDREGISTER_ABSTRACT_CLASS", + "GDREGISTER_INTERNAL_CLASS", + "GDREGISTER_RUNTIME_CLASS", + "GDREGISTER_NATIVE_STRUCT" + ] + }, + "core/object/script_instance.h": { + "classes": [ + "ScriptInstance" + ], + "structs": [], + "defines": [ + "SCRIPT_INSTANCE_H" + ] + }, + "core/object/script_language.h": { + "classes": [ + "ScriptServer", + "Script", + "ScriptCodeCompletionCache", + "ScriptLanguage", + "PlaceHolderScriptInstance" + ], + "structs": [ + "GlobalScriptClass", + "Warning", + "ScriptError", + "ScriptTemplate", + "CodeCompletionOption", + "LookupResult", + "StackInfo", + "ProfilingInfo" + ], + "defines": [ + "SCRIPT_LANGUAGE_H" + ] + }, + "core/object/object.h": { + "classes": [ + "Object", + "ObjectDB" + ], + "structs": [ + "PropertyInfo", + "MethodInfo", + "ObjectGDExtension", + "Connection", + "SignalData", + "Slot", + "InstanceBinding", + "VirtualMethodTracker", + "ObjectSlot" + ], + "defines": [ + "OBJECT_H", + "ADD_SIGNAL", + "ADD_PROPERTY", + "ADD_PROPERTYI", + "ADD_PROPERTY_DEFAULT", + "ADD_GROUP", + "ADD_GROUP_INDENT", + "ADD_SUBGROUP", + "ADD_SUBGROUP_INDENT", + "ADD_LINKED_PROPERTY", + "ADD_ARRAY_COUNT", + "ADD_ARRAY_COUNT_WITH_USAGE_FLAGS", + "ADD_ARRAY", + "MAKE_RESOURCE_TYPE_HINT", + "GDVIRTUAL_CALL", + "GDVIRTUAL_CALL_PTR", + "GDVIRTUAL_REQUIRED_CALL", + "GDVIRTUAL_REQUIRED_CALL_PTR", + "GDVIRTUAL_BIND", + "GDVIRTUAL_BIND", + "GDVIRTUAL_IS_OVERRIDDEN", + "GDVIRTUAL_IS_OVERRIDDEN_PTR", + "REVERSE_GET_PROPERTY_LIST", + "UNREVERSE_GET_PROPERTY_LIST", + "GDCLASS", + "OBJ_SAVE_TYPE", + "MTVIRTUAL", + "MTVIRTUAL", + "OBJECTDB_VALIDATOR_BITS", + "OBJECTDB_VALIDATOR_MASK", + "OBJECTDB_SLOT_MAX_COUNT_BITS", + "OBJECTDB_SLOT_MAX_COUNT_MASK", + "OBJECTDB_REFERENCE_BIT" + ] + }, + "core/object/message_queue.h": { + "classes": [ + "CallQueue", + "MessageQueue" + ], + "structs": [ + "Page", + "Message" + ], + "defines": [ + "MESSAGE_QUEUE_H" + ] + }, + "core/object/undo_redo.h": { + "classes": [ + "UndoRedo" + ], + "structs": [ + "Operation", + "Action" + ], + "defines": [ + "UNDO_REDO_H" + ] + }, + "core/object/worker_thread_pool.h": { + "classes": [ + "WorkerThreadPool" + ], + "structs": [ + "BaseTemplateUserdata", + "Group", + "Task", + "ThreadData", + "TaskUserData", + "GroupUserData" + ], + "defines": [ + "WORKER_THREAD_POOL_H" + ] + }, + "core/object/ref_counted.h": { + "classes": [ + "RefCounted", + "Ref", + "WeakRef" + ], + "structs": [], + "defines": [ + "REF_COUNTED_H" + ] + }, + "core/debugger/engine_debugger.h": { + "classes": [ + "EngineDebugger", + "Profiler", + "Capture" + ], + "structs": [], + "defines": [ + "ENGINE_DEBUGGER_H" + ] + }, + "core/debugger/engine_profiler.h": { + "classes": [ + "EngineProfiler" + ], + "structs": [], + "defines": [ + "ENGINE_PROFILER_H" + ] + }, + "core/debugger/script_debugger.h": { + "classes": [ + "ScriptDebugger" + ], + "structs": [], + "defines": [ + "SCRIPT_DEBUGGER_H" + ] + }, + "core/debugger/remote_debugger_peer.h": { + "classes": [ + "RemoteDebuggerPeer", + "RemoteDebuggerPeerTCP" + ], + "structs": [], + "defines": [ + "REMOTE_DEBUGGER_PEER_H" + ] + }, + "core/debugger/debugger_marshalls.h": { + "classes": [], + "structs": [ + "DebuggerMarshalls", + "ScriptStackVariable", + "ScriptStackDump", + "OutputError" + ], + "defines": [ + "DEBUGGER_MARSHALLS_H" + ] + }, + "core/debugger/local_debugger.h": { + "classes": [ + "LocalDebugger" + ], + "structs": [], + "defines": [ + "LOCAL_DEBUGGER_H" + ] + }, + "core/debugger/remote_debugger.h": { + "classes": [ + "RemoteDebugger" + ], + "structs": [ + "OutputString", + "Message" + ], + "defines": [ + "REMOTE_DEBUGGER_H" + ] + }, + "core/variant/variant_callable.h": { + "classes": [ + "VariantCallable" + ], + "structs": [], + "defines": [ + "VARIANT_CALLABLE_H" + ] + }, + "core/variant/binder_common.h": { + "classes": [], + "structs": [ + "VariantCaster", + "VariantObjectClassChecker", + "VariantCasterAndValidate" + ], + "defines": [ + "BINDER_COMMON_H", + "VARIANT_ENUM_CAST", + "VARIANT_BITFIELD_CAST" + ] + }, + "core/variant/variant_op.h": { + "classes": [ + "OperatorEvaluatorAdd", + "OperatorEvaluatorSub", + "OperatorEvaluatorMul", + "OperatorEvaluatorPow", + "OperatorEvaluatorXForm", + "OperatorEvaluatorXFormInv", + "OperatorEvaluatorDiv", + "OperatorEvaluatorDivNZ", + "OperatorEvaluatorMod", + "OperatorEvaluatorModNZ", + "OperatorEvaluatorNeg", + "OperatorEvaluatorPos", + "OperatorEvaluatorShiftLeft", + "OperatorEvaluatorShiftRight", + "OperatorEvaluatorBitOr", + "OperatorEvaluatorBitAnd", + "OperatorEvaluatorBitXor", + "OperatorEvaluatorBitNeg", + "OperatorEvaluatorEqual", + "OperatorEvaluatorEqualObject", + "OperatorEvaluatorEqualObjectNil", + "OperatorEvaluatorEqualNilObject", + "OperatorEvaluatorNotEqual", + "OperatorEvaluatorNotEqualObject", + "OperatorEvaluatorNotEqualObjectNil", + "OperatorEvaluatorNotEqualNilObject", + "OperatorEvaluatorLess", + "OperatorEvaluatorLessEqual", + "OperatorEvaluatorGreater", + "OperatorEvaluatorGreaterEqual", + "OperatorEvaluatorAnd", + "OperatorEvaluatorOr", + "OperatorEvaluatorXor", + "OperatorEvaluatorNot", + "OperatorEvaluatorAddArray", + "OperatorEvaluatorAppendArray", + "OperatorEvaluatorStringConcat", + "OperatorEvaluatorStringFormat", + "OperatorEvaluatorAlwaysTrue", + "OperatorEvaluatorAlwaysFalse", + "m_class_name", + "OperatorEvaluatorNotBool", + "OperatorEvaluatorNotInt", + "OperatorEvaluatorNotFloat", + "OperatorEvaluatorNotObject", + "OperatorEvaluatorInArrayFind", + "OperatorEvaluatorInArrayFindNil", + "OperatorEvaluatorInArrayFindObject", + "OperatorEvaluatorInDictionaryHas", + "OperatorEvaluatorInDictionaryHasNil", + "OperatorEvaluatorInDictionaryHasObject", + "OperatorEvaluatorObjectHasPropertyString", + "OperatorEvaluatorObjectHasPropertyStringName" + ], + "structs": [], + "defines": [ + "VARIANT_OP_H", + "XOR_OP", + "OP_EVALUATOR" + ] + }, + "core/variant/variant_setget.h": { + "classes": [], + "structs": [], + "defines": [ + "VARIANT_SETGET_H", + "SETGET_STRUCT", + "SETGET_NUMBER_STRUCT", + "SETGET_STRUCT_CUSTOM", + "SETGET_NUMBER_STRUCT_CUSTOM", + "SETGET_STRUCT_FUNC", + "SETGET_NUMBER_STRUCT_FUNC", + "SETGET_STRUCT_FUNC_INDEX" + ] + }, + "core/variant/variant_destruct.h": { + "classes": [], + "structs": [ + "VariantDestruct" + ], + "defines": [ + "VARIANT_DESTRUCT_H", + "MAKE_PTRDESTRUCT" + ] + }, + "core/variant/variant_parser.h": { + "classes": [ + "VariantParser", + "VariantWriter" + ], + "structs": [ + "Stream", + "StreamFile", + "StreamString", + "ResourceParser", + "Token", + "Tag" + ], + "defines": [ + "VARIANT_PARSER_H" + ] + }, + "core/variant/variant_internal.h": { + "classes": [ + "VariantInternal" + ], + "structs": [ + "VariantGetInternalPtr", + "VariantInternalAccessor", + "VariantInitializer", + "VariantDefaultInitializer", + "VariantTypeChanger", + "VariantTypeAdjust", + "VariantTypeConstructor" + ], + "defines": [ + "VARIANT_INTERNAL_H", + "VARIANT_ACCESSOR_NUMBER", + "INITIALIZER_INT" + ] + }, + "core/variant/callable.h": { + "classes": [ + "Callable", + "CallableCustom", + "Signal" + ], + "structs": [ + "CallError", + "CallableComparator" + ], + "defines": [ + "CALLABLE_H" + ] + }, + "core/variant/variant_construct.h": { + "classes": [ + "VariantConstructor", + "VariantConstructorObject", + "VariantConstructorNilObject", + "VariantConstructorFromString", + "VariantConstructorCallableArgs", + "VariantConstructorSignalArgs", + "VariantConstructorTypedArray", + "VariantConstructorToArray", + "VariantConstructorFromArray", + "VariantConstructorNil", + "VariantConstructNoArgs", + "VariantConstructNoArgsNil", + "VariantConstructNoArgsObject" + ], + "structs": [ + "PtrConstruct" + ], + "defines": [ + "VARIANT_CONSTRUCT_H", + "MAKE_PTRCONSTRUCT" + ] + }, + "core/variant/container_type_validate.h": { + "classes": [], + "structs": [ + "ContainerTypeValidate" + ], + "defines": [ + "CONTAINER_TYPE_VALIDATE_H" + ] + }, + "core/variant/method_ptrcall.h": { + "classes": [], + "structs": [ + "PtrToArg" + ], + "defines": [ + "METHOD_PTRCALL_H", + "MAKE_PTRARG", + "MAKE_PTRARGCONV", + "MAKE_PTRARG_BY_REFERENCE", + "MAKE_VECARG", + "MAKE_VECARG_ALT", + "MAKE_VECARR", + "MAKE_DVECARR", + "MAKE_STRINGCONV_BY_REFERENCE" + ] + }, + "core/variant/dictionary.h": { + "classes": [ + "Dictionary" + ], + "structs": [], + "defines": [ + "DICTIONARY_H" + ] + }, + "core/variant/array.h": { + "classes": [ + "Array" + ], + "structs": [], + "defines": [ + "ARRAY_H" + ] + }, + "core/variant/callable_bind.h": { + "classes": [ + "CallableCustomBind", + "CallableCustomUnbind" + ], + "structs": [], + "defines": [ + "CALLABLE_BIND_H" + ] + }, + "core/variant/type_info.h": { + "classes": [ + "BitField" + ], + "structs": [ + "EnableIf", + "TypeInherits", + "ZeroInitializer" + ], + "defines": [ + "TYPE_INFO_H", + "MAKE_TYPE_INFO", + "MAKE_TYPE_INFO_WITH_META", + "MAKE_TEMPLATE_TYPE_INFO", + "TEMPL_MAKE_ENUM_TYPE_INFO", + "MAKE_ENUM_TYPE_INFO", + "TEMPL_MAKE_BITFIELD_TYPE_INFO", + "MAKE_BITFIELD_TYPE_INFO", + "CLASS_INFO", + "ZERO_INITIALIZER_NUMBER" + ] + }, + "core/variant/typed_array.h": { + "classes": [ + "TypedArray" + ], + "structs": [], + "defines": [ + "TYPED_ARRAY_H", + "MAKE_TYPED_ARRAY", + "MAKE_TYPED_ARRAY_INFO" + ] + }, + "core/variant/variant_utility.h": { + "classes": [], + "structs": [ + "VariantUtilityFunctions" + ], + "defines": [ + "VARIANT_UTILITY_H" + ] + }, + "core/variant/native_ptr.h": { + "classes": [], + "structs": [ + "GDExtensionConstPtr", + "GDExtensionPtr" + ], + "defines": [ + "NATIVE_PTR_H", + "GDVIRTUAL_NATIVE_PTR" + ] + }, + "core/variant/variant.h": { + "classes": [ + "Variant" + ], + "structs": [ + "Pools", + "ObjData", + "PackedArrayRefBase", + "PackedArrayRef", + "VariantHasher", + "VariantComparator", + "StringLikeVariantComparator" + ], + "defines": [ + "VARIANT_H", + "VARIANT_ENUM_CLASS_CONSTRUCTOR" + ] + }, + "core/templates/vmap.h": { + "classes": [ + "VMap" + ], + "structs": [ + "Pair" + ], + "defines": [ + "VMAP_H" + ] + }, + "core/templates/simple_type.h": { + "classes": [], + "structs": [ + "GetSimpleTypeT" + ], + "defines": [ + "SIMPLE_TYPE_H" + ] + }, + "core/templates/paged_array.h": { + "classes": [ + "PagedArrayPool", + "PagedArray" + ], + "structs": [ + "PageInfo" + ], + "defines": [ + "PAGED_ARRAY_H" + ] + }, + "core/templates/hash_map.h": { + "classes": [ + "HashMap" + ], + "structs": [ + "HashMapElement", + "ConstIterator", + "Iterator" + ], + "defines": [ + "HASH_MAP_H" + ] + }, + "core/templates/cowdata.h": { + "classes": [ + "CowData" + ], + "structs": [], + "defines": [ + "COWDATA_H" + ] + }, + "core/templates/safe_refcount.h": { + "classes": [ + "SafeNumeric", + "SafeFlag", + "SafeRefCount" + ], + "structs": [], + "defines": [ + "SAFE_REFCOUNT_H", + "SAFE_NUMERIC_TYPE_PUN_GUARANTEES", + "SAFE_FLAG_TYPE_PUN_GUARANTEES" + ] + }, + "core/templates/pass_func.h": { + "classes": [], + "structs": [], + "defines": [ + "PASS_FUNC_H", + "PASS0R", + "PASS0RC", + "PASS1R", + "PASS1RC", + "PASS2R", + "PASS2RC", + "PASS3R", + "PASS3RC", + "PASS4R", + "PASS4RC", + "PASS5R", + "PASS5RC", + "PASS6R", + "PASS6RC", + "PASS0", + "PASS1", + "PASS1C", + "PASS2", + "PASS2C", + "PASS3", + "PASS4", + "PASS5", + "PASS6", + "PASS7", + "PASS8", + "PASS9", + "PASS10", + "PASS11", + "PASS12", + "PASS13", + "PASS14", + "PASS15" + ] + }, + "core/templates/hashfuncs.h": { + "classes": [], + "structs": [ + "HashMapHasherDefault", + "HashableHasher", + "HashMapComparatorDefault" + ], + "defines": [ + "HASHFUNCS_H", + "HASH_MURMUR3_SEED" + ] + }, + "core/templates/ring_buffer.h": { + "classes": [ + "RingBuffer" + ], + "structs": [], + "defines": [ + "RING_BUFFER_H" + ] + }, + "core/templates/rb_set.h": { + "classes": [ + "RBSet", + "Element" + ], + "structs": [ + "Iterator", + "ConstIterator", + "_Data" + ], + "defines": [ + "RB_SET_H" + ] + }, + "core/templates/search_array.h": { + "classes": [ + "SearchArray" + ], + "structs": [], + "defines": [ + "SEARCH_ARRAY_H" + ] + }, + "core/templates/bin_sorted_array.h": { + "classes": [ + "BinSortedArray" + ], + "structs": [], + "defines": [ + "BIN_SORTED_ARRAY_H" + ] + }, + "core/templates/list.h": { + "classes": [ + "List", + "Element" + ], + "structs": [ + "Iterator", + "ConstIterator", + "_Data", + "AuxiliaryComparator" + ], + "defines": [ + "LIST_H" + ] + }, + "core/templates/safe_list.h": { + "classes": [ + "SafeList", + "Iterator" + ], + "structs": [ + "SafeListNode" + ], + "defines": [ + "SAFE_LIST_H" + ] + }, + "core/templates/lru.h": { + "classes": [ + "LRUCache" + ], + "structs": [ + "Pair" + ], + "defines": [ + "LRU_H" + ] + }, + "core/templates/sort_array.h": { + "classes": [ + "SortArray" + ], + "structs": [ + "_DefaultComparator" + ], + "defines": [ + "SORT_ARRAY_H", + "ERR_BAD_COMPARE", + "SORT_ARRAY_VALIDATE_ENABLED", + "SORT_ARRAY_VALIDATE_ENABLED" + ] + }, + "core/templates/rb_map.h": { + "classes": [ + "RBMap", + "Element" + ], + "structs": [ + "Iterator", + "ConstIterator", + "_Data" + ], + "defines": [ + "RB_MAP_H" + ] + }, + "core/templates/paged_allocator.h": { + "classes": [ + "PagedAllocator" + ], + "structs": [], + "defines": [ + "PAGED_ALLOCATOR_H" + ] + }, + "core/templates/self_list.h": { + "classes": [ + "SelfList", + "List" + ], + "structs": [], + "defines": [ + "SELF_LIST_H" + ] + }, + "core/templates/pair.h": { + "classes": [], + "structs": [ + "Pair", + "PairSort", + "PairHash", + "KeyValue", + "KeyValueSort" + ], + "defines": [ + "PAIR_H" + ] + }, + "core/templates/pooled_list.h": { + "classes": [ + "PooledList", + "TrackedPooledList" + ], + "structs": [], + "defines": [ + "POOLED_LIST_H" + ] + }, + "core/templates/local_vector.h": { + "classes": [ + "LocalVector" + ], + "structs": [ + "Iterator", + "ConstIterator" + ], + "defines": [ + "LOCAL_VECTOR_H" + ] + }, + "core/templates/command_queue_mt.h": { + "classes": [ + "CommandQueueMT" + ], + "structs": [ + "SyncSemaphore", + "CommandBase", + "SyncCommand" + ], + "defines": [ + "COMMAND_QUEUE_MT_H", + "COMMA", + "_COMMA_0", + "_COMMA_1", + "_COMMA_2", + "_COMMA_3", + "_COMMA_4", + "_COMMA_5", + "_COMMA_6", + "_COMMA_7", + "_COMMA_8", + "_COMMA_9", + "_COMMA_10", + "_COMMA_11", + "_COMMA_12", + "_COMMA_13", + "_COMMA_14", + "_COMMA_15", + "COMMA_SEP_LIST", + "_COMMA_SEP_LIST_15", + "_COMMA_SEP_LIST_14", + "_COMMA_SEP_LIST_13", + "_COMMA_SEP_LIST_12", + "_COMMA_SEP_LIST_11", + "_COMMA_SEP_LIST_10", + "_COMMA_SEP_LIST_9", + "_COMMA_SEP_LIST_8", + "_COMMA_SEP_LIST_7", + "_COMMA_SEP_LIST_6", + "_COMMA_SEP_LIST_5", + "_COMMA_SEP_LIST_4", + "_COMMA_SEP_LIST_3", + "_COMMA_SEP_LIST_2", + "_COMMA_SEP_LIST_1", + "_COMMA_SEP_LIST_0", + "SEMIC_SEP_LIST", + "_SEMIC_SEP_LIST_15", + "_SEMIC_SEP_LIST_14", + "_SEMIC_SEP_LIST_13", + "_SEMIC_SEP_LIST_12", + "_SEMIC_SEP_LIST_11", + "_SEMIC_SEP_LIST_10", + "_SEMIC_SEP_LIST_9", + "_SEMIC_SEP_LIST_8", + "_SEMIC_SEP_LIST_7", + "_SEMIC_SEP_LIST_6", + "_SEMIC_SEP_LIST_5", + "_SEMIC_SEP_LIST_4", + "_SEMIC_SEP_LIST_3", + "_SEMIC_SEP_LIST_2", + "_SEMIC_SEP_LIST_1", + "_SEMIC_SEP_LIST_0", + "SPACE_SEP_LIST", + "_SPACE_SEP_LIST_15", + "_SPACE_SEP_LIST_14", + "_SPACE_SEP_LIST_13", + "_SPACE_SEP_LIST_12", + "_SPACE_SEP_LIST_11", + "_SPACE_SEP_LIST_10", + "_SPACE_SEP_LIST_9", + "_SPACE_SEP_LIST_8", + "_SPACE_SEP_LIST_7", + "_SPACE_SEP_LIST_6", + "_SPACE_SEP_LIST_5", + "_SPACE_SEP_LIST_4", + "_SPACE_SEP_LIST_3", + "_SPACE_SEP_LIST_2", + "_SPACE_SEP_LIST_1", + "_SPACE_SEP_LIST_0", + "ARG", + "PARAM", + "TYPE_PARAM", + "PARAM_DECL", + "DECL_CMD", + "DECL_CMD_RET", + "DECL_CMD_SYNC", + "TYPE_ARG", + "CMD_TYPE", + "CMD_ASSIGN_PARAM", + "DECL_PUSH", + "CMD_RET_TYPE", + "DECL_PUSH_AND_RET", + "CMD_SYNC_TYPE", + "DECL_PUSH_AND_SYNC", + "MAX_CMD_PARAMS" + ] + }, + "core/templates/vset.h": { + "classes": [ + "VSet" + ], + "structs": [], + "defines": [ + "VSET_H" + ] + }, + "core/templates/rid.h": { + "classes": [ + "RID" + ], + "structs": [], + "defines": [ + "RID_H" + ] + }, + "core/templates/vector.h": { + "classes": [ + "VectorWriteProxy", + "Vector" + ], + "structs": [ + "Iterator", + "ConstIterator" + ], + "defines": [ + "VECTOR_H" + ] + }, + "core/templates/hash_set.h": { + "classes": [ + "HashSet" + ], + "structs": [ + "Iterator" + ], + "defines": [ + "HASH_SET_H" + ] + }, + "core/templates/rid_owner.h": { + "classes": [ + "RID_AllocBase", + "RID_Alloc", + "RID_PtrOwner", + "RID_Owner" + ], + "structs": [], + "defines": [ + "RID_OWNER_H" + ] + }, + "core/templates/oa_hash_map.h": { + "classes": [ + "OAHashMap" + ], + "structs": [ + "Iterator" + ], + "defines": [ + "OA_HASH_MAP_H" + ] + }, + "core/os/time.h": { + "classes": [ + "Time" + ], + "structs": [], + "defines": [ + "TIME_H" + ] + }, + "core/os/semaphore.h": { + "classes": [ + "Semaphore", + "Semaphore" + ], + "structs": [], + "defines": [ + "SEMAPHORE_H", + "MINGW_STDTHREAD_REDUNDANCY_WARNING", + "THREADING_NAMESPACE", + "THREADING_NAMESPACE" + ] + }, + "core/os/condition_variable.h": { + "classes": [ + "ConditionVariable", + "ConditionVariable" + ], + "structs": [], + "defines": [ + "CONDITION_VARIABLE_H", + "MINGW_STDTHREAD_REDUNDANCY_WARNING", + "THREADING_NAMESPACE", + "THREADING_NAMESPACE" + ] + }, + "core/os/time_enums.h": { + "classes": [], + "structs": [], + "defines": [ + "TIME_ENUMS_H" + ] + }, + "core/os/midi_driver.h": { + "classes": [ + "MIDIDriver" + ], + "structs": [], + "defines": [ + "MIDI_DRIVER_H" + ] + }, + "core/os/rw_lock.h": { + "classes": [ + "RWLock", + "RWLockRead", + "RWLockWrite" + ], + "structs": [], + "defines": [ + "RW_LOCK_H", + "MINGW_STDTHREAD_REDUNDANCY_WARNING", + "THREADING_NAMESPACE", + "THREADING_NAMESPACE" + ] + }, + "core/os/os.h": { + "classes": [ + "OS" + ], + "structs": [ + "DateTime", + "TimeZoneInfo" + ], + "defines": [ + "OS_H" + ] + }, + "core/os/safe_binary_mutex.h": { + "classes": [ + "SafeBinaryMutex", + "SafeBinaryMutex" + ], + "structs": [], + "defines": [ + "SAFE_BINARY_MUTEX_H" + ] + }, + "core/os/thread_safe.h": { + "classes": [], + "structs": [], + "defines": [ + "THREAD_SAFE_H", + "_THREAD_SAFE_CLASS_", + "_THREAD_SAFE_METHOD_", + "_THREAD_SAFE_LOCK_", + "_THREAD_SAFE_UNLOCK_" + ] + }, + "core/os/thread.h": { + "classes": [ + "Thread", + "Thread" + ], + "structs": [ + "Settings", + "PlatformFunctions", + "Settings", + "PlatformFunctions" + ], + "defines": [ + "THREAD_H", + "MINGW_STDTHREAD_REDUNDANCY_WARNING", + "THREADING_NAMESPACE", + "THREADING_NAMESPACE" + ] + }, + "core/os/keyboard.h": { + "classes": [ + "Key", + "KeyModifierMask", + "KeyLocation" + ], + "structs": [], + "defines": [ + "KEYBOARD_H" + ] + }, + "core/os/memory.h": { + "classes": [ + "Memory", + "DefaultAllocator", + "DefaultTypedAllocator" + ], + "structs": [ + "_GlobalNil", + "_GlobalNilClass" + ], + "defines": [ + "MEMORY_H", + "memalloc", + "memrealloc", + "memfree", + "memnew", + "memnew_allocator", + "memnew_placement", + "memdelete_notnull", + "memnew_arr" + ] + }, + "core/os/spin_lock.h": { + "classes": [ + "SpinLock", + "SpinLock" + ], + "structs": [], + "defines": [ + "SPIN_LOCK_H" + ] + }, + "core/os/mutex.h": { + "classes": [ + "MutexImpl", + "MutexLock", + "MutexImpl", + "MutexLock" + ], + "structs": [], + "defines": [ + "MUTEX_H", + "MINGW_STDTHREAD_REDUNDANCY_WARNING", + "THREADING_NAMESPACE", + "THREADING_NAMESPACE" + ] + }, + "core/os/pool_allocator.h": { + "classes": [ + "PoolAllocator" + ], + "structs": [ + "Entry" + ], + "defines": [ + "POOL_ALLOCATOR_H" + ] + }, + "core/os/main_loop.h": { + "classes": [ + "MainLoop" + ], + "structs": [], + "defines": [ + "MAIN_LOOP_H" + ] + }, + "core/string/ucaps.h": { + "classes": [], + "structs": [], + "defines": [ + "UCAPS_H", + "CAPS_LEN" + ] + }, + "core/string/print_string.h": { + "classes": [], + "structs": [ + "PrintHandlerList" + ], + "defines": [ + "PRINT_STRING_H", + "print_verbose" + ] + }, + "core/string/ustring.h": { + "classes": [ + "CharProxy", + "Char16String", + "CharString", + "String" + ], + "structs": [ + "StrRange", + "NoCaseComparator", + "NaturalNoCaseComparator" + ], + "defines": [ + "USTRING_GODOT_H", + "TTRC", + "TTRGET", + "TTRC", + "TTRGET", + "PNAME", + "GNAME" + ] + }, + "core/string/string_builder.h": { + "classes": [ + "StringBuilder" + ], + "structs": [], + "defines": [ + "STRING_BUILDER_H" + ] + }, + "core/string/char_utils.h": { + "classes": [], + "structs": [], + "defines": [ + "CHAR_UTILS_H", + "BSEARCH_CHAR_RANGE" + ] + }, + "core/string/node_path.h": { + "classes": [ + "NodePath" + ], + "structs": [ + "Data" + ], + "defines": [ + "NODE_PATH_H" + ] + }, + "core/string/translation.h": { + "classes": [ + "Translation", + "TranslationServer" + ], + "structs": [ + "LocaleScriptInfo" + ], + "defines": [ + "TRANSLATION_H" + ] + }, + "core/string/string_buffer.h": { + "classes": [ + "StringBuffer" + ], + "structs": [], + "defines": [ + "STRING_BUFFER_H" + ] + }, + "core/string/string_name.h": { + "classes": [ + "StringName" + ], + "structs": [ + "StaticCString", + "_Data", + "DebugSortReferences", + "AlphCompare" + ], + "defines": [ + "STRING_NAME_H", + "UNIQUE_NODE_PREFIX", + "SNAME" + ] + }, + "core/string/translation_po.h": { + "classes": [ + "TranslationPO" + ], + "structs": [], + "defines": [ + "TRANSLATION_PO_H", + "DEBUG_TRANSLATION_PO" + ] + }, + "core/string/optimized_translation.h": { + "classes": [ + "OptimizedTranslation" + ], + "structs": [ + "Bucket", + "Elem" + ], + "defines": [ + "OPTIMIZED_TRANSLATION_H" + ] + }, + "core/string/locales.h": { + "classes": [], + "structs": [], + "defines": [ + "LOCALES_H" + ] + }, + "core/error/error_macros.h": { + "classes": [], + "structs": [ + "ErrorHandlerList" + ], + "defines": [ + "ERROR_MACROS_H", + "FUNCTION_STR", + "FUNCTION_STR", + "FUNCTION_STR", + "GENERATE_TRAP", + "GENERATE_TRAP", + "ERR_FAIL_INDEX", + "ERR_FAIL_INDEX_MSG", + "ERR_FAIL_INDEX_EDMSG", + "ERR_FAIL_INDEX_V", + "ERR_FAIL_INDEX_V_MSG", + "ERR_FAIL_INDEX_V_EDMSG", + "CRASH_BAD_INDEX", + "CRASH_BAD_INDEX_MSG", + "ERR_FAIL_UNSIGNED_INDEX", + "ERR_FAIL_UNSIGNED_INDEX_MSG", + "ERR_FAIL_UNSIGNED_INDEX_EDMSG", + "ERR_FAIL_UNSIGNED_INDEX_V", + "ERR_FAIL_UNSIGNED_INDEX_V_MSG", + "ERR_FAIL_UNSIGNED_INDEX_V_EDMSG", + "CRASH_BAD_UNSIGNED_INDEX", + "CRASH_BAD_UNSIGNED_INDEX_MSG", + "ERR_FAIL_NULL", + "ERR_FAIL_NULL_MSG", + "ERR_FAIL_NULL_EDMSG", + "ERR_FAIL_NULL_V", + "ERR_FAIL_NULL_V_MSG", + "ERR_FAIL_NULL_V_EDMSG", + "ERR_FAIL_COND", + "ERR_FAIL_COND_MSG", + "ERR_FAIL_COND_EDMSG", + "ERR_FAIL_COND_V", + "ERR_FAIL_COND_V_MSG", + "ERR_FAIL_COND_V_EDMSG", + "ERR_CONTINUE", + "ERR_CONTINUE_MSG", + "ERR_CONTINUE_EDMSG", + "ERR_BREAK", + "ERR_BREAK_MSG", + "ERR_BREAK_EDMSG", + "CRASH_COND", + "CRASH_COND_MSG", + "ERR_FAIL", + "ERR_FAIL_MSG", + "ERR_FAIL_EDMSG", + "ERR_FAIL_V", + "ERR_FAIL_V_MSG", + "ERR_FAIL_V_EDMSG", + "ERR_PRINT", + "ERR_PRINT_ED", + "ERR_PRINT_ONCE", + "ERR_PRINT_ONCE_ED", + "WARN_PRINT", + "WARN_PRINT_ED", + "WARN_PRINT_ONCE", + "WARN_PRINT_ONCE_ED", + "WARN_VERBOSE", + "WARN_DEPRECATED", + "WARN_DEPRECATED_MSG", + "CRASH_NOW", + "CRASH_NOW_MSG", + "DEV_ASSERT", + "DEV_ASSERT", + "DEV_CHECK_ONCE", + "DEV_CHECK_ONCE" + ] + }, + "core/error/error_list.h": { + "classes": [], + "structs": [], + "defines": [ + "ERROR_LIST_H" + ] + }, + "platform/register_platform_apis.h": { + "classes": [], + "structs": [], + "defines": [ + "REGISTER_PLATFORM_APIS_H" + ] + }, + "platform/macos/godot_status_item.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_STATUS_ITEM_H" + ] + }, + "platform/macos/godot_menu_item.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_MENU_ITEM_H", + "MENU_TAG_START", + "MENU_TAG_END" + ] + }, + "platform/macos/godot_button_view.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_BUTTON_VIEW_H" + ] + }, + "platform/macos/platform_gl.h": { + "classes": [], + "structs": [], + "defines": [ + "PLATFORM_GL_H", + "GL_API_ENABLED", + "GLES_API_ENABLED", + "KHRONOS_STATIC" + ] + }, + "platform/macos/platform_config.h": { + "classes": [], + "structs": [], + "defines": [ + "PTHREAD_RENAME_SELF", + "_weakify", + "_strongify" + ] + }, + "platform/macos/dir_access_macos.h": { + "classes": [ + "DirAccessMacOS" + ], + "structs": [], + "defines": [ + "DIR_ACCESS_MACOS_H" + ] + }, + "platform/macos/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/macos/godot_open_save_delegate.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_OPEN_SAVE_DELEGATE_H" + ] + }, + "platform/macos/macos_terminal_logger.h": { + "classes": [ + "MacOSTerminalLogger" + ], + "structs": [], + "defines": [ + "MACOS_TERMINAL_LOGGER_H" + ] + }, + "platform/macos/gl_manager_macos_legacy.h": { + "classes": [ + "GLManagerLegacy_MacOS" + ], + "structs": [ + "GLWindow" + ], + "defines": [ + "GL_MANAGER_MACOS_LEGACY_H" + ] + }, + "platform/macos/rendering_context_driver_vulkan_macos.h": { + "classes": [ + "RenderingContextDriverVulkanMacOS" + ], + "structs": [ + "WindowPlatformData" + ], + "defines": [ + "RENDERING_CONTEXT_DRIVER_VULKAN_MACOS_H" + ] + }, + "platform/macos/godot_application_delegate.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_APPLICATION_DELEGATE_H" + ] + }, + "platform/macos/godot_window.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_WINDOW_H" + ] + }, + "platform/macos/run_icon_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/macos/os_macos.h": { + "classes": [ + "OS_MacOS" + ], + "structs": [], + "defines": [ + "OS_MACOS_H" + ] + }, + "platform/macos/godot_application.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_APPLICATION_H" + ] + }, + "platform/macos/tts_macos.h": { + "classes": [], + "structs": [], + "defines": [ + "TTS_MACOS_H" + ] + }, + "platform/macos/key_mapping_macos.h": { + "classes": [ + "KeyMappingMacOS" + ], + "structs": [], + "defines": [ + "KEY_MAPPING_MACOS_H" + ] + }, + "platform/macos/crash_handler_macos.h": { + "classes": [ + "CrashHandler" + ], + "structs": [], + "defines": [ + "CRASH_HANDLER_MACOS_H" + ] + }, + "platform/macos/display_server_macos.h": { + "classes": [ + "DisplayServerMacOS" + ], + "structs": [ + "KeyEvent", + "WindowData", + "WarpEvent", + "LayoutInfo", + "IndicatorData", + "MenuCall" + ], + "defines": [ + "DISPLAY_SERVER_MACOS_H", + "BitMap" + ] + }, + "platform/macos/gl_manager_macos_angle.h": { + "classes": [ + "GLManagerANGLE_MacOS" + ], + "structs": [], + "defines": [ + "GL_MANAGER_MACOS_ANGLE_H" + ] + }, + "platform/macos/logo.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/macos/godot_content_view.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_CONTENT_VIEW_H", + "RootView", + "RootView" + ] + }, + "platform/macos/joypad_macos.h": { + "classes": [ + "JoypadMacOS" + ], + "structs": [], + "defines": [ + "Key" + ] + }, + "platform/macos/godot_menu_delegate.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_MENU_DELEGATE_H" + ] + }, + "platform/macos/native_menu_macos.h": { + "classes": [ + "NativeMenuMacOS" + ], + "structs": [ + "MenuData" + ], + "defines": [ + "NATIVE_MENU_MACOS_H" + ] + }, + "platform/macos/godot_window_delegate.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_WINDOW_DELEGATE_H" + ] + }, + "platform/macos/export/codesign.h": { + "classes": [ + "CodeSignCodeResources", + "CRMatch", + "CodeSignBlob", + "CodeSignRequirements", + "CodeSignEntitlementsText", + "CodeSignEntitlementsBinary", + "CodeSignCodeDirectory", + "CodeSignSignature", + "CodeSignSuperBlob", + "CodeSign" + ], + "structs": [ + "CRFile", + "CRRule", + "CodeDirectoryHeader" + ], + "defines": [ + "MACOS_CODESIGN_H" + ] + }, + "platform/macos/export/lipo.h": { + "classes": [ + "LipO" + ], + "structs": [ + "FatArch" + ], + "defines": [ + "MACOS_LIPO_H" + ] + }, + "platform/macos/export/export.h": { + "classes": [], + "structs": [], + "defines": [ + "MACOS_EXPORT_H" + ] + }, + "platform/macos/export/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/macos/export/export_plugin.h": { + "classes": [ + "EditorExportPlatformMacOS" + ], + "structs": [ + "SSHCleanupCommand" + ], + "defines": [ + "MACOS_EXPORT_PLUGIN_H" + ] + }, + "platform/macos/export/run_icon_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/macos/export/macho.h": { + "classes": [ + "MachO" + ], + "structs": [ + "MachHeader", + "LoadCommandHeader", + "LoadCommandSegment", + "LoadCommandSegment64", + "Section", + "Section64" + ], + "defines": [ + "MACOS_MACHO_H" + ] + }, + "platform/web/platform_gl.h": { + "classes": [], + "structs": [], + "defines": [ + "PLATFORM_GL_H", + "GLES_API_ENABLED" + ] + }, + "platform/web/platform_config.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/web/os_web.h": { + "classes": [ + "OS_Web" + ], + "structs": [], + "defines": [ + "OS_WEB_H" + ] + }, + "platform/web/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/web/godot_js.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_JS_H", + "WASM_EXPORT" + ] + }, + "platform/web/audio_driver_web.h": { + "classes": [ + "AudioDriverWeb", + "AudioDriverWorklet", + "AudioDriverWorklet", + "AudioDriverScriptProcessor" + ], + "structs": [ + "AudioContext" + ], + "defines": [ + "AUDIO_DRIVER_WEB_H" + ] + }, + "platform/web/godot_audio.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_AUDIO_H" + ] + }, + "platform/web/run_icon_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/web/display_server_web.h": { + "classes": [ + "DisplayServerWeb" + ], + "structs": [ + "JSTouchEvent", + "JSKeyEvent", + "KeyEvent" + ], + "defines": [ + "DISPLAY_SERVER_WEB_H" + ] + }, + "platform/web/run_icon.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/web/logo.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/web/http_client_web.h": { + "classes": [ + "HTTPClientWeb" + ], + "structs": [], + "defines": [ + "HTTP_CLIENT_WEB_H" + ] + }, + "platform/web/godot_webgl2.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_WEBGL2_H", + "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR", + "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR", + "GL_MAX_VIEWS_OVR", + "GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR", + "glFramebufferTextureMultiviewOVR", + "glFramebufferTextureMultisampleMultiviewOVR" + ] + }, + "platform/web/api/javascript_bridge_singleton.h": { + "classes": [ + "JavaScriptObject", + "JavaScriptBridge" + ], + "structs": [], + "defines": [ + "JAVASCRIPT_BRIDGE_SINGLETON_H" + ] + }, + "platform/web/api/api.h": { + "classes": [], + "structs": [], + "defines": [ + "WEB_API_H" + ] + }, + "platform/web/api/web_tools_editor_plugin.h": { + "classes": [ + "WebToolsEditorPlugin", + "WebToolsEditorPlugin" + ], + "structs": [], + "defines": [ + "WEB_TOOLS_EDITOR_PLUGIN_H" + ] + }, + "platform/web/export/export.h": { + "classes": [], + "structs": [], + "defines": [ + "WEB_EXPORT_H" + ] + }, + "platform/web/export/editor_http_server.h": { + "classes": [ + "EditorHTTPServer" + ], + "structs": [], + "defines": [ + "WEB_EDITOR_HTTP_SERVER_H" + ] + }, + "platform/web/export/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/web/export/export_plugin.h": { + "classes": [ + "EditorExportPlatformWeb" + ], + "structs": [], + "defines": [ + "WEB_EXPORT_PLUGIN_H" + ] + }, + "platform/web/export/run_icon_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/keyboard_input_view.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/joypad_ios.h": { + "classes": [ + "JoypadIOS" + ], + "structs": [], + "defines": [] + }, + "platform/ios/ios.h": { + "classes": [ + "iOS" + ], + "structs": [], + "defines": [ + "IOS_H" + ] + }, + "platform/ios/godot_view_renderer.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/display_server_ios.h": { + "classes": [ + "DisplayServerIOS" + ], + "structs": [], + "defines": [ + "DISPLAY_SERVER_IOS_H" + ] + }, + "platform/ios/platform_gl.h": { + "classes": [], + "structs": [], + "defines": [ + "PLATFORM_GL_H", + "GLES_API_ENABLED" + ] + }, + "platform/ios/godot_app_delegate.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/platform_config.h": { + "classes": [], + "structs": [], + "defines": [ + "PTHREAD_RENAME_SELF", + "_weakify", + "_strongify" + ] + }, + "platform/ios/godot_view.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/view_controller.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/app_delegate.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/ios_terminal_logger.h": { + "classes": [ + "IOSTerminalLogger" + ], + "structs": [], + "defines": [ + "IOS_TERMINAL_LOGGER_H" + ] + }, + "platform/ios/os_ios.h": { + "classes": [ + "OS_IOS" + ], + "structs": [], + "defines": [ + "OS_IOS_H" + ] + }, + "platform/ios/device_metrics.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/rendering_context_driver_vulkan_ios.h": { + "classes": [ + "RenderingContextDriverVulkanIOS" + ], + "structs": [ + "WindowPlatformData" + ], + "defines": [ + "RENDERING_CONTEXT_DRIVER_VULKAN_IOS_H" + ] + }, + "platform/ios/logo.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/tts_ios.h": { + "classes": [], + "structs": [], + "defines": [ + "TTS_IOS_H" + ] + }, + "platform/ios/display_layer.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/key_mapping_ios.h": { + "classes": [ + "KeyMappingIOS" + ], + "structs": [], + "defines": [ + "KEY_MAPPING_IOS_H" + ] + }, + "platform/ios/api/api.h": { + "classes": [], + "structs": [], + "defines": [ + "IOS_API_H" + ] + }, + "platform/ios/export/export.h": { + "classes": [], + "structs": [], + "defines": [ + "IOS_EXPORT_H" + ] + }, + "platform/ios/export/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/export/export_plugin.h": { + "classes": [ + "EditorExportPlatformIOS" + ], + "structs": [ + "Device", + "IOSConfigData", + "ExportArchitecture", + "IOSExportAsset" + ], + "defines": [ + "IOS_EXPORT_PLUGIN_H" + ] + }, + "platform/ios/export/run_icon_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/ios/export/godot_plugin_config.h": { + "classes": [], + "structs": [ + "PluginConfigIOS", + "PlistItem" + ], + "defines": [ + "IOS_GODOT_PLUGIN_CONFIG_H" + ] + }, + "platform/android/dir_access_jandroid.h": { + "classes": [ + "DirAccessJAndroid" + ], + "structs": [], + "defines": [ + "DIR_ACCESS_JANDROID_H" + ] + }, + "platform/android/os_android.h": { + "classes": [ + "OS_Android" + ], + "structs": [ + "FontInfo" + ], + "defines": [ + "OS_ANDROID_H" + ] + }, + "platform/android/tts_android.h": { + "classes": [ + "TTS_Android" + ], + "structs": [], + "defines": [ + "TTS_ANDROID_H" + ] + }, + "platform/android/platform_gl.h": { + "classes": [], + "structs": [], + "defines": [ + "PLATFORM_GL_H", + "GLES_API_ENABLED" + ] + }, + "platform/android/platform_config.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/android/java_godot_wrapper.h": { + "classes": [ + "GodotJavaWrapper" + ], + "structs": [], + "defines": [ + "JAVA_GODOT_WRAPPER_H" + ] + }, + "platform/android/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/android/android_keys_utils.h": { + "classes": [], + "structs": [ + "AndroidGodotCodePair", + "AndroidGodotLocationPair" + ], + "defines": [ + "ANDROID_KEYS_UTILS_H", + "AKEYCODE_MAX" + ] + }, + "platform/android/android_input_handler.h": { + "classes": [ + "AndroidInputHandler" + ], + "structs": [ + "TouchPos", + "MouseEventInfo", + "JoypadEvent" + ], + "defines": [ + "ANDROID_INPUT_HANDLER_H" + ] + }, + "platform/android/string_android.h": { + "classes": [], + "structs": [], + "defines": [ + "STRING_ANDROID_H" + ] + }, + "platform/android/audio_driver_opensl.h": { + "classes": [ + "AudioDriverOpenSL" + ], + "structs": [], + "defines": [ + "AUDIO_DRIVER_OPENSL_H" + ] + }, + "platform/android/thread_jandroid.h": { + "classes": [], + "structs": [], + "defines": [ + "THREAD_JANDROID_H" + ] + }, + "platform/android/jni_utils.h": { + "classes": [], + "structs": [ + "jvalret" + ], + "defines": [ + "JNI_UTILS_H" + ] + }, + "platform/android/run_icon_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/android/java_godot_lib_jni.h": { + "classes": [], + "structs": [], + "defines": [ + "JAVA_GODOT_LIB_JNI_H" + ] + }, + "platform/android/rendering_context_driver_vulkan_android.h": { + "classes": [ + "RenderingContextDriverVulkanAndroid" + ], + "structs": [ + "WindowPlatformData" + ], + "defines": [ + "RENDERING_CONTEXT_DRIVER_VULKAN_ANDROID_H" + ] + }, + "platform/android/display_server_android.h": { + "classes": [ + "DisplayServerAndroid" + ], + "structs": [], + "defines": [ + "DISPLAY_SERVER_ANDROID_H" + ] + }, + "platform/android/net_socket_android.h": { + "classes": [ + "NetSocketAndroid" + ], + "structs": [], + "defines": [ + "NET_SOCKET_ANDROID_H" + ] + }, + "platform/android/file_access_android.h": { + "classes": [ + "FileAccessAndroid" + ], + "structs": [], + "defines": [ + "FILE_ACCESS_ANDROID_H" + ] + }, + "platform/android/run_icon.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/android/logo.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/android/java_godot_io_wrapper.h": { + "classes": [ + "GodotIOJavaWrapper" + ], + "structs": [], + "defines": [ + "JAVA_GODOT_IO_WRAPPER_H" + ] + }, + "platform/android/file_access_filesystem_jandroid.h": { + "classes": [ + "FileAccessFilesystemJAndroid" + ], + "structs": [], + "defines": [ + "FILE_ACCESS_FILESYSTEM_JANDROID_H" + ] + }, + "platform/android/java_godot_view_wrapper.h": { + "classes": [ + "GodotJavaViewWrapper" + ], + "structs": [], + "defines": [ + "JAVA_GODOT_VIEW_WRAPPER_H" + ] + }, + "platform/android/plugin/godot_plugin_jni.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_PLUGIN_JNI_H" + ] + }, + "platform/android/api/jni_singleton.h": { + "classes": [ + "JNISingleton" + ], + "structs": [ + "MethodData" + ], + "defines": [ + "JNI_SINGLETON_H" + ] + }, + "platform/android/api/api.h": { + "classes": [], + "structs": [], + "defines": [ + "ANDROID_API_H" + ] + }, + "platform/android/api/java_class_wrapper.h": { + "classes": [ + "JavaClass", + "JavaObject", + "JavaClassWrapper" + ], + "structs": [ + "MethodInfo" + ], + "defines": [ + "JAVA_CLASS_WRAPPER_H" + ] + }, + "platform/android/export/export.h": { + "classes": [], + "structs": [], + "defines": [ + "ANDROID_EXPORT_H" + ] + }, + "platform/android/export/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/android/export/export_plugin.h": { + "classes": [ + "EditorExportPlatformAndroid" + ], + "structs": [ + "LauncherIcon", + "Device", + "APKExportData", + "ABI" + ], + "defines": [ + "ANDROID_EXPORT_PLUGIN_H" + ] + }, + "platform/android/export/run_icon_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/android/export/gradle_export_util.h": { + "classes": [], + "structs": [ + "CustomExportData" + ], + "defines": [ + "ANDROID_GRADLE_EXPORT_UTIL_H" + ] + }, + "platform/android/export/godot_plugin_config.h": { + "classes": [], + "structs": [ + "PluginConfigAndroid" + ], + "defines": [ + "ANDROID_GODOT_PLUGIN_CONFIG_H" + ] + }, + "platform/windows/crash_handler_windows.h": { + "classes": [ + "CrashHandler" + ], + "structs": [], + "defines": [ + "CRASH_HANDLER_WINDOWS_H", + "WIN32_LEAN_AND_MEAN", + "CRASH_HANDLER_EXCEPTION" + ] + }, + "platform/windows/platform_gl.h": { + "classes": [], + "structs": [], + "defines": [ + "PLATFORM_GL_H", + "GL_API_ENABLED", + "GLES_API_ENABLED", + "KHRONOS_STATIC" + ] + }, + "platform/windows/platform_config.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/windows/display_server_windows.h": { + "classes": [ + "DisplayServerWindows" + ], + "structs": [ + "tagLOGCONTEXTW", + "tagAXIS", + "tagORIENTATION", + "tagPACKET", + "tagPOINTER_INFO", + "tagPOINTER_PEN_INFO", + "KeyEvent", + "WindowData", + "IndicatorData" + ], + "defines": [ + "DISPLAY_SERVER_WINDOWS_H", + "WIN32_LEAN_AND_MEAN", + "WT_PACKET", + "WT_PROXIMITY", + "WT_INFOCHANGE", + "WT_CSRCHANGE", + "WTI_DEFSYSCTX", + "WTI_DEVICES", + "DVC_NPRESSURE", + "DVC_TPRESSURE", + "DVC_ORIENTATION", + "DVC_ROTATION", + "CXO_MESSAGES", + "PK_STATUS", + "PK_NORMAL_PRESSURE", + "PK_TANGENT_PRESSURE", + "PK_ORIENTATION", + "TPS_INVERT", + "POINTER_STRUCTURES", + "PEN_FLAG_INVERTED", + "PEN_FLAG_ERASER", + "PEN_MASK_PRESSURE", + "PEN_MASK_TILT_X", + "PEN_MASK_TILT_Y", + "POINTER_MESSAGE_FLAG_FIRSTBUTTON", + "WM_POINTERUPDATE", + "WM_POINTERENTER", + "WM_POINTERLEAVE" + ] + }, + "platform/windows/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/windows/rendering_context_driver_vulkan_windows.h": { + "classes": [ + "RenderingContextDriverVulkanWindows" + ], + "structs": [ + "WindowPlatformData" + ], + "defines": [ + "RENDERING_CONTEXT_DRIVER_VULKAN_WINDOWS_H", + "WIN32_LEAN_AND_MEAN" + ] + }, + "platform/windows/gl_manager_windows_native.h": { + "classes": [ + "GLManagerNative_Windows" + ], + "structs": [ + "GLWindow", + "GLDisplay" + ], + "defines": [ + "GL_MANAGER_WINDOWS_NATIVE_H" + ] + }, + "platform/windows/gl_manager_windows_angle.h": { + "classes": [ + "GLManagerANGLE_Windows" + ], + "structs": [], + "defines": [ + "GL_MANAGER_WINDOWS_ANGLE_H" + ] + }, + "platform/windows/joypad_windows.h": { + "classes": [ + "JoypadWindows" + ], + "structs": [ + "dinput_gamepad", + "xinput_gamepad" + ], + "defines": [ + "JOYPAD_WINDOWS_H", + "DIRECTINPUT_VERSION", + "SAFE_RELEASE", + "XUSER_MAX_COUNT" + ] + }, + "platform/windows/os_windows.h": { + "classes": [ + "ComAutoreleaseRef", + "OS_Windows" + ], + "structs": [ + "ProcessInfo" + ], + "defines": [ + "OS_WINDOWS_H", + "WIN32_LEAN_AND_MEAN", + "WINDOWS_DEBUG_OUTPUT_ENABLED", + "ENABLE_VIRTUAL_TERMINAL_PROCESSING" + ] + }, + "platform/windows/tts_windows.h": { + "classes": [ + "TTS_Windows" + ], + "structs": [ + "UTData" + ], + "defines": [ + "TTS_WINDOWS_H", + "WIN32_LEAN_AND_MEAN" + ] + }, + "platform/windows/key_mapping_windows.h": { + "classes": [ + "KeyMappingWindows" + ], + "structs": [], + "defines": [ + "KEY_MAPPING_WINDOWS_H", + "WIN32_LEAN_AND_MEAN" + ] + }, + "platform/windows/run_icon_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/windows/lang_table.h": { + "classes": [], + "structs": [ + "_WinLocale" + ], + "defines": [ + "LANG_TABLE_H" + ] + }, + "platform/windows/logo.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/windows/wgl_detect_version.h": { + "classes": [], + "structs": [], + "defines": [ + "WGL_DETECT_VERSION_H" + ] + }, + "platform/windows/windows_terminal_logger.h": { + "classes": [ + "WindowsTerminalLogger" + ], + "structs": [], + "defines": [ + "WINDOWS_TERMINAL_LOGGER_H" + ] + }, + "platform/windows/export/export.h": { + "classes": [], + "structs": [], + "defines": [ + "WINDOWS_EXPORT_H" + ] + }, + "platform/windows/export/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/windows/export/export_plugin.h": { + "classes": [ + "EditorExportPlatformWindows" + ], + "structs": [ + "SSHCleanupCommand" + ], + "defines": [ + "WINDOWS_EXPORT_PLUGIN_H" + ] + }, + "platform/windows/export/run_icon_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/linuxbsd/fontconfig-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_FONTCONFIG", + "FcBlanksCreate", + "FcBlanksDestroy", + "FcBlanksAdd", + "FcBlanksIsMember", + "FcCacheDir", + "FcCacheCopySet", + "FcCacheSubdir", + "FcCacheNumSubdir", + "FcCacheNumFont", + "FcDirCacheUnlink", + "FcDirCacheValid", + "FcDirCacheClean", + "FcCacheCreateTagFile", + "FcConfigHome", + "FcConfigEnableHome", + "FcConfigFilename", + "FcConfigCreate", + "FcConfigReference", + "FcConfigDestroy", + "FcConfigSetCurrent", + "FcConfigGetCurrent", + "FcConfigUptoDate", + "FcConfigBuildFonts", + "FcConfigGetFontDirs", + "FcConfigGetConfigDirs", + "FcConfigGetConfigFiles", + "FcConfigGetCache", + "FcConfigGetBlanks", + "FcConfigGetCacheDirs", + "FcConfigGetRescanInterval", + "FcConfigSetRescanInterval", + "FcConfigGetFonts", + "FcConfigAppFontAddFile", + "FcConfigAppFontAddDir", + "FcConfigAppFontClear", + "FcConfigSubstituteWithPat", + "FcConfigSubstitute", + "FcConfigGetSysRoot", + "FcConfigSetSysRoot", + "FcCharSetCreate", + "FcCharSetNew", + "FcCharSetDestroy", + "FcCharSetAddChar", + "FcCharSetDelChar", + "FcCharSetCopy", + "FcCharSetEqual", + "FcCharSetIntersect", + "FcCharSetUnion", + "FcCharSetSubtract", + "FcCharSetMerge", + "FcCharSetHasChar", + "FcCharSetCount", + "FcCharSetIntersectCount", + "FcCharSetSubtractCount", + "FcCharSetIsSubset", + "FcCharSetCoverage", + "FcValuePrint", + "FcPatternPrint", + "FcFontSetPrint", + "FcGetDefaultLangs", + "FcDefaultSubstitute", + "FcFileIsDir", + "FcFileScan", + "FcDirScan", + "FcDirSave", + "FcDirCacheLoad", + "FcDirCacheRescan", + "FcDirCacheRead", + "FcDirCacheLoadFile", + "FcDirCacheUnload", + "FcFreeTypeQuery", + "FcFontSetCreate", + "FcFontSetDestroy", + "FcFontSetAdd", + "FcInitLoadConfig", + "FcInitLoadConfigAndFonts", + "FcInit", + "FcFini", + "FcGetVersion", + "FcInitReinitialize", + "FcInitBringUptoDate", + "FcGetLangs", + "FcLangNormalize", + "FcLangGetCharSet", + "FcLangSetCreate", + "FcLangSetDestroy", + "FcLangSetCopy", + "FcLangSetAdd", + "FcLangSetDel", + "FcLangSetHasLang", + "FcLangSetCompare", + "FcLangSetContains", + "FcLangSetEqual", + "FcLangSetHash", + "FcLangSetGetLangs", + "FcLangSetUnion", + "FcLangSetSubtract", + "FcObjectSetCreate", + "FcObjectSetAdd", + "FcObjectSetDestroy", + "FcObjectSetVaBuild", + "FcObjectSetBuild", + "FcFontSetList", + "FcFontList", + "FcAtomicCreate", + "FcAtomicLock", + "FcAtomicNewFile", + "FcAtomicOrigFile", + "FcAtomicReplaceOrig", + "FcAtomicDeleteNew", + "FcAtomicUnlock", + "FcAtomicDestroy", + "FcFontSetMatch", + "FcFontMatch", + "FcFontRenderPrepare", + "FcFontSetSort", + "FcFontSort", + "FcFontSetSortDestroy", + "FcMatrixCopy", + "FcMatrixEqual", + "FcMatrixMultiply", + "FcMatrixRotate", + "FcMatrixScale", + "FcMatrixShear", + "FcNameRegisterObjectTypes", + "FcNameUnregisterObjectTypes", + "FcNameGetObjectType", + "FcNameRegisterConstants", + "FcNameUnregisterConstants", + "FcNameGetConstant", + "FcNameConstant", + "FcNameParse", + "FcNameUnparse", + "FcPatternCreate", + "FcPatternDuplicate", + "FcPatternReference", + "FcPatternFilter", + "FcValueDestroy", + "FcValueEqual", + "FcValueSave", + "FcPatternDestroy", + "FcPatternEqual", + "FcPatternEqualSubset", + "FcPatternHash", + "FcPatternAdd", + "FcPatternAddWeak", + "FcPatternGet", + "FcPatternGetWithBinding", + "FcPatternDel", + "FcPatternRemove", + "FcPatternAddInteger", + "FcPatternAddDouble", + "FcPatternAddString", + "FcPatternAddMatrix", + "FcPatternAddCharSet", + "FcPatternAddBool", + "FcPatternAddLangSet", + "FcPatternAddRange", + "FcPatternGetInteger", + "FcPatternGetDouble", + "FcPatternGetString", + "FcPatternGetMatrix", + "FcPatternGetCharSet", + "FcPatternGetBool", + "FcPatternGetLangSet", + "FcPatternGetRange", + "FcPatternVaBuild", + "FcPatternBuild", + "FcPatternFormat", + "FcRangeCreateDouble", + "FcRangeCreateInteger", + "FcRangeDestroy", + "FcRangeCopy", + "FcRangeGetDouble", + "FcWeightFromOpenType", + "FcWeightToOpenType", + "FcStrCopy", + "FcStrCopyFilename", + "FcStrPlus", + "FcStrFree", + "FcStrDowncase", + "FcStrCmpIgnoreCase", + "FcStrCmp", + "FcStrStrIgnoreCase", + "FcStrStr", + "FcUtf8ToUcs4", + "FcUtf8Len", + "FcUcs4ToUtf8", + "FcUtf16ToUcs4", + "FcUtf16Len", + "FcStrDirname", + "FcStrBasename", + "FcStrSetCreate", + "FcStrSetMember", + "FcStrSetEqual", + "FcStrSetAdd", + "FcStrSetAddFilename", + "FcStrSetDel", + "FcStrSetDestroy", + "FcStrListCreate", + "FcStrListFirst", + "FcStrListNext", + "FcStrListDone", + "FcConfigParseAndLoad", + "FcConfigParseAndLoadFromMemory", + "FcBlanksCreate", + "FcBlanksDestroy", + "FcBlanksAdd", + "FcBlanksIsMember", + "FcCacheDir", + "FcCacheCopySet", + "FcCacheSubdir", + "FcCacheNumSubdir", + "FcCacheNumFont", + "FcDirCacheUnlink", + "FcDirCacheValid", + "FcDirCacheClean", + "FcCacheCreateTagFile", + "FcConfigHome", + "FcConfigEnableHome", + "FcConfigFilename", + "FcConfigCreate", + "FcConfigReference", + "FcConfigDestroy", + "FcConfigSetCurrent", + "FcConfigGetCurrent", + "FcConfigUptoDate", + "FcConfigBuildFonts", + "FcConfigGetFontDirs", + "FcConfigGetConfigDirs", + "FcConfigGetConfigFiles", + "FcConfigGetCache", + "FcConfigGetBlanks", + "FcConfigGetCacheDirs", + "FcConfigGetRescanInterval", + "FcConfigSetRescanInterval", + "FcConfigGetFonts", + "FcConfigAppFontAddFile", + "FcConfigAppFontAddDir", + "FcConfigAppFontClear", + "FcConfigSubstituteWithPat", + "FcConfigSubstitute", + "FcConfigGetSysRoot", + "FcConfigSetSysRoot", + "FcCharSetCreate", + "FcCharSetNew", + "FcCharSetDestroy", + "FcCharSetAddChar", + "FcCharSetDelChar", + "FcCharSetCopy", + "FcCharSetEqual", + "FcCharSetIntersect", + "FcCharSetUnion", + "FcCharSetSubtract", + "FcCharSetMerge", + "FcCharSetHasChar", + "FcCharSetCount", + "FcCharSetIntersectCount", + "FcCharSetSubtractCount", + "FcCharSetIsSubset", + "FcCharSetCoverage", + "FcValuePrint", + "FcPatternPrint", + "FcFontSetPrint", + "FcGetDefaultLangs", + "FcDefaultSubstitute", + "FcFileIsDir", + "FcFileScan", + "FcDirScan", + "FcDirSave", + "FcDirCacheLoad", + "FcDirCacheRescan", + "FcDirCacheRead", + "FcDirCacheLoadFile", + "FcDirCacheUnload", + "FcFreeTypeQuery", + "FcFontSetCreate", + "FcFontSetDestroy", + "FcFontSetAdd", + "FcInitLoadConfig", + "FcInitLoadConfigAndFonts", + "FcInit", + "FcFini", + "FcGetVersion", + "FcInitReinitialize", + "FcInitBringUptoDate", + "FcGetLangs", + "FcLangNormalize", + "FcLangGetCharSet", + "FcLangSetCreate", + "FcLangSetDestroy", + "FcLangSetCopy", + "FcLangSetAdd", + "FcLangSetDel", + "FcLangSetHasLang", + "FcLangSetCompare", + "FcLangSetContains", + "FcLangSetEqual", + "FcLangSetHash", + "FcLangSetGetLangs", + "FcLangSetUnion", + "FcLangSetSubtract", + "FcObjectSetCreate", + "FcObjectSetAdd", + "FcObjectSetDestroy", + "FcObjectSetVaBuild", + "FcObjectSetBuild", + "FcFontSetList", + "FcFontList", + "FcAtomicCreate", + "FcAtomicLock", + "FcAtomicNewFile", + "FcAtomicOrigFile", + "FcAtomicReplaceOrig", + "FcAtomicDeleteNew", + "FcAtomicUnlock", + "FcAtomicDestroy", + "FcFontSetMatch", + "FcFontMatch", + "FcFontRenderPrepare", + "FcFontSetSort", + "FcFontSort", + "FcFontSetSortDestroy", + "FcMatrixCopy", + "FcMatrixEqual", + "FcMatrixMultiply", + "FcMatrixRotate", + "FcMatrixScale", + "FcMatrixShear", + "FcNameRegisterObjectTypes", + "FcNameUnregisterObjectTypes", + "FcNameGetObjectType", + "FcNameRegisterConstants", + "FcNameUnregisterConstants", + "FcNameGetConstant", + "FcNameConstant", + "FcNameParse", + "FcNameUnparse", + "FcPatternCreate", + "FcPatternDuplicate", + "FcPatternReference", + "FcPatternFilter", + "FcValueDestroy", + "FcValueEqual", + "FcValueSave", + "FcPatternDestroy", + "FcPatternEqual", + "FcPatternEqualSubset", + "FcPatternHash", + "FcPatternAdd", + "FcPatternAddWeak", + "FcPatternGet", + "FcPatternGetWithBinding", + "FcPatternDel", + "FcPatternRemove", + "FcPatternAddInteger", + "FcPatternAddDouble", + "FcPatternAddString", + "FcPatternAddMatrix", + "FcPatternAddCharSet", + "FcPatternAddBool", + "FcPatternAddLangSet", + "FcPatternAddRange", + "FcPatternGetInteger", + "FcPatternGetDouble", + "FcPatternGetString", + "FcPatternGetMatrix", + "FcPatternGetCharSet", + "FcPatternGetBool", + "FcPatternGetLangSet", + "FcPatternGetRange", + "FcPatternVaBuild", + "FcPatternBuild", + "FcPatternFormat", + "FcRangeCreateDouble", + "FcRangeCreateInteger", + "FcRangeDestroy", + "FcRangeCopy", + "FcRangeGetDouble", + "FcWeightFromOpenType", + "FcWeightToOpenType", + "FcStrCopy", + "FcStrCopyFilename", + "FcStrPlus", + "FcStrFree", + "FcStrDowncase", + "FcStrCmpIgnoreCase", + "FcStrCmp", + "FcStrStrIgnoreCase", + "FcStrStr", + "FcUtf8ToUcs4", + "FcUtf8Len", + "FcUcs4ToUtf8", + "FcUtf16ToUcs4", + "FcUtf16Len", + "FcStrDirname", + "FcStrBasename", + "FcStrSetCreate", + "FcStrSetMember", + "FcStrSetEqual", + "FcStrSetAdd", + "FcStrSetAddFilename", + "FcStrSetDel", + "FcStrSetDestroy", + "FcStrListCreate", + "FcStrListFirst", + "FcStrListNext", + "FcStrListDone", + "FcConfigParseAndLoad", + "FcConfigParseAndLoadFromMemory" + ] + }, + "platform/linuxbsd/platform_gl.h": { + "classes": [], + "structs": [], + "defines": [ + "PLATFORM_GL_H", + "GL_API_ENABLED", + "GLES_API_ENABLED" + ] + }, + "platform/linuxbsd/crash_handler_linuxbsd.h": { + "classes": [ + "CrashHandler" + ], + "structs": [], + "defines": [ + "CRASH_HANDLER_LINUXBSD_H" + ] + }, + "platform/linuxbsd/platform_config.h": { + "classes": [], + "structs": [], + "defines": [ + "PTHREAD_NETBSD_SET_NAME", + "PTHREAD_BSD_SET_NAME" + ] + }, + "platform/linuxbsd/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/linuxbsd/freedesktop_portal_desktop.h": { + "classes": [ + "FreeDesktopPortalDesktop" + ], + "structs": [ + "FileDialogData" + ], + "defines": [ + "FREEDESKTOP_PORTAL_DESKTOP_H" + ] + }, + "platform/linuxbsd/freedesktop_screensaver.h": { + "classes": [ + "FreeDesktopScreenSaver" + ], + "structs": [], + "defines": [ + "FREEDESKTOP_SCREENSAVER_H" + ] + }, + "platform/linuxbsd/speechd-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_SPEECHD", + "SPDConnectionAddress__free", + "spd_get_default_address", + "spd_open", + "spd_open2", + "spd_close", + "spd_say", + "spd_sayf", + "spd_stop", + "spd_stop_all", + "spd_stop_uid", + "spd_cancel", + "spd_cancel_all", + "spd_cancel_uid", + "spd_pause", + "spd_pause_all", + "spd_pause_uid", + "spd_resume", + "spd_resume_all", + "spd_resume_uid", + "spd_key", + "spd_char", + "spd_wchar", + "spd_sound_icon", + "spd_set_voice_type", + "spd_set_voice_type_all", + "spd_set_voice_type_uid", + "spd_get_voice_type", + "spd_set_synthesis_voice", + "spd_set_synthesis_voice_all", + "spd_set_synthesis_voice_uid", + "spd_set_data_mode", + "spd_set_notification_on", + "spd_set_notification_off", + "spd_set_notification", + "spd_set_voice_rate", + "spd_set_voice_rate_all", + "spd_set_voice_rate_uid", + "spd_get_voice_rate", + "spd_set_voice_pitch", + "spd_set_voice_pitch_all", + "spd_set_voice_pitch_uid", + "spd_get_voice_pitch", + "spd_set_volume", + "spd_set_volume_all", + "spd_set_volume_uid", + "spd_get_volume", + "spd_set_punctuation", + "spd_set_punctuation_all", + "spd_set_punctuation_uid", + "spd_set_capital_letters", + "spd_set_capital_letters_all", + "spd_set_capital_letters_uid", + "spd_set_spelling", + "spd_set_spelling_all", + "spd_set_spelling_uid", + "spd_set_language", + "spd_set_language_all", + "spd_set_language_uid", + "spd_get_language", + "spd_set_output_module", + "spd_set_output_module_all", + "spd_set_output_module_uid", + "spd_get_message_list_fd", + "spd_list_modules", + "free_spd_modules", + "spd_get_output_module", + "spd_list_voices", + "spd_list_synthesis_voices", + "free_spd_voices", + "spd_execute_command_with_list_reply", + "spd_execute_command", + "spd_execute_command_with_reply", + "spd_execute_command_wo_mutex", + "spd_send_data", + "spd_send_data_wo_mutex", + "SPDConnectionAddress__free", + "spd_get_default_address", + "spd_open", + "spd_open2", + "spd_close", + "spd_say", + "spd_sayf", + "spd_stop", + "spd_stop_all", + "spd_stop_uid", + "spd_cancel", + "spd_cancel_all", + "spd_cancel_uid", + "spd_pause", + "spd_pause_all", + "spd_pause_uid", + "spd_resume", + "spd_resume_all", + "spd_resume_uid", + "spd_key", + "spd_char", + "spd_wchar", + "spd_sound_icon", + "spd_set_voice_type", + "spd_set_voice_type_all", + "spd_set_voice_type_uid", + "spd_get_voice_type", + "spd_set_synthesis_voice", + "spd_set_synthesis_voice_all", + "spd_set_synthesis_voice_uid", + "spd_set_data_mode", + "spd_set_notification_on", + "spd_set_notification_off", + "spd_set_notification", + "spd_set_voice_rate", + "spd_set_voice_rate_all", + "spd_set_voice_rate_uid", + "spd_get_voice_rate", + "spd_set_voice_pitch", + "spd_set_voice_pitch_all", + "spd_set_voice_pitch_uid", + "spd_get_voice_pitch", + "spd_set_volume", + "spd_set_volume_all", + "spd_set_volume_uid", + "spd_get_volume", + "spd_set_punctuation", + "spd_set_punctuation_all", + "spd_set_punctuation_uid", + "spd_set_capital_letters", + "spd_set_capital_letters_all", + "spd_set_capital_letters_uid", + "spd_set_spelling", + "spd_set_spelling_all", + "spd_set_spelling_uid", + "spd_set_language", + "spd_set_language_all", + "spd_set_language_uid", + "spd_get_language", + "spd_set_output_module", + "spd_set_output_module_all", + "spd_set_output_module_uid", + "spd_get_message_list_fd", + "spd_list_modules", + "free_spd_modules", + "spd_get_output_module", + "spd_list_voices", + "spd_list_synthesis_voices", + "free_spd_voices", + "spd_execute_command_with_list_reply", + "spd_execute_command", + "spd_execute_command_with_reply", + "spd_execute_command_wo_mutex", + "spd_send_data", + "spd_send_data_wo_mutex" + ] + }, + "platform/linuxbsd/tts_linux.h": { + "classes": [ + "TTS_Linux" + ], + "structs": [ + "VoiceInfo" + ], + "defines": [ + "TTS_LINUX_H" + ] + }, + "platform/linuxbsd/run_icon_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/linuxbsd/xkbcommon-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_XKBCOMMON", + "xkb_keysym_get_name", + "xkb_keysym_from_name", + "xkb_keysym_to_utf8", + "xkb_keysym_to_utf32", + "xkb_utf32_to_keysym", + "xkb_keysym_to_upper", + "xkb_keysym_to_lower", + "xkb_context_new", + "xkb_context_ref", + "xkb_context_unref", + "xkb_context_set_user_data", + "xkb_context_get_user_data", + "xkb_context_include_path_append", + "xkb_context_include_path_append_default", + "xkb_context_include_path_reset_defaults", + "xkb_context_include_path_clear", + "xkb_context_num_include_paths", + "xkb_context_include_path_get", + "xkb_context_set_log_level", + "xkb_context_get_log_level", + "xkb_context_set_log_verbosity", + "xkb_context_get_log_verbosity", + "xkb_context_set_log_fn", + "xkb_keymap_new_from_names", + "xkb_keymap_new_from_file", + "xkb_keymap_new_from_string", + "xkb_keymap_new_from_buffer", + "xkb_keymap_ref", + "xkb_keymap_unref", + "xkb_keymap_get_as_string", + "xkb_keymap_min_keycode", + "xkb_keymap_max_keycode", + "xkb_keymap_key_for_each", + "xkb_keymap_key_get_name", + "xkb_keymap_key_by_name", + "xkb_keymap_num_mods", + "xkb_keymap_mod_get_name", + "xkb_keymap_mod_get_index", + "xkb_keymap_num_layouts", + "xkb_keymap_layout_get_name", + "xkb_keymap_layout_get_index", + "xkb_keymap_num_leds", + "xkb_keymap_led_get_name", + "xkb_keymap_led_get_index", + "xkb_keymap_num_layouts_for_key", + "xkb_keymap_num_levels_for_key", + "xkb_keymap_key_get_mods_for_level", + "xkb_keymap_key_get_syms_by_level", + "xkb_keymap_key_repeats", + "xkb_state_new", + "xkb_state_ref", + "xkb_state_unref", + "xkb_state_get_keymap", + "xkb_state_update_key", + "xkb_state_update_mask", + "xkb_state_key_get_syms", + "xkb_state_key_get_utf8", + "xkb_state_key_get_utf32", + "xkb_state_key_get_one_sym", + "xkb_state_key_get_layout", + "xkb_state_key_get_level", + "xkb_state_serialize_mods", + "xkb_state_serialize_layout", + "xkb_state_mod_name_is_active", + "xkb_state_mod_names_are_active", + "xkb_state_mod_index_is_active", + "xkb_state_mod_indices_are_active", + "xkb_state_key_get_consumed_mods2", + "xkb_state_key_get_consumed_mods", + "xkb_state_mod_index_is_consumed2", + "xkb_state_mod_index_is_consumed", + "xkb_state_mod_mask_remove_consumed", + "xkb_state_layout_name_is_active", + "xkb_state_layout_index_is_active", + "xkb_state_led_name_is_active", + "xkb_state_led_index_is_active", + "xkb_compose_table_new_from_locale", + "xkb_compose_table_new_from_file", + "xkb_compose_table_new_from_buffer", + "xkb_compose_table_ref", + "xkb_compose_table_unref", + "xkb_compose_state_new", + "xkb_compose_state_ref", + "xkb_compose_state_unref", + "xkb_compose_state_get_compose_table", + "xkb_compose_state_feed", + "xkb_compose_state_reset", + "xkb_compose_state_get_status", + "xkb_compose_state_get_utf8", + "xkb_compose_state_get_one_sym", + "xkb_keysym_get_name", + "xkb_keysym_from_name", + "xkb_keysym_to_utf8", + "xkb_keysym_to_utf32", + "xkb_utf32_to_keysym", + "xkb_keysym_to_upper", + "xkb_keysym_to_lower", + "xkb_context_new", + "xkb_context_ref", + "xkb_context_unref", + "xkb_context_set_user_data", + "xkb_context_get_user_data", + "xkb_context_include_path_append", + "xkb_context_include_path_append_default", + "xkb_context_include_path_reset_defaults", + "xkb_context_include_path_clear", + "xkb_context_num_include_paths", + "xkb_context_include_path_get", + "xkb_context_set_log_level", + "xkb_context_get_log_level", + "xkb_context_set_log_verbosity", + "xkb_context_get_log_verbosity", + "xkb_context_set_log_fn", + "xkb_keymap_new_from_names", + "xkb_keymap_new_from_file", + "xkb_keymap_new_from_string", + "xkb_keymap_new_from_buffer", + "xkb_keymap_ref", + "xkb_keymap_unref", + "xkb_keymap_get_as_string", + "xkb_keymap_min_keycode", + "xkb_keymap_max_keycode", + "xkb_keymap_key_for_each", + "xkb_keymap_key_get_name", + "xkb_keymap_key_by_name", + "xkb_keymap_num_mods", + "xkb_keymap_mod_get_name", + "xkb_keymap_mod_get_index", + "xkb_keymap_num_layouts", + "xkb_keymap_layout_get_name", + "xkb_keymap_layout_get_index", + "xkb_keymap_num_leds", + "xkb_keymap_led_get_name", + "xkb_keymap_led_get_index", + "xkb_keymap_num_layouts_for_key", + "xkb_keymap_num_levels_for_key", + "xkb_keymap_key_get_mods_for_level", + "xkb_keymap_key_get_syms_by_level", + "xkb_keymap_key_repeats", + "xkb_state_new", + "xkb_state_ref", + "xkb_state_unref", + "xkb_state_get_keymap", + "xkb_state_update_key", + "xkb_state_update_mask", + "xkb_state_key_get_syms", + "xkb_state_key_get_utf8", + "xkb_state_key_get_utf32", + "xkb_state_key_get_one_sym", + "xkb_state_key_get_layout", + "xkb_state_key_get_level", + "xkb_state_serialize_mods", + "xkb_state_serialize_layout", + "xkb_state_mod_name_is_active", + "xkb_state_mod_names_are_active", + "xkb_state_mod_index_is_active", + "xkb_state_mod_indices_are_active", + "xkb_state_key_get_consumed_mods2", + "xkb_state_key_get_consumed_mods", + "xkb_state_mod_index_is_consumed2", + "xkb_state_mod_index_is_consumed", + "xkb_state_mod_mask_remove_consumed", + "xkb_state_layout_name_is_active", + "xkb_state_layout_index_is_active", + "xkb_state_led_name_is_active", + "xkb_state_led_index_is_active", + "xkb_compose_table_new_from_locale", + "xkb_compose_table_new_from_file", + "xkb_compose_table_new_from_buffer", + "xkb_compose_table_ref", + "xkb_compose_table_unref", + "xkb_compose_state_new", + "xkb_compose_state_ref", + "xkb_compose_state_unref", + "xkb_compose_state_get_compose_table", + "xkb_compose_state_feed", + "xkb_compose_state_reset", + "xkb_compose_state_get_status", + "xkb_compose_state_get_utf8", + "xkb_compose_state_get_one_sym" + ] + }, + "platform/linuxbsd/libudev-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_LIBUDEV", + "udev_ref", + "udev_unref", + "udev_new", + "udev_set_log_fn", + "udev_get_log_priority", + "udev_set_log_priority", + "udev_get_userdata", + "udev_set_userdata", + "udev_list_entry_get_next", + "udev_list_entry_get_by_name", + "udev_list_entry_get_name", + "udev_list_entry_get_value", + "udev_device_ref", + "udev_device_unref", + "udev_device_get_udev", + "udev_device_new_from_syspath", + "udev_device_new_from_devnum", + "udev_device_new_from_subsystem_sysname", + "udev_device_new_from_device_id", + "udev_device_new_from_environment", + "udev_device_get_parent", + "udev_device_get_parent_with_subsystem_devtype", + "udev_device_get_devpath", + "udev_device_get_subsystem", + "udev_device_get_devtype", + "udev_device_get_syspath", + "udev_device_get_sysname", + "udev_device_get_sysnum", + "udev_device_get_devnode", + "udev_device_get_is_initialized", + "udev_device_get_devlinks_list_entry", + "udev_device_get_properties_list_entry", + "udev_device_get_tags_list_entry", + "udev_device_get_sysattr_list_entry", + "udev_device_get_property_value", + "udev_device_get_driver", + "udev_device_get_devnum", + "udev_device_get_action", + "udev_device_get_seqnum", + "udev_device_get_usec_since_initialized", + "udev_device_get_sysattr_value", + "udev_device_set_sysattr_value", + "udev_device_has_tag", + "udev_monitor_ref", + "udev_monitor_unref", + "udev_monitor_get_udev", + "udev_monitor_new_from_netlink", + "udev_monitor_enable_receiving", + "udev_monitor_set_receive_buffer_size", + "udev_monitor_get_fd", + "udev_monitor_receive_device", + "udev_monitor_filter_add_match_subsystem_devtype", + "udev_monitor_filter_add_match_tag", + "udev_monitor_filter_update", + "udev_monitor_filter_remove", + "udev_enumerate_ref", + "udev_enumerate_unref", + "udev_enumerate_get_udev", + "udev_enumerate_new", + "udev_enumerate_add_match_subsystem", + "udev_enumerate_add_nomatch_subsystem", + "udev_enumerate_add_match_sysattr", + "udev_enumerate_add_nomatch_sysattr", + "udev_enumerate_add_match_property", + "udev_enumerate_add_match_sysname", + "udev_enumerate_add_match_tag", + "udev_enumerate_add_match_parent", + "udev_enumerate_add_match_is_initialized", + "udev_enumerate_add_syspath", + "udev_enumerate_scan_devices", + "udev_enumerate_scan_subsystems", + "udev_enumerate_get_list_entry", + "udev_queue_ref", + "udev_queue_unref", + "udev_queue_get_udev", + "udev_queue_new", + "udev_queue_get_kernel_seqnum", + "udev_queue_get_udev_seqnum", + "udev_queue_get_udev_is_active", + "udev_queue_get_queue_is_empty", + "udev_queue_get_seqnum_is_finished", + "udev_queue_get_seqnum_sequence_is_finished", + "udev_queue_get_fd", + "udev_queue_flush", + "udev_queue_get_queued_list_entry", + "udev_hwdb_new", + "udev_hwdb_ref", + "udev_hwdb_unref", + "udev_hwdb_get_properties_list_entry", + "udev_util_encode_string", + "udev_ref", + "udev_unref", + "udev_new", + "udev_set_log_fn", + "udev_get_log_priority", + "udev_set_log_priority", + "udev_get_userdata", + "udev_set_userdata", + "udev_list_entry_get_next", + "udev_list_entry_get_by_name", + "udev_list_entry_get_name", + "udev_list_entry_get_value", + "udev_device_ref", + "udev_device_unref", + "udev_device_get_udev", + "udev_device_new_from_syspath", + "udev_device_new_from_devnum", + "udev_device_new_from_subsystem_sysname", + "udev_device_new_from_device_id", + "udev_device_new_from_environment", + "udev_device_get_parent", + "udev_device_get_parent_with_subsystem_devtype", + "udev_device_get_devpath", + "udev_device_get_subsystem", + "udev_device_get_devtype", + "udev_device_get_syspath", + "udev_device_get_sysname", + "udev_device_get_sysnum", + "udev_device_get_devnode", + "udev_device_get_is_initialized", + "udev_device_get_devlinks_list_entry", + "udev_device_get_properties_list_entry", + "udev_device_get_tags_list_entry", + "udev_device_get_sysattr_list_entry", + "udev_device_get_property_value", + "udev_device_get_driver", + "udev_device_get_devnum", + "udev_device_get_action", + "udev_device_get_seqnum", + "udev_device_get_usec_since_initialized", + "udev_device_get_sysattr_value", + "udev_device_set_sysattr_value", + "udev_device_has_tag", + "udev_monitor_ref", + "udev_monitor_unref", + "udev_monitor_get_udev", + "udev_monitor_new_from_netlink", + "udev_monitor_enable_receiving", + "udev_monitor_set_receive_buffer_size", + "udev_monitor_get_fd", + "udev_monitor_receive_device", + "udev_monitor_filter_add_match_subsystem_devtype", + "udev_monitor_filter_add_match_tag", + "udev_monitor_filter_update", + "udev_monitor_filter_remove", + "udev_enumerate_ref", + "udev_enumerate_unref", + "udev_enumerate_get_udev", + "udev_enumerate_new", + "udev_enumerate_add_match_subsystem", + "udev_enumerate_add_nomatch_subsystem", + "udev_enumerate_add_match_sysattr", + "udev_enumerate_add_nomatch_sysattr", + "udev_enumerate_add_match_property", + "udev_enumerate_add_match_sysname", + "udev_enumerate_add_match_tag", + "udev_enumerate_add_match_parent", + "udev_enumerate_add_match_is_initialized", + "udev_enumerate_add_syspath", + "udev_enumerate_scan_devices", + "udev_enumerate_scan_subsystems", + "udev_enumerate_get_list_entry", + "udev_queue_ref", + "udev_queue_unref", + "udev_queue_get_udev", + "udev_queue_new", + "udev_queue_get_kernel_seqnum", + "udev_queue_get_udev_seqnum", + "udev_queue_get_udev_is_active", + "udev_queue_get_queue_is_empty", + "udev_queue_get_seqnum_is_finished", + "udev_queue_get_seqnum_sequence_is_finished", + "udev_queue_get_fd", + "udev_queue_flush", + "udev_queue_get_queued_list_entry", + "udev_hwdb_new", + "udev_hwdb_ref", + "udev_hwdb_unref", + "udev_hwdb_get_properties_list_entry", + "udev_util_encode_string" + ] + }, + "platform/linuxbsd/joypad_linux.h": { + "classes": [ + "JoypadLinux" + ], + "structs": [ + "JoypadEvent", + "Joypad" + ], + "defines": [ + "JOYPAD_LINUX_H" + ] + }, + "platform/linuxbsd/dbus-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_DBUS", + "dbus_error_init", + "dbus_error_free", + "dbus_set_error", + "dbus_set_error_const", + "dbus_move_error", + "dbus_error_has_name", + "dbus_error_is_set", + "dbus_parse_address", + "dbus_address_entry_get_value", + "dbus_address_entry_get_method", + "dbus_address_entries_free", + "dbus_address_escape_value", + "dbus_address_unescape_value", + "dbus_malloc", + "dbus_malloc0", + "dbus_realloc", + "dbus_free", + "dbus_free_string_array", + "dbus_shutdown", + "dbus_message_new", + "dbus_message_new_method_call", + "dbus_message_new_method_return", + "dbus_message_new_signal", + "dbus_message_new_error", + "dbus_message_new_error_printf", + "dbus_message_copy", + "dbus_message_ref", + "dbus_message_unref", + "dbus_message_get_type", + "dbus_message_set_path", + "dbus_message_get_path", + "dbus_message_has_path", + "dbus_message_set_interface", + "dbus_message_get_interface", + "dbus_message_has_interface", + "dbus_message_set_member", + "dbus_message_get_member", + "dbus_message_has_member", + "dbus_message_set_error_name", + "dbus_message_get_error_name", + "dbus_message_set_destination", + "dbus_message_get_destination", + "dbus_message_set_sender", + "dbus_message_get_sender", + "dbus_message_get_signature", + "dbus_message_set_no_reply", + "dbus_message_get_no_reply", + "dbus_message_is_method_call", + "dbus_message_is_signal", + "dbus_message_is_error", + "dbus_message_has_destination", + "dbus_message_has_sender", + "dbus_message_has_signature", + "dbus_message_get_serial", + "dbus_message_set_serial", + "dbus_message_set_reply_serial", + "dbus_message_get_reply_serial", + "dbus_message_set_auto_start", + "dbus_message_get_auto_start", + "dbus_message_get_path_decomposed", + "dbus_message_append_args", + "dbus_message_append_args_valist", + "dbus_message_get_args", + "dbus_message_get_args_valist", + "dbus_message_contains_unix_fds", + "dbus_message_iter_init_closed", + "dbus_message_iter_init", + "dbus_message_iter_has_next", + "dbus_message_iter_next", + "dbus_message_iter_get_signature", + "dbus_message_iter_get_arg_type", + "dbus_message_iter_get_element_type", + "dbus_message_iter_recurse", + "dbus_message_iter_get_basic", + "dbus_message_iter_get_element_count", + "dbus_message_iter_get_array_len", + "dbus_message_iter_get_fixed_array", + "dbus_message_iter_init_append", + "dbus_message_iter_append_basic", + "dbus_message_iter_append_fixed_array", + "dbus_message_iter_open_container", + "dbus_message_iter_close_container", + "dbus_message_iter_abandon_container", + "dbus_message_iter_abandon_container_if_open", + "dbus_message_lock", + "dbus_set_error_from_message", + "dbus_message_allocate_data_slot", + "dbus_message_free_data_slot", + "dbus_message_set_data", + "dbus_message_get_data", + "dbus_message_type_from_string", + "dbus_message_type_to_string", + "dbus_message_marshal", + "dbus_message_demarshal", + "dbus_message_demarshal_bytes_needed", + "dbus_message_set_allow_interactive_authorization", + "dbus_message_get_allow_interactive_authorization", + "dbus_connection_open", + "dbus_connection_open_private", + "dbus_connection_ref", + "dbus_connection_unref", + "dbus_connection_close", + "dbus_connection_get_is_connected", + "dbus_connection_get_is_authenticated", + "dbus_connection_get_is_anonymous", + "dbus_connection_get_server_id", + "dbus_connection_can_send_type", + "dbus_connection_set_exit_on_disconnect", + "dbus_connection_flush", + "dbus_connection_read_write_dispatch", + "dbus_connection_read_write", + "dbus_connection_borrow_message", + "dbus_connection_return_message", + "dbus_connection_steal_borrowed_message", + "dbus_connection_pop_message", + "dbus_connection_get_dispatch_status", + "dbus_connection_dispatch", + "dbus_connection_has_messages_to_send", + "dbus_connection_send", + "dbus_connection_send_with_reply", + "dbus_connection_send_with_reply_and_block", + "dbus_connection_set_watch_functions", + "dbus_connection_set_timeout_functions", + "dbus_connection_set_wakeup_main_function", + "dbus_connection_set_dispatch_status_function", + "dbus_connection_get_unix_user", + "dbus_connection_get_unix_process_id", + "dbus_connection_get_adt_audit_session_data", + "dbus_connection_set_unix_user_function", + "dbus_connection_get_windows_user", + "dbus_connection_set_windows_user_function", + "dbus_connection_set_allow_anonymous", + "dbus_connection_set_route_peer_messages", + "dbus_connection_add_filter", + "dbus_connection_remove_filter", + "dbus_connection_allocate_data_slot", + "dbus_connection_free_data_slot", + "dbus_connection_set_data", + "dbus_connection_get_data", + "dbus_connection_set_change_sigpipe", + "dbus_connection_set_max_message_size", + "dbus_connection_get_max_message_size", + "dbus_connection_set_max_received_size", + "dbus_connection_get_max_received_size", + "dbus_connection_set_max_message_unix_fds", + "dbus_connection_get_max_message_unix_fds", + "dbus_connection_set_max_received_unix_fds", + "dbus_connection_get_max_received_unix_fds", + "dbus_connection_get_outgoing_size", + "dbus_connection_get_outgoing_unix_fds", + "dbus_connection_preallocate_send", + "dbus_connection_free_preallocated_send", + "dbus_connection_send_preallocated", + "dbus_connection_try_register_object_path", + "dbus_connection_register_object_path", + "dbus_connection_try_register_fallback", + "dbus_connection_register_fallback", + "dbus_connection_unregister_object_path", + "dbus_connection_get_object_path_data", + "dbus_connection_list_registered", + "dbus_connection_get_unix_fd", + "dbus_connection_get_socket", + "dbus_watch_get_fd", + "dbus_watch_get_unix_fd", + "dbus_watch_get_socket", + "dbus_watch_get_flags", + "dbus_watch_get_data", + "dbus_watch_set_data", + "dbus_watch_handle", + "dbus_watch_get_enabled", + "dbus_timeout_get_interval", + "dbus_timeout_get_data", + "dbus_timeout_set_data", + "dbus_timeout_handle", + "dbus_timeout_get_enabled", + "dbus_bus_get", + "dbus_bus_get_private", + "dbus_bus_register", + "dbus_bus_set_unique_name", + "dbus_bus_get_unique_name", + "dbus_bus_get_unix_user", + "dbus_bus_get_id", + "dbus_bus_request_name", + "dbus_bus_release_name", + "dbus_bus_name_has_owner", + "dbus_bus_start_service_by_name", + "dbus_bus_add_match", + "dbus_bus_remove_match", + "dbus_get_local_machine_id", + "dbus_get_version", + "dbus_setenv", + "dbus_try_get_local_machine_id", + "dbus_pending_call_ref", + "dbus_pending_call_unref", + "dbus_pending_call_set_notify", + "dbus_pending_call_cancel", + "dbus_pending_call_get_completed", + "dbus_pending_call_steal_reply", + "dbus_pending_call_block", + "dbus_pending_call_allocate_data_slot", + "dbus_pending_call_free_data_slot", + "dbus_pending_call_set_data", + "dbus_pending_call_get_data", + "dbus_server_listen", + "dbus_server_ref", + "dbus_server_unref", + "dbus_server_disconnect", + "dbus_server_get_is_connected", + "dbus_server_get_address", + "dbus_server_get_id", + "dbus_server_set_new_connection_function", + "dbus_server_set_watch_functions", + "dbus_server_set_timeout_functions", + "dbus_server_set_auth_mechanisms", + "dbus_server_allocate_data_slot", + "dbus_server_free_data_slot", + "dbus_server_set_data", + "dbus_server_get_data", + "dbus_signature_iter_init", + "dbus_signature_iter_get_current_type", + "dbus_signature_iter_get_signature", + "dbus_signature_iter_get_element_type", + "dbus_signature_iter_next", + "dbus_signature_iter_recurse", + "dbus_signature_validate", + "dbus_signature_validate_single", + "dbus_type_is_valid", + "dbus_type_is_basic", + "dbus_type_is_container", + "dbus_type_is_fixed", + "dbus_validate_path", + "dbus_validate_interface", + "dbus_validate_member", + "dbus_validate_error_name", + "dbus_validate_bus_name", + "dbus_validate_utf8", + "dbus_threads_init", + "dbus_threads_init_default", + "dbus_error_init", + "dbus_error_free", + "dbus_set_error", + "dbus_set_error_const", + "dbus_move_error", + "dbus_error_has_name", + "dbus_error_is_set", + "dbus_parse_address", + "dbus_address_entry_get_value", + "dbus_address_entry_get_method", + "dbus_address_entries_free", + "dbus_address_escape_value", + "dbus_address_unescape_value", + "dbus_malloc", + "dbus_malloc0", + "dbus_realloc", + "dbus_free", + "dbus_free_string_array", + "dbus_shutdown", + "dbus_message_new", + "dbus_message_new_method_call", + "dbus_message_new_method_return", + "dbus_message_new_signal", + "dbus_message_new_error", + "dbus_message_new_error_printf", + "dbus_message_copy", + "dbus_message_ref", + "dbus_message_unref", + "dbus_message_get_type", + "dbus_message_set_path", + "dbus_message_get_path", + "dbus_message_has_path", + "dbus_message_set_interface", + "dbus_message_get_interface", + "dbus_message_has_interface", + "dbus_message_set_member", + "dbus_message_get_member", + "dbus_message_has_member", + "dbus_message_set_error_name", + "dbus_message_get_error_name", + "dbus_message_set_destination", + "dbus_message_get_destination", + "dbus_message_set_sender", + "dbus_message_get_sender", + "dbus_message_get_signature", + "dbus_message_set_no_reply", + "dbus_message_get_no_reply", + "dbus_message_is_method_call", + "dbus_message_is_signal", + "dbus_message_is_error", + "dbus_message_has_destination", + "dbus_message_has_sender", + "dbus_message_has_signature", + "dbus_message_get_serial", + "dbus_message_set_serial", + "dbus_message_set_reply_serial", + "dbus_message_get_reply_serial", + "dbus_message_set_auto_start", + "dbus_message_get_auto_start", + "dbus_message_get_path_decomposed", + "dbus_message_append_args", + "dbus_message_append_args_valist", + "dbus_message_get_args", + "dbus_message_get_args_valist", + "dbus_message_contains_unix_fds", + "dbus_message_iter_init_closed", + "dbus_message_iter_init", + "dbus_message_iter_has_next", + "dbus_message_iter_next", + "dbus_message_iter_get_signature", + "dbus_message_iter_get_arg_type", + "dbus_message_iter_get_element_type", + "dbus_message_iter_recurse", + "dbus_message_iter_get_basic", + "dbus_message_iter_get_element_count", + "dbus_message_iter_get_array_len", + "dbus_message_iter_get_fixed_array", + "dbus_message_iter_init_append", + "dbus_message_iter_append_basic", + "dbus_message_iter_append_fixed_array", + "dbus_message_iter_open_container", + "dbus_message_iter_close_container", + "dbus_message_iter_abandon_container", + "dbus_message_iter_abandon_container_if_open", + "dbus_message_lock", + "dbus_set_error_from_message", + "dbus_message_allocate_data_slot", + "dbus_message_free_data_slot", + "dbus_message_set_data", + "dbus_message_get_data", + "dbus_message_type_from_string", + "dbus_message_type_to_string", + "dbus_message_marshal", + "dbus_message_demarshal", + "dbus_message_demarshal_bytes_needed", + "dbus_message_set_allow_interactive_authorization", + "dbus_message_get_allow_interactive_authorization", + "dbus_connection_open", + "dbus_connection_open_private", + "dbus_connection_ref", + "dbus_connection_unref", + "dbus_connection_close", + "dbus_connection_get_is_connected", + "dbus_connection_get_is_authenticated", + "dbus_connection_get_is_anonymous", + "dbus_connection_get_server_id", + "dbus_connection_can_send_type", + "dbus_connection_set_exit_on_disconnect", + "dbus_connection_flush", + "dbus_connection_read_write_dispatch", + "dbus_connection_read_write", + "dbus_connection_borrow_message", + "dbus_connection_return_message", + "dbus_connection_steal_borrowed_message", + "dbus_connection_pop_message", + "dbus_connection_get_dispatch_status", + "dbus_connection_dispatch", + "dbus_connection_has_messages_to_send", + "dbus_connection_send", + "dbus_connection_send_with_reply", + "dbus_connection_send_with_reply_and_block", + "dbus_connection_set_watch_functions", + "dbus_connection_set_timeout_functions", + "dbus_connection_set_wakeup_main_function", + "dbus_connection_set_dispatch_status_function", + "dbus_connection_get_unix_user", + "dbus_connection_get_unix_process_id", + "dbus_connection_get_adt_audit_session_data", + "dbus_connection_set_unix_user_function", + "dbus_connection_get_windows_user", + "dbus_connection_set_windows_user_function", + "dbus_connection_set_allow_anonymous", + "dbus_connection_set_route_peer_messages", + "dbus_connection_add_filter", + "dbus_connection_remove_filter", + "dbus_connection_allocate_data_slot", + "dbus_connection_free_data_slot", + "dbus_connection_set_data", + "dbus_connection_get_data", + "dbus_connection_set_change_sigpipe", + "dbus_connection_set_max_message_size", + "dbus_connection_get_max_message_size", + "dbus_connection_set_max_received_size", + "dbus_connection_get_max_received_size", + "dbus_connection_set_max_message_unix_fds", + "dbus_connection_get_max_message_unix_fds", + "dbus_connection_set_max_received_unix_fds", + "dbus_connection_get_max_received_unix_fds", + "dbus_connection_get_outgoing_size", + "dbus_connection_get_outgoing_unix_fds", + "dbus_connection_preallocate_send", + "dbus_connection_free_preallocated_send", + "dbus_connection_send_preallocated", + "dbus_connection_try_register_object_path", + "dbus_connection_register_object_path", + "dbus_connection_try_register_fallback", + "dbus_connection_register_fallback", + "dbus_connection_unregister_object_path", + "dbus_connection_get_object_path_data", + "dbus_connection_list_registered", + "dbus_connection_get_unix_fd", + "dbus_connection_get_socket", + "dbus_watch_get_fd", + "dbus_watch_get_unix_fd", + "dbus_watch_get_socket", + "dbus_watch_get_flags", + "dbus_watch_get_data", + "dbus_watch_set_data", + "dbus_watch_handle", + "dbus_watch_get_enabled", + "dbus_timeout_get_interval", + "dbus_timeout_get_data", + "dbus_timeout_set_data", + "dbus_timeout_handle", + "dbus_timeout_get_enabled", + "dbus_bus_get", + "dbus_bus_get_private", + "dbus_bus_register", + "dbus_bus_set_unique_name", + "dbus_bus_get_unique_name", + "dbus_bus_get_unix_user", + "dbus_bus_get_id", + "dbus_bus_request_name", + "dbus_bus_release_name", + "dbus_bus_name_has_owner", + "dbus_bus_start_service_by_name", + "dbus_bus_add_match", + "dbus_bus_remove_match", + "dbus_get_local_machine_id", + "dbus_get_version", + "dbus_setenv", + "dbus_try_get_local_machine_id", + "dbus_pending_call_ref", + "dbus_pending_call_unref", + "dbus_pending_call_set_notify", + "dbus_pending_call_cancel", + "dbus_pending_call_get_completed", + "dbus_pending_call_steal_reply", + "dbus_pending_call_block", + "dbus_pending_call_allocate_data_slot", + "dbus_pending_call_free_data_slot", + "dbus_pending_call_set_data", + "dbus_pending_call_get_data", + "dbus_server_listen", + "dbus_server_ref", + "dbus_server_unref", + "dbus_server_disconnect", + "dbus_server_get_is_connected", + "dbus_server_get_address", + "dbus_server_get_id", + "dbus_server_set_new_connection_function", + "dbus_server_set_watch_functions", + "dbus_server_set_timeout_functions", + "dbus_server_set_auth_mechanisms", + "dbus_server_allocate_data_slot", + "dbus_server_free_data_slot", + "dbus_server_set_data", + "dbus_server_get_data", + "dbus_signature_iter_init", + "dbus_signature_iter_get_current_type", + "dbus_signature_iter_get_signature", + "dbus_signature_iter_get_element_type", + "dbus_signature_iter_next", + "dbus_signature_iter_recurse", + "dbus_signature_validate", + "dbus_signature_validate_single", + "dbus_type_is_valid", + "dbus_type_is_basic", + "dbus_type_is_container", + "dbus_type_is_fixed", + "dbus_validate_path", + "dbus_validate_interface", + "dbus_validate_member", + "dbus_validate_error_name", + "dbus_validate_bus_name", + "dbus_validate_utf8", + "dbus_threads_init", + "dbus_threads_init_default" + ] + }, + "platform/linuxbsd/logo.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/linuxbsd/os_linuxbsd.h": { + "classes": [ + "OS_LinuxBSD" + ], + "structs": [], + "defines": [ + "OS_LINUXBSD_H" + ] + }, + "platform/linuxbsd/wayland/wayland_thread.h": { + "classes": [ + "WaylandThread", + "Message", + "WindowRectMessage", + "WindowEventMessage", + "InputEventMessage", + "DropFilesEventMessage", + "Gesture", + "PointerConstraint" + ], + "structs": [ + "RegistryState", + "WindowState", + "ScreenData", + "ScreenState", + "PointerData", + "TabletToolData", + "TabletToolState", + "OfferState", + "SeatState", + "CustomCursor", + "ThreadData" + ], + "defines": [ + "WAYLAND_THREAD_H", + "pointer" + ] + }, + "platform/linuxbsd/wayland/rendering_context_driver_vulkan_wayland.h": { + "classes": [ + "RenderingContextDriverVulkanWayland" + ], + "structs": [ + "WindowPlatformData" + ], + "defines": [ + "RENDERING_CONTEXT_DRIVER_VULKAN_WAYLAND_H" + ] + }, + "platform/linuxbsd/wayland/display_server_wayland.h": { + "classes": [ + "DisplayServerWayland" + ], + "structs": [ + "WindowData", + "CustomCursor" + ], + "defines": [ + "DISPLAY_SERVER_WAYLAND_H" + ] + }, + "platform/linuxbsd/wayland/egl_manager_wayland.h": { + "classes": [ + "EGLManagerWayland" + ], + "structs": [], + "defines": [ + "EGL_MANAGER_WAYLAND_H" + ] + }, + "platform/linuxbsd/wayland/key_mapping_xkb.h": { + "classes": [ + "KeyMappingXKB" + ], + "structs": [ + "HashMapHasherKeys" + ], + "defines": [ + "KEY_MAPPING_XKB_H" + ] + }, + "platform/linuxbsd/wayland/detect_prime_egl.h": { + "classes": [ + "DetectPrimeEGL" + ], + "structs": [ + "Vendor" + ], + "defines": [ + "DETECT_PRIME_EGL_H" + ] + }, + "platform/linuxbsd/wayland/dynwrappers/libdecor-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_LIBDECOR", + "libdecor_unref", + "libdecor_new", + "libdecor_get_fd", + "libdecor_dispatch", + "libdecor_decorate", + "libdecor_frame_ref", + "libdecor_frame_unref", + "libdecor_frame_set_visibility", + "libdecor_frame_is_visible", + "libdecor_frame_set_parent", + "libdecor_frame_set_title", + "libdecor_frame_get_title", + "libdecor_frame_set_app_id", + "libdecor_frame_set_capabilities", + "libdecor_frame_unset_capabilities", + "libdecor_frame_has_capability", + "libdecor_frame_show_window_menu", + "libdecor_frame_popup_grab", + "libdecor_frame_popup_ungrab", + "libdecor_frame_translate_coordinate", + "libdecor_frame_set_min_content_size", + "libdecor_frame_set_max_content_size", + "libdecor_frame_resize", + "libdecor_frame_move", + "libdecor_frame_commit", + "libdecor_frame_set_minimized", + "libdecor_frame_set_maximized", + "libdecor_frame_unset_maximized", + "libdecor_frame_set_fullscreen", + "libdecor_frame_unset_fullscreen", + "libdecor_frame_is_floating", + "libdecor_frame_close", + "libdecor_frame_map", + "libdecor_frame_get_xdg_surface", + "libdecor_frame_get_xdg_toplevel", + "libdecor_state_new", + "libdecor_state_free", + "libdecor_configuration_get_content_size", + "libdecor_configuration_get_window_state", + "libdecor_unref", + "libdecor_new", + "libdecor_get_fd", + "libdecor_dispatch", + "libdecor_decorate", + "libdecor_frame_ref", + "libdecor_frame_unref", + "libdecor_frame_set_visibility", + "libdecor_frame_is_visible", + "libdecor_frame_set_parent", + "libdecor_frame_set_title", + "libdecor_frame_get_title", + "libdecor_frame_set_app_id", + "libdecor_frame_set_capabilities", + "libdecor_frame_unset_capabilities", + "libdecor_frame_has_capability", + "libdecor_frame_show_window_menu", + "libdecor_frame_popup_grab", + "libdecor_frame_popup_ungrab", + "libdecor_frame_translate_coordinate", + "libdecor_frame_set_min_content_size", + "libdecor_frame_set_max_content_size", + "libdecor_frame_resize", + "libdecor_frame_move", + "libdecor_frame_commit", + "libdecor_frame_set_minimized", + "libdecor_frame_set_maximized", + "libdecor_frame_unset_maximized", + "libdecor_frame_set_fullscreen", + "libdecor_frame_unset_fullscreen", + "libdecor_frame_is_floating", + "libdecor_frame_close", + "libdecor_frame_map", + "libdecor_frame_get_xdg_surface", + "libdecor_frame_get_xdg_toplevel", + "libdecor_state_new", + "libdecor_state_free", + "libdecor_configuration_get_content_size", + "libdecor_configuration_get_window_state" + ] + }, + "platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_WAYLAND_CURSOR", + "wl_cursor_theme_load", + "wl_cursor_theme_destroy", + "wl_cursor_theme_get_cursor", + "wl_cursor_image_get_buffer", + "wl_cursor_frame", + "wl_cursor_frame_and_duration", + "wl_cursor_theme_load", + "wl_cursor_theme_destroy", + "wl_cursor_theme_get_cursor", + "wl_cursor_image_get_buffer", + "wl_cursor_frame", + "wl_cursor_frame_and_duration" + ] + }, + "platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_WAYLAND_EGL", + "wl_egl_window_create", + "wl_egl_window_destroy", + "wl_egl_window_resize", + "wl_egl_window_get_attached_size", + "wl_egl_window_create", + "wl_egl_window_destroy", + "wl_egl_window_resize", + "wl_egl_window_get_attached_size" + ] + }, + "platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_WAYLAND_CLIENT", + "wl_list_init", + "wl_list_insert", + "wl_list_remove", + "wl_list_length", + "wl_list_empty", + "wl_list_insert_list", + "wl_array_init", + "wl_array_release", + "wl_array_add", + "wl_array_copy", + "wl_event_queue_destroy", + "wl_proxy_marshal_flags", + "wl_proxy_marshal_array_flags", + "wl_proxy_marshal", + "wl_proxy_marshal_array", + "wl_proxy_create", + "wl_proxy_create_wrapper", + "wl_proxy_wrapper_destroy", + "wl_proxy_marshal_constructor", + "wl_proxy_marshal_constructor_versioned", + "wl_proxy_marshal_array_constructor", + "wl_proxy_marshal_array_constructor_versioned", + "wl_proxy_destroy", + "wl_proxy_add_listener", + "wl_proxy_get_listener", + "wl_proxy_add_dispatcher", + "wl_proxy_set_user_data", + "wl_proxy_get_user_data", + "wl_proxy_get_version", + "wl_proxy_get_id", + "wl_proxy_set_tag", + "wl_proxy_get_tag", + "wl_proxy_get_class", + "wl_proxy_set_queue", + "wl_display_connect", + "wl_display_connect_to_fd", + "wl_display_disconnect", + "wl_display_get_fd", + "wl_display_dispatch", + "wl_display_dispatch_queue", + "wl_display_dispatch_queue_pending", + "wl_display_dispatch_pending", + "wl_display_get_error", + "wl_display_get_protocol_error", + "wl_display_flush", + "wl_display_roundtrip_queue", + "wl_display_roundtrip", + "wl_display_create_queue", + "wl_display_prepare_read_queue", + "wl_display_prepare_read", + "wl_display_cancel_read", + "wl_display_read_events", + "wl_log_set_handler_client", + "wl_list_init", + "wl_list_insert", + "wl_list_remove", + "wl_list_length", + "wl_list_empty", + "wl_list_insert_list", + "wl_array_init", + "wl_array_release", + "wl_array_add", + "wl_array_copy", + "wl_event_queue_destroy", + "wl_proxy_marshal_flags", + "wl_proxy_marshal_array_flags", + "wl_proxy_marshal", + "wl_proxy_marshal_array", + "wl_proxy_create", + "wl_proxy_create_wrapper", + "wl_proxy_wrapper_destroy", + "wl_proxy_marshal_constructor", + "wl_proxy_marshal_constructor_versioned", + "wl_proxy_marshal_array_constructor", + "wl_proxy_marshal_array_constructor_versioned", + "wl_proxy_destroy", + "wl_proxy_add_listener", + "wl_proxy_get_listener", + "wl_proxy_add_dispatcher", + "wl_proxy_set_user_data", + "wl_proxy_get_user_data", + "wl_proxy_get_version", + "wl_proxy_get_id", + "wl_proxy_set_tag", + "wl_proxy_get_tag", + "wl_proxy_get_class", + "wl_proxy_set_queue", + "wl_display_connect", + "wl_display_connect_to_fd", + "wl_display_disconnect", + "wl_display_get_fd", + "wl_display_dispatch", + "wl_display_dispatch_queue", + "wl_display_dispatch_queue_pending", + "wl_display_dispatch_pending", + "wl_display_get_error", + "wl_display_get_protocol_error", + "wl_display_flush", + "wl_display_roundtrip_queue", + "wl_display_roundtrip", + "wl_display_create_queue", + "wl_display_prepare_read_queue", + "wl_display_prepare_read", + "wl_display_cancel_read", + "wl_display_read_events", + "wl_log_set_handler_client" + ] + }, + "platform/linuxbsd/x11/rendering_context_driver_vulkan_x11.h": { + "classes": [ + "RenderingContextDriverVulkanX11" + ], + "structs": [ + "WindowPlatformData" + ], + "defines": [ + "RENDERING_CONTEXT_DRIVER_VULKAN_X11_H" + ] + }, + "platform/linuxbsd/x11/key_mapping_x11.h": { + "classes": [ + "KeyMappingX11" + ], + "structs": [ + "HashMapHasherKeys" + ], + "defines": [ + "KEY_MAPPING_X11_H", + "XK_MISCELLANY", + "XK_LATIN1", + "XK_XKB_KEYS" + ] + }, + "platform/linuxbsd/x11/detect_prime_x11.h": { + "classes": [], + "structs": [], + "defines": [ + "DETECT_PRIME_X11_H" + ] + }, + "platform/linuxbsd/x11/gl_manager_x11_egl.h": { + "classes": [ + "GLManagerEGL_X11" + ], + "structs": [], + "defines": [ + "GL_MANAGER_X11_EGL_H" + ] + }, + "platform/linuxbsd/x11/gl_manager_x11.h": { + "classes": [ + "GLManager_X11" + ], + "structs": [ + "GLWindow", + "GLDisplay", + "XWinDisp" + ], + "defines": [ + "GL_MANAGER_X11_H" + ] + }, + "platform/linuxbsd/x11/display_server_x11.h": { + "classes": [ + "DisplayServerX11" + ], + "structs": [ + "_xrr_monitor_info", + "WindowData", + "Property" + ], + "defines": [ + "DISPLAY_SERVER_X11_H" + ] + }, + "platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_XRENDER", + "XRenderQueryExtension", + "XRenderQueryVersion", + "XRenderQueryFormats", + "XRenderQuerySubpixelOrder", + "XRenderSetSubpixelOrder", + "XRenderFindVisualFormat", + "XRenderFindFormat", + "XRenderFindStandardFormat", + "XRenderQueryPictIndexValues", + "XRenderCreatePicture", + "XRenderChangePicture", + "XRenderSetPictureClipRectangles", + "XRenderSetPictureClipRegion", + "XRenderSetPictureTransform", + "XRenderFreePicture", + "XRenderComposite", + "XRenderCreateGlyphSet", + "XRenderReferenceGlyphSet", + "XRenderFreeGlyphSet", + "XRenderAddGlyphs", + "XRenderFreeGlyphs", + "XRenderCompositeString8", + "XRenderCompositeString16", + "XRenderCompositeString32", + "XRenderCompositeText8", + "XRenderCompositeText16", + "XRenderCompositeText32", + "XRenderFillRectangle", + "XRenderFillRectangles", + "XRenderCompositeTrapezoids", + "XRenderCompositeTriangles", + "XRenderCompositeTriStrip", + "XRenderCompositeTriFan", + "XRenderCompositeDoublePoly", + "XRenderParseColor", + "XRenderCreateCursor", + "XRenderQueryFilters", + "XRenderSetPictureFilter", + "XRenderCreateAnimCursor", + "XRenderAddTraps", + "XRenderCreateSolidFill", + "XRenderCreateLinearGradient", + "XRenderCreateRadialGradient", + "XRenderCreateConicalGradient", + "XRenderQueryExtension", + "XRenderQueryVersion", + "XRenderQueryFormats", + "XRenderQuerySubpixelOrder", + "XRenderSetSubpixelOrder", + "XRenderFindVisualFormat", + "XRenderFindFormat", + "XRenderFindStandardFormat", + "XRenderQueryPictIndexValues", + "XRenderCreatePicture", + "XRenderChangePicture", + "XRenderSetPictureClipRectangles", + "XRenderSetPictureClipRegion", + "XRenderSetPictureTransform", + "XRenderFreePicture", + "XRenderComposite", + "XRenderCreateGlyphSet", + "XRenderReferenceGlyphSet", + "XRenderFreeGlyphSet", + "XRenderAddGlyphs", + "XRenderFreeGlyphs", + "XRenderCompositeString8", + "XRenderCompositeString16", + "XRenderCompositeString32", + "XRenderCompositeText8", + "XRenderCompositeText16", + "XRenderCompositeText32", + "XRenderFillRectangle", + "XRenderFillRectangles", + "XRenderCompositeTrapezoids", + "XRenderCompositeTriangles", + "XRenderCompositeTriStrip", + "XRenderCompositeTriFan", + "XRenderCompositeDoublePoly", + "XRenderParseColor", + "XRenderCreateCursor", + "XRenderQueryFilters", + "XRenderSetPictureFilter", + "XRenderCreateAnimCursor", + "XRenderAddTraps", + "XRenderCreateSolidFill", + "XRenderCreateLinearGradient", + "XRenderCreateRadialGradient", + "XRenderCreateConicalGradient" + ] + }, + "platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_XLIB", + "_Xmblen", + "XLoadQueryFont", + "XQueryFont", + "XGetMotionEvents", + "XDeleteModifiermapEntry", + "XGetModifierMapping", + "XInsertModifiermapEntry", + "XNewModifiermap", + "XCreateImage", + "XInitImage", + "XGetImage", + "XGetSubImage", + "XOpenDisplay", + "XrmInitialize", + "XFetchBytes", + "XFetchBuffer", + "XGetAtomName", + "XGetAtomNames", + "XGetDefault", + "XDisplayName", + "XKeysymToString", + "XSynchronize", + "XSetAfterFunction", + "XInternAtom", + "XInternAtoms", + "XCopyColormapAndFree", + "XCreateColormap", + "XCreatePixmapCursor", + "XCreateGlyphCursor", + "XCreateFontCursor", + "XLoadFont", + "XCreateGC", + "XGContextFromGC", + "XFlushGC", + "XCreatePixmap", + "XCreateBitmapFromData", + "XCreatePixmapFromBitmapData", + "XCreateSimpleWindow", + "XGetSelectionOwner", + "XCreateWindow", + "XListInstalledColormaps", + "XListFonts", + "XListFontsWithInfo", + "XGetFontPath", + "XListExtensions", + "XListProperties", + "XListHosts", + "XKeycodeToKeysym", + "XLookupKeysym", + "XGetKeyboardMapping", + "XStringToKeysym", + "XMaxRequestSize", + "XExtendedMaxRequestSize", + "XResourceManagerString", + "XScreenResourceString", + "XDisplayMotionBufferSize", + "XVisualIDFromVisual", + "XInitThreads", + "XLockDisplay", + "XUnlockDisplay", + "XInitExtension", + "XAddExtension", + "XFindOnExtensionList", + "XEHeadOfExtensionList", + "XRootWindow", + "XDefaultRootWindow", + "XRootWindowOfScreen", + "XDefaultVisual", + "XDefaultVisualOfScreen", + "XDefaultGC", + "XDefaultGCOfScreen", + "XBlackPixel", + "XWhitePixel", + "XAllPlanes", + "XBlackPixelOfScreen", + "XWhitePixelOfScreen", + "XNextRequest", + "XLastKnownRequestProcessed", + "XServerVendor", + "XDisplayString", + "XDefaultColormap", + "XDefaultColormapOfScreen", + "XDisplayOfScreen", + "XScreenOfDisplay", + "XDefaultScreenOfDisplay", + "XEventMaskOfScreen", + "XScreenNumberOfScreen", + "XSetErrorHandler", + "XSetIOErrorHandler", + "XListPixmapFormats", + "XListDepths", + "XReconfigureWMWindow", + "XGetWMProtocols", + "XSetWMProtocols", + "XIconifyWindow", + "XWithdrawWindow", + "XGetCommand", + "XGetWMColormapWindows", + "XSetWMColormapWindows", + "XFreeStringList", + "XSetTransientForHint", + "XActivateScreenSaver", + "XAddHost", + "XAddHosts", + "XAddToExtensionList", + "XAddToSaveSet", + "XAllocColor", + "XAllocColorCells", + "XAllocColorPlanes", + "XAllocNamedColor", + "XAllowEvents", + "XAutoRepeatOff", + "XAutoRepeatOn", + "XBell", + "XBitmapBitOrder", + "XBitmapPad", + "XBitmapUnit", + "XCellsOfScreen", + "XChangeActivePointerGrab", + "XChangeGC", + "XChangeKeyboardControl", + "XChangeKeyboardMapping", + "XChangePointerControl", + "XChangeProperty", + "XChangeSaveSet", + "XChangeWindowAttributes", + "XCheckIfEvent", + "XCheckMaskEvent", + "XCheckTypedEvent", + "XCheckTypedWindowEvent", + "XCheckWindowEvent", + "XCirculateSubwindows", + "XCirculateSubwindowsDown", + "XCirculateSubwindowsUp", + "XClearArea", + "XClearWindow", + "XCloseDisplay", + "XConfigureWindow", + "XConnectionNumber", + "XConvertSelection", + "XCopyArea", + "XCopyGC", + "XCopyPlane", + "XDefaultDepth", + "XDefaultDepthOfScreen", + "XDefaultScreen", + "XDefineCursor", + "XDeleteProperty", + "XDestroyWindow", + "XDestroySubwindows", + "XDoesBackingStore", + "XDoesSaveUnders", + "XDisableAccessControl", + "XDisplayCells", + "XDisplayHeight", + "XDisplayHeightMM", + "XDisplayKeycodes", + "XDisplayPlanes", + "XDisplayWidth", + "XDisplayWidthMM", + "XDrawArc", + "XDrawArcs", + "XDrawImageString", + "XDrawImageString16", + "XDrawLine", + "XDrawLines", + "XDrawPoint", + "XDrawPoints", + "XDrawRectangle", + "XDrawRectangles", + "XDrawSegments", + "XDrawString", + "XDrawString16", + "XDrawText", + "XDrawText16", + "XEnableAccessControl", + "XEventsQueued", + "XFetchName", + "XFillArc", + "XFillArcs", + "XFillPolygon", + "XFillRectangle", + "XFillRectangles", + "XFlush", + "XForceScreenSaver", + "XFree", + "XFreeColormap", + "XFreeColors", + "XFreeCursor", + "XFreeExtensionList", + "XFreeFont", + "XFreeFontInfo", + "XFreeFontNames", + "XFreeFontPath", + "XFreeGC", + "XFreeModifiermap", + "XFreePixmap", + "XGeometry", + "XGetErrorDatabaseText", + "XGetErrorText", + "XGetFontProperty", + "XGetGCValues", + "XGetGeometry", + "XGetIconName", + "XGetInputFocus", + "XGetKeyboardControl", + "XGetPointerControl", + "XGetPointerMapping", + "XGetScreenSaver", + "XGetTransientForHint", + "XGetWindowProperty", + "XGetWindowAttributes", + "XGrabButton", + "XGrabKey", + "XGrabKeyboard", + "XGrabPointer", + "XGrabServer", + "XHeightMMOfScreen", + "XHeightOfScreen", + "XIfEvent", + "XImageByteOrder", + "XInstallColormap", + "XKeysymToKeycode", + "XKillClient", + "XLookupColor", + "XLowerWindow", + "XMapRaised", + "XMapSubwindows", + "XMapWindow", + "XMaskEvent", + "XMaxCmapsOfScreen", + "XMinCmapsOfScreen", + "XMoveResizeWindow", + "XMoveWindow", + "XNextEvent", + "XNoOp", + "XParseColor", + "XParseGeometry", + "XPeekEvent", + "XPeekIfEvent", + "XPending", + "XPlanesOfScreen", + "XProtocolRevision", + "XProtocolVersion", + "XPutBackEvent", + "XPutImage", + "XQLength", + "XQueryBestCursor", + "XQueryBestSize", + "XQueryBestStipple", + "XQueryBestTile", + "XQueryColor", + "XQueryColors", + "XQueryExtension", + "XQueryKeymap", + "XQueryPointer", + "XQueryTextExtents", + "XQueryTextExtents16", + "XQueryTree", + "XRaiseWindow", + "XReadBitmapFile", + "XReadBitmapFileData", + "XRebindKeysym", + "XRecolorCursor", + "XRefreshKeyboardMapping", + "XRemoveFromSaveSet", + "XRemoveHost", + "XRemoveHosts", + "XReparentWindow", + "XResetScreenSaver", + "XResizeWindow", + "XRestackWindows", + "XRotateBuffers", + "XRotateWindowProperties", + "XScreenCount", + "XSelectInput", + "XSendEvent", + "XSetAccessControl", + "XSetArcMode", + "XSetBackground", + "XSetClipMask", + "XSetClipOrigin", + "XSetClipRectangles", + "XSetCloseDownMode", + "XSetCommand", + "XSetDashes", + "XSetFillRule", + "XSetFillStyle", + "XSetFont", + "XSetFontPath", + "XSetForeground", + "XSetFunction", + "XSetGraphicsExposures", + "XSetIconName", + "XSetInputFocus", + "XSetLineAttributes", + "XSetModifierMapping", + "XSetPlaneMask", + "XSetPointerMapping", + "XSetScreenSaver", + "XSetSelectionOwner", + "XSetState", + "XSetStipple", + "XSetSubwindowMode", + "XSetTSOrigin", + "XSetTile", + "XSetWindowBackground", + "XSetWindowBackgroundPixmap", + "XSetWindowBorder", + "XSetWindowBorderPixmap", + "XSetWindowBorderWidth", + "XSetWindowColormap", + "XStoreBuffer", + "XStoreBytes", + "XStoreColor", + "XStoreColors", + "XStoreName", + "XStoreNamedColor", + "XSync", + "XTextExtents", + "XTextExtents16", + "XTextWidth", + "XTextWidth16", + "XTranslateCoordinates", + "XUndefineCursor", + "XUngrabButton", + "XUngrabKey", + "XUngrabKeyboard", + "XUngrabPointer", + "XUngrabServer", + "XUninstallColormap", + "XUnloadFont", + "XUnmapSubwindows", + "XUnmapWindow", + "XVendorRelease", + "XWarpPointer", + "XWidthMMOfScreen", + "XWidthOfScreen", + "XWindowEvent", + "XWriteBitmapFile", + "XSupportsLocale", + "XSetLocaleModifiers", + "XOpenOM", + "XCloseOM", + "XSetOMValues", + "XGetOMValues", + "XDisplayOfOM", + "XLocaleOfOM", + "XCreateOC", + "XDestroyOC", + "XOMOfOC", + "XSetOCValues", + "XGetOCValues", + "XCreateFontSet", + "XFreeFontSet", + "XFontsOfFontSet", + "XBaseFontNameListOfFontSet", + "XLocaleOfFontSet", + "XContextDependentDrawing", + "XDirectionalDependentDrawing", + "XContextualDrawing", + "XExtentsOfFontSet", + "XmbTextEscapement", + "XwcTextEscapement", + "Xutf8TextEscapement", + "XmbTextExtents", + "XwcTextExtents", + "Xutf8TextExtents", + "XmbTextPerCharExtents", + "XwcTextPerCharExtents", + "Xutf8TextPerCharExtents", + "XmbDrawText", + "XwcDrawText", + "Xutf8DrawText", + "XmbDrawString", + "XwcDrawString", + "Xutf8DrawString", + "XmbDrawImageString", + "XwcDrawImageString", + "Xutf8DrawImageString", + "XOpenIM", + "XCloseIM", + "XGetIMValues", + "XSetIMValues", + "XDisplayOfIM", + "XLocaleOfIM", + "XCreateIC", + "XDestroyIC", + "XSetICFocus", + "XUnsetICFocus", + "XwcResetIC", + "XmbResetIC", + "Xutf8ResetIC", + "XSetICValues", + "XGetICValues", + "XIMOfIC", + "XFilterEvent", + "XmbLookupString", + "XwcLookupString", + "Xutf8LookupString", + "XVaCreateNestedList", + "XRegisterIMInstantiateCallback", + "XUnregisterIMInstantiateCallback", + "XInternalConnectionNumbers", + "XProcessInternalConnection", + "XAddConnectionWatch", + "XRemoveConnectionWatch", + "XSetAuthorization", + "_Xmbtowc", + "_Xwctomb", + "XGetEventData", + "XFreeEventData", + "XAllocClassHint", + "XAllocIconSize", + "XAllocSizeHints", + "XAllocStandardColormap", + "XAllocWMHints", + "XClipBox", + "XCreateRegion", + "XDefaultString", + "XDeleteContext", + "XDestroyRegion", + "XEmptyRegion", + "XEqualRegion", + "XFindContext", + "XGetClassHint", + "XGetIconSizes", + "XGetNormalHints", + "XGetRGBColormaps", + "XGetSizeHints", + "XGetStandardColormap", + "XGetTextProperty", + "XGetVisualInfo", + "XGetWMClientMachine", + "XGetWMHints", + "XGetWMIconName", + "XGetWMName", + "XGetWMNormalHints", + "XGetWMSizeHints", + "XGetZoomHints", + "XIntersectRegion", + "XConvertCase", + "XLookupString", + "XMatchVisualInfo", + "XOffsetRegion", + "XPointInRegion", + "XPolygonRegion", + "XRectInRegion", + "XSaveContext", + "XSetClassHint", + "XSetIconSizes", + "XSetNormalHints", + "XSetRGBColormaps", + "XSetSizeHints", + "XSetStandardProperties", + "XSetTextProperty", + "XSetWMClientMachine", + "XSetWMHints", + "XSetWMIconName", + "XSetWMName", + "XSetWMNormalHints", + "XSetWMProperties", + "XmbSetWMProperties", + "Xutf8SetWMProperties", + "XSetWMSizeHints", + "XSetRegion", + "XSetStandardColormap", + "XSetZoomHints", + "XShrinkRegion", + "XStringListToTextProperty", + "XSubtractRegion", + "XmbTextListToTextProperty", + "XwcTextListToTextProperty", + "Xutf8TextListToTextProperty", + "XwcFreeStringList", + "XTextPropertyToStringList", + "XmbTextPropertyToTextList", + "XwcTextPropertyToTextList", + "Xutf8TextPropertyToTextList", + "XUnionRectWithRegion", + "XUnionRegion", + "XWMGeometry", + "XXorRegion", + "XkbIgnoreExtension", + "XkbOpenDisplay", + "XkbQueryExtension", + "XkbUseExtension", + "XkbLibraryVersion", + "XkbSetXlibControls", + "XkbGetXlibControls", + "XkbXlibControlsImplemented", + "XkbSetAtomFuncs", + "XkbKeycodeToKeysym", + "XkbKeysymToModifiers", + "XkbLookupKeySym", + "XkbLookupKeyBinding", + "XkbTranslateKeyCode", + "XkbTranslateKeySym", + "XkbSetAutoRepeatRate", + "XkbGetAutoRepeatRate", + "XkbChangeEnabledControls", + "XkbDeviceBell", + "XkbForceDeviceBell", + "XkbDeviceBellEvent", + "XkbBell", + "XkbForceBell", + "XkbBellEvent", + "XkbSelectEvents", + "XkbSelectEventDetails", + "XkbNoteMapChanges", + "XkbNoteNameChanges", + "XkbGetIndicatorState", + "XkbGetIndicatorMap", + "XkbSetIndicatorMap", + "XkbGetNamedIndicator", + "XkbGetNamedDeviceIndicator", + "XkbSetNamedIndicator", + "XkbSetNamedDeviceIndicator", + "XkbLockModifiers", + "XkbLatchModifiers", + "XkbLockGroup", + "XkbLatchGroup", + "XkbSetServerInternalMods", + "XkbSetIgnoreLockMods", + "XkbVirtualModsToReal", + "XkbComputeEffectiveMap", + "XkbInitCanonicalKeyTypes", + "XkbAllocKeyboard", + "XkbFreeKeyboard", + "XkbAllocClientMap", + "XkbAllocServerMap", + "XkbFreeClientMap", + "XkbFreeServerMap", + "XkbAddKeyType", + "XkbAllocIndicatorMaps", + "XkbFreeIndicatorMaps", + "XkbGetMap", + "XkbGetUpdatedMap", + "XkbGetMapChanges", + "XkbRefreshKeyboardMapping", + "XkbGetKeyTypes", + "XkbGetKeySyms", + "XkbGetKeyActions", + "XkbGetKeyBehaviors", + "XkbGetVirtualMods", + "XkbGetKeyExplicitComponents", + "XkbGetKeyModifierMap", + "XkbGetKeyVirtualModMap", + "XkbAllocControls", + "XkbFreeControls", + "XkbGetControls", + "XkbSetControls", + "XkbNoteControlsChanges", + "XkbAllocCompatMap", + "XkbFreeCompatMap", + "XkbGetCompatMap", + "XkbSetCompatMap", + "XkbAllocNames", + "XkbGetNames", + "XkbSetNames", + "XkbChangeNames", + "XkbFreeNames", + "XkbGetState", + "XkbSetMap", + "XkbChangeMap", + "XkbSetDetectableAutoRepeat", + "XkbGetDetectableAutoRepeat", + "XkbSetAutoResetControls", + "XkbGetAutoResetControls", + "XkbSetPerClientControls", + "XkbGetPerClientControls", + "XkbCopyKeyType", + "XkbCopyKeyTypes", + "XkbResizeKeyType", + "XkbResizeKeySyms", + "XkbResizeKeyActions", + "XkbChangeTypesOfKey", + "XkbChangeKeycodeRange", + "XkbListComponents", + "XkbFreeComponentList", + "XkbGetKeyboard", + "XkbGetKeyboardByName", + "XkbKeyTypesForCoreSymbols", + "XkbApplyCompatMapToKey", + "XkbUpdateMapFromCore", + "XkbAddDeviceLedInfo", + "XkbResizeDeviceButtonActions", + "XkbAllocDeviceInfo", + "XkbFreeDeviceInfo", + "XkbNoteDeviceChanges", + "XkbGetDeviceInfo", + "XkbGetDeviceInfoChanges", + "XkbGetDeviceButtonActions", + "XkbGetDeviceLedInfo", + "XkbSetDeviceInfo", + "XkbChangeDeviceInfo", + "XkbSetDeviceLedInfo", + "XkbSetDeviceButtonActions", + "XkbToControl", + "XkbSetDebuggingFlags", + "XkbApplyVirtualModChanges", + "XkbUpdateActionVirtualMods", + "XkbUpdateKeyTypeVirtualMods", + "_Xmblen", + "XLoadQueryFont", + "XQueryFont", + "XGetMotionEvents", + "XDeleteModifiermapEntry", + "XGetModifierMapping", + "XInsertModifiermapEntry", + "XNewModifiermap", + "XCreateImage", + "XInitImage", + "XGetImage", + "XGetSubImage", + "XOpenDisplay", + "XrmInitialize", + "XFetchBytes", + "XFetchBuffer", + "XGetAtomName", + "XGetAtomNames", + "XGetDefault", + "XDisplayName", + "XKeysymToString", + "XSynchronize", + "XSetAfterFunction", + "XInternAtom", + "XInternAtoms", + "XCopyColormapAndFree", + "XCreateColormap", + "XCreatePixmapCursor", + "XCreateGlyphCursor", + "XCreateFontCursor", + "XLoadFont", + "XCreateGC", + "XGContextFromGC", + "XFlushGC", + "XCreatePixmap", + "XCreateBitmapFromData", + "XCreatePixmapFromBitmapData", + "XCreateSimpleWindow", + "XGetSelectionOwner", + "XCreateWindow", + "XListInstalledColormaps", + "XListFonts", + "XListFontsWithInfo", + "XGetFontPath", + "XListExtensions", + "XListProperties", + "XListHosts", + "XKeycodeToKeysym", + "XLookupKeysym", + "XGetKeyboardMapping", + "XStringToKeysym", + "XMaxRequestSize", + "XExtendedMaxRequestSize", + "XResourceManagerString", + "XScreenResourceString", + "XDisplayMotionBufferSize", + "XVisualIDFromVisual", + "XInitThreads", + "XLockDisplay", + "XUnlockDisplay", + "XInitExtension", + "XAddExtension", + "XFindOnExtensionList", + "XEHeadOfExtensionList", + "XRootWindow", + "XDefaultRootWindow", + "XRootWindowOfScreen", + "XDefaultVisual", + "XDefaultVisualOfScreen", + "XDefaultGC", + "XDefaultGCOfScreen", + "XBlackPixel", + "XWhitePixel", + "XAllPlanes", + "XBlackPixelOfScreen", + "XWhitePixelOfScreen", + "XNextRequest", + "XLastKnownRequestProcessed", + "XServerVendor", + "XDisplayString", + "XDefaultColormap", + "XDefaultColormapOfScreen", + "XDisplayOfScreen", + "XScreenOfDisplay", + "XDefaultScreenOfDisplay", + "XEventMaskOfScreen", + "XScreenNumberOfScreen", + "XSetErrorHandler", + "XSetIOErrorHandler", + "XListPixmapFormats", + "XListDepths", + "XReconfigureWMWindow", + "XGetWMProtocols", + "XSetWMProtocols", + "XIconifyWindow", + "XWithdrawWindow", + "XGetCommand", + "XGetWMColormapWindows", + "XSetWMColormapWindows", + "XFreeStringList", + "XSetTransientForHint", + "XActivateScreenSaver", + "XAddHost", + "XAddHosts", + "XAddToExtensionList", + "XAddToSaveSet", + "XAllocColor", + "XAllocColorCells", + "XAllocColorPlanes", + "XAllocNamedColor", + "XAllowEvents", + "XAutoRepeatOff", + "XAutoRepeatOn", + "XBell", + "XBitmapBitOrder", + "XBitmapPad", + "XBitmapUnit", + "XCellsOfScreen", + "XChangeActivePointerGrab", + "XChangeGC", + "XChangeKeyboardControl", + "XChangeKeyboardMapping", + "XChangePointerControl", + "XChangeProperty", + "XChangeSaveSet", + "XChangeWindowAttributes", + "XCheckIfEvent", + "XCheckMaskEvent", + "XCheckTypedEvent", + "XCheckTypedWindowEvent", + "XCheckWindowEvent", + "XCirculateSubwindows", + "XCirculateSubwindowsDown", + "XCirculateSubwindowsUp", + "XClearArea", + "XClearWindow", + "XCloseDisplay", + "XConfigureWindow", + "XConnectionNumber", + "XConvertSelection", + "XCopyArea", + "XCopyGC", + "XCopyPlane", + "XDefaultDepth", + "XDefaultDepthOfScreen", + "XDefaultScreen", + "XDefineCursor", + "XDeleteProperty", + "XDestroyWindow", + "XDestroySubwindows", + "XDoesBackingStore", + "XDoesSaveUnders", + "XDisableAccessControl", + "XDisplayCells", + "XDisplayHeight", + "XDisplayHeightMM", + "XDisplayKeycodes", + "XDisplayPlanes", + "XDisplayWidth", + "XDisplayWidthMM", + "XDrawArc", + "XDrawArcs", + "XDrawImageString", + "XDrawImageString16", + "XDrawLine", + "XDrawLines", + "XDrawPoint", + "XDrawPoints", + "XDrawRectangle", + "XDrawRectangles", + "XDrawSegments", + "XDrawString", + "XDrawString16", + "XDrawText", + "XDrawText16", + "XEnableAccessControl", + "XEventsQueued", + "XFetchName", + "XFillArc", + "XFillArcs", + "XFillPolygon", + "XFillRectangle", + "XFillRectangles", + "XFlush", + "XForceScreenSaver", + "XFree", + "XFreeColormap", + "XFreeColors", + "XFreeCursor", + "XFreeExtensionList", + "XFreeFont", + "XFreeFontInfo", + "XFreeFontNames", + "XFreeFontPath", + "XFreeGC", + "XFreeModifiermap", + "XFreePixmap", + "XGeometry", + "XGetErrorDatabaseText", + "XGetErrorText", + "XGetFontProperty", + "XGetGCValues", + "XGetGeometry", + "XGetIconName", + "XGetInputFocus", + "XGetKeyboardControl", + "XGetPointerControl", + "XGetPointerMapping", + "XGetScreenSaver", + "XGetTransientForHint", + "XGetWindowProperty", + "XGetWindowAttributes", + "XGrabButton", + "XGrabKey", + "XGrabKeyboard", + "XGrabPointer", + "XGrabServer", + "XHeightMMOfScreen", + "XHeightOfScreen", + "XIfEvent", + "XImageByteOrder", + "XInstallColormap", + "XKeysymToKeycode", + "XKillClient", + "XLookupColor", + "XLowerWindow", + "XMapRaised", + "XMapSubwindows", + "XMapWindow", + "XMaskEvent", + "XMaxCmapsOfScreen", + "XMinCmapsOfScreen", + "XMoveResizeWindow", + "XMoveWindow", + "XNextEvent", + "XNoOp", + "XParseColor", + "XParseGeometry", + "XPeekEvent", + "XPeekIfEvent", + "XPending", + "XPlanesOfScreen", + "XProtocolRevision", + "XProtocolVersion", + "XPutBackEvent", + "XPutImage", + "XQLength", + "XQueryBestCursor", + "XQueryBestSize", + "XQueryBestStipple", + "XQueryBestTile", + "XQueryColor", + "XQueryColors", + "XQueryExtension", + "XQueryKeymap", + "XQueryPointer", + "XQueryTextExtents", + "XQueryTextExtents16", + "XQueryTree", + "XRaiseWindow", + "XReadBitmapFile", + "XReadBitmapFileData", + "XRebindKeysym", + "XRecolorCursor", + "XRefreshKeyboardMapping", + "XRemoveFromSaveSet", + "XRemoveHost", + "XRemoveHosts", + "XReparentWindow", + "XResetScreenSaver", + "XResizeWindow", + "XRestackWindows", + "XRotateBuffers", + "XRotateWindowProperties", + "XScreenCount", + "XSelectInput", + "XSendEvent", + "XSetAccessControl", + "XSetArcMode", + "XSetBackground", + "XSetClipMask", + "XSetClipOrigin", + "XSetClipRectangles", + "XSetCloseDownMode", + "XSetCommand", + "XSetDashes", + "XSetFillRule", + "XSetFillStyle", + "XSetFont", + "XSetFontPath", + "XSetForeground", + "XSetFunction", + "XSetGraphicsExposures", + "XSetIconName", + "XSetInputFocus", + "XSetLineAttributes", + "XSetModifierMapping", + "XSetPlaneMask", + "XSetPointerMapping", + "XSetScreenSaver", + "XSetSelectionOwner", + "XSetState", + "XSetStipple", + "XSetSubwindowMode", + "XSetTSOrigin", + "XSetTile", + "XSetWindowBackground", + "XSetWindowBackgroundPixmap", + "XSetWindowBorder", + "XSetWindowBorderPixmap", + "XSetWindowBorderWidth", + "XSetWindowColormap", + "XStoreBuffer", + "XStoreBytes", + "XStoreColor", + "XStoreColors", + "XStoreName", + "XStoreNamedColor", + "XSync", + "XTextExtents", + "XTextExtents16", + "XTextWidth", + "XTextWidth16", + "XTranslateCoordinates", + "XUndefineCursor", + "XUngrabButton", + "XUngrabKey", + "XUngrabKeyboard", + "XUngrabPointer", + "XUngrabServer", + "XUninstallColormap", + "XUnloadFont", + "XUnmapSubwindows", + "XUnmapWindow", + "XVendorRelease", + "XWarpPointer", + "XWidthMMOfScreen", + "XWidthOfScreen", + "XWindowEvent", + "XWriteBitmapFile", + "XSupportsLocale", + "XSetLocaleModifiers", + "XOpenOM", + "XCloseOM", + "XSetOMValues", + "XGetOMValues", + "XDisplayOfOM", + "XLocaleOfOM", + "XCreateOC", + "XDestroyOC", + "XOMOfOC", + "XSetOCValues", + "XGetOCValues", + "XCreateFontSet", + "XFreeFontSet", + "XFontsOfFontSet", + "XBaseFontNameListOfFontSet", + "XLocaleOfFontSet", + "XContextDependentDrawing", + "XDirectionalDependentDrawing", + "XContextualDrawing", + "XExtentsOfFontSet", + "XmbTextEscapement", + "XwcTextEscapement", + "Xutf8TextEscapement", + "XmbTextExtents", + "XwcTextExtents", + "Xutf8TextExtents", + "XmbTextPerCharExtents", + "XwcTextPerCharExtents", + "Xutf8TextPerCharExtents", + "XmbDrawText", + "XwcDrawText", + "Xutf8DrawText", + "XmbDrawString", + "XwcDrawString", + "Xutf8DrawString", + "XmbDrawImageString", + "XwcDrawImageString", + "Xutf8DrawImageString", + "XOpenIM", + "XCloseIM", + "XGetIMValues", + "XSetIMValues", + "XDisplayOfIM", + "XLocaleOfIM", + "XCreateIC", + "XDestroyIC", + "XSetICFocus", + "XUnsetICFocus", + "XwcResetIC", + "XmbResetIC", + "Xutf8ResetIC", + "XSetICValues", + "XGetICValues", + "XIMOfIC", + "XFilterEvent", + "XmbLookupString", + "XwcLookupString", + "Xutf8LookupString", + "XVaCreateNestedList", + "XRegisterIMInstantiateCallback", + "XUnregisterIMInstantiateCallback", + "XInternalConnectionNumbers", + "XProcessInternalConnection", + "XAddConnectionWatch", + "XRemoveConnectionWatch", + "XSetAuthorization", + "_Xmbtowc", + "_Xwctomb", + "XGetEventData", + "XFreeEventData", + "XAllocClassHint", + "XAllocIconSize", + "XAllocSizeHints", + "XAllocStandardColormap", + "XAllocWMHints", + "XClipBox", + "XCreateRegion", + "XDefaultString", + "XDeleteContext", + "XDestroyRegion", + "XEmptyRegion", + "XEqualRegion", + "XFindContext", + "XGetClassHint", + "XGetIconSizes", + "XGetNormalHints", + "XGetRGBColormaps", + "XGetSizeHints", + "XGetStandardColormap", + "XGetTextProperty", + "XGetVisualInfo", + "XGetWMClientMachine", + "XGetWMHints", + "XGetWMIconName", + "XGetWMName", + "XGetWMNormalHints", + "XGetWMSizeHints", + "XGetZoomHints", + "XIntersectRegion", + "XConvertCase", + "XLookupString", + "XMatchVisualInfo", + "XOffsetRegion", + "XPointInRegion", + "XPolygonRegion", + "XRectInRegion", + "XSaveContext", + "XSetClassHint", + "XSetIconSizes", + "XSetNormalHints", + "XSetRGBColormaps", + "XSetSizeHints", + "XSetStandardProperties", + "XSetTextProperty", + "XSetWMClientMachine", + "XSetWMHints", + "XSetWMIconName", + "XSetWMName", + "XSetWMNormalHints", + "XSetWMProperties", + "XmbSetWMProperties", + "Xutf8SetWMProperties", + "XSetWMSizeHints", + "XSetRegion", + "XSetStandardColormap", + "XSetZoomHints", + "XShrinkRegion", + "XStringListToTextProperty", + "XSubtractRegion", + "XmbTextListToTextProperty", + "XwcTextListToTextProperty", + "Xutf8TextListToTextProperty", + "XwcFreeStringList", + "XTextPropertyToStringList", + "XmbTextPropertyToTextList", + "XwcTextPropertyToTextList", + "Xutf8TextPropertyToTextList", + "XUnionRectWithRegion", + "XUnionRegion", + "XWMGeometry", + "XXorRegion", + "XkbIgnoreExtension", + "XkbOpenDisplay", + "XkbQueryExtension", + "XkbUseExtension", + "XkbLibraryVersion", + "XkbSetXlibControls", + "XkbGetXlibControls", + "XkbXlibControlsImplemented", + "XkbSetAtomFuncs", + "XkbKeycodeToKeysym", + "XkbKeysymToModifiers", + "XkbLookupKeySym", + "XkbLookupKeyBinding", + "XkbTranslateKeyCode", + "XkbTranslateKeySym", + "XkbSetAutoRepeatRate", + "XkbGetAutoRepeatRate", + "XkbChangeEnabledControls", + "XkbDeviceBell", + "XkbForceDeviceBell", + "XkbDeviceBellEvent", + "XkbBell", + "XkbForceBell", + "XkbBellEvent", + "XkbSelectEvents", + "XkbSelectEventDetails", + "XkbNoteMapChanges", + "XkbNoteNameChanges", + "XkbGetIndicatorState", + "XkbGetIndicatorMap", + "XkbSetIndicatorMap", + "XkbGetNamedIndicator", + "XkbGetNamedDeviceIndicator", + "XkbSetNamedIndicator", + "XkbSetNamedDeviceIndicator", + "XkbLockModifiers", + "XkbLatchModifiers", + "XkbLockGroup", + "XkbLatchGroup", + "XkbSetServerInternalMods", + "XkbSetIgnoreLockMods", + "XkbVirtualModsToReal", + "XkbComputeEffectiveMap", + "XkbInitCanonicalKeyTypes", + "XkbAllocKeyboard", + "XkbFreeKeyboard", + "XkbAllocClientMap", + "XkbAllocServerMap", + "XkbFreeClientMap", + "XkbFreeServerMap", + "XkbAddKeyType", + "XkbAllocIndicatorMaps", + "XkbFreeIndicatorMaps", + "XkbGetMap", + "XkbGetUpdatedMap", + "XkbGetMapChanges", + "XkbRefreshKeyboardMapping", + "XkbGetKeyTypes", + "XkbGetKeySyms", + "XkbGetKeyActions", + "XkbGetKeyBehaviors", + "XkbGetVirtualMods", + "XkbGetKeyExplicitComponents", + "XkbGetKeyModifierMap", + "XkbGetKeyVirtualModMap", + "XkbAllocControls", + "XkbFreeControls", + "XkbGetControls", + "XkbSetControls", + "XkbNoteControlsChanges", + "XkbAllocCompatMap", + "XkbFreeCompatMap", + "XkbGetCompatMap", + "XkbSetCompatMap", + "XkbAllocNames", + "XkbGetNames", + "XkbSetNames", + "XkbChangeNames", + "XkbFreeNames", + "XkbGetState", + "XkbSetMap", + "XkbChangeMap", + "XkbSetDetectableAutoRepeat", + "XkbGetDetectableAutoRepeat", + "XkbSetAutoResetControls", + "XkbGetAutoResetControls", + "XkbSetPerClientControls", + "XkbGetPerClientControls", + "XkbCopyKeyType", + "XkbCopyKeyTypes", + "XkbResizeKeyType", + "XkbResizeKeySyms", + "XkbResizeKeyActions", + "XkbChangeTypesOfKey", + "XkbChangeKeycodeRange", + "XkbListComponents", + "XkbFreeComponentList", + "XkbGetKeyboard", + "XkbGetKeyboardByName", + "XkbKeyTypesForCoreSymbols", + "XkbApplyCompatMapToKey", + "XkbUpdateMapFromCore", + "XkbAddDeviceLedInfo", + "XkbResizeDeviceButtonActions", + "XkbAllocDeviceInfo", + "XkbFreeDeviceInfo", + "XkbNoteDeviceChanges", + "XkbGetDeviceInfo", + "XkbGetDeviceInfoChanges", + "XkbGetDeviceButtonActions", + "XkbGetDeviceLedInfo", + "XkbSetDeviceInfo", + "XkbChangeDeviceInfo", + "XkbSetDeviceLedInfo", + "XkbSetDeviceButtonActions", + "XkbToControl", + "XkbSetDebuggingFlags", + "XkbApplyVirtualModChanges", + "XkbUpdateActionVirtualMods", + "XkbUpdateKeyTypeVirtualMods" + ] + }, + "platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_XINPUT2", + "XIQueryPointer", + "XIWarpPointer", + "XIDefineCursor", + "XIUndefineCursor", + "XIChangeHierarchy", + "XISetClientPointer", + "XIGetClientPointer", + "XISelectEvents", + "XIGetSelectedEvents", + "XIQueryVersion", + "XIQueryDevice", + "XISetFocus", + "XIGetFocus", + "XIGrabDevice", + "XIUngrabDevice", + "XIAllowEvents", + "XIAllowTouchEvents", + "XIGrabButton", + "XIGrabKeycode", + "XIGrabEnter", + "XIGrabFocusIn", + "XIGrabTouchBegin", + "XIUngrabButton", + "XIUngrabKeycode", + "XIUngrabEnter", + "XIUngrabFocusIn", + "XIUngrabTouchBegin", + "XIListProperties", + "XIChangeProperty", + "XIDeleteProperty", + "XIGetProperty", + "XIBarrierReleasePointers", + "XIBarrierReleasePointer", + "XIFreeDeviceInfo", + "XIQueryPointer", + "XIWarpPointer", + "XIDefineCursor", + "XIUndefineCursor", + "XIChangeHierarchy", + "XISetClientPointer", + "XIGetClientPointer", + "XISelectEvents", + "XIGetSelectedEvents", + "XIQueryVersion", + "XIQueryDevice", + "XISetFocus", + "XIGetFocus", + "XIGrabDevice", + "XIUngrabDevice", + "XIAllowEvents", + "XIAllowTouchEvents", + "XIGrabButton", + "XIGrabKeycode", + "XIGrabEnter", + "XIGrabFocusIn", + "XIGrabTouchBegin", + "XIUngrabButton", + "XIUngrabKeycode", + "XIUngrabEnter", + "XIUngrabFocusIn", + "XIUngrabTouchBegin", + "XIListProperties", + "XIChangeProperty", + "XIDeleteProperty", + "XIGetProperty", + "XIBarrierReleasePointers", + "XIBarrierReleasePointer", + "XIFreeDeviceInfo" + ] + }, + "platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_XRANDR", + "XRRQueryExtension", + "XRRQueryVersion", + "XRRGetScreenInfo", + "XRRFreeScreenConfigInfo", + "XRRSetScreenConfig", + "XRRSetScreenConfigAndRate", + "XRRConfigRotations", + "XRRConfigTimes", + "XRRConfigSizes", + "XRRConfigRates", + "XRRConfigCurrentConfiguration", + "XRRConfigCurrentRate", + "XRRRootToScreen", + "XRRSelectInput", + "XRRRotations", + "XRRSizes", + "XRRRates", + "XRRTimes", + "XRRGetScreenSizeRange", + "XRRSetScreenSize", + "XRRGetScreenResources", + "XRRFreeScreenResources", + "XRRGetOutputInfo", + "XRRFreeOutputInfo", + "XRRListOutputProperties", + "XRRQueryOutputProperty", + "XRRConfigureOutputProperty", + "XRRChangeOutputProperty", + "XRRDeleteOutputProperty", + "XRRGetOutputProperty", + "XRRAllocModeInfo", + "XRRCreateMode", + "XRRDestroyMode", + "XRRAddOutputMode", + "XRRDeleteOutputMode", + "XRRFreeModeInfo", + "XRRGetCrtcInfo", + "XRRFreeCrtcInfo", + "XRRSetCrtcConfig", + "XRRGetCrtcGammaSize", + "XRRGetCrtcGamma", + "XRRAllocGamma", + "XRRSetCrtcGamma", + "XRRFreeGamma", + "XRRGetScreenResourcesCurrent", + "XRRSetCrtcTransform", + "XRRGetCrtcTransform", + "XRRUpdateConfiguration", + "XRRGetPanning", + "XRRFreePanning", + "XRRSetPanning", + "XRRSetOutputPrimary", + "XRRGetOutputPrimary", + "XRRGetProviderResources", + "XRRFreeProviderResources", + "XRRGetProviderInfo", + "XRRFreeProviderInfo", + "XRRSetProviderOutputSource", + "XRRSetProviderOffloadSink", + "XRRListProviderProperties", + "XRRQueryProviderProperty", + "XRRConfigureProviderProperty", + "XRRChangeProviderProperty", + "XRRDeleteProviderProperty", + "XRRGetProviderProperty", + "XRRAllocateMonitor", + "XRRGetMonitors", + "XRRSetMonitor", + "XRRDeleteMonitor", + "XRRFreeMonitors", + "XRRQueryExtension", + "XRRQueryVersion", + "XRRGetScreenInfo", + "XRRFreeScreenConfigInfo", + "XRRSetScreenConfig", + "XRRSetScreenConfigAndRate", + "XRRConfigRotations", + "XRRConfigTimes", + "XRRConfigSizes", + "XRRConfigRates", + "XRRConfigCurrentConfiguration", + "XRRConfigCurrentRate", + "XRRRootToScreen", + "XRRSelectInput", + "XRRRotations", + "XRRSizes", + "XRRRates", + "XRRTimes", + "XRRGetScreenSizeRange", + "XRRSetScreenSize", + "XRRGetScreenResources", + "XRRFreeScreenResources", + "XRRGetOutputInfo", + "XRRFreeOutputInfo", + "XRRListOutputProperties", + "XRRQueryOutputProperty", + "XRRConfigureOutputProperty", + "XRRChangeOutputProperty", + "XRRDeleteOutputProperty", + "XRRGetOutputProperty", + "XRRAllocModeInfo", + "XRRCreateMode", + "XRRDestroyMode", + "XRRAddOutputMode", + "XRRDeleteOutputMode", + "XRRFreeModeInfo", + "XRRGetCrtcInfo", + "XRRFreeCrtcInfo", + "XRRSetCrtcConfig", + "XRRGetCrtcGammaSize", + "XRRGetCrtcGamma", + "XRRAllocGamma", + "XRRSetCrtcGamma", + "XRRFreeGamma", + "XRRGetScreenResourcesCurrent", + "XRRSetCrtcTransform", + "XRRGetCrtcTransform", + "XRRUpdateConfiguration", + "XRRGetPanning", + "XRRFreePanning", + "XRRSetPanning", + "XRRSetOutputPrimary", + "XRRGetOutputPrimary", + "XRRGetProviderResources", + "XRRFreeProviderResources", + "XRRGetProviderInfo", + "XRRFreeProviderInfo", + "XRRSetProviderOutputSource", + "XRRSetProviderOffloadSink", + "XRRListProviderProperties", + "XRRQueryProviderProperty", + "XRRConfigureProviderProperty", + "XRRChangeProviderProperty", + "XRRDeleteProviderProperty", + "XRRGetProviderProperty", + "XRRAllocateMonitor", + "XRRGetMonitors", + "XRRSetMonitor", + "XRRDeleteMonitor", + "XRRFreeMonitors" + ] + }, + "platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_XCURSOR", + "XcursorImageCreate", + "XcursorImageDestroy", + "XcursorImagesCreate", + "XcursorImagesDestroy", + "XcursorImagesSetName", + "XcursorCursorsCreate", + "XcursorCursorsDestroy", + "XcursorAnimateCreate", + "XcursorAnimateDestroy", + "XcursorAnimateNext", + "XcursorCommentCreate", + "XcursorCommentDestroy", + "XcursorCommentsCreate", + "XcursorCommentsDestroy", + "XcursorXcFileLoadImage", + "XcursorXcFileLoadImages", + "XcursorXcFileLoadAllImages", + "XcursorXcFileLoad", + "XcursorXcFileSave", + "XcursorFileLoadImage", + "XcursorFileLoadImages", + "XcursorFileLoadAllImages", + "XcursorFileLoad", + "XcursorFileSaveImages", + "XcursorFileSave", + "XcursorFilenameLoadImage", + "XcursorFilenameLoadImages", + "XcursorFilenameLoadAllImages", + "XcursorFilenameLoad", + "XcursorFilenameSaveImages", + "XcursorFilenameSave", + "XcursorLibraryLoadImage", + "XcursorLibraryLoadImages", + "XcursorLibraryPath", + "XcursorLibraryShape", + "XcursorImageLoadCursor", + "XcursorImagesLoadCursors", + "XcursorImagesLoadCursor", + "XcursorFilenameLoadCursor", + "XcursorFilenameLoadCursors", + "XcursorLibraryLoadCursor", + "XcursorLibraryLoadCursors", + "XcursorShapeLoadImage", + "XcursorShapeLoadImages", + "XcursorShapeLoadCursor", + "XcursorShapeLoadCursors", + "XcursorTryShapeCursor", + "XcursorNoticeCreateBitmap", + "XcursorNoticePutBitmap", + "XcursorTryShapeBitmapCursor", + "XcursorImageHash", + "XcursorSupportsARGB", + "XcursorSupportsAnim", + "XcursorSetDefaultSize", + "XcursorGetDefaultSize", + "XcursorSetTheme", + "XcursorGetTheme", + "XcursorGetThemeCore", + "XcursorSetThemeCore", + "XcursorImageCreate", + "XcursorImageDestroy", + "XcursorImagesCreate", + "XcursorImagesDestroy", + "XcursorImagesSetName", + "XcursorCursorsCreate", + "XcursorCursorsDestroy", + "XcursorAnimateCreate", + "XcursorAnimateDestroy", + "XcursorAnimateNext", + "XcursorCommentCreate", + "XcursorCommentDestroy", + "XcursorCommentsCreate", + "XcursorCommentsDestroy", + "XcursorXcFileLoadImage", + "XcursorXcFileLoadImages", + "XcursorXcFileLoadAllImages", + "XcursorXcFileLoad", + "XcursorXcFileSave", + "XcursorFileLoadImage", + "XcursorFileLoadImages", + "XcursorFileLoadAllImages", + "XcursorFileLoad", + "XcursorFileSaveImages", + "XcursorFileSave", + "XcursorFilenameLoadImage", + "XcursorFilenameLoadImages", + "XcursorFilenameLoadAllImages", + "XcursorFilenameLoad", + "XcursorFilenameSaveImages", + "XcursorFilenameSave", + "XcursorLibraryLoadImage", + "XcursorLibraryLoadImages", + "XcursorLibraryPath", + "XcursorLibraryShape", + "XcursorImageLoadCursor", + "XcursorImagesLoadCursors", + "XcursorImagesLoadCursor", + "XcursorFilenameLoadCursor", + "XcursorFilenameLoadCursors", + "XcursorLibraryLoadCursor", + "XcursorLibraryLoadCursors", + "XcursorShapeLoadImage", + "XcursorShapeLoadImages", + "XcursorShapeLoadCursor", + "XcursorShapeLoadCursors", + "XcursorTryShapeCursor", + "XcursorNoticeCreateBitmap", + "XcursorNoticePutBitmap", + "XcursorTryShapeBitmapCursor", + "XcursorImageHash", + "XcursorSupportsARGB", + "XcursorSupportsAnim", + "XcursorSetDefaultSize", + "XcursorGetDefaultSize", + "XcursorSetTheme", + "XcursorGetTheme", + "XcursorGetThemeCore", + "XcursorSetThemeCore" + ] + }, + "platform/linuxbsd/x11/dynwrappers/xext-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_XEXT", + "XShapeQueryExtension", + "XShapeQueryVersion", + "XShapeCombineRegion", + "XShapeCombineRectangles", + "XShapeCombineMask", + "XShapeCombineShape", + "XShapeOffsetShape", + "XShapeQueryExtents", + "XShapeSelectInput", + "XShapeInputSelected", + "XShapeGetRectangles", + "XShapeQueryExtension", + "XShapeQueryVersion", + "XShapeCombineRegion", + "XShapeCombineRectangles", + "XShapeCombineMask", + "XShapeCombineShape", + "XShapeOffsetShape", + "XShapeQueryExtents", + "XShapeSelectInput", + "XShapeInputSelected", + "XShapeGetRectangles" + ] + }, + "platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.h": { + "classes": [], + "structs": [], + "defines": [ + "DYLIBLOAD_WRAPPER_XINERAMA", + "XineramaQueryExtension", + "XineramaQueryVersion", + "XineramaIsActive", + "XineramaQueryScreens", + "XineramaQueryExtension", + "XineramaQueryVersion", + "XineramaIsActive", + "XineramaQueryScreens" + ] + }, + "platform/linuxbsd/export/export.h": { + "classes": [], + "structs": [], + "defines": [ + "LINUXBSD_EXPORT_H" + ] + }, + "platform/linuxbsd/export/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/linuxbsd/export/export_plugin.h": { + "classes": [ + "EditorExportPlatformLinuxBSD" + ], + "structs": [ + "SSHCleanupCommand" + ], + "defines": [ + "LINUXBSD_EXPORT_PLUGIN_H" + ] + }, + "platform/linuxbsd/export/run_icon_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/uwp/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/uwp/logo.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "platform/uwp/export/logo_svg.gen.h": { + "classes": [], + "structs": [], + "defines": [] + }, + "scene/property_list_helper.h": { + "classes": [ + "PropertyListHelper" + ], + "structs": [ + "Property" + ], + "defines": [ + "PROPERTY_LIST_HELPER_H" + ] + }, + "scene/scene_string_names.h": { + "classes": [ + "SceneStringNames" + ], + "structs": [], + "defines": [ + "SCENE_STRING_NAMES_H" + ] + }, + "scene/register_scene_types.h": { + "classes": [], + "structs": [], + "defines": [ + "REGISTER_SCENE_TYPES_H" + ] + }, + "scene/property_utils.h": { + "classes": [ + "PropertyUtils" + ], + "structs": [], + "defines": [ + "PROPERTY_UTILS_H" + ] + }, + "scene/3d/audio_stream_player_3d.h": { + "classes": [ + "AudioStreamPlayer3D" + ], + "structs": [], + "defines": [ + "AUDIO_STREAM_PLAYER_3D_H" + ] + }, + "scene/3d/voxel_gi.h": { + "classes": [ + "VoxelGIData", + "VoxelGI" + ], + "structs": [ + "PlotMesh" + ], + "defines": [ + "VOXEL_GI_H" + ] + }, + "scene/3d/marker_3d.h": { + "classes": [ + "Marker3D" + ], + "structs": [], + "defines": [ + "MARKER_3D_H" + ] + }, + "scene/3d/reflection_probe.h": { + "classes": [ + "ReflectionProbe" + ], + "structs": [], + "defines": [ + "REFLECTION_PROBE_H" + ] + }, + "scene/3d/camera_3d.h": { + "classes": [ + "Camera3D" + ], + "structs": [], + "defines": [ + "CAMERA_3D_H" + ] + }, + "scene/3d/remote_transform_3d.h": { + "classes": [ + "RemoteTransform3D" + ], + "structs": [], + "defines": [ + "REMOTE_TRANSFORM_3D_H" + ] + }, + "scene/3d/xr_hand_modifier_3d.h": { + "classes": [ + "XRHandModifier3D" + ], + "structs": [ + "JointData" + ], + "defines": [ + "XR_HAND_MODIFIER_3D_H" + ] + }, + "scene/3d/visible_on_screen_notifier_3d.h": { + "classes": [ + "VisibleOnScreenNotifier3D", + "VisibleOnScreenEnabler3D" + ], + "structs": [], + "defines": [ + "VISIBLE_ON_SCREEN_NOTIFIER_3D_H" + ] + }, + "scene/3d/world_environment.h": { + "classes": [ + "WorldEnvironment" + ], + "structs": [], + "defines": [ + "WORLD_ENVIRONMENT_H" + ] + }, + "scene/3d/path_3d.h": { + "classes": [ + "Path3D", + "PathFollow3D" + ], + "structs": [], + "defines": [ + "PATH_3D_H" + ] + }, + "scene/3d/voxelizer.h": { + "classes": [ + "Voxelizer" + ], + "structs": [ + "Cell", + "CellSort", + "MaterialCache" + ], + "defines": [ + "VOXELIZER_H" + ] + }, + "scene/3d/mesh_instance_3d.h": { + "classes": [ + "MeshInstance3D" + ], + "structs": [], + "defines": [ + "MESH_INSTANCE_3D_H" + ] + }, + "scene/3d/decal.h": { + "classes": [ + "Decal" + ], + "structs": [], + "defines": [ + "DECAL_H" + ] + }, + "scene/3d/navigation_obstacle_3d.h": { + "classes": [ + "NavigationObstacle3D" + ], + "structs": [], + "defines": [ + "NAVIGATION_OBSTACLE_3D_H" + ] + }, + "scene/3d/navigation_region_3d.h": { + "classes": [ + "NavigationRegion3D" + ], + "structs": [], + "defines": [ + "NAVIGATION_REGION_3D_H" + ] + }, + "scene/3d/navigation_agent_3d.h": { + "classes": [ + "NavigationAgent3D" + ], + "structs": [], + "defines": [ + "NAVIGATION_AGENT_3D_H" + ] + }, + "scene/3d/visual_instance_3d.h": { + "classes": [ + "VisualInstance3D", + "GeometryInstance3D" + ], + "structs": [], + "defines": [ + "VISUAL_INSTANCE_3D_H" + ] + }, + "scene/3d/lightmap_probe.h": { + "classes": [ + "LightmapProbe" + ], + "structs": [], + "defines": [ + "LIGHTMAP_PROBE_H" + ] + }, + "scene/3d/fog_volume.h": { + "classes": [ + "FogVolume" + ], + "structs": [], + "defines": [ + "FOG_VOLUME_H" + ] + }, + "scene/3d/velocity_tracker_3d.h": { + "classes": [ + "VelocityTracker3D" + ], + "structs": [ + "PositionHistory" + ], + "defines": [ + "VELOCITY_TRACKER_3D_H" + ] + }, + "scene/3d/skeleton_3d.h": { + "classes": [ + "SkinReference", + "Skeleton3D" + ], + "structs": [ + "Bone" + ], + "defines": [ + "SKELETON_3D_H" + ] + }, + "scene/3d/cpu_particles_3d.h": { + "classes": [ + "CPUParticles3D" + ], + "structs": [ + "Particle", + "SortLifetime", + "SortAxis" + ], + "defines": [ + "CPU_PARTICLES_3D_H" + ] + }, + "scene/3d/soft_body_3d.h": { + "classes": [ + "SoftBodyRenderingServerHandler", + "SoftBody3D" + ], + "structs": [ + "PinnedPoint" + ], + "defines": [ + "SOFT_BODY_3D_H" + ] + }, + "scene/3d/audio_listener_3d.h": { + "classes": [ + "AudioListener3D" + ], + "structs": [], + "defines": [ + "AUDIO_LISTENER_3D_H" + ] + }, + "scene/3d/gpu_particles_3d.h": { + "classes": [ + "GPUParticles3D" + ], + "structs": [], + "defines": [ + "GPU_PARTICLES_3D_H" + ] + }, + "scene/3d/navigation_link_3d.h": { + "classes": [ + "NavigationLink3D" + ], + "structs": [], + "defines": [ + "NAVIGATION_LINK_3D_H" + ] + }, + "scene/3d/light_3d.h": { + "classes": [ + "Light3D", + "DirectionalLight3D", + "OmniLight3D", + "SpotLight3D" + ], + "structs": [], + "defines": [ + "LIGHT_3D_H" + ] + }, + "scene/3d/skeleton_ik_3d.h": { + "classes": [ + "FabrikInverseKinematic", + "SkeletonIK3D" + ], + "structs": [ + "EndEffector", + "ChainItem", + "ChainTip", + "Chain", + "Task" + ], + "defines": [ + "SKELETON_IK_3D_H" + ] + }, + "scene/3d/occluder_instance_3d.h": { + "classes": [ + "Occluder3D", + "ArrayOccluder3D", + "QuadOccluder3D", + "BoxOccluder3D", + "SphereOccluder3D", + "PolygonOccluder3D", + "OccluderInstance3D" + ], + "structs": [], + "defines": [ + "OCCLUDER_INSTANCE_3D_H" + ] + }, + "scene/3d/xr_body_modifier_3d.h": { + "classes": [ + "XRBodyModifier3D" + ], + "structs": [ + "JointData" + ], + "defines": [ + "XR_BODY_MODIFIER_3D_H" + ] + }, + "scene/3d/xr_face_modifier_3d.h": { + "classes": [ + "XRFaceModifier3D" + ], + "structs": [], + "defines": [ + "XR_FACE_MODIFIER_3D_H" + ] + }, + "scene/3d/bone_attachment_3d.h": { + "classes": [ + "BoneAttachment3D" + ], + "structs": [], + "defines": [ + "BONE_ATTACHMENT_3D_H" + ] + }, + "scene/3d/multimesh_instance_3d.h": { + "classes": [ + "MultiMeshInstance3D" + ], + "structs": [], + "defines": [ + "MULTIMESH_INSTANCE_3D_H" + ] + }, + "scene/3d/gpu_particles_collision_3d.h": { + "classes": [ + "GPUParticlesCollision3D", + "GPUParticlesCollisionSphere3D", + "GPUParticlesCollisionBox3D", + "GPUParticlesCollisionSDF3D", + "GPUParticlesCollisionHeightField3D", + "GPUParticlesAttractor3D", + "GPUParticlesAttractorSphere3D", + "GPUParticlesAttractorBox3D", + "GPUParticlesAttractorVectorField3D" + ], + "structs": [ + "PlotMesh", + "BVH", + "FacePos", + "FaceSort", + "ComputeSDFParams" + ], + "defines": [ + "GPU_PARTICLES_COLLISION_3D_H" + ] + }, + "scene/3d/node_3d.h": { + "classes": [ + "Node3DGizmo", + "Node3D" + ], + "structs": [ + "Data" + ], + "defines": [ + "NODE_3D_H" + ] + }, + "scene/3d/label_3d.h": { + "classes": [ + "Label3D" + ], + "structs": [ + "SurfaceData", + "SurfaceKey", + "SurfaceKeyHasher" + ], + "defines": [ + "LABEL_3D_H" + ] + }, + "scene/3d/lightmap_gi.h": { + "classes": [ + "LightmapGIData", + "LightmapGI" + ], + "structs": [ + "User", + "LightsFound", + "MeshesFound", + "BakeTimeData", + "BSPSimplex", + "BSPNode", + "BakeStepUD", + "GenProbesOctree" + ], + "defines": [ + "LIGHTMAP_GI_H" + ] + }, + "scene/3d/lightmapper.h": { + "classes": [ + "LightmapDenoiser", + "LightmapRaycaster", + "Lightmapper" + ], + "structs": [ + "MeshData" + ], + "defines": [ + "LIGHTMAPPER_H", + "__aligned", + "__aligned" + ] + }, + "scene/3d/importer_mesh_instance_3d.h": { + "classes": [ + "ImporterMeshInstance3D" + ], + "structs": [], + "defines": [ + "IMPORTER_MESH_INSTANCE_3D_H" + ] + }, + "scene/3d/sprite_3d.h": { + "classes": [ + "SpriteBase3D", + "Sprite3D", + "AnimatedSprite3D" + ], + "structs": [], + "defines": [ + "SPRITE_3D_H" + ] + }, + "scene/3d/xr_nodes.h": { + "classes": [ + "XRCamera3D", + "XRNode3D", + "XRController3D", + "XRAnchor3D", + "XROrigin3D" + ], + "structs": [], + "defines": [ + "XR_NODES_H" + ] + }, + "scene/3d/physics/character_body_3d.h": { + "classes": [ + "CharacterBody3D" + ], + "structs": [], + "defines": [ + "CHARACTER_BODY_3D_H" + ] + }, + "scene/3d/physics/collision_object_3d.h": { + "classes": [ + "CollisionObject3D" + ], + "structs": [ + "ShapeData", + "ShapeBase" + ], + "defines": [ + "COLLISION_OBJECT_3D_H" + ] + }, + "scene/3d/physics/kinematic_collision_3d.h": { + "classes": [ + "KinematicCollision3D" + ], + "structs": [], + "defines": [ + "KINEMATIC_COLLISION_3D_H" + ] + }, + "scene/3d/physics/ray_cast_3d.h": { + "classes": [ + "RayCast3D" + ], + "structs": [], + "defines": [ + "RAY_CAST_3D_H" + ] + }, + "scene/3d/physics/physics_body_3d.h": { + "classes": [ + "PhysicsBody3D" + ], + "structs": [], + "defines": [ + "PHYSICS_BODY_3D_H" + ] + }, + "scene/3d/physics/spring_arm_3d.h": { + "classes": [ + "SpringArm3D" + ], + "structs": [], + "defines": [ + "SPRING_ARM_3D_H" + ] + }, + "scene/3d/physics/area_3d.h": { + "classes": [ + "Area3D" + ], + "structs": [ + "ShapePair", + "BodyState", + "AreaShapePair", + "AreaState" + ], + "defines": [ + "AREA_3D_H" + ] + }, + "scene/3d/physics/static_body_3d.h": { + "classes": [ + "StaticBody3D" + ], + "structs": [], + "defines": [ + "STATIC_BODY_3D_H" + ] + }, + "scene/3d/physics/animatable_body_3d.h": { + "classes": [ + "AnimatableBody3D" + ], + "structs": [], + "defines": [ + "ANIMATABLE_BODY_3D_H" + ] + }, + "scene/3d/physics/vehicle_body_3d.h": { + "classes": [ + "VehicleWheel3D", + "VehicleBody3D" + ], + "structs": [ + "RaycastInfo", + "btVehicleWheelContactPoint" + ], + "defines": [ + "VEHICLE_BODY_3D_H" + ] + }, + "scene/3d/physics/physical_bone_3d.h": { + "classes": [ + "PhysicalBone3D" + ], + "structs": [ + "JointData", + "PinJointData", + "ConeJointData", + "HingeJointData", + "SliderJointData", + "SixDOFJointData", + "SixDOFAxisData" + ], + "defines": [ + "PHYSICAL_BONE_3D_H" + ] + }, + "scene/3d/physics/shape_cast_3d.h": { + "classes": [ + "ShapeCast3D" + ], + "structs": [], + "defines": [ + "SHAPE_CAST_3D_H" + ] + }, + "scene/3d/physics/collision_polygon_3d.h": { + "classes": [ + "CollisionPolygon3D" + ], + "structs": [], + "defines": [ + "COLLISION_POLYGON_3D_H" + ] + }, + "scene/3d/physics/collision_shape_3d.h": { + "classes": [ + "CollisionShape3D" + ], + "structs": [], + "defines": [ + "COLLISION_SHAPE_3D_H" + ] + }, + "scene/3d/physics/rigid_body_3d.h": { + "classes": [ + "RigidBody3D" + ], + "structs": [ + "ShapePair", + "RigidBody3D_RemoveAction", + "BodyState", + "ContactMonitor" + ], + "defines": [ + "RIGID_BODY_3D_H" + ] + }, + "scene/3d/physics/joints/cone_twist_joint_3d.h": { + "classes": [ + "ConeTwistJoint3D" + ], + "structs": [], + "defines": [ + "CONE_TWIST_JOINT_3D_H" + ] + }, + "scene/3d/physics/joints/slider_joint_3d.h": { + "classes": [ + "SliderJoint3D" + ], + "structs": [], + "defines": [ + "SLIDER_JOINT_3D_H" + ] + }, + "scene/3d/physics/joints/joint_3d.h": { + "classes": [ + "Joint3D" + ], + "structs": [], + "defines": [ + "JOINT_3D_H" + ] + }, + "scene/3d/physics/joints/hinge_joint_3d.h": { + "classes": [ + "HingeJoint3D" + ], + "structs": [], + "defines": [ + "HINGE_JOINT_3D_H" + ] + }, + "scene/3d/physics/joints/generic_6dof_joint_3d.h": { + "classes": [ + "Generic6DOFJoint3D" + ], + "structs": [], + "defines": [ + "GENERIC_6DOF_JOINT_3D_H" + ] + }, + "scene/3d/physics/joints/pin_joint_3d.h": { + "classes": [ + "PinJoint3D" + ], + "structs": [], + "defines": [ + "PIN_JOINT_3D_H" + ] + }, + "scene/resources/portable_compressed_texture.h": { + "classes": [ + "PortableCompressedTexture2D" + ], + "structs": [], + "defines": [ + "PORTABLE_COMPRESSED_TEXTURE_H" + ] + }, + "scene/resources/style_box_texture.h": { + "classes": [ + "StyleBoxTexture" + ], + "structs": [], + "defines": [ + "STYLE_BOX_TEXTURE_H" + ] + }, + "scene/resources/syntax_highlighter.h": { + "classes": [ + "SyntaxHighlighter", + "CodeHighlighter" + ], + "structs": [ + "ColorRegion" + ], + "defines": [ + "SYNTAX_HIGHLIGHTER_H" + ] + }, + "scene/resources/theme.h": { + "classes": [ + "Theme" + ], + "structs": [], + "defines": [ + "THEME_H" + ] + }, + "scene/resources/animation.h": { + "classes": [ + "Animation" + ], + "structs": [ + "Track", + "Key", + "TKey", + "PositionTrack", + "RotationTrack", + "ScaleTrack", + "BlendShapeTrack", + "ValueTrack", + "MethodKey", + "MethodTrack", + "BezierKey", + "BezierTrack", + "AudioKey", + "AudioTrack", + "AnimationTrack", + "Compression", + "Page" + ], + "defines": [ + "ANIMATION_H", + "ANIM_MIN_LENGTH" + ] + }, + "scene/resources/bit_map.h": { + "classes": [ + "BitMap" + ], + "structs": [], + "defines": [ + "BIT_MAP_H" + ] + }, + "scene/resources/animated_texture.h": { + "classes": [ + "AnimatedTexture" + ], + "structs": [ + "Frame" + ], + "defines": [ + "ANIMATED_TEXTURE_H" + ] + }, + "scene/resources/sprite_frames.h": { + "classes": [ + "SpriteFrames" + ], + "structs": [ + "Frame", + "Anim" + ], + "defines": [ + "SPRITE_FRAMES_H" + ] + }, + "scene/resources/style_box_line.h": { + "classes": [ + "StyleBoxLine" + ], + "structs": [], + "defines": [ + "STYLE_BOX_LINE_H" + ] + }, + "scene/resources/shader.h": { + "classes": [ + "Shader", + "ResourceFormatLoaderShader", + "ResourceFormatSaverShader" + ], + "structs": [], + "defines": [ + "SHADER_H" + ] + }, + "scene/resources/surface_tool.h": { + "classes": [ + "SurfaceTool" + ], + "structs": [ + "Vertex", + "VertexHasher", + "SmoothGroupVertex", + "SmoothGroupVertexHasher", + "TriangleHasher", + "WeightSort" + ], + "defines": [ + "SURFACE_TOOL_H" + ] + }, + "scene/resources/text_paragraph.h": { + "classes": [ + "TextParagraph" + ], + "structs": [], + "defines": [ + "TEXT_PARAGRAPH_H" + ] + }, + "scene/resources/compressed_texture.h": { + "classes": [ + "CompressedTexture2D", + "ResourceFormatLoaderCompressedTexture2D", + "CompressedTextureLayered", + "ResourceFormatLoaderCompressedTextureLayered", + "CompressedTexture2DArray", + "CompressedCubemap", + "CompressedCubemapArray", + "CompressedTexture3D", + "ResourceFormatLoaderCompressedTexture3D" + ], + "structs": [], + "defines": [ + "COMPRESSED_TEXTURE_H" + ] + }, + "scene/resources/gradient.h": { + "classes": [ + "Gradient" + ], + "structs": [ + "Point" + ], + "defines": [ + "GRADIENT_H" + ] + }, + "scene/resources/navigation_polygon.h": { + "classes": [ + "NavigationPolygon" + ], + "structs": [ + "Polygon" + ], + "defines": [ + "NAVIGATION_POLYGON_H" + ] + }, + "scene/resources/visual_shader.h": { + "classes": [ + "VisualShader", + "VisualShaderNode", + "VisualShaderNodeCustom", + "VisualShaderNodeInput", + "VisualShaderNodeOutput", + "VisualShaderNodeParameter", + "VisualShaderNodeParameterRef", + "VisualShaderNodeResizableBase", + "VisualShaderNodeComment", + "VisualShaderNodeGroupBase", + "VisualShaderNodeExpression", + "VisualShaderNodeGlobalExpression", + "VisualShaderNodeVarying", + "VisualShaderNodeVaryingSetter", + "VisualShaderNodeVaryingGetter" + ], + "structs": [ + "Connection", + "DefaultTextureParam", + "Varying", + "Node", + "Graph", + "Port", + "Property", + "DropDownListProperty", + "Port", + "Port", + "Parameter", + "Port", + "Varying" + ], + "defines": [ + "VISUAL_SHADER_H" + ] + }, + "scene/resources/navigation_mesh_source_geometry_data_2d.h": { + "classes": [ + "NavigationMeshSourceGeometryData2D" + ], + "structs": [], + "defines": [ + "NAVIGATION_MESH_SOURCE_GEOMETRY_DATA_2D_H" + ] + }, + "scene/resources/material.h": { + "classes": [ + "Material", + "ShaderMaterial", + "BaseMaterial3D", + "StandardMaterial3D", + "ORMMaterial3D", + "PlaceholderMaterial" + ], + "structs": [ + "MaterialKey", + "ShaderData", + "ShaderNames" + ], + "defines": [ + "MATERIAL_H" + ] + }, + "scene/resources/animation_library.h": { + "classes": [ + "AnimationLibrary" + ], + "structs": [], + "defines": [ + "ANIMATION_LIBRARY_H" + ] + }, + "scene/resources/multimesh.h": { + "classes": [ + "MultiMesh" + ], + "structs": [], + "defines": [ + "MULTIMESH_H" + ] + }, + "scene/resources/text_file.h": { + "classes": [ + "TextFile" + ], + "structs": [], + "defines": [ + "TEXT_FILE_H" + ] + }, + "scene/resources/audio_stream_wav.h": { + "classes": [ + "AudioStreamPlaybackWAV", + "AudioStreamWAV" + ], + "structs": [ + "IMA_ADPCM_State" + ], + "defines": [ + "AUDIO_STREAM_WAV_H" + ] + }, + "scene/resources/style_box_flat.h": { + "classes": [ + "StyleBoxFlat" + ], + "structs": [], + "defines": [ + "STYLE_BOX_FLAT_H" + ] + }, + "scene/resources/navigation_mesh_source_geometry_data_3d.h": { + "classes": [ + "NavigationMeshSourceGeometryData3D" + ], + "structs": [], + "defines": [ + "NAVIGATION_MESH_SOURCE_GEOMETRY_DATA_3D_H" + ] + }, + "scene/resources/mesh_data_tool.h": { + "classes": [ + "MeshDataTool" + ], + "structs": [ + "Vertex", + "Edge", + "Face" + ], + "defines": [ + "MESH_DATA_TOOL_H" + ] + }, + "scene/resources/physics_material.h": { + "classes": [ + "PhysicsMaterial" + ], + "structs": [], + "defines": [ + "PHYSICS_MATERIAL_H" + ] + }, + "scene/resources/particle_process_material.h": { + "classes": [ + "ParticleProcessMaterial" + ], + "structs": [ + "MaterialKey", + "ShaderData", + "ShaderNames" + ], + "defines": [ + "PARTICLE_PROCESS_MATERIAL_H" + ] + }, + "scene/resources/mesh.h": { + "classes": [ + "Mesh", + "MeshConvexDecompositionSettings", + "ArrayMesh", + "PlaceholderMesh" + ], + "structs": [ + "Surface" + ], + "defines": [ + "MESH_H" + ] + }, + "scene/resources/compositor.h": { + "classes": [ + "CompositorEffect", + "Compositor" + ], + "structs": [], + "defines": [ + "COMPOSITOR_H" + ] + }, + "scene/resources/environment.h": { + "classes": [ + "Environment" + ], + "structs": [], + "defines": [ + "ENVIRONMENT_H" + ] + }, + "scene/resources/curve.h": { + "classes": [ + "Curve", + "Curve2D", + "Curve3D" + ], + "structs": [ + "Point", + "Point", + "BakedPoint", + "Interval", + "Point", + "Interval" + ], + "defines": [ + "CURVE_H" + ] + }, + "scene/resources/texture_rd.h": { + "classes": [ + "Texture2DRD", + "TextureLayeredRD", + "Texture2DArrayRD", + "TextureCubemapRD", + "TextureCubemapArrayRD", + "Texture3DRD" + ], + "structs": [], + "defines": [ + "TEXTURE_RD_H" + ] + }, + "scene/resources/visual_shader_particle_nodes.h": { + "classes": [ + "VisualShaderNodeParticleEmitter", + "VisualShaderNodeParticleSphereEmitter", + "VisualShaderNodeParticleBoxEmitter", + "VisualShaderNodeParticleRingEmitter", + "VisualShaderNodeParticleMeshEmitter", + "VisualShaderNodeParticleMultiplyByAxisAngle", + "VisualShaderNodeParticleConeVelocity", + "VisualShaderNodeParticleRandomness", + "VisualShaderNodeParticleAccelerator", + "VisualShaderNodeParticleOutput", + "VisualShaderNodeParticleEmit" + ], + "structs": [], + "defines": [ + "VISUAL_SHADER_PARTICLE_NODES_H" + ] + }, + "scene/resources/visual_shader_nodes.h": { + "classes": [ + "VisualShaderNodeVectorBase", + "VisualShaderNodeConstant", + "VisualShaderNodeFloatConstant", + "VisualShaderNodeIntConstant", + "VisualShaderNodeUIntConstant", + "VisualShaderNodeBooleanConstant", + "VisualShaderNodeColorConstant", + "VisualShaderNodeVec2Constant", + "VisualShaderNodeVec3Constant", + "VisualShaderNodeVec4Constant", + "VisualShaderNodeTransformConstant", + "VisualShaderNodeTexture", + "VisualShaderNodeCurveTexture", + "VisualShaderNodeCurveXYZTexture", + "VisualShaderNodeSample3D", + "VisualShaderNodeTexture2DArray", + "VisualShaderNodeTexture3D", + "VisualShaderNodeCubemap", + "VisualShaderNodeLinearSceneDepth", + "VisualShaderNodeWorldPositionFromDepth", + "VisualShaderNodeScreenNormalWorldSpace", + "VisualShaderNodeFloatOp", + "VisualShaderNodeIntOp", + "VisualShaderNodeUIntOp", + "VisualShaderNodeVectorOp", + "VisualShaderNodeColorOp", + "VisualShaderNodeTransformOp", + "VisualShaderNodeTransformVecMult", + "VisualShaderNodeFloatFunc", + "VisualShaderNodeIntFunc", + "VisualShaderNodeUIntFunc", + "VisualShaderNodeVectorFunc", + "VisualShaderNodeColorFunc", + "VisualShaderNodeTransformFunc", + "VisualShaderNodeUVFunc", + "VisualShaderNodeUVPolarCoord", + "VisualShaderNodeDotProduct", + "VisualShaderNodeVectorLen", + "VisualShaderNodeDeterminant", + "VisualShaderNodeClamp", + "VisualShaderNodeDerivativeFunc", + "VisualShaderNodeFaceForward", + "VisualShaderNodeOuterProduct", + "VisualShaderNodeStep", + "VisualShaderNodeSmoothStep", + "VisualShaderNodeVectorDistance", + "VisualShaderNodeVectorRefract", + "VisualShaderNodeMix", + "VisualShaderNodeVectorCompose", + "VisualShaderNodeTransformCompose", + "VisualShaderNodeVectorDecompose", + "VisualShaderNodeTransformDecompose", + "VisualShaderNodeFloatParameter", + "VisualShaderNodeIntParameter", + "VisualShaderNodeUIntParameter", + "VisualShaderNodeBooleanParameter", + "VisualShaderNodeColorParameter", + "VisualShaderNodeVec2Parameter", + "VisualShaderNodeVec3Parameter", + "VisualShaderNodeVec4Parameter", + "VisualShaderNodeTransformParameter", + "VisualShaderNodeTextureParameter", + "VisualShaderNodeTexture2DParameter", + "VisualShaderNodeTextureParameterTriplanar", + "VisualShaderNodeTexture2DArrayParameter", + "VisualShaderNodeTexture3DParameter", + "VisualShaderNodeCubemapParameter", + "VisualShaderNodeIf", + "VisualShaderNodeSwitch", + "VisualShaderNodeFresnel", + "VisualShaderNodeIs", + "VisualShaderNodeCompare", + "VisualShaderNodeMultiplyAdd", + "VisualShaderNodeBillboard", + "VisualShaderNodeDistanceFade", + "VisualShaderNodeProximityFade", + "VisualShaderNodeRandomRange", + "VisualShaderNodeRemap", + "VisualShaderNodeRotationByAxis" + ], + "structs": [], + "defines": [ + "VISUAL_SHADER_NODES_H" + ] + }, + "scene/resources/shader_include.h": { + "classes": [ + "ShaderInclude", + "ResourceFormatLoaderShaderInclude", + "ResourceFormatSaverShaderInclude" + ], + "structs": [], + "defines": [ + "SHADER_INCLUDE_H" + ] + }, + "scene/resources/camera_texture.h": { + "classes": [ + "CameraTexture" + ], + "structs": [], + "defines": [ + "CAMERA_TEXTURE_H" + ] + }, + "scene/resources/placeholder_textures.h": { + "classes": [ + "PlaceholderTexture2D", + "PlaceholderTexture3D", + "PlaceholderTextureLayered", + "PlaceholderTexture2DArray", + "PlaceholderCubemap", + "PlaceholderCubemapArray" + ], + "structs": [], + "defines": [ + "PLACEHOLDER_TEXTURES_H" + ] + }, + "scene/resources/navigation_mesh.h": { + "classes": [ + "NavigationMesh" + ], + "structs": [ + "Polygon" + ], + "defines": [ + "NAVIGATION_MESH_H" + ] + }, + "scene/resources/resource_format_text.h": { + "classes": [ + "ResourceLoaderText", + "DummyResource", + "ResourceFormatLoaderText", + "ResourceFormatSaverTextInstance", + "ResourceFormatSaverText" + ], + "structs": [ + "ExtResource", + "DummyReadData", + "NonPersistentKey", + "ResourceSort" + ], + "defines": [ + "RESOURCE_FORMAT_TEXT_H" + ] + }, + "scene/resources/style_box.h": { + "classes": [ + "StyleBox", + "StyleBoxEmpty" + ], + "structs": [], + "defines": [ + "STYLE_BOX_H" + ] + }, + "scene/resources/mesh_texture.h": { + "classes": [ + "MeshTexture" + ], + "structs": [], + "defines": [ + "MESH_TEXTURE_H" + ] + }, + "scene/resources/font.h": { + "classes": [ + "Font", + "FontFile", + "FontVariation", + "SystemFont" + ], + "structs": [ + "ShapedTextKey", + "ShapedTextKeyHasher", + "Variation" + ], + "defines": [ + "FONT_H" + ] + }, + "scene/resources/texture.h": { + "classes": [ + "Texture", + "Texture2D", + "TextureLayered", + "Texture3D" + ], + "structs": [], + "defines": [ + "TEXTURE_H" + ] + }, + "scene/resources/audio_stream_polyphonic.h": { + "classes": [ + "AudioStreamPolyphonic", + "AudioStreamPlaybackPolyphonic" + ], + "structs": [ + "Stream" + ], + "defines": [ + "AUDIO_STREAM_POLYPHONIC_H" + ] + }, + "scene/resources/skeleton_profile.h": { + "classes": [ + "SkeletonProfile", + "SkeletonProfileHumanoid" + ], + "structs": [ + "SkeletonProfileGroup", + "SkeletonProfileBone" + ], + "defines": [ + "SKELETON_PROFILE_H" + ] + }, + "scene/resources/label_settings.h": { + "classes": [ + "LabelSettings" + ], + "structs": [], + "defines": [ + "LABEL_SETTINGS_H" + ] + }, + "scene/resources/world_2d.h": { + "classes": [ + "World2D" + ], + "structs": [], + "defines": [ + "WORLD_2D_H" + ] + }, + "scene/resources/visual_shader_sdf_nodes.h": { + "classes": [ + "VisualShaderNodeSDFToScreenUV", + "VisualShaderNodeScreenUVToSDF", + "VisualShaderNodeTextureSDF", + "VisualShaderNodeTextureSDFNormal", + "VisualShaderNodeSDFRaymarch" + ], + "structs": [], + "defines": [ + "VISUAL_SHADER_SDF_NODES_H" + ] + }, + "scene/resources/video_stream.h": { + "classes": [ + "VideoStreamPlayback", + "VideoStream" + ], + "structs": [], + "defines": [ + "VIDEO_STREAM_H" + ] + }, + "scene/resources/packed_scene.h": { + "classes": [ + "SceneState", + "PackedScene" + ], + "structs": [ + "NodeData", + "Property", + "DeferredNodePathProperties", + "ConnectionData", + "PackState" + ], + "defines": [ + "PACKED_SCENE_H" + ] + }, + "scene/resources/gradient_texture.h": { + "classes": [ + "GradientTexture1D", + "GradientTexture2D" + ], + "structs": [], + "defines": [ + "GRADIENT_TEXTURE_H" + ] + }, + "scene/resources/atlas_texture.h": { + "classes": [ + "AtlasTexture" + ], + "structs": [], + "defines": [ + "ATLAS_TEXTURE_H" + ] + }, + "scene/resources/bone_map.h": { + "classes": [ + "BoneMap" + ], + "structs": [], + "defines": [ + "BONE_MAP_H" + ] + }, + "scene/resources/immediate_mesh.h": { + "classes": [ + "ImmediateMesh" + ], + "structs": [ + "Surface" + ], + "defines": [ + "IMMEDIATE_MESH_H" + ] + }, + "scene/resources/camera_attributes.h": { + "classes": [ + "CameraAttributes", + "CameraAttributesPractical", + "CameraAttributesPhysical" + ], + "structs": [], + "defines": [ + "CAMERA_ATTRIBUTES_H" + ] + }, + "scene/resources/curve_texture.h": { + "classes": [ + "CurveTexture", + "CurveXYZTexture" + ], + "structs": [], + "defines": [ + "CURVE_TEXTURE_H" + ] + }, + "scene/resources/canvas_item_material.h": { + "classes": [ + "CanvasItemMaterial" + ], + "structs": [ + "ShaderNames", + "ShaderData" + ], + "defines": [ + "CANVAS_ITEM_MATERIAL_H" + ] + }, + "scene/resources/text_line.h": { + "classes": [ + "TextLine" + ], + "structs": [], + "defines": [ + "TEXT_LINE_H" + ] + }, + "scene/resources/image_texture.h": { + "classes": [ + "ImageTexture", + "ImageTextureLayered", + "ImageTexture3D", + "Texture2DArray", + "Cubemap", + "CubemapArray" + ], + "structs": [], + "defines": [ + "IMAGE_TEXTURE_H" + ] + }, + "scene/resources/sky.h": { + "classes": [ + "Sky" + ], + "structs": [], + "defines": [ + "SKY_H" + ] + }, + "scene/resources/3d/concave_polygon_shape_3d.h": { + "classes": [ + "ConcavePolygonShape3D" + ], + "structs": [ + "DrawEdge" + ], + "defines": [ + "CONCAVE_POLYGON_SHAPE_3D_H" + ] + }, + "scene/resources/3d/capsule_shape_3d.h": { + "classes": [ + "CapsuleShape3D" + ], + "structs": [], + "defines": [ + "CAPSULE_SHAPE_3D_H" + ] + }, + "scene/resources/3d/cylinder_shape_3d.h": { + "classes": [ + "CylinderShape3D" + ], + "structs": [], + "defines": [ + "CYLINDER_SHAPE_3D_H" + ] + }, + "scene/resources/3d/shape_3d.h": { + "classes": [ + "Shape3D" + ], + "structs": [], + "defines": [ + "SHAPE_3D_H" + ] + }, + "scene/resources/3d/mesh_library.h": { + "classes": [ + "MeshLibrary" + ], + "structs": [ + "ShapeData", + "Item" + ], + "defines": [ + "MESH_LIBRARY_H" + ] + }, + "scene/resources/3d/sky_material.h": { + "classes": [ + "ProceduralSkyMaterial", + "PanoramaSkyMaterial", + "PhysicalSkyMaterial" + ], + "structs": [], + "defines": [ + "SKY_MATERIAL_H" + ] + }, + "scene/resources/3d/height_map_shape_3d.h": { + "classes": [ + "HeightMapShape3D" + ], + "structs": [], + "defines": [ + "HEIGHT_MAP_SHAPE_3D_H" + ] + }, + "scene/resources/3d/sphere_shape_3d.h": { + "classes": [ + "SphereShape3D" + ], + "structs": [], + "defines": [ + "SPHERE_SHAPE_3D_H" + ] + }, + "scene/resources/3d/skin.h": { + "classes": [ + "Skin" + ], + "structs": [ + "Bind" + ], + "defines": [ + "SKIN_H" + ] + }, + "scene/resources/3d/fog_material.h": { + "classes": [ + "FogMaterial" + ], + "structs": [], + "defines": [ + "FOG_MATERIAL_H" + ] + }, + "scene/resources/3d/box_shape_3d.h": { + "classes": [ + "BoxShape3D" + ], + "structs": [], + "defines": [ + "BOX_SHAPE_3D_H" + ] + }, + "scene/resources/3d/importer_mesh.h": { + "classes": [ + "ImporterMesh" + ], + "structs": [ + "Surface", + "BlendShape", + "LOD", + "LODComparator" + ], + "defines": [ + "IMPORTER_MESH_H" + ] + }, + "scene/resources/3d/convex_polygon_shape_3d.h": { + "classes": [ + "ConvexPolygonShape3D" + ], + "structs": [], + "defines": [ + "CONVEX_POLYGON_SHAPE_3D_H" + ] + }, + "scene/resources/3d/world_boundary_shape_3d.h": { + "classes": [ + "WorldBoundaryShape3D" + ], + "structs": [], + "defines": [ + "WORLD_BOUNDARY_SHAPE_3D_H" + ] + }, + "scene/resources/3d/primitive_meshes.h": { + "classes": [ + "PrimitiveMesh", + "CapsuleMesh", + "BoxMesh", + "CylinderMesh", + "PlaneMesh", + "QuadMesh", + "PrismMesh", + "SphereMesh", + "TorusMesh", + "PointMesh", + "TubeTrailMesh", + "RibbonTrailMesh", + "TextMesh" + ], + "structs": [ + "ContourPoint", + "ContourInfo", + "GlyphMeshKey", + "GlyphMeshKeyHasher", + "GlyphMeshData" + ], + "defines": [ + "PRIMITIVE_MESHES_H" + ] + }, + "scene/resources/3d/separation_ray_shape_3d.h": { + "classes": [ + "SeparationRayShape3D" + ], + "structs": [], + "defines": [ + "SEPARATION_RAY_SHAPE_3D_H" + ] + }, + "scene/resources/3d/world_3d.h": { + "classes": [ + "World3D" + ], + "structs": [], + "defines": [ + "WORLD_3D_H" + ] + }, + "scene/resources/default_theme/default_theme_icons.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "_DEFAULT_THEME_ICONS_H" + ] + }, + "scene/resources/default_theme/default_font.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "_DEFAULT_FONTS_H" + ] + }, + "scene/resources/2d/capsule_shape_2d.h": { + "classes": [ + "CapsuleShape2D" + ], + "structs": [], + "defines": [ + "CAPSULE_SHAPE_2D_H" + ] + }, + "scene/resources/2d/shape_2d.h": { + "classes": [ + "Shape2D" + ], + "structs": [], + "defines": [ + "SHAPE_2D_H" + ] + }, + "scene/resources/2d/circle_shape_2d.h": { + "classes": [ + "CircleShape2D" + ], + "structs": [], + "defines": [ + "CIRCLE_SHAPE_2D_H" + ] + }, + "scene/resources/2d/tile_set.h": { + "classes": [ + "TileMapPattern", + "TileSet", + "TerrainsPattern", + "TileSetSource", + "TileSetAtlasSource", + "TileSetScenesCollectionSource", + "TileData" + ], + "structs": [ + "CompatibilityShapeData", + "CompatibilityTileData", + "PackedSceneSource", + "OcclusionLayer", + "PhysicsLayer", + "Terrain", + "TerrainSet", + "NavigationLayer", + "CustomDataLayer", + "TileAlternativesData", + "SceneData", + "OcclusionLayerTileData", + "PhysicsLayerTileData", + "PolygonShapeTileData", + "NavigationLayerTileData" + ], + "defines": [ + "TILE_SET_H" + ] + }, + "scene/resources/2d/polygon_path_finder.h": { + "classes": [ + "PolygonPathFinder" + ], + "structs": [ + "Point" + ], + "defines": [ + "POLYGON_PATH_FINDER_H" + ] + }, + "scene/resources/2d/concave_polygon_shape_2d.h": { + "classes": [ + "ConcavePolygonShape2D" + ], + "structs": [], + "defines": [ + "CONCAVE_POLYGON_SHAPE_2D_H" + ] + }, + "scene/resources/2d/rectangle_shape_2d.h": { + "classes": [ + "RectangleShape2D" + ], + "structs": [], + "defines": [ + "RECTANGLE_SHAPE_2D_H" + ] + }, + "scene/resources/2d/segment_shape_2d.h": { + "classes": [ + "SegmentShape2D" + ], + "structs": [], + "defines": [ + "SEGMENT_SHAPE_2D_H" + ] + }, + "scene/resources/2d/separation_ray_shape_2d.h": { + "classes": [ + "SeparationRayShape2D" + ], + "structs": [], + "defines": [ + "SEPARATION_RAY_SHAPE_2D_H" + ] + }, + "scene/resources/2d/convex_polygon_shape_2d.h": { + "classes": [ + "ConvexPolygonShape2D" + ], + "structs": [], + "defines": [ + "CONVEX_POLYGON_SHAPE_2D_H" + ] + }, + "scene/resources/2d/world_boundary_shape_2d.h": { + "classes": [ + "WorldBoundaryShape2D" + ], + "structs": [], + "defines": [ + "WORLD_BOUNDARY_SHAPE_2D_H" + ] + }, + "scene/resources/2d/skeleton/skeleton_modification_2d.h": { + "classes": [ + "SkeletonModification2D" + ], + "structs": [], + "defines": [ + "SKELETON_MODIFICATION_2D_H" + ] + }, + "scene/resources/2d/skeleton/skeleton_modification_2d_ccdik.h": { + "classes": [ + "SkeletonModification2DCCDIK" + ], + "structs": [ + "CCDIK_Joint_Data2D" + ], + "defines": [ + "SKELETON_MODIFICATION_2D_CCDIK_H" + ] + }, + "scene/resources/2d/skeleton/skeleton_modification_2d_stackholder.h": { + "classes": [ + "SkeletonModification2DStackHolder" + ], + "structs": [], + "defines": [ + "SKELETON_MODIFICATION_2D_STACKHOLDER_H" + ] + }, + "scene/resources/2d/skeleton/skeleton_modification_2d_lookat.h": { + "classes": [ + "SkeletonModification2DLookAt" + ], + "structs": [], + "defines": [ + "SKELETON_MODIFICATION_2D_LOOKAT_H" + ] + }, + "scene/resources/2d/skeleton/skeleton_modification_2d_jiggle.h": { + "classes": [ + "SkeletonModification2DJiggle" + ], + "structs": [ + "Jiggle_Joint_Data2D" + ], + "defines": [ + "SKELETON_MODIFICATION_2D_JIGGLE_H" + ] + }, + "scene/resources/2d/skeleton/skeleton_modification_2d_twoboneik.h": { + "classes": [ + "SkeletonModification2DTwoBoneIK" + ], + "structs": [], + "defines": [ + "SKELETON_MODIFICATION_2D_TWOBONEIK_H" + ] + }, + "scene/resources/2d/skeleton/skeleton_modification_2d_physicalbones.h": { + "classes": [ + "SkeletonModification2DPhysicalBones" + ], + "structs": [ + "PhysicalBone_Data2D" + ], + "defines": [ + "SKELETON_MODIFICATION_2D_PHYSICALBONES_H" + ] + }, + "scene/resources/2d/skeleton/skeleton_modification_stack_2d.h": { + "classes": [ + "SkeletonModificationStack2D" + ], + "structs": [], + "defines": [ + "SKELETON_MODIFICATION_STACK_2D_H" + ] + }, + "scene/resources/2d/skeleton/skeleton_modification_2d_fabrik.h": { + "classes": [ + "SkeletonModification2DFABRIK" + ], + "structs": [ + "FABRIK_Joint_Data2D" + ], + "defines": [ + "SKELETON_MODIFICATION_2D_FABRIK_H" + ] + }, + "scene/animation/tween.h": { + "classes": [ + "Tweener", + "Tween", + "PropertyTweener", + "IntervalTweener", + "CallbackTweener", + "MethodTweener" + ], + "structs": [], + "defines": [ + "TWEEN_H" + ] + }, + "scene/animation/animation_node_state_machine.h": { + "classes": [ + "AnimationNodeStateMachineTransition", + "AnimationNodeStateMachine", + "AnimationNodeStateMachinePlayback" + ], + "structs": [ + "State", + "Transition", + "AStarCost", + "TransitionInfo", + "NextInfo", + "ChildStateMachineInfo" + ], + "defines": [ + "ANIMATION_NODE_STATE_MACHINE_H" + ] + }, + "scene/animation/animation_blend_space_2d.h": { + "classes": [ + "AnimationNodeBlendSpace2D" + ], + "structs": [ + "BlendPoint", + "BlendTriangle" + ], + "defines": [ + "ANIMATION_BLEND_SPACE_2D_H" + ] + }, + "scene/animation/animation_mixer.h": { + "classes": [ + "AnimationMixer", + "AnimatedValuesBackup" + ], + "structs": [ + "AnimationLibraryData", + "AnimationData", + "PlaybackInfo", + "AnimationInstance", + "TrackCache", + "TrackCacheTransform", + "RootMotionCache", + "TrackCacheBlendShape", + "TrackCacheValue", + "TrackCacheMethod", + "PlayingAudioStreamInfo", + "PlayingAudioTrackInfo", + "TrackCacheAudio", + "TrackCacheAnimation", + "CaptureCache" + ], + "defines": [ + "ANIMATION_MIXER_H" + ] + }, + "scene/animation/animation_blend_space_1d.h": { + "classes": [ + "AnimationNodeBlendSpace1D" + ], + "structs": [ + "BlendPoint" + ], + "defines": [ + "ANIMATION_BLEND_SPACE_1D_H" + ] + }, + "scene/animation/animation_tree.h": { + "classes": [ + "AnimationNode", + "AnimationRootNode", + "AnimationNodeStartState", + "AnimationNodeEndState", + "AnimationTree" + ], + "structs": [ + "Input", + "NodeState", + "ProcessState", + "ChildNode", + "Activity" + ], + "defines": [ + "ANIMATION_TREE_H", + "HUGE_LENGTH" + ] + }, + "scene/animation/animation_blend_tree.h": { + "classes": [ + "AnimationNodeAnimation", + "AnimationNodeSync", + "AnimationNodeOneShot", + "AnimationNodeAdd2", + "AnimationNodeAdd3", + "AnimationNodeBlend2", + "AnimationNodeBlend3", + "AnimationNodeSub2", + "AnimationNodeTimeScale", + "AnimationNodeTimeSeek", + "AnimationNodeTransition", + "AnimationNodeOutput", + "AnimationNodeBlendTree" + ], + "structs": [ + "InputData", + "Node", + "NodeConnection" + ], + "defines": [ + "ANIMATION_BLEND_TREE_H" + ] + }, + "scene/animation/easing_equations.h": { + "classes": [], + "structs": [], + "defines": [ + "EASING_EQUATIONS_H" + ] + }, + "scene/animation/animation_player.h": { + "classes": [ + "AnimationPlayer" + ], + "structs": [ + "PlaybackData", + "Blend", + "Playback", + "BlendKey" + ], + "defines": [ + "ANIMATION_PLAYER_H" + ] + }, + "scene/animation/root_motion_view.h": { + "classes": [ + "RootMotionView" + ], + "structs": [], + "defines": [ + "ROOT_MOTION_VIEW_H" + ] + }, + "scene/audio/audio_stream_player_internal.h": { + "classes": [ + "AudioStreamPlayerInternal" + ], + "structs": [ + "ParameterData" + ], + "defines": [ + "AUDIO_STREAM_PLAYER_INTERNAL_H" + ] + }, + "scene/audio/audio_stream_player.h": { + "classes": [ + "AudioStreamPlayer" + ], + "structs": [], + "defines": [ + "AUDIO_STREAM_PLAYER_H" + ] + }, + "scene/theme/default_theme_icons.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "_DEFAULT_THEME_ICONS_H" + ] + }, + "scene/theme/default_theme.h": { + "classes": [], + "structs": [], + "defines": [ + "DEFAULT_THEME_H" + ] + }, + "scene/theme/theme_owner.h": { + "classes": [ + "ThemeOwner" + ], + "structs": [], + "defines": [ + "THEME_OWNER_H" + ] + }, + "scene/theme/theme_db.h": { + "classes": [ + "ThemeDB", + "ThemeContext" + ], + "structs": [ + "ThemeItemBind", + "SortByType" + ], + "defines": [ + "THEME_DB_H", + "BIND_THEME_ITEM", + "BIND_THEME_ITEM_CUSTOM", + "BIND_THEME_ITEM_EXT" + ] + }, + "scene/theme/default_font.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "_DEFAULT_FONTS_H" + ] + }, + "scene/gui/video_stream_player.h": { + "classes": [ + "VideoStreamPlayer" + ], + "structs": [ + "Output" + ], + "defines": [ + "VIDEO_STREAM_PLAYER_H" + ] + }, + "scene/gui/file_dialog.h": { + "classes": [ + "FileDialog" + ], + "structs": [ + "ThemeCache", + "Option" + ], + "defines": [ + "FILE_DIALOG_H" + ] + }, + "scene/gui/item_list.h": { + "classes": [ + "ItemList" + ], + "structs": [ + "Item", + "ThemeCache" + ], + "defines": [ + "ITEM_LIST_H" + ] + }, + "scene/gui/progress_bar.h": { + "classes": [ + "ProgressBar" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "PROGRESS_BAR_H" + ] + }, + "scene/gui/control.h": { + "classes": [ + "Control" + ], + "structs": [ + "CComparator", + "Data" + ], + "defines": [ + "CONTROL_H", + "SET_DRAG_FORWARDING_CD", + "SET_DRAG_FORWARDING_CDU", + "SET_DRAG_FORWARDING_GCD", + "SET_DRAG_FORWARDING_GCDU" + ] + }, + "scene/gui/range.h": { + "classes": [ + "Range" + ], + "structs": [ + "Shared" + ], + "defines": [ + "RANGE_H" + ] + }, + "scene/gui/label.h": { + "classes": [ + "Label" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "LABEL_H" + ] + }, + "scene/gui/graph_edit.h": { + "classes": [ + "GraphEditFilter", + "GraphEditMinimap", + "GraphEdit" + ], + "structs": [ + "ThemeCache", + "Connection", + "Cache", + "ConnectionType", + "ThemeCache" + ], + "defines": [ + "GRAPH_EDIT_H" + ] + }, + "scene/gui/text_edit.h": { + "classes": [ + "TextEdit", + "Text" + ], + "structs": [ + "GutterInfo", + "Gutter", + "Line", + "TextOperation", + "LineDrawingCache", + "Selection", + "Caret", + "ThemeCache", + "BraceMatchingData" + ], + "defines": [ + "TEXT_EDIT_H" + ] + }, + "scene/gui/popup.h": { + "classes": [ + "Popup", + "PopupPanel" + ], + "structs": [ + "ThemeCache", + "ThemeCache" + ], + "defines": [ + "POPUP_H" + ] + }, + "scene/gui/spin_box.h": { + "classes": [ + "SpinBox" + ], + "structs": [ + "Drag", + "ThemeCache" + ], + "defines": [ + "SPIN_BOX_H" + ] + }, + "scene/gui/flow_container.h": { + "classes": [ + "FlowContainer", + "HFlowContainer", + "VFlowContainer" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "FLOW_CONTAINER_H" + ] + }, + "scene/gui/container.h": { + "classes": [ + "Container" + ], + "structs": [], + "defines": [ + "CONTAINER_H" + ] + }, + "scene/gui/rich_text_effect.h": { + "classes": [ + "CharFXTransform", + "RichTextEffect" + ], + "structs": [], + "defines": [ + "RICH_TEXT_EFFECT_H" + ] + }, + "scene/gui/graph_element.h": { + "classes": [ + "GraphElement" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "GRAPH_ELEMENT_H" + ] + }, + "scene/gui/code_edit.h": { + "classes": [ + "CodeEdit" + ], + "structs": [ + "BracePair", + "Delimiter", + "ThemeCache", + "CodeCompletionOptionCompare" + ], + "defines": [ + "CODE_EDIT_H" + ] + }, + "scene/gui/base_button.h": { + "classes": [ + "BaseButton", + "ButtonGroup" + ], + "structs": [ + "Status" + ], + "defines": [ + "BASE_BUTTON_H" + ] + }, + "scene/gui/graph_node.h": { + "classes": [ + "GraphNode" + ], + "structs": [ + "Slot", + "PortCache", + "_MinSizeCache", + "ThemeCache" + ], + "defines": [ + "GRAPH_NODE_H" + ] + }, + "scene/gui/texture_progress_bar.h": { + "classes": [ + "TextureProgressBar" + ], + "structs": [], + "defines": [ + "TEXTURE_PROGRESS_BAR_H" + ] + }, + "scene/gui/tree.h": { + "classes": [ + "TreeItem", + "Tree" + ], + "structs": [ + "Cell", + "Button", + "ColumnInfo", + "ThemeCache", + "Cache" + ], + "defines": [ + "TREE_H" + ] + }, + "scene/gui/margin_container.h": { + "classes": [ + "MarginContainer" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "MARGIN_CONTAINER_H" + ] + }, + "scene/gui/nine_patch_rect.h": { + "classes": [ + "NinePatchRect" + ], + "structs": [], + "defines": [ + "NINE_PATCH_RECT_H" + ] + }, + "scene/gui/texture_button.h": { + "classes": [ + "TextureButton" + ], + "structs": [], + "defines": [ + "TEXTURE_BUTTON_H" + ] + }, + "scene/gui/box_container.h": { + "classes": [ + "BoxContainer", + "HBoxContainer", + "VBoxContainer" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "BOX_CONTAINER_H" + ] + }, + "scene/gui/scroll_bar.h": { + "classes": [ + "ScrollBar", + "HScrollBar", + "VScrollBar" + ], + "structs": [ + "Drag", + "ThemeCache" + ], + "defines": [ + "SCROLL_BAR_H" + ] + }, + "scene/gui/dialogs.h": { + "classes": [ + "AcceptDialog", + "ConfirmationDialog" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "DIALOGS_H" + ] + }, + "scene/gui/scroll_container.h": { + "classes": [ + "ScrollContainer" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "SCROLL_CONTAINER_H" + ] + }, + "scene/gui/aspect_ratio_container.h": { + "classes": [ + "AspectRatioContainer" + ], + "structs": [], + "defines": [ + "ASPECT_RATIO_CONTAINER_H" + ] + }, + "scene/gui/menu_bar.h": { + "classes": [ + "MenuBar" + ], + "structs": [ + "Menu", + "ThemeCache" + ], + "defines": [ + "MENU_BAR_H" + ] + }, + "scene/gui/center_container.h": { + "classes": [ + "CenterContainer" + ], + "structs": [], + "defines": [ + "CENTER_CONTAINER_H" + ] + }, + "scene/gui/grid_container.h": { + "classes": [ + "GridContainer" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "GRID_CONTAINER_H" + ] + }, + "scene/gui/check_box.h": { + "classes": [ + "CheckBox" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "CHECK_BOX_H" + ] + }, + "scene/gui/option_button.h": { + "classes": [ + "OptionButton" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "OPTION_BUTTON_H" + ] + }, + "scene/gui/slider.h": { + "classes": [ + "Slider", + "HSlider", + "VSlider" + ], + "structs": [ + "Grab", + "ThemeCache" + ], + "defines": [ + "SLIDER_H" + ] + }, + "scene/gui/check_button.h": { + "classes": [ + "CheckButton" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "CHECK_BUTTON_H" + ] + }, + "scene/gui/panel.h": { + "classes": [ + "Panel" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "PANEL_H" + ] + }, + "scene/gui/menu_button.h": { + "classes": [ + "MenuButton" + ], + "structs": [], + "defines": [ + "MENU_BUTTON_H" + ] + }, + "scene/gui/panel_container.h": { + "classes": [ + "PanelContainer" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "PANEL_CONTAINER_H" + ] + }, + "scene/gui/texture_rect.h": { + "classes": [ + "TextureRect" + ], + "structs": [], + "defines": [ + "TEXTURE_RECT_H" + ] + }, + "scene/gui/view_panner.h": { + "classes": [ + "ViewPanner" + ], + "structs": [], + "defines": [ + "VIEW_PANNER_H" + ] + }, + "scene/gui/rich_text_label.h": { + "classes": [ + "RichTextLabel" + ], + "structs": [ + "Line", + "Item", + "ItemFrame", + "ItemText", + "ItemDropcap", + "ItemImage", + "ItemFont", + "ItemFontSize", + "ItemColor", + "ItemOutlineSize", + "ItemOutlineColor", + "ItemUnderline", + "ItemStrikethrough", + "ItemMeta", + "ItemHint", + "ItemLanguage", + "ItemParagraph", + "ItemIndent", + "ItemList", + "ItemNewline", + "ItemTable", + "Column", + "ItemFade", + "ItemFX", + "ItemShake", + "ItemWave", + "ItemTornado", + "ItemRainbow", + "ItemPulse", + "ItemBGColor", + "ItemFGColor", + "ItemCustomFX", + "ItemContext", + "Selection", + "ThemeCache" + ], + "defines": [ + "RICH_TEXT_LABEL_H" + ] + }, + "scene/gui/separator.h": { + "classes": [ + "Separator", + "VSeparator", + "HSeparator" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "SEPARATOR_H" + ] + }, + "scene/gui/button.h": { + "classes": [ + "Button" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "BUTTON_H" + ] + }, + "scene/gui/link_button.h": { + "classes": [ + "LinkButton" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "LINK_BUTTON_H" + ] + }, + "scene/gui/color_picker.h": { + "classes": [ + "ColorPresetButton", + "ColorPicker", + "ColorPickerButton" + ], + "structs": [ + "ThemeCache", + "ThemeCache", + "ThemeCache" + ], + "defines": [ + "COLOR_PICKER_H" + ] + }, + "scene/gui/color_mode.h": { + "classes": [ + "ColorMode", + "ColorModeHSV", + "ColorModeRGB", + "ColorModeRAW", + "ColorModeOKHSL" + ], + "structs": [], + "defines": [ + "COLOR_MODE_H" + ] + }, + "scene/gui/reference_rect.h": { + "classes": [ + "ReferenceRect" + ], + "structs": [], + "defines": [ + "REFERENCE_RECT_H" + ] + }, + "scene/gui/tab_container.h": { + "classes": [ + "TabContainer" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "TAB_CONTAINER_H" + ] + }, + "scene/gui/color_rect.h": { + "classes": [ + "ColorRect" + ], + "structs": [], + "defines": [ + "COLOR_RECT_H" + ] + }, + "scene/gui/split_container.h": { + "classes": [ + "SplitContainerDragger", + "SplitContainer", + "HSplitContainer", + "VSplitContainer" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "SPLIT_CONTAINER_H" + ] + }, + "scene/gui/tab_bar.h": { + "classes": [ + "TabBar" + ], + "structs": [ + "Tab", + "ThemeCache" + ], + "defines": [ + "TAB_BAR_H" + ] + }, + "scene/gui/popup_menu.h": { + "classes": [ + "PopupMenu" + ], + "structs": [ + "Item", + "ThemeCache" + ], + "defines": [ + "POPUP_MENU_H" + ] + }, + "scene/gui/line_edit.h": { + "classes": [ + "LineEdit" + ], + "structs": [ + "Selection", + "TextOperation", + "ClearButtonStatus", + "ThemeCache" + ], + "defines": [ + "LINE_EDIT_H" + ] + }, + "scene/gui/subviewport_container.h": { + "classes": [ + "SubViewportContainer" + ], + "structs": [], + "defines": [ + "SUBVIEWPORT_CONTAINER_H" + ] + }, + "scene/gui/graph_edit_arranger.h": { + "classes": [ + "GraphEditArranger" + ], + "structs": [], + "defines": [ + "GRAPH_EDIT_ARRANGER_H" + ] + }, + "scene/debugger/scene_debugger.h": { + "classes": [ + "SceneDebugger", + "SceneDebuggerObject", + "SceneDebuggerTree", + "LiveEditor" + ], + "structs": [ + "RemoteNode" + ], + "defines": [ + "SCENE_DEBUGGER_H" + ] + }, + "scene/main/instance_placeholder.h": { + "classes": [ + "InstancePlaceholder" + ], + "structs": [ + "PropSet" + ], + "defines": [ + "INSTANCE_PLACEHOLDER_H" + ] + }, + "scene/main/multiplayer_api.h": { + "classes": [ + "MultiplayerAPI", + "MultiplayerAPIExtension" + ], + "structs": [], + "defines": [ + "MULTIPLAYER_API_H" + ] + }, + "scene/main/multiplayer_peer.h": { + "classes": [ + "MultiplayerPeer", + "MultiplayerPeerExtension" + ], + "structs": [], + "defines": [ + "MULTIPLAYER_PEER_H" + ] + }, + "scene/main/viewport.h": { + "classes": [ + "ViewportTexture", + "Viewport", + "SubViewport" + ], + "structs": [ + "SubWindow", + "GUI", + "Camera3DOverrideData" + ], + "defines": [ + "VIEWPORT_H" + ] + }, + "scene/main/missing_node.h": { + "classes": [ + "MissingNode" + ], + "structs": [], + "defines": [ + "MISSING_NODE_H" + ] + }, + "scene/main/canvas_layer.h": { + "classes": [ + "CanvasLayer" + ], + "structs": [], + "defines": [ + "CANVAS_LAYER_H" + ] + }, + "scene/main/window.h": { + "classes": [ + "Window" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "WINDOW_H" + ] + }, + "scene/main/canvas_item.h": { + "classes": [ + "CanvasItem", + "CanvasTexture" + ], + "structs": [], + "defines": [ + "CANVAS_ITEM_H" + ] + }, + "scene/main/node.h": { + "classes": [ + "Node" + ], + "structs": [ + "Comparator", + "GroupData", + "ComparatorByIndex", + "ComparatorWithPriority", + "ComparatorWithPhysicsPriority", + "Data", + "GroupInfo" + ], + "defines": [ + "NODE_H", + "ERR_THREAD_GUARD", + "ERR_THREAD_GUARD_V", + "ERR_MAIN_THREAD_GUARD", + "ERR_MAIN_THREAD_GUARD_V", + "ERR_READ_THREAD_GUARD", + "ERR_READ_THREAD_GUARD_V", + "ERR_THREAD_GUARD", + "ERR_THREAD_GUARD_V", + "ERR_MAIN_THREAD_GUARD", + "ERR_MAIN_THREAD_GUARD_V", + "ERR_READ_THREAD_GUARD", + "ERR_READ_THREAD_GUARD_V", + "DEPRECATED_NODE_WARNING", + "EXPERIMENTAL_NODE_WARNING" + ] + }, + "scene/main/timer.h": { + "classes": [ + "Timer" + ], + "structs": [], + "defines": [ + "TIMER_H" + ] + }, + "scene/main/resource_preloader.h": { + "classes": [ + "ResourcePreloader" + ], + "structs": [], + "defines": [ + "RESOURCE_PRELOADER_H" + ] + }, + "scene/main/scene_tree.h": { + "classes": [ + "SceneTreeTimer", + "SceneTree" + ], + "structs": [ + "ProcessGroup", + "ProcessGroupSort", + "Group", + "UGCall" + ], + "defines": [ + "SCENE_TREE_H" + ] + }, + "scene/main/http_request.h": { + "classes": [ + "HTTPRequest" + ], + "structs": [], + "defines": [ + "HTTP_REQUEST_H" + ] + }, + "scene/main/status_indicator.h": { + "classes": [ + "StatusIndicator" + ], + "structs": [], + "defines": [ + "STATUS_INDICATOR_H" + ] + }, + "scene/main/shader_globals_override.h": { + "classes": [ + "ShaderGlobalsOverride" + ], + "structs": [ + "Override" + ], + "defines": [ + "SHADER_GLOBALS_OVERRIDE_H" + ] + }, + "scene/2d/visible_on_screen_notifier_2d.h": { + "classes": [ + "VisibleOnScreenNotifier2D", + "VisibleOnScreenEnabler2D" + ], + "structs": [], + "defines": [ + "VISIBLE_ON_SCREEN_NOTIFIER_2D_H" + ] + }, + "scene/2d/path_2d.h": { + "classes": [ + "Path2D", + "PathFollow2D" + ], + "structs": [], + "defines": [ + "PATH_2D_H" + ] + }, + "scene/2d/line_2d.h": { + "classes": [ + "Line2D" + ], + "structs": [], + "defines": [ + "LINE_2D_H" + ] + }, + "scene/2d/remote_transform_2d.h": { + "classes": [ + "RemoteTransform2D" + ], + "structs": [], + "defines": [ + "REMOTE_TRANSFORM_2D_H" + ] + }, + "scene/2d/parallax_background.h": { + "classes": [ + "ParallaxBackground" + ], + "structs": [], + "defines": [ + "PARALLAX_BACKGROUND_H" + ] + }, + "scene/2d/touch_screen_button.h": { + "classes": [ + "TouchScreenButton" + ], + "structs": [], + "defines": [ + "TOUCH_SCREEN_BUTTON_H" + ] + }, + "scene/2d/marker_2d.h": { + "classes": [ + "Marker2D" + ], + "structs": [], + "defines": [ + "MARKER_2D_H" + ] + }, + "scene/2d/camera_2d.h": { + "classes": [ + "Camera2D" + ], + "structs": [], + "defines": [ + "CAMERA_2D_H" + ] + }, + "scene/2d/audio_stream_player_2d.h": { + "classes": [ + "AudioStreamPlayer2D" + ], + "structs": [ + "Output" + ], + "defines": [ + "AUDIO_STREAM_PLAYER_2D_H" + ] + }, + "scene/2d/navigation_agent_2d.h": { + "classes": [ + "NavigationAgent2D" + ], + "structs": [], + "defines": [ + "NAVIGATION_AGENT_2D_H" + ] + }, + "scene/2d/line_builder.h": { + "classes": [ + "LineBuilder" + ], + "structs": [], + "defines": [ + "LINE_BUILDER_H" + ] + }, + "scene/2d/back_buffer_copy.h": { + "classes": [ + "BackBufferCopy" + ], + "structs": [], + "defines": [ + "BACK_BUFFER_COPY_H" + ] + }, + "scene/2d/navigation_obstacle_2d.h": { + "classes": [ + "NavigationObstacle2D" + ], + "structs": [], + "defines": [ + "NAVIGATION_OBSTACLE_2D_H" + ] + }, + "scene/2d/parallax_2d.h": { + "classes": [ + "Parallax2D" + ], + "structs": [], + "defines": [ + "PARALLAX_2D_H" + ] + }, + "scene/2d/navigation_region_2d.h": { + "classes": [ + "NavigationRegion2D" + ], + "structs": [], + "defines": [ + "NAVIGATION_REGION_2D_H" + ] + }, + "scene/2d/light_occluder_2d.h": { + "classes": [ + "OccluderPolygon2D", + "LightOccluder2D" + ], + "structs": [], + "defines": [ + "LIGHT_OCCLUDER_2D_H" + ] + }, + "scene/2d/mesh_instance_2d.h": { + "classes": [ + "MeshInstance2D" + ], + "structs": [], + "defines": [ + "MESH_INSTANCE_2D_H" + ] + }, + "scene/2d/animated_sprite_2d.h": { + "classes": [ + "AnimatedSprite2D" + ], + "structs": [], + "defines": [ + "ANIMATED_SPRITE_2D_H" + ] + }, + "scene/2d/navigation_link_2d.h": { + "classes": [ + "NavigationLink2D" + ], + "structs": [], + "defines": [ + "NAVIGATION_LINK_2D_H" + ] + }, + "scene/2d/light_2d.h": { + "classes": [ + "Light2D", + "PointLight2D", + "DirectionalLight2D" + ], + "structs": [], + "defines": [ + "LIGHT_2D_H" + ] + }, + "scene/2d/canvas_group.h": { + "classes": [ + "CanvasGroup" + ], + "structs": [], + "defines": [ + "CANVAS_GROUP_H" + ] + }, + "scene/2d/audio_listener_2d.h": { + "classes": [ + "AudioListener2D" + ], + "structs": [], + "defines": [ + "AUDIO_LISTENER_2D_H" + ] + }, + "scene/2d/gpu_particles_2d.h": { + "classes": [ + "GPUParticles2D" + ], + "structs": [], + "defines": [ + "GPU_PARTICLES_2D_H" + ] + }, + "scene/2d/tile_map_layer_group.h": { + "classes": [ + "TileMapLayerGroup" + ], + "structs": [], + "defines": [ + "TILE_MAP_LAYER_GROUP_H" + ] + }, + "scene/2d/cpu_particles_2d.h": { + "classes": [ + "CPUParticles2D" + ], + "structs": [ + "Particle", + "SortLifetime", + "SortAxis" + ], + "defines": [ + "CPU_PARTICLES_2D_H" + ] + }, + "scene/2d/tile_map_layer.h": { + "classes": [ + "TerrainConstraint", + "DebugQuadrant", + "RenderingQuadrant", + "TileMapLayer" + ], + "structs": [ + "CellData", + "CellDataYSortedComparator", + "CoordsWorldComparator" + ], + "defines": [ + "TILE_MAP_LAYER_H" + ] + }, + "scene/2d/skeleton_2d.h": { + "classes": [ + "Bone2D", + "Skeleton2D" + ], + "structs": [ + "Bone" + ], + "defines": [ + "SKELETON_2D_H" + ] + }, + "scene/2d/sprite_2d.h": { + "classes": [ + "Sprite2D" + ], + "structs": [], + "defines": [ + "SPRITE_2D_H" + ] + }, + "scene/2d/parallax_layer.h": { + "classes": [ + "ParallaxLayer" + ], + "structs": [], + "defines": [ + "PARALLAX_LAYER_H" + ] + }, + "scene/2d/canvas_modulate.h": { + "classes": [ + "CanvasModulate" + ], + "structs": [], + "defines": [ + "CANVAS_MODULATE_H" + ] + }, + "scene/2d/tile_map.h": { + "classes": [ + "TileMap" + ], + "structs": [], + "defines": [ + "TILE_MAP_H" + ] + }, + "scene/2d/node_2d.h": { + "classes": [ + "Node2D" + ], + "structs": [], + "defines": [ + "NODE_2D_H" + ] + }, + "scene/2d/polygon_2d.h": { + "classes": [ + "Polygon2D" + ], + "structs": [ + "Bone" + ], + "defines": [ + "POLYGON_2D_H" + ] + }, + "scene/2d/multimesh_instance_2d.h": { + "classes": [ + "MultiMeshInstance2D" + ], + "structs": [], + "defines": [ + "MULTIMESH_INSTANCE_2D_H" + ] + }, + "scene/2d/physics/kinematic_collision_2d.h": { + "classes": [ + "KinematicCollision2D" + ], + "structs": [], + "defines": [ + "KINEMATIC_COLLISION_2D_H" + ] + }, + "scene/2d/physics/character_body_2d.h": { + "classes": [ + "CharacterBody2D" + ], + "structs": [], + "defines": [ + "CHARACTER_BODY_2D_H" + ] + }, + "scene/2d/physics/collision_object_2d.h": { + "classes": [ + "CollisionObject2D" + ], + "structs": [ + "ShapeData", + "Shape" + ], + "defines": [ + "COLLISION_OBJECT_2D_H" + ] + }, + "scene/2d/physics/physical_bone_2d.h": { + "classes": [ + "PhysicalBone2D" + ], + "structs": [], + "defines": [ + "PHYSICAL_BONE_2D_H" + ] + }, + "scene/2d/physics/area_2d.h": { + "classes": [ + "Area2D" + ], + "structs": [ + "ShapePair", + "BodyState", + "AreaShapePair", + "AreaState" + ], + "defines": [ + "AREA_2D_H" + ] + }, + "scene/2d/physics/static_body_2d.h": { + "classes": [ + "StaticBody2D" + ], + "structs": [], + "defines": [ + "STATIC_BODY_2D_H" + ] + }, + "scene/2d/physics/animatable_body_2d.h": { + "classes": [ + "AnimatableBody2D" + ], + "structs": [], + "defines": [ + "ANIMATABLE_BODY_2D_H" + ] + }, + "scene/2d/physics/ray_cast_2d.h": { + "classes": [ + "RayCast2D" + ], + "structs": [], + "defines": [ + "RAY_CAST_2D_H" + ] + }, + "scene/2d/physics/physics_body_2d.h": { + "classes": [ + "PhysicsBody2D" + ], + "structs": [], + "defines": [ + "PHYSICS_BODY_2D_H" + ] + }, + "scene/2d/physics/collision_polygon_2d.h": { + "classes": [ + "CollisionPolygon2D" + ], + "structs": [], + "defines": [ + "COLLISION_POLYGON_2D_H" + ] + }, + "scene/2d/physics/shape_cast_2d.h": { + "classes": [ + "ShapeCast2D" + ], + "structs": [], + "defines": [ + "SHAPE_CAST_2D_H" + ] + }, + "scene/2d/physics/rigid_body_2d.h": { + "classes": [ + "RigidBody2D" + ], + "structs": [ + "ShapePair", + "RigidBody2D_RemoveAction", + "BodyState", + "ContactMonitor" + ], + "defines": [ + "RIGID_BODY_2D_H" + ] + }, + "scene/2d/physics/collision_shape_2d.h": { + "classes": [ + "CollisionShape2D" + ], + "structs": [], + "defines": [ + "COLLISION_SHAPE_2D_H" + ] + }, + "scene/2d/physics/joints/joint_2d.h": { + "classes": [ + "Joint2D" + ], + "structs": [], + "defines": [ + "JOINT_2D_H" + ] + }, + "scene/2d/physics/joints/damped_spring_joint_2d.h": { + "classes": [ + "DampedSpringJoint2D" + ], + "structs": [], + "defines": [ + "DAMPED_SPRING_JOINT_2D_H" + ] + }, + "scene/2d/physics/joints/pin_joint_2d.h": { + "classes": [ + "PinJoint2D" + ], + "structs": [], + "defines": [ + "PIN_JOINT_2D_H" + ] + }, + "scene/2d/physics/joints/groove_joint_2d.h": { + "classes": [ + "GrooveJoint2D" + ], + "structs": [], + "defines": [ + "GROOVE_JOINT_2D_H" + ] + }, + "main/main.h": { + "classes": [ + "Main" + ], + "structs": [], + "defines": [ + "MAIN_H", + "TEST_MAIN_OVERRIDE", + "TEST_MAIN_PARAM_OVERRIDE" + ] + }, + "main/performance.h": { + "classes": [ + "Performance", + "MonitorCall" + ], + "structs": [], + "defines": [ + "PERFORMANCE_H", + "PERF_WARN_OFFLINE_FUNCTION", + "PERF_WARN_PROCESS_SYNC" + ] + }, + "main/app_icon.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "APP_ICON_H" + ] + }, + "main/splash.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "BOOT_SPLASH_H" + ] + }, + "main/main_timer_sync.h": { + "classes": [ + "MainTimerSync", + "DeltaSmoother" + ], + "structs": [ + "MainFrameTime" + ], + "defines": [ + "MAIN_TIMER_SYNC_H", + "GODOT_DEBUG_DELTA_SMOOTHER" + ] + }, + "modules/register_module_types.h": { + "classes": [], + "structs": [], + "defines": [ + "REGISTER_MODULE_TYPES_H" + ] + }, + "modules/modules_enabled.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "MODULE_ZIP_ENABLED", + "MODULE_XATLAS_UNWRAP_ENABLED", + "MODULE_WEBXR_ENABLED", + "MODULE_WEBSOCKET_ENABLED", + "MODULE_WEBRTC_ENABLED", + "MODULE_WEBP_ENABLED", + "MODULE_VHACD_ENABLED", + "MODULE_UPNP_ENABLED", + "MODULE_TINYEXR_ENABLED", + "MODULE_TGA_ENABLED", + "MODULE_TEXT_SERVER_ADV_ENABLED", + "MODULE_SVG_ENABLED", + "MODULE_SQUISH_ENABLED", + "MODULE_REGEX_ENABLED", + "MODULE_RAYCAST_ENABLED", + "MODULE_OPENXR_ENABLED", + "MODULE_OGG_ENABLED", + "MODULE_NOISE_ENABLED", + "MODULE_NAVIGATION_ENABLED", + "MODULE_MULTIPLAYER_ENABLED", + "MODULE_MOBILE_VR_ENABLED", + "MODULE_MINIMP3_ENABLED", + "MODULE_MESHOPTIMIZER_ENABLED", + "MODULE_MBEDTLS_ENABLED", + "MODULE_LIGHTMAPPER_RD_ENABLED", + "MODULE_JSONRPC_ENABLED", + "MODULE_JPG_ENABLED", + "MODULE_HDR_ENABLED", + "MODULE_GRIDMAP_ENABLED", + "MODULE_GLTF_ENABLED", + "MODULE_GLSLANG_ENABLED", + "MODULE_GDSCRIPT_ENABLED", + "MODULE_FREETYPE_ENABLED", + "MODULE_FBX_ENABLED", + "MODULE_ETCPAK_ENABLED", + "MODULE_ENET_ENABLED", + "MODULE_DDS_ENABLED", + "MODULE_CVTT_ENABLED", + "MODULE_CSG_ENABLED", + "MODULE_CAMERA_ENABLED", + "MODULE_BMP_ENABLED", + "MODULE_BASIS_UNIVERSAL_ENABLED", + "MODULE_ASTCENC_ENABLED", + "MODULE_VORBIS_ENABLED", + "MODULE_THEORA_ENABLED", + "MODULE_MSDFGEN_ENABLED", + "MODULE_KTX_ENABLED" + ] + }, + "modules/svg/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "SVG_REGISTER_TYPES_H" + ] + }, + "modules/svg/image_loader_svg.h": { + "classes": [ + "ImageLoaderSVG" + ], + "structs": [], + "defines": [ + "IMAGE_LOADER_SVG_H" + ] + }, + "modules/enet/enet_packet_peer.h": { + "classes": [ + "ENetPacketPeer" + ], + "structs": [], + "defines": [ + "ENET_PACKET_PEER_H" + ] + }, + "modules/enet/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "ENET_REGISTER_TYPES_H" + ] + }, + "modules/enet/enet_connection.h": { + "classes": [ + "ENetConnection", + "Compressor" + ], + "structs": [ + "Event" + ], + "defines": [ + "ENET_CONNECTION_H" + ] + }, + "modules/enet/enet_multiplayer_peer.h": { + "classes": [ + "ENetMultiplayerPeer" + ], + "structs": [ + "Packet" + ], + "defines": [ + "ENET_MULTIPLAYER_PEER_H" + ] + }, + "modules/websocket/packet_buffer.h": { + "classes": [ + "PacketBuffer" + ], + "structs": [], + "defines": [ + "PACKET_BUFFER_H" + ] + }, + "modules/websocket/websocket_multiplayer_peer.h": { + "classes": [ + "WebSocketMultiplayerPeer" + ], + "structs": [ + "Packet", + "PendingPeer" + ], + "defines": [ + "WEBSOCKET_MULTIPLAYER_PEER_H" + ] + }, + "modules/websocket/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "WEBSOCKET_REGISTER_TYPES_H" + ] + }, + "modules/websocket/emws_peer.h": { + "classes": [ + "EMWSPeer" + ], + "structs": [], + "defines": [ + "EMWS_PEER_H" + ] + }, + "modules/websocket/websocket_peer.h": { + "classes": [ + "WebSocketPeer" + ], + "structs": [], + "defines": [ + "WEBSOCKET_PEER_H" + ] + }, + "modules/websocket/remote_debugger_peer_websocket.h": { + "classes": [ + "RemoteDebuggerPeerWebSocket" + ], + "structs": [], + "defines": [ + "REMOTE_DEBUGGER_PEER_WEBSOCKET_H" + ] + }, + "modules/websocket/wsl_peer.h": { + "classes": [ + "WSLPeer", + "Resolver" + ], + "structs": [], + "defines": [ + "WSL_PEER_H", + "WSL_MAX_HEADER_SIZE" + ] + }, + "modules/websocket/editor/editor_debugger_server_websocket.h": { + "classes": [ + "EditorDebuggerServerWebSocket" + ], + "structs": [], + "defines": [ + "EDITOR_DEBUGGER_SERVER_WEBSOCKET_H" + ] + }, + "modules/ogg/ogg_packet_sequence.h": { + "classes": [ + "OggPacketSequence", + "OggPacketSequencePlayback" + ], + "structs": [], + "defines": [ + "OGG_PACKET_SEQUENCE_H" + ] + }, + "modules/ogg/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "OGG_REGISTER_TYPES_H" + ] + }, + "modules/meshoptimizer/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "MESHOPTIMIZER_REGISTER_TYPES_H" + ] + }, + "modules/csg/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "CSG_REGISTER_TYPES_H" + ] + }, + "modules/csg/csg.h": { + "classes": [], + "structs": [ + "CSGBrush", + "Face", + "CSGBrushOperation", + "MeshMerge", + "Face", + "FaceBVH", + "FaceBVHCmpX", + "FaceBVHCmpY", + "FaceBVHCmpZ", + "VertexKey", + "VertexKeyHash", + "Intersection", + "IntersectionDistance", + "Build2DFaces", + "Vertex2D", + "Face2D", + "Build2DFaceCollection" + ], + "defines": [ + "CSG_H" + ] + }, + "modules/csg/csg_shape.h": { + "classes": [ + "CSGShape3D", + "CSGCombiner3D", + "CSGPrimitive3D", + "CSGMesh3D", + "CSGSphere3D", + "CSGBox3D", + "CSGCylinder3D", + "CSGTorus3D", + "CSGPolygon3D" + ], + "structs": [ + "Vector3Hasher", + "ShapeUpdateSurface" + ], + "defines": [ + "CSG_SHAPE_H" + ] + }, + "modules/csg/editor/csg_gizmos.h": { + "classes": [ + "CSGShape3DGizmoPlugin", + "EditorPluginCSG" + ], + "structs": [], + "defines": [ + "CSG_GIZMOS_H" + ] + }, + "modules/tinyexr/image_loader_tinyexr.h": { + "classes": [ + "ImageLoaderTinyEXR" + ], + "structs": [], + "defines": [ + "IMAGE_LOADER_TINYEXR_H" + ] + }, + "modules/tinyexr/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "TINYEXR_REGISTER_TYPES_H" + ] + }, + "modules/tinyexr/image_saver_tinyexr.h": { + "classes": [], + "structs": [], + "defines": [ + "IMAGE_SAVER_TINYEXR_H" + ] + }, + "modules/vorbis/audio_stream_ogg_vorbis.h": { + "classes": [ + "AudioStreamPlaybackOggVorbis", + "AudioStreamOggVorbis" + ], + "structs": [], + "defines": [ + "AUDIO_STREAM_OGG_VORBIS_H" + ] + }, + "modules/vorbis/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "VORBIS_REGISTER_TYPES_H" + ] + }, + "modules/vorbis/resource_importer_ogg_vorbis.h": { + "classes": [ + "ResourceImporterOggVorbis" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_OGG_VORBIS_H" + ] + }, + "modules/lightmapper_rd/lm_raster.glsl.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "LM_RASTER_SHADER_GLSL_RAW_H" + ] + }, + "modules/lightmapper_rd/lm_blendseams.glsl.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "LM_BLENDSEAMS_SHADER_GLSL_RAW_H" + ] + }, + "modules/lightmapper_rd/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "LIGHTMAPPER_RD_REGISTER_TYPES_H" + ] + }, + "modules/lightmapper_rd/lm_compute.glsl.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "LM_COMPUTE_SHADER_GLSL_RAW_H" + ] + }, + "modules/lightmapper_rd/lightmapper_rd.h": { + "classes": [ + "LightmapperRD" + ], + "structs": [ + "BakeParameters", + "MeshInstance", + "Light", + "Vertex", + "Edge", + "Probe", + "EdgeHash", + "EdgeUV2", + "Seam", + "VertexHash", + "Triangle", + "ClusterAABB", + "TriangleSort", + "TriangleSortAxis", + "RasterPushConstant", + "RasterSeamsPushConstant", + "PushConstant", + "DenoiseParams" + ], + "defines": [ + "LIGHTMAPPER_RD_H" + ] + }, + "modules/freetype/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "FREETYPE_REGISTER_TYPES_H" + ] + }, + "modules/gdscript/gdscript_warning.h": { + "classes": [ + "GDScriptWarning" + ], + "structs": [], + "defines": [ + "GDSCRIPT_WARNING_H" + ] + }, + "modules/gdscript/gdscript_codegen.h": { + "classes": [ + "GDScriptCodeGenerator" + ], + "structs": [ + "Address" + ], + "defines": [ + "GDSCRIPT_CODEGEN_H" + ] + }, + "modules/gdscript/gdscript_lambda_callable.h": { + "classes": [ + "GDScriptLambdaCallable", + "GDScriptLambdaSelfCallable" + ], + "structs": [], + "defines": [ + "GDSCRIPT_LAMBDA_CALLABLE_H" + ] + }, + "modules/gdscript/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "GDSCRIPT_REGISTER_TYPES_H" + ] + }, + "modules/gdscript/gdscript_tokenizer.h": { + "classes": [ + "GDScriptTokenizer", + "GDScriptTokenizerText" + ], + "structs": [ + "Token", + "CommentData" + ], + "defines": [ + "GDSCRIPT_TOKENIZER_H" + ] + }, + "modules/gdscript/gdscript_function.h": { + "classes": [ + "GDScriptDataType", + "GDScriptFunction", + "GDScriptFunctionState" + ], + "structs": [ + "StackDebug", + "Profile", + "NativeProfile", + "CallState" + ], + "defines": [ + "GDSCRIPT_FUNCTION_H" + ] + }, + "modules/gdscript/gdscript_utility_functions.h": { + "classes": [ + "GDScriptUtilityFunctions" + ], + "structs": [], + "defines": [ + "GDSCRIPT_UTILITY_FUNCTIONS_H" + ] + }, + "modules/gdscript/gdscript_cache.h": { + "classes": [ + "GDScriptParserRef", + "GDScriptCache" + ], + "structs": [], + "defines": [ + "GDSCRIPT_CACHE_H" + ] + }, + "modules/gdscript/gdscript_compiler.h": { + "classes": [ + "GDScriptCompiler" + ], + "structs": [ + "FunctionLambdaInfo", + "ScriptLambdaInfo", + "CodeGen" + ], + "defines": [ + "GDSCRIPT_COMPILER_H" + ] + }, + "modules/gdscript/gdscript_byte_codegen.h": { + "classes": [ + "GDScriptByteCodeGenerator" + ], + "structs": [ + "StackSlot", + "CallTarget" + ], + "defines": [ + "GDSCRIPT_BYTE_CODEGEN_H" + ] + }, + "modules/gdscript/gdscript_tokenizer_buffer.h": { + "classes": [ + "GDScriptTokenizerBuffer" + ], + "structs": [], + "defines": [ + "GDSCRIPT_TOKENIZER_BUFFER_H" + ] + }, + "modules/gdscript/gdscript_analyzer.h": { + "classes": [ + "GDScriptAnalyzer" + ], + "structs": [], + "defines": [ + "GDSCRIPT_ANALYZER_H" + ] + }, + "modules/gdscript/gdscript.h": { + "classes": [ + "GDScriptNativeClass", + "GDScript", + "UpdatableFuncPtr", + "GDScriptInstance", + "GDScriptLanguage", + "ResourceFormatLoaderGDScript", + "ResourceFormatSaverGDScript" + ], + "structs": [ + "MemberInfo", + "ClearData", + "LambdaInfo", + "CallLevel", + "CallStack" + ], + "defines": [ + "GDSCRIPT_H" + ] + }, + "modules/gdscript/gdscript_rpc_callable.h": { + "classes": [ + "GDScriptRPCCallable" + ], + "structs": [], + "defines": [ + "GDSCRIPT_RPC_CALLABLE_H" + ] + }, + "modules/gdscript/gdscript_utility_callable.h": { + "classes": [ + "GDScriptUtilityCallable" + ], + "structs": [], + "defines": [ + "GDSCRIPT_UTILITY_CALLABLE_H" + ] + }, + "modules/gdscript/gdscript_parser.h": { + "classes": [ + "GDScriptParser", + "DataType", + "TreePrinter" + ], + "structs": [ + "ParserError", + "ClassDocData", + "MemberDocData", + "Node", + "ExpressionNode", + "AnnotationNode", + "ArrayNode", + "AssertNode", + "AssignableNode", + "AssignmentNode", + "AwaitNode", + "BinaryOpNode", + "BreakNode", + "BreakpointNode", + "CallNode", + "CastNode", + "EnumNode", + "Value", + "ClassNode", + "Member", + "ConstantNode", + "ContinueNode", + "DictionaryNode", + "Pair", + "ForNode", + "FunctionNode", + "GetNodeNode", + "IdentifierNode", + "IfNode", + "LambdaNode", + "LiteralNode", + "MatchNode", + "MatchBranchNode", + "ParameterNode", + "PassNode", + "PatternNode", + "Pair", + "PreloadNode", + "ReturnNode", + "SelfNode", + "SignalNode", + "SubscriptNode", + "SuiteNode", + "Local", + "TernaryOpNode", + "TypeNode", + "TypeTestNode", + "UnaryOpNode", + "VariableNode", + "WhileNode", + "CompletionContext", + "CompletionCall", + "AnnotationInfo", + "ParseRule" + ], + "defines": [ + "GDSCRIPT_PARSER_H" + ] + }, + "modules/gdscript/language_server/gdscript_language_protocol.h": { + "classes": [ + "GDScriptLanguageProtocol" + ], + "structs": [ + "LSPeer" + ], + "defines": [ + "GDSCRIPT_LANGUAGE_PROTOCOL_H", + "LSP_MAX_BUFFER_SIZE", + "LSP_MAX_CLIENTS" + ] + }, + "modules/gdscript/language_server/godot_lsp.h": { + "classes": [], + "structs": [ + "TextDocumentIdentifier", + "Position", + "Range", + "Location", + "LocationLink", + "TextDocumentPositionParams", + "ReferenceContext", + "ReferenceParams", + "DocumentLinkParams", + "DocumentLink", + "TextEdit", + "WorkspaceEdit", + "Command", + "CompletionOptions", + "SignatureHelpOptions", + "CodeLensOptions", + "RenameOptions", + "DocumentLinkOptions", + "ExecuteCommandOptions", + "SaveOptions", + "ColorProviderOptions", + "FoldingRangeProviderOptions", + "TextDocumentSyncOptions", + "StaticRegistrationOptions", + "DocumentOnTypeFormattingOptions", + "TextDocumentItem", + "TextDocumentContentChangeEvent", + "DiagnosticRelatedInformation", + "Diagnostic", + "MarkupContent", + "CompletionItem", + "CompletionList", + "DocumentSymbol", + "ApplyWorkspaceEditParams", + "NativeSymbolInspectParams", + "FoldingRange", + "CompletionContext", + "CompletionParams", + "Hover", + "ParameterInformation", + "SignatureInformation", + "SignatureHelp", + "FileOperationPattern", + "FileOperationFilter", + "FileOperationRegistrationOptions", + "FileOperations", + "Workspace", + "ServerCapabilities", + "InitializeResult", + "GodotNativeClassInfo", + "GodotCapabilities" + ], + "defines": [ + "GODOT_LSP_H" + ] + }, + "modules/gdscript/language_server/gdscript_text_document.h": { + "classes": [ + "GDScriptTextDocument" + ], + "structs": [], + "defines": [ + "GDSCRIPT_TEXT_DOCUMENT_H" + ] + }, + "modules/gdscript/language_server/gdscript_language_server.h": { + "classes": [ + "GDScriptLanguageServer" + ], + "structs": [], + "defines": [ + "GDSCRIPT_LANGUAGE_SERVER_H" + ] + }, + "modules/gdscript/language_server/gdscript_extend_parser.h": { + "classes": [ + "ExtendGDScriptParser" + ], + "structs": [ + "GodotPosition", + "GodotRange" + ], + "defines": [ + "GDSCRIPT_EXTEND_PARSER_H", + "LINE_NUMBER_TO_INDEX", + "COLUMN_NUMBER_TO_INDEX", + "SYMBOL_SEPERATOR", + "JOIN_SYMBOLS" + ] + }, + "modules/gdscript/language_server/gdscript_workspace.h": { + "classes": [ + "GDScriptWorkspace" + ], + "structs": [], + "defines": [ + "GDSCRIPT_WORKSPACE_H" + ] + }, + "modules/gdscript/editor/gdscript_translation_parser_plugin.h": { + "classes": [ + "GDScriptEditorTranslationParserPlugin" + ], + "structs": [], + "defines": [ + "GDSCRIPT_TRANSLATION_PARSER_PLUGIN_H" + ] + }, + "modules/gdscript/editor/gdscript_docgen.h": { + "classes": [ + "GDScriptDocGen" + ], + "structs": [], + "defines": [ + "GDSCRIPT_DOCGEN_H" + ] + }, + "modules/gdscript/editor/gdscript_highlighter.h": { + "classes": [ + "GDScriptSyntaxHighlighter" + ], + "structs": [ + "ColorRegion" + ], + "defines": [ + "GDSCRIPT_HIGHLIGHTER_H" + ] + }, + "modules/gdscript/editor/script_templates/templates.gen.h": { + "classes": [], + "structs": [ + "ScriptLanguage" + ], + "defines": [ + "_CODE_TEMPLATES_H" + ] + }, + "modules/openxr/openxr_api.h": { + "classes": [ + "OpenXRAPI" + ], + "structs": [ + "OpenXRSwapChainInfo", + "Tracker", + "ActionSet", + "ActionTracker", + "Action", + "InteractionProfile" + ], + "defines": [ + "OPENXR_API_H" + ] + }, + "modules/openxr/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "OPENXR_REGISTER_TYPES_H", + "MODULE_OPENXR_HAS_PREREGISTER" + ] + }, + "modules/openxr/openxr_api_extension.h": { + "classes": [ + "OpenXRAPIExtension" + ], + "structs": [], + "defines": [ + "OPENXR_API_EXTENSION_H" + ] + }, + "modules/openxr/openxr_interface.h": { + "classes": [ + "OpenXRInterface" + ], + "structs": [ + "Action", + "ActionSet", + "Tracker" + ], + "defines": [ + "OPENXR_INTERFACE_H", + "INTERACTION_PROFILE_NONE" + ] + }, + "modules/openxr/util.h": { + "classes": [], + "structs": [], + "defines": [ + "UTIL_H", + "UNPACK", + "INIT_XR_FUNC_V", + "EXT_INIT_XR_FUNC_V", + "OPENXR_API_INIT_XR_FUNC_V", + "INIT_XR_FUNC", + "EXT_INIT_XR_FUNC", + "OPENXR_API_INIT_XR_FUNC", + "TRY_INIT_XR_FUNC", + "EXT_TRY_INIT_XR_FUNC", + "OPENXR_TRY_API_INIT_XR_FUNC", + "GDEXTENSION_INIT_XR_FUNC", + "GDEXTENSION_INIT_XR_FUNC_V", + "EXT_PROTO_XRRESULT_FUNC1", + "EXT_PROTO_XRRESULT_FUNC2", + "EXT_PROTO_XRRESULT_FUNC3", + "EXT_PROTO_XRRESULT_FUNC4", + "EXT_PROTO_XRRESULT_FUNC5", + "EXT_PROTO_XRRESULT_FUNC6" + ] + }, + "modules/openxr/openxr_platform_inc.h": { + "classes": [], + "structs": [], + "defines": [ + "OPENXR_PLATFORM_INC_H", + "XR_USE_GRAPHICS_API_VULKAN", + "XR_USE_GRAPHICS_API_OPENGL_ES", + "XR_USE_GRAPHICS_API_OPENGL", + "GL_GLEXT_PROTOTYPES", + "GL3_PROTOTYPES" + ] + }, + "modules/openxr/openxr_util.h": { + "classes": [ + "OpenXRUtil" + ], + "structs": [ + "XrMatrix4x4f" + ], + "defines": [ + "OPENXR_UTIL_H" + ] + }, + "modules/openxr/action_map/openxr_action_set.h": { + "classes": [ + "OpenXRActionSet" + ], + "structs": [], + "defines": [ + "OPENXR_ACTION_SET_H" + ] + }, + "modules/openxr/action_map/openxr_interaction_profile.h": { + "classes": [ + "OpenXRIPBinding", + "OpenXRInteractionProfile" + ], + "structs": [], + "defines": [ + "OPENXR_INTERACTION_PROFILE_H" + ] + }, + "modules/openxr/action_map/openxr_action_map.h": { + "classes": [ + "OpenXRActionMap" + ], + "structs": [], + "defines": [ + "OPENXR_ACTION_MAP_H" + ] + }, + "modules/openxr/action_map/openxr_interaction_profile_metadata.h": { + "classes": [ + "OpenXRInteractionProfileMetadata" + ], + "structs": [ + "TopLevelPath", + "IOPath", + "InteractionProfile" + ], + "defines": [ + "OPENXR_INTERACTION_PROFILE_METADATA_H", + "XR_PATH_UNSUPPORTED_NAME" + ] + }, + "modules/openxr/action_map/openxr_action.h": { + "classes": [ + "OpenXRAction" + ], + "structs": [], + "defines": [ + "OPENXR_ACTION_H" + ] + }, + "modules/openxr/extensions/openxr_htc_vive_tracker_extension.h": { + "classes": [ + "OpenXRHTCViveTrackerExtension" + ], + "structs": [], + "defines": [ + "OPENXR_HTC_VIVE_TRACKER_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_wmr_controller_extension.h": { + "classes": [ + "OpenXRWMRControllerExtension" + ], + "structs": [], + "defines": [ + "OPENXR_WMR_CONTROLLER_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_local_floor_extension.h": { + "classes": [ + "OpenXRLocalFloorExtension" + ], + "structs": [], + "defines": [ + "OPENXR_LOCAL_FLOOR_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_eye_gaze_interaction.h": { + "classes": [ + "OpenXREyeGazeInteractionExtension" + ], + "structs": [], + "defines": [ + "OPENXR_EYE_GAZE_INTERACTION_H" + ] + }, + "modules/openxr/extensions/openxr_composition_layer_provider.h": { + "classes": [ + "OpenXRCompositionLayerProvider" + ], + "structs": [], + "defines": [ + "OPENXR_COMPOSITION_LAYER_PROVIDER_H" + ] + }, + "modules/openxr/extensions/openxr_htc_controller_extension.h": { + "classes": [ + "OpenXRHTCControllerExtension" + ], + "structs": [], + "defines": [ + "OPENXR_HTC_CONTROLLER_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_composition_layer_depth_extension.h": { + "classes": [ + "OpenXRCompositionLayerDepthExtension" + ], + "structs": [], + "defines": [ + "OPENXR_COMPOSITION_LAYER_DEPTH_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_hand_tracking_extension.h": { + "classes": [ + "OpenXRHandTrackingExtension" + ], + "structs": [ + "HandTracker" + ], + "defines": [ + "OPENXR_HAND_TRACKING_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_palm_pose_extension.h": { + "classes": [ + "OpenXRPalmPoseExtension" + ], + "structs": [], + "defines": [ + "OPENXR_PALM_POSE_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_fb_display_refresh_rate_extension.h": { + "classes": [ + "OpenXRDisplayRefreshRateExtension" + ], + "structs": [], + "defines": [ + "OPENXR_FB_DISPLAY_REFRESH_RATE_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_extension_wrapper_extension.h": { + "classes": [ + "OpenXRExtensionWrapperExtension" + ], + "structs": [], + "defines": [ + "OPENXR_EXTENSION_WRAPPER_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_fb_update_swapchain_extension.h": { + "classes": [ + "OpenXRFBUpdateSwapchainExtension" + ], + "structs": [], + "defines": [ + "OPENXR_FB_UPDATE_SWAPCHAIN_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_huawei_controller_extension.h": { + "classes": [ + "OpenXRHuaweiControllerExtension" + ], + "structs": [], + "defines": [ + "OPENXR_HUAWEI_CONTROLLER_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_extension_wrapper.h": { + "classes": [ + "OpenXRExtensionWrapper", + "OpenXRGraphicsExtensionWrapper" + ], + "structs": [], + "defines": [ + "OPENXR_EXTENSION_WRAPPER_H" + ] + }, + "modules/openxr/extensions/openxr_pico_controller_extension.h": { + "classes": [ + "OpenXRPicoControllerExtension" + ], + "structs": [], + "defines": [ + "OPENXR_PICO_CONTROLLER_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_ml2_controller_extension.h": { + "classes": [ + "OpenXRML2ControllerExtension" + ], + "structs": [], + "defines": [ + "OPENXR_ML2_CONTROLLER_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_meta_controller_extension.h": { + "classes": [ + "OpenXRMetaControllerExtension" + ], + "structs": [], + "defines": [ + "OPENXR_META_CONTROLLER_EXTENSION_H" + ] + }, + "modules/openxr/extensions/openxr_fb_foveation_extension.h": { + "classes": [ + "OpenXRFBFoveationExtension" + ], + "structs": [], + "defines": [ + "OPENXR_FB_FOVEATION_EXTENSION_H" + ] + }, + "modules/openxr/extensions/platform/openxr_opengl_extension.h": { + "classes": [ + "OpenXROpenGLExtension" + ], + "structs": [ + "SwapchainGraphicsData" + ], + "defines": [ + "OPENXR_OPENGL_EXTENSION_H" + ] + }, + "modules/openxr/extensions/platform/openxr_android_extension.h": { + "classes": [ + "OpenXRAndroidExtension" + ], + "structs": [], + "defines": [ + "OPENXR_ANDROID_EXTENSION_H" + ] + }, + "modules/openxr/extensions/platform/openxr_vulkan_extension.h": { + "classes": [ + "OpenXRVulkanExtension" + ], + "structs": [ + "SwapchainGraphicsData" + ], + "defines": [ + "OPENXR_VULKAN_EXTENSION_H" + ] + }, + "modules/openxr/scene/openxr_hand.h": { + "classes": [ + "OpenXRHand" + ], + "structs": [ + "JointData" + ], + "defines": [ + "OPENXR_HAND_H" + ] + }, + "modules/openxr/editor/openxr_action_set_editor.h": { + "classes": [ + "OpenXRActionSetEditor" + ], + "structs": [], + "defines": [ + "OPENXR_ACTION_SET_EDITOR_H" + ] + }, + "modules/openxr/editor/openxr_interaction_profile_editor.h": { + "classes": [ + "OpenXRInteractionProfileEditorBase", + "OpenXRInteractionProfileEditor" + ], + "structs": [], + "defines": [ + "OPENXR_INTERACTION_PROFILE_EDITOR_H" + ] + }, + "modules/openxr/editor/openxr_editor_plugin.h": { + "classes": [ + "OpenXREditorPlugin" + ], + "structs": [], + "defines": [ + "OPENXR_EDITOR_PLUGIN_H" + ] + }, + "modules/openxr/editor/openxr_action_map_editor.h": { + "classes": [ + "OpenXRActionMapEditor" + ], + "structs": [], + "defines": [ + "OPENXR_ACTION_MAP_EDITOR_H" + ] + }, + "modules/openxr/editor/openxr_select_action_dialog.h": { + "classes": [ + "OpenXRSelectActionDialog" + ], + "structs": [], + "defines": [ + "OPENXR_SELECT_ACTION_DIALOG_H" + ] + }, + "modules/openxr/editor/openxr_select_interaction_profile_dialog.h": { + "classes": [ + "OpenXRSelectInteractionProfileDialog" + ], + "structs": [], + "defines": [ + "OPENXR_SELECT_INTERACTION_PROFILE_DIALOG_H" + ] + }, + "modules/openxr/editor/openxr_action_editor.h": { + "classes": [ + "OpenXRActionEditor" + ], + "structs": [], + "defines": [ + "OPENXR_ACTION_EDITOR_H" + ] + }, + "modules/openxr/editor/openxr_select_runtime.h": { + "classes": [ + "OpenXRSelectRuntime" + ], + "structs": [], + "defines": [ + "OPENXR_SELECT_RUNTIME_H" + ] + }, + "modules/minimp3/resource_importer_mp3.h": { + "classes": [ + "ResourceImporterMP3" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_MP3_H" + ] + }, + "modules/minimp3/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "MINIMP3_REGISTER_TYPES_H" + ] + }, + "modules/minimp3/audio_stream_mp3.h": { + "classes": [ + "AudioStreamPlaybackMP3", + "AudioStreamMP3" + ], + "structs": [], + "defines": [ + "AUDIO_STREAM_MP3_H" + ] + }, + "modules/upnp/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "UPNP_REGISTER_TYPES_H" + ] + }, + "modules/upnp/upnp.h": { + "classes": [ + "UPNP" + ], + "structs": [], + "defines": [ + "UPNP_H" + ] + }, + "modules/upnp/upnp_device.h": { + "classes": [ + "UPNPDevice" + ], + "structs": [], + "defines": [ + "UPNP_DEVICE_H" + ] + }, + "modules/camera/camera_win.h": { + "classes": [ + "CameraWindows" + ], + "structs": [], + "defines": [ + "CAMERA_WIN_H" + ] + }, + "modules/camera/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "CAMERA_REGISTER_TYPES_H" + ] + }, + "modules/camera/camera_macos.h": { + "classes": [ + "CameraMacOS" + ], + "structs": [], + "defines": [ + "CAMERA_MACOS_H" + ] + }, + "modules/ktx/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "KTX_REGISTER_TYPES_H" + ] + }, + "modules/ktx/texture_loader_ktx.h": { + "classes": [ + "ResourceFormatKTX" + ], + "structs": [], + "defines": [ + "TEXTURE_LOADER_KTX_H" + ] + }, + "modules/fbx/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "FBX_REGISTER_TYPES_H" + ] + }, + "modules/fbx/fbx_document.h": { + "classes": [ + "FBXDocument" + ], + "structs": [], + "defines": [ + "FBX_DOCUMENT_H" + ] + }, + "modules/fbx/fbx_state.h": { + "classes": [ + "FBXState" + ], + "structs": [], + "defines": [ + "FBX_STATE_H" + ] + }, + "modules/fbx/editor/editor_scene_importer_fbx2gltf.h": { + "classes": [ + "EditorSceneFormatImporterFBX2GLTF" + ], + "structs": [], + "defines": [ + "EDITOR_SCENE_IMPORTER_FBX2GLTF_H" + ] + }, + "modules/fbx/editor/editor_scene_importer_ufbx.h": { + "classes": [ + "EditorSceneFormatImporterUFBX" + ], + "structs": [], + "defines": [ + "EDITOR_SCENE_IMPORTER_UFBX_H" + ] + }, + "modules/hdr/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "HDR_REGISTER_TYPES_H" + ] + }, + "modules/hdr/image_loader_hdr.h": { + "classes": [ + "ImageLoaderHDR" + ], + "structs": [], + "defines": [ + "IMAGE_LOADER_HDR_H" + ] + }, + "modules/jsonrpc/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "JSONRPC_REGISTER_TYPES_H" + ] + }, + "modules/jsonrpc/jsonrpc.h": { + "classes": [ + "JSONRPC" + ], + "structs": [], + "defines": [ + "JSONRPC_H" + ] + }, + "modules/mbedtls/crypto_mbedtls.h": { + "classes": [ + "CryptoKeyMbedTLS", + "X509CertificateMbedTLS", + "HMACContextMbedTLS", + "CryptoMbedTLS" + ], + "structs": [], + "defines": [ + "CRYPTO_MBEDTLS_H" + ] + }, + "modules/mbedtls/stream_peer_mbedtls.h": { + "classes": [ + "StreamPeerMbedTLS" + ], + "structs": [], + "defines": [ + "STREAM_PEER_MBEDTLS_H" + ] + }, + "modules/mbedtls/tls_context_mbedtls.h": { + "classes": [ + "CookieContextMbedTLS", + "TLSContextMbedTLS" + ], + "structs": [], + "defines": [ + "TLS_CONTEXT_MBEDTLS_H" + ] + }, + "modules/mbedtls/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "MBEDTLS_REGISTER_TYPES_H" + ] + }, + "modules/mbedtls/dtls_server_mbedtls.h": { + "classes": [ + "DTLSServerMbedTLS" + ], + "structs": [], + "defines": [ + "DTLS_SERVER_MBEDTLS_H" + ] + }, + "modules/mbedtls/packet_peer_mbed_dtls.h": { + "classes": [ + "PacketPeerMbedDTLS" + ], + "structs": [], + "defines": [ + "PACKET_PEER_MBED_DTLS_H" + ] + }, + "modules/navigation/nav_obstacle.h": { + "classes": [ + "NavObstacle" + ], + "structs": [], + "defines": [ + "NAV_OBSTACLE_H" + ] + }, + "modules/navigation/nav_agent.h": { + "classes": [ + "NavAgent" + ], + "structs": [], + "defines": [ + "NAV_AGENT_H" + ] + }, + "modules/navigation/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "NAVIGATION_REGISTER_TYPES_H" + ] + }, + "modules/navigation/nav_rid.h": { + "classes": [ + "NavRid" + ], + "structs": [], + "defines": [ + "NAV_RID_H" + ] + }, + "modules/navigation/nav_region.h": { + "classes": [ + "NavRegion" + ], + "structs": [], + "defines": [ + "NAV_REGION_H" + ] + }, + "modules/navigation/nav_map.h": { + "classes": [ + "NavMap" + ], + "structs": [], + "defines": [ + "NAV_MAP_H" + ] + }, + "modules/navigation/nav_utils.h": { + "classes": [], + "structs": [ + "EdgeKey", + "Point", + "Edge", + "Connection", + "Polygon", + "NavigationPoly", + "ClosestPointQueryResult" + ], + "defines": [ + "NAV_UTILS_H" + ] + }, + "modules/navigation/nav_link.h": { + "classes": [ + "NavLink" + ], + "structs": [], + "defines": [ + "NAV_LINK_H" + ] + }, + "modules/navigation/nav_base.h": { + "classes": [ + "NavBase" + ], + "structs": [], + "defines": [ + "NAV_BASE_H" + ] + }, + "modules/navigation/3d/nav_mesh_generator_3d.h": { + "classes": [ + "NavMeshGenerator3D" + ], + "structs": [ + "NavMeshGeneratorTask3D" + ], + "defines": [ + "NAV_MESH_GENERATOR_3D_H" + ] + }, + "modules/navigation/3d/navigation_mesh_generator.h": { + "classes": [ + "NavigationMeshGenerator" + ], + "structs": [], + "defines": [ + "NAVIGATION_MESH_GENERATOR_H" + ] + }, + "modules/navigation/3d/godot_navigation_server_3d.h": { + "classes": [ + "GodotNavigationServer3D" + ], + "structs": [ + "SetCommand" + ], + "defines": [ + "GODOT_NAVIGATION_SERVER_3D_H", + "MERGE_INTERNAL", + "MERGE", + "COMMAND_1", + "COMMAND_2" + ] + }, + "modules/navigation/2d/nav_mesh_generator_2d.h": { + "classes": [ + "NavMeshGenerator2D" + ], + "structs": [ + "NavMeshGeneratorTask2D" + ], + "defines": [ + "NAV_MESH_GENERATOR_2D_H" + ] + }, + "modules/navigation/2d/godot_navigation_server_2d.h": { + "classes": [ + "GodotNavigationServer2D" + ], + "structs": [], + "defines": [ + "GODOT_NAVIGATION_SERVER_2D_H" + ] + }, + "modules/navigation/editor/navigation_mesh_editor_plugin.h": { + "classes": [ + "NavigationMeshEditor", + "NavigationMeshEditorPlugin" + ], + "structs": [], + "defines": [ + "NAVIGATION_MESH_EDITOR_PLUGIN_H" + ] + }, + "modules/etcpak/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "ETCPAK_REGISTER_TYPES_H" + ] + }, + "modules/etcpak/image_compress_etcpak.h": { + "classes": [ + "EtcpakType" + ], + "structs": [], + "defines": [ + "IMAGE_COMPRESS_ETCPAK_H" + ] + }, + "modules/tga/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "TGA_REGISTER_TYPES_H" + ] + }, + "modules/tga/image_loader_tga.h": { + "classes": [ + "ImageLoaderTGA" + ], + "structs": [ + "tga_header_s" + ], + "defines": [ + "IMAGE_LOADER_TGA_H", + "TGA_IMAGE_DESCRIPTOR_ALPHA_MASK" + ] + }, + "modules/gltf/gltf_template_convert.h": { + "classes": [], + "structs": [], + "defines": [ + "GLTF_TEMPLATE_CONVERT_H" + ] + }, + "modules/gltf/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "GLTF_REGISTER_TYPES_H" + ] + }, + "modules/gltf/gltf_defines.h": { + "classes": [], + "structs": [], + "defines": [ + "GLTF_DEFINES_H" + ] + }, + "modules/gltf/gltf_state.h": { + "classes": [ + "GLTFState" + ], + "structs": [], + "defines": [ + "GLTF_STATE_H" + ] + }, + "modules/gltf/gltf_document.h": { + "classes": [ + "GLTFDocument" + ], + "structs": [], + "defines": [ + "GLTF_DOCUMENT_H" + ] + }, + "modules/gltf/skin_tool.h": { + "classes": [ + "SkinTool" + ], + "structs": [], + "defines": [ + "SKIN_TOOL_H" + ] + }, + "modules/gltf/structures/gltf_texture.h": { + "classes": [ + "GLTFTexture" + ], + "structs": [], + "defines": [ + "GLTF_TEXTURE_H" + ] + }, + "modules/gltf/structures/gltf_camera.h": { + "classes": [ + "GLTFCamera" + ], + "structs": [], + "defines": [ + "GLTF_CAMERA_H" + ] + }, + "modules/gltf/structures/gltf_animation.h": { + "classes": [ + "GLTFAnimation" + ], + "structs": [ + "Channel", + "Track" + ], + "defines": [ + "GLTF_ANIMATION_H" + ] + }, + "modules/gltf/structures/gltf_node.h": { + "classes": [ + "GLTFNode" + ], + "structs": [], + "defines": [ + "GLTF_NODE_H" + ] + }, + "modules/gltf/structures/gltf_mesh.h": { + "classes": [ + "GLTFMesh" + ], + "structs": [], + "defines": [ + "GLTF_MESH_H" + ] + }, + "modules/gltf/structures/gltf_texture_sampler.h": { + "classes": [ + "GLTFTextureSampler" + ], + "structs": [], + "defines": [ + "GLTF_TEXTURE_SAMPLER_H" + ] + }, + "modules/gltf/structures/gltf_skeleton.h": { + "classes": [ + "GLTFSkeleton" + ], + "structs": [], + "defines": [ + "GLTF_SKELETON_H" + ] + }, + "modules/gltf/structures/gltf_buffer_view.h": { + "classes": [ + "GLTFBufferView" + ], + "structs": [], + "defines": [ + "GLTF_BUFFER_VIEW_H" + ] + }, + "modules/gltf/structures/gltf_skin.h": { + "classes": [ + "GLTFSkin" + ], + "structs": [], + "defines": [ + "GLTF_SKIN_H" + ] + }, + "modules/gltf/structures/gltf_accessor.h": { + "classes": [], + "structs": [ + "GLTFAccessor" + ], + "defines": [ + "GLTF_ACCESSOR_H" + ] + }, + "modules/gltf/extensions/gltf_light.h": { + "classes": [ + "GLTFLight" + ], + "structs": [], + "defines": [ + "GLTF_LIGHT_H" + ] + }, + "modules/gltf/extensions/gltf_spec_gloss.h": { + "classes": [ + "GLTFSpecGloss" + ], + "structs": [], + "defines": [ + "GLTF_SPEC_GLOSS_H" + ] + }, + "modules/gltf/extensions/gltf_document_extension_convert_importer_mesh.h": { + "classes": [ + "GLTFDocumentExtensionConvertImporterMesh" + ], + "structs": [], + "defines": [ + "GLTF_DOCUMENT_EXTENSION_CONVERT_IMPORTER_MESH_H" + ] + }, + "modules/gltf/extensions/gltf_document_extension_texture_webp.h": { + "classes": [ + "GLTFDocumentExtensionTextureWebP" + ], + "structs": [], + "defines": [ + "GLTF_DOCUMENT_EXTENSION_TEXTURE_WEBP_H" + ] + }, + "modules/gltf/extensions/gltf_document_extension_texture_ktx.h": { + "classes": [ + "GLTFDocumentExtensionTextureKTX" + ], + "structs": [], + "defines": [ + "GLTF_DOCUMENT_EXTENSION_TEXTURE_KTX_H" + ] + }, + "modules/gltf/extensions/gltf_document_extension.h": { + "classes": [ + "GLTFDocumentExtension" + ], + "structs": [], + "defines": [ + "GLTF_DOCUMENT_EXTENSION_H" + ] + }, + "modules/gltf/extensions/physics/gltf_document_extension_physics.h": { + "classes": [ + "GLTFDocumentExtensionPhysics" + ], + "structs": [], + "defines": [ + "GLTF_DOCUMENT_EXTENSION_PHYSICS_H" + ] + }, + "modules/gltf/extensions/physics/gltf_physics_body.h": { + "classes": [ + "GLTFPhysicsBody", + "PhysicsBodyType" + ], + "structs": [], + "defines": [ + "GLTF_PHYSICS_BODY_H" + ] + }, + "modules/gltf/extensions/physics/gltf_physics_shape.h": { + "classes": [ + "GLTFPhysicsShape" + ], + "structs": [], + "defines": [ + "GLTF_PHYSICS_SHAPE_H" + ] + }, + "modules/gltf/editor/editor_scene_exporter_gltf_settings.h": { + "classes": [ + "EditorSceneExporterGLTFSettings" + ], + "structs": [], + "defines": [ + "EDITOR_SCENE_EXPORTER_GLTF_SETTINGS_H" + ] + }, + "modules/gltf/editor/editor_scene_importer_blend.h": { + "classes": [ + "EditorSceneFormatImporterBlend", + "EditorFileSystemImportFormatSupportQueryBlend" + ], + "structs": [], + "defines": [ + "EDITOR_SCENE_IMPORTER_BLEND_H" + ] + }, + "modules/gltf/editor/editor_scene_importer_gltf.h": { + "classes": [ + "EditorSceneFormatImporterGLTF" + ], + "structs": [], + "defines": [ + "EDITOR_SCENE_IMPORTER_GLTF_H" + ] + }, + "modules/gltf/editor/editor_scene_exporter_gltf_plugin.h": { + "classes": [ + "SceneExporterGLTFPlugin" + ], + "structs": [], + "defines": [ + "EDITOR_SCENE_EXPORTER_GLTF_PLUGIN_H" + ] + }, + "modules/gltf/editor/editor_import_blend_runner.h": { + "classes": [ + "EditorImportBlendRunner" + ], + "structs": [], + "defines": [ + "EDITOR_IMPORT_BLEND_RUNNER_H" + ] + }, + "modules/basis_universal/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "BASIS_UNIVERSAL_REGISTER_TYPES_H" + ] + }, + "modules/basis_universal/image_compress_basisu.h": { + "classes": [], + "structs": [], + "defines": [ + "IMAGE_COMPRESS_BASISU_H" + ] + }, + "modules/webp/resource_saver_webp.h": { + "classes": [ + "ResourceSaverWebP" + ], + "structs": [], + "defines": [ + "RESOURCE_SAVER_WEBP_H" + ] + }, + "modules/webp/webp_common.h": { + "classes": [], + "structs": [], + "defines": [ + "WEBP_COMMON_H" + ] + }, + "modules/webp/image_loader_webp.h": { + "classes": [ + "ImageLoaderWebP" + ], + "structs": [], + "defines": [ + "IMAGE_LOADER_WEBP_H" + ] + }, + "modules/webp/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "WEBP_REGISTER_TYPES_H" + ] + }, + "modules/regex/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "REGEX_REGISTER_TYPES_H" + ] + }, + "modules/regex/regex.h": { + "classes": [ + "RegExMatch", + "RegEx" + ], + "structs": [ + "Range" + ], + "defines": [ + "REGEX_H" + ] + }, + "modules/glslang/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "GLSLANG_REGISTER_TYPES_H", + "MODULE_GLSLANG_HAS_PREREGISTER" + ] + }, + "modules/jpg/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "JPG_REGISTER_TYPES_H" + ] + }, + "modules/jpg/image_loader_jpegd.h": { + "classes": [ + "ImageLoaderJPG" + ], + "structs": [], + "defines": [ + "IMAGE_LOADER_JPEGD_H" + ] + }, + "modules/zip/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "ZIP_REGISTER_TYPES_H" + ] + }, + "modules/zip/zip_reader.h": { + "classes": [ + "ZIPReader" + ], + "structs": [], + "defines": [ + "ZIP_READER_H" + ] + }, + "modules/zip/zip_packer.h": { + "classes": [ + "ZIPPacker" + ], + "structs": [], + "defines": [ + "ZIP_PACKER_H" + ] + }, + "modules/webxr/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "WEBXR_REGISTER_TYPES_H" + ] + }, + "modules/webxr/webxr_interface_js.h": { + "classes": [ + "WebXRInterfaceJS" + ], + "structs": [ + "Touch", + "InputSource" + ], + "defines": [ + "WEBXR_INTERFACE_JS_H" + ] + }, + "modules/webxr/godot_webxr.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_WEBXR_H" + ] + }, + "modules/webxr/webxr_interface.h": { + "classes": [ + "WebXRInterface" + ], + "structs": [], + "defines": [ + "WEBXR_INTERFACE_H" + ] + }, + "modules/text_server_fb/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "TEXT_SERVER_FB_REGISTER_TYPES_H" + ] + }, + "modules/text_server_fb/thorvg_svg_in_ot.h": { + "classes": [], + "structs": [ + "GL_State", + "TVG_State" + ], + "defines": [ + "THORVG_SVG_IN_OT_H" + ] + }, + "modules/text_server_fb/text_server_fb.h": { + "classes": [ + "TextServerFallback" + ], + "structs": [ + "FontTexturePosition", + "Shelf", + "ShelfPackTexture", + "FontGlyph", + "FontForSizeFallback", + "FontFallbackLinkedVariation", + "FontFallback", + "TrimData", + "ShapedTextDataFallback", + "Span", + "EmbeddedObject", + "SystemFontKey", + "SystemFontCacheRec", + "SystemFontCache", + "SystemFontKeyHasher" + ], + "defines": [ + "TEXT_SERVER_FB_H" + ] + }, + "modules/text_server_fb/thorvg_bounds_iterator.h": { + "classes": [], + "structs": [], + "defines": [ + "THORVG_BOUNDS_ITERATOR_H" + ] + }, + "modules/squish/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "SQUISH_REGISTER_TYPES_H" + ] + }, + "modules/squish/image_decompress_squish.h": { + "classes": [], + "structs": [], + "defines": [ + "IMAGE_DECOMPRESS_SQUISH_H" + ] + }, + "modules/noise/noise.h": { + "classes": [ + "Noise" + ], + "structs": [ + "img_buff" + ], + "defines": [ + "NOISE_H" + ] + }, + "modules/noise/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "NOISE_REGISTER_TYPES_H" + ] + }, + "modules/noise/noise_texture_2d.h": { + "classes": [ + "NoiseTexture2D" + ], + "structs": [], + "defines": [ + "NOISE_TEXTURE_2D_H" + ] + }, + "modules/noise/noise_texture_3d.h": { + "classes": [ + "NoiseTexture3D" + ], + "structs": [], + "defines": [ + "NOISE_TEXTURE_3D_H" + ] + }, + "modules/noise/fastnoise_lite.h": { + "classes": [ + "FastNoiseLite" + ], + "structs": [], + "defines": [ + "FASTNOISE_LITE_H" + ] + }, + "modules/noise/editor/noise_editor_plugin.h": { + "classes": [ + "NoiseEditorPlugin" + ], + "structs": [], + "defines": [ + "NOISE_EDITOR_PLUGIN_H" + ] + }, + "modules/raycast/lightmap_raycaster_embree.h": { + "classes": [ + "LightmapRaycasterEmbree" + ], + "structs": [ + "AlphaTextureData" + ], + "defines": [ + "LIGHTMAP_RAYCASTER_EMBREE_H" + ] + }, + "modules/raycast/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "RAYCAST_REGISTER_TYPES_H" + ] + }, + "modules/raycast/static_raycaster_embree.h": { + "classes": [ + "StaticRaycasterEmbree" + ], + "structs": [], + "defines": [ + "STATIC_RAYCASTER_EMBREE_H" + ] + }, + "modules/raycast/raycast_occlusion_cull.h": { + "classes": [ + "RaycastOcclusionCull", + "RaycastHZBuffer" + ], + "structs": [ + "CameraRayThreadData", + "InstanceID", + "Occluder", + "OccluderInstance", + "Scenario", + "RaycastThreadData", + "TransformThreadData" + ], + "defines": [ + "RAYCAST_OCCLUSION_CULL_H" + ] + }, + "modules/mono/interop_types.h": { + "classes": [], + "structs": [ + "godot_rect2", + "godot_rect2i" + ], + "defines": [ + "INTEROP_TYPES_H", + "GODOT_VARIANT_SIZE", + "GODOT_ARRAY_SIZE", + "GODOT_DICTIONARY_SIZE", + "GODOT_STRING_SIZE", + "GODOT_STRING_NAME_SIZE", + "GODOT_PACKED_ARRAY_SIZE", + "GODOT_VECTOR2_SIZE", + "GODOT_VECTOR2I_SIZE", + "GODOT_RECT2_SIZE", + "GODOT_RECT2I_SIZE", + "GODOT_VECTOR3_SIZE", + "GODOT_VECTOR3I_SIZE", + "GODOT_TRANSFORM2D_SIZE", + "GODOT_VECTOR4_SIZE", + "GODOT_VECTOR4I_SIZE", + "GODOT_PLANE_SIZE", + "GODOT_QUATERNION_SIZE", + "GODOT_AABB_SIZE", + "GODOT_BASIS_SIZE", + "GODOT_TRANSFORM3D_SIZE", + "GODOT_PROJECTION_SIZE", + "GODOT_COLOR_SIZE", + "GODOT_NODE_PATH_SIZE", + "GODOT_RID_SIZE", + "GODOT_CALLABLE_SIZE", + "GODOT_SIGNAL_SIZE" + ] + }, + "modules/mono/godotsharp_dirs.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOTSHARP_DIRS_H" + ] + }, + "modules/mono/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "MONO_REGISTER_TYPES_H" + ] + }, + "modules/mono/godotsharp_defs.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOTSHARP_DEFS_H", + "BINDINGS_NAMESPACE", + "BINDINGS_NAMESPACE_COLLECTIONS", + "API_SOLUTION_NAME", + "CORE_API_ASSEMBLY_NAME", + "EDITOR_API_ASSEMBLY_NAME", + "TOOLS_ASM_NAME", + "BINDINGS_CLASS_NATIVECALLS", + "BINDINGS_CLASS_NATIVECALLS_EDITOR" + ] + }, + "modules/mono/managed_callable.h": { + "classes": [ + "ManagedCallable" + ], + "structs": [], + "defines": [ + "MANAGED_CALLABLE_H" + ] + }, + "modules/mono/class_db_api_json.h": { + "classes": [], + "structs": [], + "defines": [ + "CLASS_DB_API_JSON_H" + ] + }, + "modules/mono/signal_awaiter_utils.h": { + "classes": [ + "BaseSignalCallable", + "SignalAwaiterCallable", + "EventSignalCallable" + ], + "structs": [], + "defines": [ + "SIGNAL_AWAITER_UTILS_H" + ] + }, + "modules/mono/csharp_script.h": { + "classes": [ + "CSharpScript", + "CSharpInstance", + "ManagedCallableMiddleman", + "CSharpLanguage", + "ResourceFormatLoaderCSharpScript", + "ResourceFormatSaverCSharpScript" + ], + "structs": [ + "TypeInfo", + "StateBackup", + "EventSignalInfo", + "CSharpMethodInfo", + "CSharpScriptBinding" + ], + "defines": [ + "CSHARP_SCRIPT_H", + "CAST_CSHARP_INSTANCE" + ] + }, + "modules/mono/mono_gc_handle.h": { + "classes": [ + "GCHandleType" + ], + "structs": [ + "GCHandleIntPtr", + "MonoGCHandleData" + ], + "defines": [ + "MONO_GC_HANDLE_H" + ] + }, + "modules/mono/mono_gd/gd_mono.h": { + "classes": [ + "GDMono", + "GodotSharp" + ], + "structs": [ + "PluginCallbacks" + ], + "defines": [ + "GD_MONO_H", + "GD_CLR_STDCALL", + "GD_CLR_STDCALL" + ] + }, + "modules/mono/mono_gd/gd_mono_cache.h": { + "classes": [], + "structs": [ + "godotsharp_property_info", + "godotsharp_property_def_val_pair", + "ManagedCallbacks" + ], + "defines": [ + "GD_MONO_CACHE_H", + "GD_CLR_STDCALL", + "GD_CLR_STDCALL" + ] + }, + "modules/mono/glue/runtime_interop.h": { + "classes": [], + "structs": [], + "defines": [ + "RUNTIME_INTEROP_H" + ] + }, + "modules/mono/utils/naming_utils.h": { + "classes": [], + "structs": [], + "defines": [ + "MONO_NAMING_UTILS_H" + ] + }, + "modules/mono/utils/string_utils.h": { + "classes": [], + "structs": [], + "defines": [ + "MONO_STRING_UTILS_H", + "_PRINTF_FORMAT_ATTRIBUTE_1_0", + "_PRINTF_FORMAT_ATTRIBUTE_1_2", + "_PRINTF_FORMAT_ATTRIBUTE_1_0", + "_PRINTF_FORMAT_ATTRIBUTE_1_2" + ] + }, + "modules/mono/utils/path_utils.h": { + "classes": [], + "structs": [], + "defines": [ + "MONO_PATH_UTILS_H" + ] + }, + "modules/mono/utils/macros.h": { + "classes": [ + "ScopeExitAux" + ], + "structs": [ + "ScopeExit" + ], + "defines": [ + "MONO_MACROS_H", + "_GD_VARNAME_CONCAT_B_", + "_GD_VARNAME_CONCAT_A_", + "_GD_VARNAME_CONCAT_", + "GD_UNIQUE_NAME", + "GD_UNREACHABLE", + "GD_UNREACHABLE", + "GD_UNREACHABLE", + "SCOPE_EXIT" + ] + }, + "modules/mono/utils/macos_utils.h": { + "classes": [], + "structs": [], + "defines": [ + "MONO_MACOS_UTILS_H" + ] + }, + "modules/mono/editor/bindings_generator.h": { + "classes": [ + "BindingsGenerator" + ], + "structs": [ + "ConstantInterface", + "EnumInterface", + "PropertyInterface", + "TypeReference", + "ArgumentInterface", + "MethodInterface", + "SignalInterface", + "TypeInterface", + "InternalCall", + "NameCache" + ], + "defines": [ + "BINDINGS_GENERATOR_H" + ] + }, + "modules/mono/editor/editor_internal_calls.h": { + "classes": [], + "structs": [], + "defines": [ + "EDITOR_INTERNAL_CALLS_H" + ] + }, + "modules/mono/editor/code_completion.h": { + "classes": [ + "CompletionKind" + ], + "structs": [], + "defines": [ + "CODE_COMPLETION_H" + ] + }, + "modules/mono/editor/hostfxr_resolver.h": { + "classes": [], + "structs": [], + "defines": [ + "HOSTFXR_RESOLVER_H" + ] + }, + "modules/mono/editor/semver.h": { + "classes": [], + "structs": [ + "SemVer", + "SemVerParser" + ], + "defines": [ + "SEMVER_H" + ] + }, + "modules/msdfgen/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "MSDFGEN_REGISTER_TYPES_H" + ] + }, + "modules/text_server_adv/script_iterator.h": { + "classes": [ + "ScriptIterator" + ], + "structs": [ + "ScriptRange" + ], + "defines": [ + "SCRIPT_ITERATOR_H" + ] + }, + "modules/text_server_adv/text_server_adv.h": { + "classes": [ + "TextServerAdvanced" + ], + "structs": [ + "NumSystemData", + "FeatureInfo", + "FontTexturePosition", + "Shelf", + "ShelfPackTexture", + "FontGlyph", + "FontForSizeAdvanced", + "FontAdvancedLinkedVariation", + "FontAdvanced", + "TrimData", + "ShapedTextDataAdvanced", + "Span", + "EmbeddedObject", + "SystemFontKey", + "SystemFontCacheRec", + "SystemFontCache", + "SystemFontKeyHasher", + "bmp_font_t", + "GlyphCompare" + ], + "defines": [ + "TEXT_SERVER_ADV_H" + ] + }, + "modules/text_server_adv/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "TEXT_SERVER_ADV_REGISTER_TYPES_H" + ] + }, + "modules/text_server_adv/thorvg_svg_in_ot.h": { + "classes": [], + "structs": [ + "GL_State", + "TVG_State" + ], + "defines": [ + "THORVG_SVG_IN_OT_H" + ] + }, + "modules/text_server_adv/thorvg_bounds_iterator.h": { + "classes": [], + "structs": [], + "defines": [ + "THORVG_BOUNDS_ITERATOR_H" + ] + }, + "modules/astcenc/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "ASTCENC_REGISTER_TYPES_H" + ] + }, + "modules/astcenc/image_compress_astcenc.h": { + "classes": [], + "structs": [], + "defines": [ + "IMAGE_COMPRESS_ASTCENC_H" + ] + }, + "modules/dds/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "DDS_REGISTER_TYPES_H" + ] + }, + "modules/dds/texture_loader_dds.h": { + "classes": [ + "ResourceFormatDDS" + ], + "structs": [], + "defines": [ + "TEXTURE_LOADER_DDS_H" + ] + }, + "modules/cvtt/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "CVTT_REGISTER_TYPES_H" + ] + }, + "modules/cvtt/image_compress_cvtt.h": { + "classes": [], + "structs": [], + "defines": [ + "IMAGE_COMPRESS_CVTT_H" + ] + }, + "modules/bmp/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "BMP_REGISTER_TYPES_H" + ] + }, + "modules/bmp/image_loader_bmp.h": { + "classes": [ + "ImageLoaderBMP" + ], + "structs": [ + "bmp_header_s", + "bmp_file_header_s", + "bmp_info_header_s", + "bmp_bitfield_s" + ], + "defines": [ + "IMAGE_LOADER_BMP_H" + ] + }, + "modules/theora/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "THEORA_REGISTER_TYPES_H" + ] + }, + "modules/theora/video_stream_theora.h": { + "classes": [ + "VideoStreamPlaybackTheora", + "VideoStreamTheora", + "ResourceFormatLoaderTheora" + ], + "structs": [], + "defines": [ + "VIDEO_STREAM_THEORA_H", + "THEORA_USE_THREAD_STREAMING" + ] + }, + "modules/webrtc/webrtc_data_channel.h": { + "classes": [ + "WebRTCDataChannel" + ], + "structs": [], + "defines": [ + "WEBRTC_DATA_CHANNEL_H" + ] + }, + "modules/webrtc/webrtc_data_channel_js.h": { + "classes": [ + "WebRTCDataChannelJS" + ], + "structs": [], + "defines": [ + "WEBRTC_DATA_CHANNEL_JS_H" + ] + }, + "modules/webrtc/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "WEBRTC_REGISTER_TYPES_H" + ] + }, + "modules/webrtc/webrtc_multiplayer_peer.h": { + "classes": [ + "WebRTCMultiplayerPeer", + "ConnectedPeer" + ], + "structs": [], + "defines": [ + "WEBRTC_MULTIPLAYER_PEER_H" + ] + }, + "modules/webrtc/webrtc_peer_connection.h": { + "classes": [ + "WebRTCPeerConnection" + ], + "structs": [], + "defines": [ + "WEBRTC_PEER_CONNECTION_H" + ] + }, + "modules/webrtc/webrtc_peer_connection_js.h": { + "classes": [ + "WebRTCPeerConnectionJS" + ], + "structs": [], + "defines": [ + "WEBRTC_PEER_CONNECTION_JS_H" + ] + }, + "modules/webrtc/webrtc_peer_connection_extension.h": { + "classes": [ + "WebRTCPeerConnectionExtension" + ], + "structs": [], + "defines": [ + "WEBRTC_PEER_CONNECTION_EXTENSION_H" + ] + }, + "modules/webrtc/webrtc_data_channel_extension.h": { + "classes": [ + "WebRTCDataChannelExtension" + ], + "structs": [], + "defines": [ + "WEBRTC_DATA_CHANNEL_EXTENSION_H" + ] + }, + "modules/mobile_vr/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "MOBILE_VR_REGISTER_TYPES_H" + ] + }, + "modules/mobile_vr/mobile_vr_interface.h": { + "classes": [ + "MobileVRInterface" + ], + "structs": [], + "defines": [ + "MOBILE_VR_INTERFACE_H" + ] + }, + "modules/xatlas_unwrap/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "XATLAS_UNWRAP_REGISTER_TYPES_H" + ] + }, + "modules/multiplayer/scene_replication_config.h": { + "classes": [ + "SceneReplicationConfig" + ], + "structs": [ + "ReplicationProperty" + ], + "defines": [ + "SCENE_REPLICATION_CONFIG_H" + ] + }, + "modules/multiplayer/multiplayer_debugger.h": { + "classes": [ + "MultiplayerDebugger", + "BandwidthProfiler", + "RPCProfiler", + "ReplicationProfiler" + ], + "structs": [ + "RPCNodeInfo", + "RPCFrame", + "SyncInfo", + "ReplicationFrame", + "BandwidthFrame" + ], + "defines": [ + "MULTIPLAYER_DEBUGGER_H" + ] + }, + "modules/multiplayer/multiplayer_spawner.h": { + "classes": [ + "MultiplayerSpawner" + ], + "structs": [ + "SpawnableScene", + "SpawnInfo" + ], + "defines": [ + "MULTIPLAYER_SPAWNER_H" + ] + }, + "modules/multiplayer/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "MULTIPLAYER_REGISTER_TYPES_H" + ] + }, + "modules/multiplayer/scene_cache_interface.h": { + "classes": [ + "SceneCacheInterface" + ], + "structs": [ + "NodeCache", + "PeerInfo" + ], + "defines": [ + "SCENE_CACHE_INTERFACE_H" + ] + }, + "modules/multiplayer/scene_multiplayer.h": { + "classes": [ + "OfflineMultiplayerPeer", + "SceneMultiplayer" + ], + "structs": [ + "PendingPeer" + ], + "defines": [ + "SCENE_MULTIPLAYER_H" + ] + }, + "modules/multiplayer/multiplayer_synchronizer.h": { + "classes": [ + "MultiplayerSynchronizer" + ], + "structs": [ + "Watcher" + ], + "defines": [ + "MULTIPLAYER_SYNCHRONIZER_H" + ] + }, + "modules/multiplayer/scene_replication_interface.h": { + "classes": [ + "SceneReplicationInterface" + ], + "structs": [ + "TrackedNode", + "PeerInfo" + ], + "defines": [ + "SCENE_REPLICATION_INTERFACE_H" + ] + }, + "modules/multiplayer/scene_rpc_interface.h": { + "classes": [ + "SceneRPCInterface" + ], + "structs": [ + "RPCConfig", + "RPCConfigCache", + "SortRPCConfig" + ], + "defines": [ + "SCENE_RPC_INTERFACE_H" + ] + }, + "modules/multiplayer/editor/editor_network_profiler.h": { + "classes": [ + "EditorNetworkProfiler" + ], + "structs": [ + "NodeInfo", + "ThemeCache" + ], + "defines": [ + "EDITOR_NETWORK_PROFILER_H" + ] + }, + "modules/multiplayer/editor/replication_editor.h": { + "classes": [ + "ReplicationEditor" + ], + "structs": [], + "defines": [ + "REPLICATION_EDITOR_H" + ] + }, + "modules/multiplayer/editor/multiplayer_editor_plugin.h": { + "classes": [ + "MultiplayerEditorDebugger", + "MultiplayerEditorPlugin" + ], + "structs": [], + "defines": [ + "MULTIPLAYER_EDITOR_PLUGIN_H" + ] + }, + "modules/gridmap/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "GRIDMAP_REGISTER_TYPES_H" + ] + }, + "modules/gridmap/grid_map.h": { + "classes": [ + "GridMap" + ], + "structs": [ + "Octant", + "NavigationCell", + "MultimeshInstance", + "Item", + "BakeLight", + "BakedMesh" + ], + "defines": [ + "GRID_MAP_H" + ] + }, + "modules/gridmap/editor/grid_map_editor_plugin.h": { + "classes": [ + "GridMapEditor", + "GridMapEditorPlugin" + ], + "structs": [ + "SetItem", + "ClipboardItem", + "Selection", + "PasteIndicator", + "AreaDisplay" + ], + "defines": [ + "GRID_MAP_EDITOR_PLUGIN_H" + ] + }, + "modules/vhacd/register_types.h": { + "classes": [], + "structs": [], + "defines": [ + "VHACD_REGISTER_TYPES_H" + ] + }, + "servers/camera_server.h": { + "classes": [ + "CameraServer" + ], + "structs": [], + "defines": [ + "CAMERA_SERVER_H" + ] + }, + "servers/navigation_server_2d_dummy.h": { + "classes": [ + "NavigationServer2DDummy" + ], + "structs": [], + "defines": [ + "NAVIGATION_SERVER_2D_DUMMY_H" + ] + }, + "servers/navigation_server_3d_dummy.h": { + "classes": [ + "NavigationServer3DDummy" + ], + "structs": [], + "defines": [ + "NAVIGATION_SERVER_3D_DUMMY_H" + ] + }, + "servers/server_wrap_mt_common.h": { + "classes": [], + "structs": [], + "defines": [ + "SERVER_WRAP_MT_COMMON_H", + "FUNC0R", + "FUNCRIDSPLIT", + "FUNCRID", + "FUNC0RC", + "FUNC0", + "FUNC0C", + "FUNC0S", + "FUNC0SC", + "FUNC1R", + "FUNC1RC", + "FUNC1S", + "FUNC1SC", + "FUNC1", + "FUNC1C", + "FUNC2R", + "FUNC2RC", + "FUNC2S", + "FUNC2SC", + "FUNC2", + "FUNC2C", + "FUNC3R", + "FUNC3RC", + "FUNC3S", + "FUNC3SC", + "FUNC3", + "FUNC3C", + "FUNC4R", + "FUNC4RC", + "FUNC4S", + "FUNC4SC", + "FUNC4", + "FUNC4C", + "FUNC5R", + "FUNC5RC", + "FUNC5S", + "FUNC5SC", + "FUNC5", + "FUNC5C", + "FUNC6R", + "FUNC6RC", + "FUNC6S", + "FUNC6SC", + "FUNC6", + "FUNC6C", + "FUNC7R", + "FUNC7RC", + "FUNC7S", + "FUNC7SC", + "FUNC7", + "FUNC7C", + "FUNC8R", + "FUNC8RC", + "FUNC8S", + "FUNC8SC", + "FUNC8", + "FUNC8C", + "FUNC9", + "FUNC10", + "FUNC11", + "FUNC12", + "FUNC13", + "FUNC14", + "FUNC15" + ] + }, + "servers/physics_server_3d.h": { + "classes": [ + "PhysicsDirectBodyState3D", + "PhysicsDirectSpaceState3D", + "PhysicsServer3DRenderingServerHandler", + "PhysicsServer3D", + "PhysicsRayQueryParameters3D", + "PhysicsPointQueryParameters3D", + "PhysicsShapeQueryParameters3D", + "PhysicsTestMotionParameters3D", + "PhysicsTestMotionResult3D", + "PhysicsServer3DManager" + ], + "structs": [ + "RayParameters", + "RayResult", + "ShapeResult", + "PointParameters", + "ShapeParameters", + "ShapeRestInfo", + "MotionParameters", + "MotionCollision", + "MotionResult", + "ClassInfo" + ], + "defines": [ + "PHYSICS_SERVER_3D_H" + ] + }, + "servers/register_server_types.h": { + "classes": [], + "structs": [], + "defines": [ + "REGISTER_SERVER_TYPES_H" + ] + }, + "servers/display_server.h": { + "classes": [ + "DisplayServer" + ], + "structs": [ + "DisplayServerCreate", + "TTSUtterance" + ], + "defines": [ + "DISPLAY_SERVER_H" + ] + }, + "servers/physics_server_2d.h": { + "classes": [ + "PhysicsDirectBodyState2D", + "PhysicsDirectSpaceState2D", + "PhysicsServer2D", + "PhysicsRayQueryParameters2D", + "PhysicsPointQueryParameters2D", + "PhysicsShapeQueryParameters2D", + "PhysicsTestMotionParameters2D", + "PhysicsTestMotionResult2D", + "PhysicsServer2DManager" + ], + "structs": [ + "RayParameters", + "RayResult", + "ShapeResult", + "PointParameters", + "ShapeParameters", + "ShapeRestInfo", + "MotionParameters", + "MotionResult", + "ClassInfo" + ], + "defines": [ + "PHYSICS_SERVER_2D_H" + ] + }, + "servers/display_server_headless.h": { + "classes": [ + "DisplayServerHeadless" + ], + "structs": [], + "defines": [ + "DISPLAY_SERVER_HEADLESS_H" + ] + }, + "servers/rendering_server.h": { + "classes": [ + "RenderingServer" + ], + "structs": [ + "TextureInfo", + "ShaderNativeSourceCode", + "Version", + "Stage", + "SurfaceData", + "LOD", + "FrameProfileArea" + ], + "defines": [ + "RENDERING_SERVER_H", + "RS" + ] + }, + "servers/text_server.h": { + "classes": [ + "TextServer", + "TextServerManager" + ], + "structs": [ + "Glyph", + "CaretInfo" + ], + "defines": [ + "TEXT_SERVER_H", + "TS" + ] + }, + "servers/physics_server_2d_wrap_mt.h": { + "classes": [ + "PhysicsServer2DWrapMT" + ], + "structs": [], + "defines": [ + "PHYSICS_SERVER_2D_WRAP_MT_H", + "SYNC_DEBUG", + "SYNC_DEBUG", + "ServerName", + "ServerNameWrapMT", + "server_name", + "WRITE_ACTION" + ] + }, + "servers/navigation_server_3d.h": { + "classes": [ + "NavigationServer3D", + "NavigationServer3DManager" + ], + "structs": [], + "defines": [ + "NAVIGATION_SERVER_3D_H" + ] + }, + "servers/navigation_server_2d.h": { + "classes": [ + "NavigationServer2D", + "NavigationServer2DManager" + ], + "structs": [], + "defines": [ + "NAVIGATION_SERVER_2D_H" + ] + }, + "servers/physics_server_3d_wrap_mt.h": { + "classes": [ + "PhysicsServer3DWrapMT" + ], + "structs": [], + "defines": [ + "PHYSICS_SERVER_3D_WRAP_MT_H", + "SYNC_DEBUG", + "SYNC_DEBUG", + "ServerName", + "ServerNameWrapMT", + "server_name", + "WRITE_ACTION" + ] + }, + "servers/xr_server.h": { + "classes": [ + "XRServer" + ], + "structs": [], + "defines": [ + "XR_SERVER_H", + "XR" + ] + }, + "servers/native_menu.h": { + "classes": [ + "NativeMenu" + ], + "structs": [], + "defines": [ + "NATIVE_MENU_H" + ] + }, + "servers/audio_server.h": { + "classes": [ + "AudioDriver", + "AudioDriverManager", + "AudioServer", + "AudioBusLayout" + ], + "structs": [ + "Bus", + "Channel", + "Effect", + "AudioStreamPlaybackBusDetails", + "AudioStreamPlaybackListNode", + "CallbackItem", + "Bus", + "Effect" + ], + "defines": [ + "AUDIO_SERVER_H" + ] + }, + "servers/physics_3d/godot_step_3d.h": { + "classes": [ + "GodotStep3D" + ], + "structs": [], + "defines": [ + "GODOT_STEP_3D_H" + ] + }, + "servers/physics_3d/godot_broad_phase_3d.h": { + "classes": [ + "GodotBroadPhase3D" + ], + "structs": [], + "defines": [ + "GODOT_BROAD_PHASE_3D_H" + ] + }, + "servers/physics_3d/godot_collision_solver_3d.h": { + "classes": [ + "GodotCollisionSolver3D" + ], + "structs": [], + "defines": [ + "GODOT_COLLISION_SOLVER_3D_H" + ] + }, + "servers/physics_3d/godot_joint_3d.h": { + "classes": [ + "GodotJoint3D" + ], + "structs": [], + "defines": [ + "GODOT_JOINT_3D_H" + ] + }, + "servers/physics_3d/godot_area_3d.h": { + "classes": [ + "GodotArea3D" + ], + "structs": [ + "BodyKey", + "BodyState", + "AreaCMP" + ], + "defines": [ + "GODOT_AREA_3D_H" + ] + }, + "servers/physics_3d/godot_collision_solver_3d_sat.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_COLLISION_SOLVER_3D_SAT_H" + ] + }, + "servers/physics_3d/godot_constraint_3d.h": { + "classes": [ + "GodotConstraint3D" + ], + "structs": [], + "defines": [ + "GODOT_CONSTRAINT_3D_H" + ] + }, + "servers/physics_3d/godot_body_pair_3d.h": { + "classes": [ + "GodotBodyContact3D", + "GodotBodyPair3D", + "GodotBodySoftBodyPair3D" + ], + "structs": [ + "Contact" + ], + "defines": [ + "GODOT_BODY_PAIR_3D_H" + ] + }, + "servers/physics_3d/godot_shape_3d.h": { + "classes": [ + "GodotShapeOwner3D", + "GodotShape3D", + "GodotConcaveShape3D", + "GodotWorldBoundaryShape3D", + "GodotSeparationRayShape3D", + "GodotSphereShape3D", + "GodotBoxShape3D", + "GodotCapsuleShape3D", + "GodotCylinderShape3D" + ], + "structs": [ + "GodotConvexPolygonShape3D", + "GodotConcavePolygonShape3D", + "Face", + "BVH", + "_CullParams", + "_SegmentCullParams", + "GodotHeightMapShape3D", + "Range", + "GodotFaceShape3D", + "GodotMotionShape3D" + ], + "defines": [ + "GODOT_SHAPE_3D_H" + ] + }, + "servers/physics_3d/godot_space_3d.h": { + "classes": [ + "GodotPhysicsDirectSpaceState3D", + "GodotSpace3D" + ], + "structs": [], + "defines": [ + "GODOT_SPACE_3D_H" + ] + }, + "servers/physics_3d/gjk_epa.h": { + "classes": [], + "structs": [], + "defines": [ + "GJK_EPA_H" + ] + }, + "servers/physics_3d/godot_broad_phase_3d_bvh.h": { + "classes": [ + "GodotBroadPhase3DBVH", + "UserPairTestFunction", + "UserCullTestFunction" + ], + "structs": [], + "defines": [ + "GODOT_BROAD_PHASE_3D_BVH_H" + ] + }, + "servers/physics_3d/godot_body_3d.h": { + "classes": [ + "GodotBody3D" + ], + "structs": [ + "Contact", + "ForceIntegrationCallbackData" + ], + "defines": [ + "GODOT_BODY_3D_H" + ] + }, + "servers/physics_3d/godot_physics_server_3d.h": { + "classes": [ + "GodotPhysicsServer3D" + ], + "structs": [ + "CollCbkData" + ], + "defines": [ + "GODOT_PHYSICS_SERVER_3D_H" + ] + }, + "servers/physics_3d/godot_body_direct_state_3d.h": { + "classes": [ + "GodotPhysicsDirectBodyState3D" + ], + "structs": [], + "defines": [ + "GODOT_BODY_DIRECT_STATE_3D_H" + ] + }, + "servers/physics_3d/godot_area_pair_3d.h": { + "classes": [ + "GodotAreaPair3D", + "GodotArea2Pair3D", + "GodotAreaSoftBodyPair3D" + ], + "structs": [], + "defines": [ + "GODOT_AREA_PAIR_3D_H" + ] + }, + "servers/physics_3d/godot_soft_body_3d.h": { + "classes": [ + "GodotSoftBody3D", + "GodotSoftBodyShape3D" + ], + "structs": [ + "Node", + "Link", + "Face" + ], + "defines": [ + "GODOT_SOFT_BODY_3D_H" + ] + }, + "servers/physics_3d/godot_collision_object_3d.h": { + "classes": [ + "GodotCollisionObject3D" + ], + "structs": [ + "Shape" + ], + "defines": [ + "GODOT_COLLISION_OBJECT_3D_H", + "MAX_OBJECT_DISTANCE", + "MAX_OBJECT_DISTANCE_X2" + ] + }, + "servers/physics_3d/joints/godot_slider_joint_3d.h": { + "classes": [ + "GodotSliderJoint3D" + ], + "structs": [], + "defines": [ + "GODOT_SLIDER_JOINT_3D_H", + "SLIDER_CONSTRAINT_DEF_SOFTNESS", + "SLIDER_CONSTRAINT_DEF_DAMPING", + "SLIDER_CONSTRAINT_DEF_RESTITUTION" + ] + }, + "servers/physics_3d/joints/godot_hinge_joint_3d.h": { + "classes": [ + "GodotHingeJoint3D" + ], + "structs": [], + "defines": [ + "GODOT_HINGE_JOINT_3D_H" + ] + }, + "servers/physics_3d/joints/godot_pin_joint_3d.h": { + "classes": [ + "GodotPinJoint3D" + ], + "structs": [], + "defines": [ + "GODOT_PIN_JOINT_3D_H" + ] + }, + "servers/physics_3d/joints/godot_jacobian_entry_3d.h": { + "classes": [ + "GodotJacobianEntry3D" + ], + "structs": [], + "defines": [ + "GODOT_JACOBIAN_ENTRY_3D_H" + ] + }, + "servers/physics_3d/joints/godot_generic_6dof_joint_3d.h": { + "classes": [ + "GodotG6DOFRotationalLimitMotor3D", + "GodotG6DOFTranslationalLimitMotor3D", + "GodotGeneric6DOFJoint3D" + ], + "structs": [], + "defines": [ + "GODOT_GENERIC_6DOF_JOINT_3D_H" + ] + }, + "servers/physics_3d/joints/godot_cone_twist_joint_3d.h": { + "classes": [ + "GodotConeTwistJoint3D" + ], + "structs": [], + "defines": [ + "GODOT_CONE_TWIST_JOINT_3D_H" + ] + }, + "servers/camera/camera_feed.h": { + "classes": [ + "CameraFeed" + ], + "structs": [], + "defines": [ + "CAMERA_FEED_H" + ] + }, + "servers/navigation/navigation_path_query_result_2d.h": { + "classes": [ + "NavigationPathQueryResult2D" + ], + "structs": [], + "defines": [ + "NAVIGATION_PATH_QUERY_RESULT_2D_H" + ] + }, + "servers/navigation/navigation_path_query_result_3d.h": { + "classes": [ + "NavigationPathQueryResult3D" + ], + "structs": [], + "defines": [ + "NAVIGATION_PATH_QUERY_RESULT_3D_H" + ] + }, + "servers/navigation/navigation_path_query_parameters_2d.h": { + "classes": [ + "NavigationPathQueryParameters2D" + ], + "structs": [], + "defines": [ + "NAVIGATION_PATH_QUERY_PARAMETERS_2D_H" + ] + }, + "servers/navigation/navigation_path_query_parameters_3d.h": { + "classes": [ + "NavigationPathQueryParameters3D" + ], + "structs": [], + "defines": [ + "NAVIGATION_PATH_QUERY_PARAMETERS_3D_H" + ] + }, + "servers/navigation/navigation_utilities.h": { + "classes": [], + "structs": [ + "PathQueryParameters", + "PathQueryResult" + ], + "defines": [ + "NAVIGATION_UTILITIES_H" + ] + }, + "servers/xr/xr_interface.h": { + "classes": [ + "XRInterface" + ], + "structs": [ + "VRSData" + ], + "defines": [ + "XR_INTERFACE_H" + ] + }, + "servers/xr/xr_hand_tracker.h": { + "classes": [ + "XRHandTracker" + ], + "structs": [], + "defines": [ + "XR_HAND_TRACKER_H" + ] + }, + "servers/xr/xr_body_tracker.h": { + "classes": [ + "XRBodyTracker" + ], + "structs": [], + "defines": [ + "XR_BODY_TRACKER_H" + ] + }, + "servers/xr/xr_interface_extension.h": { + "classes": [ + "XRInterfaceExtension" + ], + "structs": [], + "defines": [ + "XR_INTERFACE_EXTENSION_H" + ] + }, + "servers/xr/xr_positional_tracker.h": { + "classes": [ + "XRPositionalTracker" + ], + "structs": [], + "defines": [ + "XR_POSITIONAL_TRACKER_H" + ] + }, + "servers/xr/xr_pose.h": { + "classes": [ + "XRPose" + ], + "structs": [], + "defines": [ + "XR_POSE_H" + ] + }, + "servers/xr/xr_face_tracker.h": { + "classes": [ + "XRFaceTracker" + ], + "structs": [], + "defines": [ + "XR_FACE_TRACKER_H" + ] + }, + "servers/extensions/physics_server_2d_extension.h": { + "classes": [ + "PhysicsDirectBodyState2DExtension", + "PhysicsDirectSpaceState2DExtension", + "PhysicsServer2DExtension" + ], + "structs": [], + "defines": [ + "PHYSICS_SERVER_2D_EXTENSION_H" + ] + }, + "servers/extensions/physics_server_3d_extension.h": { + "classes": [ + "PhysicsDirectBodyState3DExtension", + "PhysicsDirectSpaceState3DExtension", + "PhysicsServer3DExtension" + ], + "structs": [], + "defines": [ + "PHYSICS_SERVER_3D_EXTENSION_H" + ] + }, + "servers/audio/audio_filter_sw.h": { + "classes": [ + "AudioFilterSW", + "Processor" + ], + "structs": [ + "Coeffs" + ], + "defines": [ + "AUDIO_FILTER_SW_H" + ] + }, + "servers/audio/audio_stream.h": { + "classes": [ + "AudioStreamPlayback", + "AudioStreamPlaybackResampled", + "AudioStream", + "AudioStreamMicrophone", + "AudioStreamPlaybackMicrophone", + "AudioStreamRandomizer", + "AudioStreamPlaybackRandomizer" + ], + "structs": [ + "Parameter", + "PoolEntry" + ], + "defines": [ + "AUDIO_STREAM_H" + ] + }, + "servers/audio/audio_rb_resampler.h": { + "classes": [], + "structs": [ + "AudioRBResampler" + ], + "defines": [ + "AUDIO_RB_RESAMPLER_H" + ] + }, + "servers/audio/audio_effect.h": { + "classes": [ + "AudioEffectInstance", + "AudioEffect" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_H" + ] + }, + "servers/audio/audio_driver_dummy.h": { + "classes": [ + "AudioDriverDummy" + ], + "structs": [], + "defines": [ + "AUDIO_DRIVER_DUMMY_H" + ] + }, + "servers/audio/effects/audio_effect_phaser.h": { + "classes": [ + "AudioEffectPhaserInstance", + "AllpassDelay", + "AudioEffectPhaser" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_PHASER_H" + ] + }, + "servers/audio/effects/audio_effect_spectrum_analyzer.h": { + "classes": [ + "AudioEffectSpectrumAnalyzerInstance", + "AudioEffectSpectrumAnalyzer" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_SPECTRUM_ANALYZER_H" + ] + }, + "servers/audio/effects/audio_effect_pitch_shift.h": { + "classes": [ + "SMBPitchShift", + "AudioEffectPitchShiftInstance", + "AudioEffectPitchShift" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_PITCH_SHIFT_H" + ] + }, + "servers/audio/effects/audio_effect_eq.h": { + "classes": [ + "AudioEffectEQInstance", + "AudioEffectEQ", + "AudioEffectEQ6", + "AudioEffectEQ10", + "AudioEffectEQ21" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_EQ_H" + ] + }, + "servers/audio/effects/audio_effect_chorus.h": { + "classes": [ + "AudioEffectChorusInstance", + "AudioEffectChorus" + ], + "structs": [ + "Voice" + ], + "defines": [ + "AUDIO_EFFECT_CHORUS_H" + ] + }, + "servers/audio/effects/audio_effect_compressor.h": { + "classes": [ + "AudioEffectCompressorInstance", + "AudioEffectCompressor" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_COMPRESSOR_H" + ] + }, + "servers/audio/effects/audio_effect_distortion.h": { + "classes": [ + "AudioEffectDistortionInstance", + "AudioEffectDistortion" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_DISTORTION_H" + ] + }, + "servers/audio/effects/audio_effect_limiter.h": { + "classes": [ + "AudioEffectLimiterInstance", + "AudioEffectLimiter" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_LIMITER_H" + ] + }, + "servers/audio/effects/audio_effect_filter.h": { + "classes": [ + "AudioEffectFilterInstance", + "AudioEffectFilter", + "AudioEffectLowPassFilter", + "AudioEffectHighPassFilter", + "AudioEffectBandPassFilter", + "AudioEffectNotchFilter", + "AudioEffectBandLimitFilter", + "AudioEffectLowShelfFilter", + "AudioEffectHighShelfFilter" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_FILTER_H" + ] + }, + "servers/audio/effects/audio_effect_reverb.h": { + "classes": [ + "AudioEffectReverbInstance", + "AudioEffectReverb" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_REVERB_H" + ] + }, + "servers/audio/effects/audio_effect_capture.h": { + "classes": [ + "AudioEffectCaptureInstance", + "AudioEffectCapture" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_CAPTURE_H" + ] + }, + "servers/audio/effects/audio_effect_stereo_enhance.h": { + "classes": [ + "AudioEffectStereoEnhanceInstance", + "AudioEffectStereoEnhance" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_STEREO_ENHANCE_H" + ] + }, + "servers/audio/effects/audio_effect_delay.h": { + "classes": [ + "AudioEffectDelayInstance", + "AudioEffectDelay" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_DELAY_H" + ] + }, + "servers/audio/effects/audio_stream_generator.h": { + "classes": [ + "AudioStreamGenerator", + "AudioStreamGeneratorPlayback" + ], + "structs": [], + "defines": [ + "AUDIO_STREAM_GENERATOR_H" + ] + }, + "servers/audio/effects/audio_effect_amplify.h": { + "classes": [ + "AudioEffectAmplifyInstance", + "AudioEffectAmplify" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_AMPLIFY_H" + ] + }, + "servers/audio/effects/eq_filter.h": { + "classes": [ + "EQ", + "BandProcess" + ], + "structs": [ + "History", + "Band" + ], + "defines": [ + "EQ_FILTER_H" + ] + }, + "servers/audio/effects/audio_effect_panner.h": { + "classes": [ + "AudioEffectPannerInstance", + "AudioEffectPanner" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_PANNER_H" + ] + }, + "servers/audio/effects/audio_effect_record.h": { + "classes": [ + "AudioEffectRecordInstance", + "AudioEffectRecord" + ], + "structs": [], + "defines": [ + "AUDIO_EFFECT_RECORD_H" + ] + }, + "servers/audio/effects/reverb_filter.h": { + "classes": [ + "Reverb" + ], + "structs": [ + "Comb", + "AllPass", + "Parameters" + ], + "defines": [ + "REVERB_FILTER_H" + ] + }, + "servers/debugger/servers_debugger.h": { + "classes": [ + "ServersDebugger" + ], + "structs": [ + "ResourceInfo", + "ResourceUsage", + "ScriptFunctionSignature", + "ScriptFunctionInfo", + "ServerFunctionInfo", + "ServerInfo", + "ServersProfilerFrame", + "VisualProfilerFrame" + ], + "defines": [ + "SERVERS_DEBUGGER_H" + ] + }, + "servers/rendering/rendering_device_driver.h": { + "classes": [ + "VectorView", + "RenderingDeviceDriver" + ], + "structs": [ + "VersatileResourceTemplate", + "ID", + "TextureView", + "TextureSubresource", + "TextureSubresourceLayers", + "TextureSubresourceRange", + "TextureCopyableLayout", + "MemoryBarrier", + "BufferBarrier", + "TextureBarrier", + "BoundUniform", + "BufferCopyRegion", + "TextureCopyRegion", + "BufferTextureCopyRegion", + "Attachment", + "AttachmentReference", + "Subpass", + "SubpassDependency", + "AttachmentClear", + "MultiviewCapabilities", + "Capabilities" + ], + "defines": [ + "RENDERING_DEVICE_DRIVER_H", + "ALLOCA", + "ALLOCA_ARRAY", + "ALLOCA_SINGLE", + "ARRAYS_COMPATIBLE", + "ARRAYS_COMPATIBLE_FIELDWISE", + "ENUM_MEMBERS_EQUAL", + "DEFINE_ID" + ] + }, + "servers/rendering/renderer_geometry_instance.h": { + "classes": [ + "RenderGeometryInstance", + "RenderGeometryInstanceBase" + ], + "structs": [ + "Data" + ], + "defines": [ + "RENDERER_GEOMETRY_INSTANCE_H" + ] + }, + "servers/rendering/rendering_light_culler.h": { + "classes": [ + "RenderingLightCuller", + "LightSource" + ], + "structs": [ + "LightCullPlanes", + "Data" + ], + "defines": [ + "RENDERING_LIGHT_CULLER_H", + "LIGHT_CULLER_DEBUG_LOGGING", + "LIGHT_CULLER_DEBUG_DIRECTIONAL_LIGHT", + "LIGHT_CULLER_DEBUG_REGULAR_LIGHT", + "LIGHT_CULLER_DEBUG_FLASH", + "LIGHT_CULLER_DEBUG_FLASH_FREQUENCY", + "RENDERING_LIGHT_CULLER_CALCULATE_LUT", + "RENDERING_LIGHT_CULLER_DEBUG_STRINGS" + ] + }, + "servers/rendering/rendering_context_driver.h": { + "classes": [ + "RenderingContextDriver" + ], + "structs": [ + "Device" + ], + "defines": [ + "RENDERING_CONTEXT_DRIVER_H" + ] + }, + "servers/rendering/renderer_canvas_cull.h": { + "classes": [ + "RendererCanvasCull" + ], + "structs": [ + "Item", + "VisibilityNotifierData", + "ItemIndexSort", + "ItemPtrSort", + "LightOccluderPolygon", + "Canvas", + "ChildItem" + ], + "defines": [ + "RENDERER_CANVAS_CULL_H" + ] + }, + "servers/rendering/rendering_device_graph.h": { + "classes": [ + "RenderingDeviceGraph" + ], + "structs": [ + "ComputeListInstruction", + "DrawListInstruction", + "RecordedCommand", + "RecordedBufferCopy", + "RecordedBufferToTextureCopy", + "ResourceTracker", + "InstructionList", + "ComputeInstructionList", + "DrawInstructionList", + "RecordedCommandSort", + "RecordedCommandListNode", + "RecordedSliceListNode", + "RecordedBufferClearCommand", + "RecordedBufferCopyCommand", + "RecordedBufferGetDataCommand", + "RecordedBufferUpdateCommand", + "RecordedComputeListCommand", + "RecordedDrawListCommand", + "RecordedTextureClearCommand", + "RecordedTextureCopyCommand", + "RecordedTextureGetDataCommand", + "RecordedTextureResolveCommand", + "RecordedTextureUpdateCommand", + "RecordedCaptureTimestampCommand", + "DrawListBindIndexBufferInstruction", + "DrawListBindPipelineInstruction", + "DrawListBindUniformSetInstruction", + "DrawListBindVertexBuffersInstruction", + "DrawListClearAttachmentsInstruction", + "DrawListDrawInstruction", + "DrawListDrawIndexedInstruction", + "DrawListEndRenderPassInstruction", + "DrawListExecuteCommandsInstruction", + "DrawListSetPushConstantInstruction", + "DrawListNextSubpassInstruction", + "DrawListSetBlendConstantsInstruction", + "DrawListSetLineWidthInstruction", + "DrawListSetScissorInstruction", + "DrawListSetViewportInstruction", + "DrawListUniformSetPrepareForUseInstruction", + "ComputeListBindPipelineInstruction", + "ComputeListBindUniformSetInstruction", + "ComputeListDispatchInstruction", + "ComputeListDispatchIndirectInstruction", + "ComputeListSetPushConstantInstruction", + "ComputeListUniformSetPrepareForUseInstruction", + "BarrierGroup", + "SecondaryCommandBuffer", + "Frame" + ], + "defines": [ + "RENDERING_DEVICE_GRAPH_H", + "USE_BUFFER_BARRIERS" + ] + }, + "servers/rendering/rendering_device_commons.h": { + "classes": [ + "RenderingDeviceCommons" + ], + "structs": [ + "TextureFormat", + "SamplerState", + "VertexAttribute", + "ShaderStageSPIRVData", + "PipelineSpecializationConstant", + "PipelineRasterizationState", + "PipelineMultisampleState", + "PipelineDepthStencilState", + "StencilOperationState", + "PipelineColorBlendState", + "Attachment", + "ShaderUniform", + "ShaderSpecializationConstant", + "ShaderDescription", + "ShaderReflection" + ], + "defines": [ + "RENDERING_DEVICE_COMMONS_H", + "STEPIFY" + ] + }, + "servers/rendering/rendering_server_default.h": { + "classes": [ + "RenderingServerDefault" + ], + "structs": [], + "defines": [ + "RENDERING_SERVER_DEFAULT_H", + "DEBUG_CHANGES", + "DISPLAY_CHANGED", + "WRITE_ACTION", + "SYNC_DEBUG", + "SYNC_DEBUG", + "ServerName", + "server_name", + "FUNCRIDTEX0", + "FUNCRIDTEX1", + "FUNCRIDTEX2", + "FUNCRIDTEX6", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name", + "ServerName", + "server_name" + ] + }, + "servers/rendering/renderer_scene_occlusion_cull.h": { + "classes": [ + "RendererSceneOcclusionCull", + "HZBuffer" + ], + "structs": [], + "defines": [ + "RENDERER_SCENE_OCCLUSION_CULL_H" + ] + }, + "servers/rendering/renderer_compositor.h": { + "classes": [ + "RendererCompositor" + ], + "structs": [ + "BlitToScreen" + ], + "defines": [ + "RENDERER_COMPOSITOR_H" + ] + }, + "servers/rendering/shader_types.h": { + "classes": [ + "ShaderTypes" + ], + "structs": [ + "Type" + ], + "defines": [ + "SHADER_TYPES_H" + ] + }, + "servers/rendering/rendering_method.h": { + "classes": [ + "RenderingMethod" + ], + "structs": [ + "RenderInfo" + ], + "defines": [ + "RENDERING_METHOD_H" + ] + }, + "servers/rendering/shader_warnings.h": { + "classes": [ + "ShaderWarning" + ], + "structs": [], + "defines": [ + "SHADER_WARNINGS_H" + ] + }, + "servers/rendering/renderer_viewport.h": { + "classes": [ + "RendererViewport" + ], + "structs": [ + "CanvasBase", + "Viewport", + "CanvasKey", + "CanvasData" + ], + "defines": [ + "RENDERER_VIEWPORT_H" + ] + }, + "servers/rendering/shader_compiler.h": { + "classes": [ + "ShaderCompiler" + ], + "structs": [ + "IdentifierActions", + "GeneratedCode", + "Texture", + "DefaultIdentifierActions" + ], + "defines": [ + "SHADER_COMPILER_H" + ] + }, + "servers/rendering/renderer_scene_cull.h": { + "classes": [ + "RendererSceneCull", + "VisibilityArray" + ], + "structs": [ + "Camera", + "PlaneSign", + "Frustum", + "InstanceBounds", + "InstanceData", + "InstanceVisibilityData", + "Scenario", + "InstancePair", + "InstanceBaseData", + "Instance", + "InstanceShaderParameter", + "InstanceGeometryData", + "InstanceReflectionProbeData", + "InstanceDecalData", + "InstanceParticlesCollisionData", + "InstanceFogVolumeData", + "InstanceVisibilityNotifierData", + "InstanceLightData", + "InstanceVoxelGIData", + "LightCache", + "InstanceLightmapData", + "PairInstances", + "InstanceCullResult", + "DirectionalShadow", + "Cull", + "Shadow", + "Cascade", + "SDFGI", + "VisibilityCullData", + "CullData" + ], + "defines": [ + "RENDERER_SCENE_CULL_H", + "PASSBASE" + ] + }, + "servers/rendering/renderer_canvas_render.h": { + "classes": [ + "RendererCanvasRender" + ], + "structs": [ + "Light", + "Polygon", + "Item", + "CommandBlock", + "Command", + "CommandRect", + "CommandNinePatch", + "CommandPolygon", + "CommandPrimitive", + "CommandMesh", + "CommandMultiMesh", + "CommandParticles", + "CommandTransform", + "CommandClipIgnore", + "CommandAnimationSlice", + "ViewportRender", + "CanvasGroup", + "CopyBackBuffer", + "LightOccluderInstance" + ], + "defines": [ + "RENDERER_CANVAS_RENDER_H" + ] + }, + "servers/rendering/rendering_server_globals.h": { + "classes": [ + "RenderingServerGlobals" + ], + "structs": [], + "defines": [ + "RENDERING_SERVER_GLOBALS_H", + "RSG" + ] + }, + "servers/rendering/shader_language.h": { + "classes": [ + "ShaderLanguage" + ], + "structs": [ + "TkPos", + "VaryingFunctionNames", + "Node", + "OperatorNode", + "VariableNode", + "VariableDeclarationNode", + "Declaration", + "ArrayNode", + "ArrayConstructNode", + "ConstantNode", + "BlockNode", + "Variable", + "ControlFlowNode", + "MemberNode", + "StructNode", + "FunctionNode", + "Argument", + "ShaderNode", + "Constant", + "Function", + "Struct", + "Varying", + "Uniform", + "UniformOrderComparator", + "Expression", + "VarInfo", + "Token", + "BuiltInInfo", + "StageFunctionInfo", + "Argument", + "ModeInfo", + "FunctionInfo", + "FilePosition", + "KeyWord", + "Usage", + "BuiltinFuncDef", + "BuiltinFuncOutArgs", + "BuiltinFuncConstArgs", + "ShaderCompileInfo" + ], + "defines": [ + "SHADER_LANGUAGE_H" + ] + }, + "servers/rendering/renderer_scene_render.h": { + "classes": [ + "RendererSceneRender" + ], + "structs": [ + "RenderShadowData", + "RenderSDFGIData", + "RenderSDFGIUpdateData", + "CameraData" + ], + "defines": [ + "RENDERER_SCENE_RENDER_H" + ] + }, + "servers/rendering/rendering_device_binds.h": { + "classes": [ + "RDTextureFormat", + "RDTextureView", + "RDAttachmentFormat", + "RDFramebufferPass", + "RDSamplerState", + "RDVertexAttribute", + "RDShaderSource", + "RDShaderSPIRV", + "RDShaderFile", + "RDUniform", + "RDPipelineSpecializationConstant", + "RDPipelineRasterizationState", + "RDPipelineMultisampleState", + "RDPipelineDepthStencilState", + "RDPipelineColorBlendStateAttachment", + "RDPipelineColorBlendState" + ], + "structs": [], + "defines": [ + "RENDERING_DEVICE_BINDS_H", + "RD_SETGET", + "RD_BIND", + "RD_SETGET_SUB", + "RD_BIND_SUB" + ] + }, + "servers/rendering/shader_preprocessor.h": { + "classes": [ + "ShaderPreprocessor", + "Tokenizer", + "CommentRemover" + ], + "structs": [ + "FilePosition", + "Region", + "Token", + "Define", + "Branch", + "State" + ], + "defines": [ + "SHADER_PREPROCESSOR_H" + ] + }, + "servers/rendering/rendering_device.h": { + "classes": [ + "RenderingDevice" + ], + "structs": [ + "StagingBufferBlock", + "Buffer", + "Texture", + "TextureView", + "AttachmentFormat", + "FramebufferPass", + "FramebufferFormatKey", + "FramebufferFormat", + "Framebuffer", + "VersionKey", + "Version", + "VertexDescriptionKey", + "VertexDescriptionHash", + "VertexDescriptionCache", + "VertexArray", + "IndexBuffer", + "IndexArray", + "UniformSetFormat", + "Shader", + "Uniform", + "UniformSet", + "AttachableTexture", + "RenderPipeline", + "Validation", + "ComputePipeline", + "DrawList", + "SetState", + "State", + "Validation", + "Validation", + "ComputeList", + "SetState", + "State", + "Validation", + "Frame", + "Timestamp" + ], + "defines": [ + "RENDERING_DEVICE_H" + ] + }, + "servers/rendering/renderer_rd/renderer_compositor_rd.h": { + "classes": [ + "RendererCompositorRD" + ], + "structs": [ + "BlitPushConstant", + "Blit" + ], + "defines": [ + "RENDERER_COMPOSITOR_RD_H" + ] + }, + "servers/rendering/renderer_rd/renderer_scene_render_rd.h": { + "classes": [ + "RendererSceneRenderRD" + ], + "structs": [], + "defines": [ + "RENDERER_SCENE_RENDER_RD_H" + ] + }, + "servers/rendering/renderer_rd/framebuffer_cache_rd.h": { + "classes": [ + "FramebufferCacheRD" + ], + "structs": [ + "Cache" + ], + "defines": [ + "FRAMEBUFFER_CACHE_RD_H" + ] + }, + "servers/rendering/renderer_rd/cluster_builder_rd.h": { + "classes": [ + "ClusterBuilderSharedDataRD", + "ClusterBuilderRD" + ], + "structs": [ + "ClusterRender", + "PushConstant", + "ClusterStore", + "PushConstant", + "ClusterDebug", + "PushConstant", + "RenderElementData", + "StateUniform" + ], + "defines": [ + "CLUSTER_BUILDER_RD_H", + "CONE_MINMAX" + ] + }, + "servers/rendering/renderer_rd/uniform_set_cache_rd.h": { + "classes": [ + "UniformSetCacheRD" + ], + "structs": [ + "Cache" + ], + "defines": [ + "UNIFORM_SET_CACHE_RD_H" + ] + }, + "servers/rendering/renderer_rd/shader_rd.h": { + "classes": [ + "ShaderRD" + ], + "structs": [ + "VariantDefine", + "Version", + "CompileData", + "StageTemplate", + "Chunk" + ], + "defines": [ + "SHADER_RD_H" + ] + }, + "servers/rendering/renderer_rd/pipeline_cache_rd.h": { + "classes": [ + "PipelineCacheRD" + ], + "structs": [ + "Version" + ], + "defines": [ + "PIPELINE_CACHE_RD_H" + ] + }, + "servers/rendering/renderer_rd/renderer_canvas_render_rd.h": { + "classes": [ + "RendererCanvasRenderRD" + ], + "structs": [ + "PipelineVariants", + "CanvasShaderData", + "CanvasMaterialData", + "PolygonBuffers", + "CanvasLight", + "ShadowRenderPushConstant", + "OccluderPolygon", + "LightUniform", + "State", + "Buffer", + "PushConstant" + ], + "defines": [ + "RENDERER_CANVAS_RENDER_RD_H" + ] + }, + "servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h": { + "classes": [ + "SceneShaderForwardClustered" + ], + "structs": [ + "ShaderData", + "MaterialData" + ], + "defines": [ + "SCENE_SHADER_FORWARD_CLUSTERED_H" + ] + }, + "servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h": { + "classes": [ + "RenderForwardClustered", + "RenderBufferDataForwardClustered", + "GeometryInstanceForwardClustered" + ], + "structs": [ + "SSEffectsData", + "BestFitNormal", + "RenderListParameters", + "LightmapData", + "LightmapCaptureData", + "SceneState", + "UBO", + "PushConstant", + "InstanceData", + "ShadowPass", + "RenderElementInfo", + "GeometryInstanceLightmapSH", + "GeometryInstanceSurfaceDataCache", + "RenderList", + "SortByKey", + "SortByDepth", + "SortByReverseDepthAndPriority" + ], + "defines": [ + "RENDER_FORWARD_CLUSTERED_H", + "RB_SCOPE_FORWARD_CLUSTERED", + "RB_TEX_SPECULAR", + "RB_TEX_SPECULAR_MSAA", + "RB_TEX_NORMAL_ROUGHNESS", + "RB_TEX_NORMAL_ROUGHNESS_MSAA", + "RB_TEX_VOXEL_GI", + "RB_TEX_VOXEL_GI_MSAA" + ] + }, + "servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h": { + "classes": [ + "RenderForwardMobile", + "RenderBufferDataForwardMobile", + "GeometryInstanceForwardMobile", + "ForwardIDStorageMobile" + ], + "structs": [ + "RenderListParameters", + "LightmapData", + "LightmapCaptureData", + "SceneState", + "PushConstant", + "InstanceData", + "ShadowPass", + "RenderList", + "SortByKey", + "SortByDepth", + "SortByReverseDepthAndPriority", + "RenderElementInfo", + "GeometryInstanceLightmapSH", + "GeometryInstanceSurfaceDataCache", + "ForwardIDAllocator" + ], + "defines": [ + "RENDER_FORWARD_MOBILE_H", + "RB_SCOPE_MOBILE" + ] + }, + "servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h": { + "classes": [ + "SceneShaderForwardMobile" + ], + "structs": [ + "ShaderData", + "MaterialData" + ], + "defines": [ + "SCENE_SHADER_FORWARD_MOBILE_H" + ] + }, + "servers/rendering/renderer_rd/shaders/skeleton.glsl.gen.h": { + "classes": [ + "SkeletonShaderRD" + ], + "structs": [], + "defines": [ + "SKELETON_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/roughness_limiter.glsl.gen.h": { + "classes": [ + "RoughnessLimiterShaderRD" + ], + "structs": [], + "defines": [ + "ROUGHNESS_LIMITER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/cluster_render.glsl.gen.h": { + "classes": [ + "ClusterRenderShaderRD" + ], + "structs": [], + "defines": [ + "CLUSTER_RENDER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/blit.glsl.gen.h": { + "classes": [ + "BlitShaderRD" + ], + "structs": [], + "defines": [ + "BLIT_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/luminance_reduce_raster.glsl.gen.h": { + "classes": [ + "LuminanceReduceRasterShaderRD" + ], + "structs": [], + "defines": [ + "LUMINANCE_REDUCE_RASTER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/luminance_reduce.glsl.gen.h": { + "classes": [ + "LuminanceReduceShaderRD" + ], + "structs": [], + "defines": [ + "LUMINANCE_REDUCE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/cluster_store.glsl.gen.h": { + "classes": [ + "ClusterStoreShaderRD" + ], + "structs": [], + "defines": [ + "CLUSTER_STORE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/canvas.glsl.gen.h": { + "classes": [ + "CanvasShaderRD" + ], + "structs": [], + "defines": [ + "CANVAS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/canvas_sdf.glsl.gen.h": { + "classes": [ + "CanvasSdfShaderRD" + ], + "structs": [], + "defines": [ + "CANVAS_SDF_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/sort.glsl.gen.h": { + "classes": [ + "SortShaderRD" + ], + "structs": [], + "defines": [ + "SORT_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/giprobe_write.glsl.gen.h": { + "classes": [ + "GiprobeWriteShaderRD" + ], + "structs": [], + "defines": [ + "GIPROBE_WRITE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/canvas_occlusion.glsl.gen.h": { + "classes": [ + "CanvasOcclusionShaderRD" + ], + "structs": [], + "defines": [ + "CANVAS_OCCLUSION_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/cluster_debug.glsl.gen.h": { + "classes": [ + "ClusterDebugShaderRD" + ], + "structs": [], + "defines": [ + "CLUSTER_DEBUG_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/particles.glsl.gen.h": { + "classes": [ + "ParticlesShaderRD" + ], + "structs": [], + "defines": [ + "PARTICLES_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/particles_copy.glsl.gen.h": { + "classes": [ + "ParticlesCopyShaderRD" + ], + "structs": [], + "defines": [ + "PARTICLES_COPY_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl.gen.h": { + "classes": [ + "SceneForwardClusteredShaderRD" + ], + "structs": [], + "defines": [ + "SCENE_FORWARD_CLUSTERED_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/forward_clustered/best_fit_normal.glsl.gen.h": { + "classes": [ + "BestFitNormalShaderRD" + ], + "structs": [], + "defines": [ + "BEST_FIT_NORMAL_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl.gen.h": { + "classes": [ + "SceneForwardMobileShaderRD" + ], + "structs": [], + "defines": [ + "SCENE_FORWARD_MOBILE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/sdfgi_preprocess.glsl.gen.h": { + "classes": [ + "SdfgiPreprocessShaderRD" + ], + "structs": [], + "defines": [ + "SDFGI_PREPROCESS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/sky.glsl.gen.h": { + "classes": [ + "SkyShaderRD" + ], + "structs": [], + "defines": [ + "SKY_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/sdfgi_direct_light.glsl.gen.h": { + "classes": [ + "SdfgiDirectLightShaderRD" + ], + "structs": [], + "defines": [ + "SDFGI_DIRECT_LIGHT_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/volumetric_fog_process.glsl.gen.h": { + "classes": [ + "VolumetricFogProcessShaderRD" + ], + "structs": [], + "defines": [ + "VOLUMETRIC_FOG_PROCESS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/gi.glsl.gen.h": { + "classes": [ + "GiShaderRD" + ], + "structs": [], + "defines": [ + "GI_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/voxel_gi.glsl.gen.h": { + "classes": [ + "VoxelGiShaderRD" + ], + "structs": [], + "defines": [ + "VOXEL_GI_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/voxel_gi_debug.glsl.gen.h": { + "classes": [ + "VoxelGiDebugShaderRD" + ], + "structs": [], + "defines": [ + "VOXEL_GI_DEBUG_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/voxel_gi_sdf.glsl.gen.h": { + "classes": [ + "VoxelGiSdfShaderRD" + ], + "structs": [], + "defines": [ + "VOXEL_GI_SDF_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/sdfgi_debug.glsl.gen.h": { + "classes": [ + "SdfgiDebugShaderRD" + ], + "structs": [], + "defines": [ + "SDFGI_DEBUG_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/sdfgi_integrate.glsl.gen.h": { + "classes": [ + "SdfgiIntegrateShaderRD" + ], + "structs": [], + "defines": [ + "SDFGI_INTEGRATE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/volumetric_fog.glsl.gen.h": { + "classes": [ + "VolumetricFogShaderRD" + ], + "structs": [], + "defines": [ + "VOLUMETRIC_FOG_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/environment/sdfgi_debug_probes.glsl.gen.h": { + "classes": [ + "SdfgiDebugProbesShaderRD" + ], + "structs": [], + "defines": [ + "SDFGI_DEBUG_PROBES_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/ssao.glsl.gen.h": { + "classes": [ + "SsaoShaderRD" + ], + "structs": [], + "defines": [ + "SSAO_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/cubemap_filter.glsl.gen.h": { + "classes": [ + "CubemapFilterShaderRD" + ], + "structs": [], + "defines": [ + "CUBEMAP_FILTER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/bokeh_dof_raster.glsl.gen.h": { + "classes": [ + "BokehDofRasterShaderRD" + ], + "structs": [], + "defines": [ + "BOKEH_DOF_RASTER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/ssil_blur.glsl.gen.h": { + "classes": [ + "SsilBlurShaderRD" + ], + "structs": [], + "defines": [ + "SSIL_BLUR_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/shadow_frustum.glsl.gen.h": { + "classes": [ + "ShadowFrustumShaderRD" + ], + "structs": [], + "defines": [ + "SHADOW_FRUSTUM_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/cubemap_filter_raster.glsl.gen.h": { + "classes": [ + "CubemapFilterRasterShaderRD" + ], + "structs": [], + "defines": [ + "CUBEMAP_FILTER_RASTER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/screen_space_reflection.glsl.gen.h": { + "classes": [ + "ScreenSpaceReflectionShaderRD" + ], + "structs": [], + "defines": [ + "SCREEN_SPACE_REFLECTION_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/taa_resolve.glsl.gen.h": { + "classes": [ + "TaaResolveShaderRD" + ], + "structs": [], + "defines": [ + "TAA_RESOLVE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/ssil_interleave.glsl.gen.h": { + "classes": [ + "SsilInterleaveShaderRD" + ], + "structs": [], + "defines": [ + "SSIL_INTERLEAVE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/ss_effects_downsample.glsl.gen.h": { + "classes": [ + "SsEffectsDownsampleShaderRD" + ], + "structs": [], + "defines": [ + "SS_EFFECTS_DOWNSAMPLE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/ssil.glsl.gen.h": { + "classes": [ + "SsilShaderRD" + ], + "structs": [], + "defines": [ + "SSIL_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/blur_raster.glsl.gen.h": { + "classes": [ + "BlurRasterShaderRD" + ], + "structs": [], + "defines": [ + "BLUR_RASTER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/fsr_upscale.glsl.gen.h": { + "classes": [ + "FsrUpscaleShaderRD" + ], + "structs": [], + "defines": [ + "FSR_UPSCALE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/tonemap.glsl.gen.h": { + "classes": [ + "TonemapShaderRD" + ], + "structs": [], + "defines": [ + "TONEMAP_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/screen_space_reflection_scale.glsl.gen.h": { + "classes": [ + "ScreenSpaceReflectionScaleShaderRD" + ], + "structs": [], + "defines": [ + "SCREEN_SPACE_REFLECTION_SCALE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/roughness_limiter.glsl.gen.h": { + "classes": [ + "RoughnessLimiterShaderRD" + ], + "structs": [], + "defines": [ + "ROUGHNESS_LIMITER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/ssao_blur.glsl.gen.h": { + "classes": [ + "SsaoBlurShaderRD" + ], + "structs": [], + "defines": [ + "SSAO_BLUR_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/ssao_importance_map.glsl.gen.h": { + "classes": [ + "SsaoImportanceMapShaderRD" + ], + "structs": [], + "defines": [ + "SSAO_IMPORTANCE_MAP_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/motion_vectors.glsl.gen.h": { + "classes": [ + "MotionVectorsShaderRD" + ], + "structs": [], + "defines": [ + "MOTION_VECTORS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/bokeh_dof.glsl.gen.h": { + "classes": [ + "BokehDofShaderRD" + ], + "structs": [], + "defines": [ + "BOKEH_DOF_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/luminance_reduce_raster.glsl.gen.h": { + "classes": [ + "LuminanceReduceRasterShaderRD" + ], + "structs": [], + "defines": [ + "LUMINANCE_REDUCE_RASTER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/luminance_reduce.glsl.gen.h": { + "classes": [ + "LuminanceReduceShaderRD" + ], + "structs": [], + "defines": [ + "LUMINANCE_REDUCE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/copy_to_fb.glsl.gen.h": { + "classes": [ + "CopyToFbShaderRD" + ], + "structs": [], + "defines": [ + "COPY_TO_FB_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/ssil_importance_map.glsl.gen.h": { + "classes": [ + "SsilImportanceMapShaderRD" + ], + "structs": [], + "defines": [ + "SSIL_IMPORTANCE_MAP_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/cubemap_downsampler.glsl.gen.h": { + "classes": [ + "CubemapDownsamplerShaderRD" + ], + "structs": [], + "defines": [ + "CUBEMAP_DOWNSAMPLER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/cubemap_roughness.glsl.gen.h": { + "classes": [ + "CubemapRoughnessShaderRD" + ], + "structs": [], + "defines": [ + "CUBEMAP_ROUGHNESS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/vrs.glsl.gen.h": { + "classes": [ + "VrsShaderRD" + ], + "structs": [], + "defines": [ + "VRS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/sort.glsl.gen.h": { + "classes": [ + "SortShaderRD" + ], + "structs": [], + "defines": [ + "SORT_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/specular_merge.glsl.gen.h": { + "classes": [ + "SpecularMergeShaderRD" + ], + "structs": [], + "defines": [ + "SPECULAR_MERGE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/ssao_interleave.glsl.gen.h": { + "classes": [ + "SsaoInterleaveShaderRD" + ], + "structs": [], + "defines": [ + "SSAO_INTERLEAVE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/screen_space_reflection_filter.glsl.gen.h": { + "classes": [ + "ScreenSpaceReflectionFilterShaderRD" + ], + "structs": [], + "defines": [ + "SCREEN_SPACE_REFLECTION_FILTER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/cubemap_downsampler_raster.glsl.gen.h": { + "classes": [ + "CubemapDownsamplerRasterShaderRD" + ], + "structs": [], + "defines": [ + "CUBEMAP_DOWNSAMPLER_RASTER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/resolve.glsl.gen.h": { + "classes": [ + "ResolveShaderRD" + ], + "structs": [], + "defines": [ + "RESOLVE_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/copy.glsl.gen.h": { + "classes": [ + "CopyShaderRD" + ], + "structs": [], + "defines": [ + "COPY_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/cubemap_roughness_raster.glsl.gen.h": { + "classes": [ + "CubemapRoughnessRasterShaderRD" + ], + "structs": [], + "defines": [ + "CUBEMAP_ROUGHNESS_RASTER_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/subsurface_scattering.glsl.gen.h": { + "classes": [ + "SubsurfaceScatteringShaderRD" + ], + "structs": [], + "defines": [ + "SUBSURFACE_SCATTERING_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/cube_to_dp.glsl.gen.h": { + "classes": [ + "CubeToDpShaderRD" + ], + "structs": [], + "defines": [ + "CUBE_TO_DP_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/fsr2/fsr2_autogen_reactive_pass.glsl.gen.h": { + "classes": [ + "Fsr2AutogenReactivePassShaderRD" + ], + "structs": [], + "defines": [ + "FSR2_AUTOGEN_REACTIVE_PASS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/fsr2/fsr2_accumulate_pass.glsl.gen.h": { + "classes": [ + "Fsr2AccumulatePassShaderRD" + ], + "structs": [], + "defines": [ + "FSR2_ACCUMULATE_PASS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/fsr2/fsr2_compute_luminance_pyramid_pass.glsl.gen.h": { + "classes": [ + "Fsr2ComputeLuminancePyramidPassShaderRD" + ], + "structs": [], + "defines": [ + "FSR2_COMPUTE_LUMINANCE_PYRAMID_PASS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/fsr2/fsr2_reconstruct_previous_depth_pass.glsl.gen.h": { + "classes": [ + "Fsr2ReconstructPreviousDepthPassShaderRD" + ], + "structs": [], + "defines": [ + "FSR2_RECONSTRUCT_PREVIOUS_DEPTH_PASS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/fsr2/fsr2_rcas_pass.glsl.gen.h": { + "classes": [ + "Fsr2RcasPassShaderRD" + ], + "structs": [], + "defines": [ + "FSR2_RCAS_PASS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/fsr2/fsr2_lock_pass.glsl.gen.h": { + "classes": [ + "Fsr2LockPassShaderRD" + ], + "structs": [], + "defines": [ + "FSR2_LOCK_PASS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/fsr2/fsr2_tcr_autogen_pass.glsl.gen.h": { + "classes": [ + "Fsr2TcrAutogenPassShaderRD" + ], + "structs": [], + "defines": [ + "FSR2_TCR_AUTOGEN_PASS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/shaders/effects/fsr2/fsr2_depth_clip_pass.glsl.gen.h": { + "classes": [ + "Fsr2DepthClipPassShaderRD" + ], + "structs": [], + "defines": [ + "FSR2_DEPTH_CLIP_PASS_GLSL_GEN_H_RD" + ] + }, + "servers/rendering/renderer_rd/environment/fog.h": { + "classes": [ + "Fog", + "VolumetricFog" + ], + "structs": [ + "FogVolume", + "FogVolumeInstance", + "VolumetricFogShader", + "FogPushConstant", + "VolumeUBO", + "ParamsUBO", + "FogShaderData", + "FogMaterialData", + "VolumetricFogSettings" + ], + "defines": [ + "FOG_RD_H", + "RB_SCOPE_FOG" + ] + }, + "servers/rendering/renderer_rd/environment/gi.h": { + "classes": [ + "GI", + "RenderBuffersGI", + "SDFGI" + ], + "structs": [ + "VoxelGI", + "VoxelGIInstance", + "Mipmap", + "DynamicMap", + "VoxelGILight", + "VoxelGIPushConstant", + "VoxelGIDynamicPushConstant", + "VoxelGIDebugPushConstant", + "SDFGIShader", + "PreprocessPushConstant", + "DebugPushConstant", + "DebugProbesSceneData", + "DebugProbesPushConstant", + "Light", + "DirectLightPushConstant", + "IntegratePushConstant", + "Cascade", + "UBO", + "SolidCell", + "SDFGIData", + "ProbeCascadeData", + "VoxelGIData", + "SceneData", + "PushConstant" + ], + "defines": [ + "GI_RD_H", + "RB_SCOPE_GI", + "RB_SCOPE_SDFGI", + "RB_TEX_AMBIENT", + "RB_TEX_REFLECTION" + ] + }, + "servers/rendering/renderer_rd/environment/sky.h": { + "classes": [ + "SkyRD" + ], + "structs": [ + "SkyDirectionalLightData", + "SkyPushConstant", + "SkyShaderData", + "SkySceneState", + "UBO", + "ReflectionData", + "Layer", + "Mipmap", + "DownsampleLayer", + "Mipmap", + "SkyShader", + "SkyMaterialData", + "Sky" + ], + "defines": [ + "SKY_RD_H" + ] + }, + "servers/rendering/renderer_rd/effects/debug_effects.h": { + "classes": [ + "DebugEffects" + ], + "structs": [ + "ShadowFrustumPushConstant", + "MotionVectorsPushConstant" + ], + "defines": [ + "DEBUG_EFFECTS_RD_H" + ] + }, + "servers/rendering/renderer_rd/effects/fsr2.h": { + "classes": [ + "FSR2Context", + "FSR2Effect" + ], + "structs": [ + "Resources", + "Scratch", + "RootSignature", + "Pipeline", + "Pass", + "Device", + "Parameters" + ], + "defines": [ + "FSR2_RD_H", + "FFX_GCC", + "FSR2_MAX_QUEUED_FRAMES", + "FSR2_MAX_UNIFORM_BUFFERS", + "FSR2_MAX_BUFFERED_DESCRIPTORS", + "FSR2_UBO_RING_BUFFER_SIZE" + ] + }, + "servers/rendering/renderer_rd/effects/ss_effects.h": { + "classes": [ + "SSEffects" + ], + "structs": [ + "SSILRenderBuffers", + "SSILSettings", + "SSAORenderBuffers", + "SSAOSettings", + "SSRRenderBuffers", + "SSEffectsDownsamplePushConstant", + "SSEffectsGatherConstants", + "SSEffectsShader", + "SSILGatherPushConstant", + "SSILImportanceMapPushConstant", + "SSILBlurPushConstant", + "SSILInterleavePushConstant", + "SSILProjectionUniforms", + "SSIL", + "SSAOGatherPushConstant", + "SSAOImportanceMapPushConstant", + "SSAOBlurPushConstant", + "SSAOInterleavePushConstant", + "SSAO", + "ScreenSpaceReflectionSceneData", + "ScreenSpaceReflectionScalePushConstant", + "ScreenSpaceReflectionScale", + "ScreenSpaceReflectionPushConstant", + "ScreenSpaceReflection", + "ScreenSpaceReflectionFilterPushConstant", + "ScreenSpaceReflectionFilter", + "SubSurfaceScatteringPushConstant", + "SubSurfaceScattering" + ], + "defines": [ + "SS_EFFECTS_RD_H", + "RB_SCOPE_SSDS", + "RB_SCOPE_SSIL", + "RB_SCOPE_SSAO", + "RB_SCOPE_SSR", + "RB_LINEAR_DEPTH", + "RB_FINAL", + "RB_LAST_FRAME", + "RB_DEINTERLEAVED", + "RB_DEINTERLEAVED_PONG", + "RB_EDGES", + "RB_IMPORTANCE_MAP", + "RB_IMPORTANCE_PONG", + "RB_DEPTH_SCALED", + "RB_NORMAL_SCALED", + "RB_BLUR_RADIUS", + "RB_INTERMEDIATE", + "RB_OUTPUT" + ] + }, + "servers/rendering/renderer_rd/effects/roughness_limiter.h": { + "classes": [ + "RoughnessLimiter" + ], + "structs": [ + "RoughnessLimiterPushConstant" + ], + "defines": [ + "ROUGHNESS_LIMITER_RD_H" + ] + }, + "servers/rendering/renderer_rd/effects/fsr.h": { + "classes": [ + "FSR" + ], + "structs": [ + "FSRUpscalePushConstant" + ], + "defines": [ + "FSR_RD_H" + ] + }, + "servers/rendering/renderer_rd/effects/copy_effects.h": { + "classes": [ + "CopyEffects" + ], + "structs": [ + "BlurRasterPushConstant", + "BlurRaster", + "CopyPushConstant", + "Copy", + "CopyToFbPushConstant", + "CopyToFb", + "CopyToDPPushConstant", + "CopyToDP", + "CubemapDownsamplerPushConstant", + "CubemapDownsampler", + "CubemapFilterRasterPushConstant", + "CubemapFilter", + "CubemapRoughnessPushConstant", + "CubemapRoughness", + "SpecularMerge" + ], + "defines": [ + "COPY_EFFECTS_RD_H" + ] + }, + "servers/rendering/renderer_rd/effects/tone_mapper.h": { + "classes": [ + "ToneMapper" + ], + "structs": [ + "TonemapPushConstant", + "Tonemap", + "TonemapSettings" + ], + "defines": [ + "TONE_MAPPER_RD_H" + ] + }, + "servers/rendering/renderer_rd/effects/luminance.h": { + "classes": [ + "Luminance", + "LuminanceBuffers" + ], + "structs": [ + "LuminanceReducePushConstant", + "LuminanceReduce", + "LuminanceReduceRasterPushConstant", + "LuminanceReduceFragment" + ], + "defines": [ + "LUMINANCE_RD_H", + "RB_LUMINANCE_BUFFERS" + ] + }, + "servers/rendering/renderer_rd/effects/bokeh_dof.h": { + "classes": [ + "BokehDOF" + ], + "structs": [ + "BokehPushConstant", + "Bokeh", + "BokehBuffers" + ], + "defines": [ + "BOKEH_DOF_RD_H" + ] + }, + "servers/rendering/renderer_rd/effects/taa.h": { + "classes": [ + "TAA" + ], + "structs": [ + "TAAResolvePushConstant" + ], + "defines": [ + "TAA_RD_H" + ] + }, + "servers/rendering/renderer_rd/effects/resolve.h": { + "classes": [ + "Resolve" + ], + "structs": [ + "ResolvePushConstant", + "ResolveShader" + ], + "defines": [ + "RESOLVE_RD_H" + ] + }, + "servers/rendering/renderer_rd/effects/sort_effects.h": { + "classes": [ + "SortEffects" + ], + "structs": [ + "PushConstant" + ], + "defines": [ + "SORT_EFFECTS_RD_H" + ] + }, + "servers/rendering/renderer_rd/effects/vrs.h": { + "classes": [ + "VRS" + ], + "structs": [ + "VRSPushConstant", + "VRSShader" + ], + "defines": [ + "VRS_RD_H" + ] + }, + "servers/rendering/renderer_rd/storage_rd/particles_storage.h": { + "classes": [ + "ParticlesStorage" + ], + "structs": [ + "ParticleData", + "ParticlesFrameParams", + "Attractor", + "Collider", + "ParticleEmissionBuffer", + "Data", + "Particles", + "ParticlesShader", + "PushConstant", + "CopyPushConstant", + "ParticlesShaderData", + "ParticleProcessMaterialData", + "ParticlesCollision", + "ParticlesCollisionInstance" + ], + "defines": [ + "PARTICLES_STORAGE_RD_H" + ] + }, + "servers/rendering/renderer_rd/storage_rd/light_storage.h": { + "classes": [ + "LightStorage" + ], + "structs": [ + "Light", + "LightInstance", + "ShadowTransform", + "LightData", + "LightInstanceDepthSort", + "DirectionalLightData", + "ReflectionProbe", + "ReflectionAtlas", + "Reflection", + "ReflectionProbeInstance", + "ReflectionData", + "ReflectionProbeInstanceSort", + "Lightmap", + "BSP", + "LightmapInstance", + "ShadowShrinkStage", + "ShadowAtlas", + "Quadrant", + "Shadow", + "DirectionalShadow", + "ShadowCubemap" + ], + "defines": [ + "LIGHT_STORAGE_RD_H" + ] + }, + "servers/rendering/renderer_rd/storage_rd/material_storage.h": { + "classes": [ + "MaterialStorage" + ], + "structs": [ + "ShaderData", + "MaterialData", + "Samplers", + "GlobalShaderUniforms", + "Variable", + "Value", + "ValueInt", + "ValueUInt", + "ValueUsage", + "Shader", + "Material" + ], + "defines": [ + "MATERIAL_STORAGE_RD_H" + ] + }, + "servers/rendering/renderer_rd/storage_rd/render_buffer_custom_data_rd.h": { + "classes": [ + "RenderBufferCustomDataRD" + ], + "structs": [], + "defines": [ + "RENDER_BUFFER_CUSTOM_DATA_RD_H" + ] + }, + "servers/rendering/renderer_rd/storage_rd/utilities.h": { + "classes": [ + "Utilities" + ], + "structs": [ + "VisibilityNotifier" + ], + "defines": [ + "UTILITIES_RD_H" + ] + }, + "servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h": { + "classes": [ + "RenderSceneBuffersRD" + ], + "structs": [ + "NTKey", + "NTSliceKey", + "NamedTexture", + "WeightBuffers" + ], + "defines": [ + "RENDER_SCENE_BUFFERS_RD_H", + "RB_SCOPE_BUFFERS", + "RB_SCOPE_VRS", + "RB_TEXTURE", + "RB_TEX_COLOR", + "RB_TEX_COLOR_MSAA", + "RB_TEX_COLOR_UPSCALED", + "RB_TEX_DEPTH", + "RB_TEX_DEPTH_MSAA", + "RB_TEX_VELOCITY", + "RB_TEX_VELOCITY_MSAA", + "RB_TEX_BLUR_0", + "RB_TEX_BLUR_1", + "RB_TEX_HALF_BLUR", + "RB_TEX_BACK_COLOR", + "RB_TEX_BACK_DEPTH" + ] + }, + "servers/rendering/renderer_rd/storage_rd/texture_storage.h": { + "classes": [ + "TextureStorage", + "CanvasTexture", + "Texture" + ], + "structs": [ + "BufferSlice3D", + "TextureToRDFormat", + "TextureFromRDFormat", + "DecalAtlas", + "Texture", + "SortItem", + "MipMap", + "Decal", + "DecalInstance", + "DecalData", + "DecalInstanceSort", + "RenderTarget", + "RTOverridden", + "SliceKey", + "RenderTargetSDF", + "PushConstant" + ], + "defines": [ + "TEXTURE_STORAGE_RD_H" + ] + }, + "servers/rendering/renderer_rd/storage_rd/mesh_storage.h": { + "classes": [ + "MeshStorage" + ], + "structs": [ + "Mesh", + "Surface", + "Version", + "LOD", + "MeshInstance", + "Surface", + "MultiMesh", + "SkeletonShader", + "PushConstant", + "Skeleton" + ], + "defines": [ + "MESH_STORAGE_RD_H" + ] + }, + "servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.h": { + "classes": [ + "RenderSceneDataRD" + ], + "structs": [ + "UBO", + "UBODATA" + ], + "defines": [ + "RENDER_SCENE_DATA_RD_H" + ] + }, + "servers/rendering/renderer_rd/storage_rd/render_data_rd.h": { + "classes": [ + "RenderDataRD" + ], + "structs": [], + "defines": [ + "RENDER_DATA_RD_H" + ] + }, + "servers/rendering/renderer_rd/storage_rd/forward_id_storage.h": { + "classes": [ + "ForwardIDStorage" + ], + "structs": [], + "defines": [ + "FORWARD_ID_STORAGE_H" + ] + }, + "servers/rendering/dummy/rasterizer_canvas_dummy.h": { + "classes": [ + "RasterizerCanvasDummy" + ], + "structs": [], + "defines": [ + "RASTERIZER_CANVAS_DUMMY_H" + ] + }, + "servers/rendering/dummy/rasterizer_scene_dummy.h": { + "classes": [ + "RasterizerSceneDummy", + "GeometryInstanceDummy" + ], + "structs": [], + "defines": [ + "RASTERIZER_SCENE_DUMMY_H" + ] + }, + "servers/rendering/dummy/rasterizer_dummy.h": { + "classes": [ + "RasterizerDummy" + ], + "structs": [], + "defines": [ + "RASTERIZER_DUMMY_H" + ] + }, + "servers/rendering/dummy/storage/particles_storage.h": { + "classes": [ + "ParticlesStorage" + ], + "structs": [], + "defines": [ + "PARTICLES_STORAGE_DUMMY_H" + ] + }, + "servers/rendering/dummy/storage/light_storage.h": { + "classes": [ + "LightStorage" + ], + "structs": [], + "defines": [ + "LIGHT_STORAGE_DUMMY_H" + ] + }, + "servers/rendering/dummy/storage/material_storage.h": { + "classes": [ + "MaterialStorage" + ], + "structs": [ + "DummyShader" + ], + "defines": [ + "MATERIAL_STORAGE_DUMMY_H" + ] + }, + "servers/rendering/dummy/storage/utilities.h": { + "classes": [ + "Utilities" + ], + "structs": [], + "defines": [ + "UTILITIES_DUMMY_H" + ] + }, + "servers/rendering/dummy/storage/texture_storage.h": { + "classes": [ + "TextureStorage" + ], + "structs": [ + "DummyTexture" + ], + "defines": [ + "TEXTURE_STORAGE_DUMMY_H" + ] + }, + "servers/rendering/dummy/storage/mesh_storage.h": { + "classes": [ + "MeshStorage" + ], + "structs": [ + "DummyMesh", + "DummyMultiMesh" + ], + "defines": [ + "MESH_STORAGE_DUMMY_H" + ] + }, + "servers/rendering/dummy/environment/fog.h": { + "classes": [ + "Fog" + ], + "structs": [], + "defines": [ + "FOG_DUMMY_H" + ] + }, + "servers/rendering/dummy/environment/gi.h": { + "classes": [ + "GI" + ], + "structs": [], + "defines": [ + "GI_DUMMY_H" + ] + }, + "servers/rendering/storage/particles_storage.h": { + "classes": [ + "RendererParticlesStorage" + ], + "structs": [], + "defines": [ + "PARTICLES_STORAGE_H" + ] + }, + "servers/rendering/storage/environment_storage.h": { + "classes": [ + "RendererEnvironmentStorage" + ], + "structs": [ + "Environment" + ], + "defines": [ + "ENVIRONMENT_STORAGE_H" + ] + }, + "servers/rendering/storage/light_storage.h": { + "classes": [ + "RendererLightStorage" + ], + "structs": [], + "defines": [ + "LIGHT_STORAGE_H" + ] + }, + "servers/rendering/storage/render_data.h": { + "classes": [ + "RenderData", + "RenderDataExtension" + ], + "structs": [], + "defines": [ + "RENDER_DATA_H" + ] + }, + "servers/rendering/storage/material_storage.h": { + "classes": [ + "RendererMaterialStorage" + ], + "structs": [ + "InstanceShaderParam" + ], + "defines": [ + "MATERIAL_STORAGE_H" + ] + }, + "servers/rendering/storage/utilities.h": { + "classes": [ + "Dependency", + "DependencyTracker", + "RendererUtilities" + ], + "structs": [], + "defines": [ + "RENDERER_UTILITIES_H", + "TIMESTAMP_BEGIN", + "RENDER_TIMESTAMP" + ] + }, + "servers/rendering/storage/compositor_storage.h": { + "classes": [ + "RendererCompositorStorage" + ], + "structs": [ + "CompositorEffect", + "Compositor" + ], + "defines": [ + "COMPOSITOR_STORAGE_H" + ] + }, + "servers/rendering/storage/texture_storage.h": { + "classes": [ + "RendererTextureStorage" + ], + "structs": [], + "defines": [ + "TEXTURE_STORAGE_H" + ] + }, + "servers/rendering/storage/variant_converters.h": { + "classes": [], + "structs": [ + "VariantConverterStd140" + ], + "defines": [ + "VARIANT_CONVERTERS_H" + ] + }, + "servers/rendering/storage/mesh_storage.h": { + "classes": [ + "RendererMeshStorage" + ], + "structs": [], + "defines": [ + "MESH_STORAGE_H" + ] + }, + "servers/rendering/storage/render_scene_data.h": { + "classes": [ + "RenderSceneData", + "RenderSceneDataExtension" + ], + "structs": [], + "defines": [ + "RENDER_SCENE_DATA_H" + ] + }, + "servers/rendering/storage/render_scene_buffers.h": { + "classes": [ + "RenderSceneBuffersConfiguration", + "RenderSceneBuffers", + "RenderSceneBuffersExtension" + ], + "structs": [], + "defines": [ + "RENDER_SCENE_BUFFERS_H" + ] + }, + "servers/rendering/storage/camera_attributes_storage.h": { + "classes": [ + "RendererCameraAttributes" + ], + "structs": [ + "CameraAttributes" + ], + "defines": [ + "CAMERA_ATTRIBUTES_STORAGE_H" + ] + }, + "servers/rendering/environment/renderer_fog.h": { + "classes": [ + "RendererFog" + ], + "structs": [], + "defines": [ + "RENDERER_FOG_H" + ] + }, + "servers/rendering/environment/renderer_gi.h": { + "classes": [ + "RendererGI" + ], + "structs": [], + "defines": [ + "RENDERER_GI_H" + ] + }, + "servers/physics_2d/godot_collision_solver_2d.h": { + "classes": [ + "GodotCollisionSolver2D" + ], + "structs": [], + "defines": [ + "GODOT_COLLISION_SOLVER_2D_H" + ] + }, + "servers/physics_2d/godot_step_2d.h": { + "classes": [ + "GodotStep2D" + ], + "structs": [], + "defines": [ + "GODOT_STEP_2D_H" + ] + }, + "servers/physics_2d/godot_broad_phase_2d.h": { + "classes": [ + "GodotBroadPhase2D" + ], + "structs": [], + "defines": [ + "GODOT_BROAD_PHASE_2D_H" + ] + }, + "servers/physics_2d/godot_space_2d.h": { + "classes": [ + "GodotPhysicsDirectSpaceState2D", + "GodotSpace2D" + ], + "structs": [ + "ExcludedShapeSW" + ], + "defines": [ + "GODOT_SPACE_2D_H" + ] + }, + "servers/physics_2d/godot_constraint_2d.h": { + "classes": [ + "GodotConstraint2D" + ], + "structs": [], + "defines": [ + "GODOT_CONSTRAINT_2D_H" + ] + }, + "servers/physics_2d/godot_body_pair_2d.h": { + "classes": [ + "GodotBodyPair2D" + ], + "structs": [ + "Contact" + ], + "defines": [ + "GODOT_BODY_PAIR_2D_H" + ] + }, + "servers/physics_2d/godot_shape_2d.h": { + "classes": [ + "GodotShapeOwner2D", + "GodotShape2D", + "GodotWorldBoundaryShape2D", + "GodotSeparationRayShape2D", + "GodotSegmentShape2D", + "GodotCircleShape2D", + "GodotRectangleShape2D", + "GodotCapsuleShape2D", + "GodotConvexPolygonShape2D", + "GodotConcaveShape2D", + "GodotConcavePolygonShape2D" + ], + "structs": [ + "Point", + "Segment", + "BVH", + "BVH_CompareX", + "BVH_CompareY" + ], + "defines": [ + "GODOT_SHAPE_2D_H", + "DEFAULT_PROJECT_RANGE_CAST" + ] + }, + "servers/physics_2d/godot_area_2d.h": { + "classes": [ + "GodotArea2D" + ], + "structs": [ + "BodyKey", + "BodyState" + ], + "defines": [ + "GODOT_AREA_2D_H" + ] + }, + "servers/physics_2d/godot_physics_server_2d.h": { + "classes": [ + "GodotPhysicsServer2D" + ], + "structs": [ + "CollCbkData" + ], + "defines": [ + "GODOT_PHYSICS_SERVER_2D_H" + ] + }, + "servers/physics_2d/godot_body_2d.h": { + "classes": [ + "GodotBody2D" + ], + "structs": [ + "AreaCMP", + "Contact", + "ForceIntegrationCallbackData" + ], + "defines": [ + "GODOT_BODY_2D_H" + ] + }, + "servers/physics_2d/godot_collision_solver_2d_sat.h": { + "classes": [], + "structs": [], + "defines": [ + "GODOT_COLLISION_SOLVER_2D_SAT_H" + ] + }, + "servers/physics_2d/godot_collision_object_2d.h": { + "classes": [ + "GodotCollisionObject2D" + ], + "structs": [ + "Shape" + ], + "defines": [ + "GODOT_COLLISION_OBJECT_2D_H" + ] + }, + "servers/physics_2d/godot_joints_2d.h": { + "classes": [ + "GodotJoint2D", + "GodotPinJoint2D", + "GodotGrooveJoint2D", + "GodotDampedSpringJoint2D" + ], + "structs": [], + "defines": [ + "GODOT_JOINTS_2D_H" + ] + }, + "servers/physics_2d/godot_broad_phase_2d_bvh.h": { + "classes": [ + "GodotBroadPhase2DBVH", + "UserPairTestFunction", + "UserCullTestFunction" + ], + "structs": [], + "defines": [ + "GODOT_BROAD_PHASE_2D_BVH_H" + ] + }, + "servers/physics_2d/godot_area_pair_2d.h": { + "classes": [ + "GodotAreaPair2D", + "GodotArea2Pair2D" + ], + "structs": [], + "defines": [ + "GODOT_AREA_PAIR_2D_H" + ] + }, + "servers/physics_2d/godot_body_direct_state_2d.h": { + "classes": [ + "GodotPhysicsDirectBodyState2D" + ], + "structs": [], + "defines": [ + "GODOT_BODY_DIRECT_STATE_2D_H" + ] + }, + "servers/text/text_server_extension.h": { + "classes": [ + "TextServerExtension" + ], + "structs": [], + "defines": [ + "TEXT_SERVER_EXTENSION_H" + ] + }, + "servers/text/text_server_dummy.h": { + "classes": [ + "TextServerDummy" + ], + "structs": [], + "defines": [ + "TEXT_SERVER_DUMMY_H" + ] + }, + "servers/movie_writer/movie_writer_mjpeg.h": { + "classes": [ + "MovieWriterMJPEG" + ], + "structs": [], + "defines": [ + "MOVIE_WRITER_MJPEG_H" + ] + }, + "servers/movie_writer/movie_writer_pngwav.h": { + "classes": [ + "MovieWriterPNGWAV" + ], + "structs": [], + "defines": [ + "MOVIE_WRITER_PNGWAV_H" + ] + }, + "servers/movie_writer/movie_writer.h": { + "classes": [ + "MovieWriter" + ], + "structs": [], + "defines": [ + "MOVIE_WRITER_H" + ] + }, + "editor/editor_run.h": { + "classes": [ + "EditorRun" + ], + "structs": [], + "defines": [ + "EDITOR_RUN_H" + ] + }, + "editor/editor_atlas_packer.h": { + "classes": [ + "EditorAtlasPacker" + ], + "structs": [ + "Chart", + "Face", + "PlottedBitmap" + ], + "defines": [ + "EDITOR_ATLAS_PACKER_H" + ] + }, + "editor/editor_translation_parser.h": { + "classes": [ + "EditorTranslationParserPlugin", + "EditorTranslationParser" + ], + "structs": [], + "defines": [ + "EDITOR_TRANSLATION_PARSER_H" + ] + }, + "editor/doc_data_class_path.gen.h": { + "classes": [], + "structs": [ + "_DocDataClassPath" + ], + "defines": [] + }, + "editor/multi_node_edit.h": { + "classes": [ + "MultiNodeEdit" + ], + "structs": [ + "PLData" + ], + "defines": [ + "MULTI_NODE_EDIT_H" + ] + }, + "editor/animation_track_editor_plugins.h": { + "classes": [ + "AnimationTrackEditBool", + "AnimationTrackEditColor", + "AnimationTrackEditAudio", + "AnimationTrackEditSpriteFrame", + "AnimationTrackEditSubAnim", + "AnimationTrackEditTypeAudio", + "AnimationTrackEditTypeAnimation", + "AnimationTrackEditVolumeDB", + "AnimationTrackEditDefaultPlugin" + ], + "structs": [], + "defines": [ + "ANIMATION_TRACK_EDITOR_PLUGINS_H" + ] + }, + "editor/project_manager.h": { + "classes": [ + "ProjectManager" + ], + "structs": [], + "defines": [ + "PROJECT_MANAGER_H" + ] + }, + "editor/dependency_editor.h": { + "classes": [ + "DependencyEditor", + "DependencyEditorOwners", + "DependencyRemoveDialog", + "DependencyErrorDialog", + "OrphanResourcesDialog" + ], + "structs": [ + "RemovedDependency" + ], + "defines": [ + "DEPENDENCY_EDITOR_H" + ] + }, + "editor/editor_about.h": { + "classes": [ + "EditorAbout" + ], + "structs": [], + "defines": [ + "EDITOR_ABOUT_H" + ] + }, + "editor/fbx_importer_manager.h": { + "classes": [ + "FBXImporterManager" + ], + "structs": [], + "defines": [ + "FBX_IMPORTER_MANAGER_H" + ] + }, + "editor/shader_globals_editor.h": { + "classes": [ + "ShaderGlobalsEditor" + ], + "structs": [], + "defines": [ + "SHADER_GLOBALS_EDITOR_H" + ] + }, + "editor/editor_folding.h": { + "classes": [ + "EditorFolding" + ], + "structs": [], + "defines": [ + "EDITOR_FOLDING_H" + ] + }, + "editor/editor_layouts_dialog.h": { + "classes": [ + "EditorLayoutsDialog" + ], + "structs": [], + "defines": [ + "EDITOR_LAYOUTS_DIALOG_H" + ] + }, + "editor/find_in_files.h": { + "classes": [ + "FindInFiles", + "FindInFilesDialog", + "FindInFilesPanel" + ], + "structs": [ + "Result" + ], + "defines": [ + "FIND_IN_FILES_H" + ] + }, + "editor/editor_command_palette.h": { + "classes": [ + "EditorCommandPalette" + ], + "structs": [ + "Command", + "CommandEntry", + "CommandEntryComparator", + "CommandHistoryComparator" + ], + "defines": [ + "EDITOR_COMMAND_PALETTE_H" + ] + }, + "editor/input_event_configuration_dialog.h": { + "classes": [ + "InputEventConfigurationDialog" + ], + "structs": [ + "IconCache" + ], + "defines": [ + "INPUT_EVENT_CONFIGURATION_DIALOG_H" + ] + }, + "editor/import_dock.h": { + "classes": [ + "ImportDock" + ], + "structs": [], + "defines": [ + "IMPORT_DOCK_H" + ] + }, + "editor/editor_settings.h": { + "classes": [ + "EditorSettings" + ], + "structs": [ + "Plugin", + "VariantContainer" + ], + "defines": [ + "EDITOR_SETTINGS_H", + "EDITOR_DEF", + "EDITOR_DEF_RST", + "EDITOR_GET", + "ED_IS_SHORTCUT" + ] + }, + "editor/editor_vcs_interface.h": { + "classes": [ + "EditorVCSInterface", + "VCSMetadata" + ], + "structs": [ + "DiffLine", + "DiffHunk", + "DiffFile", + "Commit", + "StatusFile" + ], + "defines": [ + "EDITOR_VCS_INTERFACE_H" + ] + }, + "editor/code_editor.h": { + "classes": [ + "GotoLineDialog", + "FindReplaceBar", + "CodeTextEditor" + ], + "structs": [], + "defines": [ + "CODE_EDITOR_H" + ] + }, + "editor/surface_upgrade_tool.h": { + "classes": [ + "SurfaceUpgradeTool", + "SurfaceUpgradeDialog" + ], + "structs": [], + "defines": [ + "SURFACE_UPGRADE_TOOL_H" + ] + }, + "editor/editor_file_system.h": { + "classes": [ + "EditorFileSystemDirectory", + "EditorFileSystemImportFormatSupportQuery", + "EditorFileSystem" + ], + "structs": [ + "FileInfo", + "FileInfoSort", + "ItemAction", + "FileCache", + "ScanProgress", + "ImportFile", + "ImportThreadData" + ], + "defines": [ + "EDITOR_FILE_SYSTEM_H" + ] + }, + "editor/create_dialog.h": { + "classes": [ + "CreateDialog" + ], + "structs": [], + "defines": [ + "CREATE_DIALOG_H" + ] + }, + "editor/editor_translations.gen.h": { + "classes": [], + "structs": [ + "EditorTranslationList" + ], + "defines": [ + "_EDITOR_TRANSLATIONS_H" + ] + }, + "editor/editor_feature_profile.h": { + "classes": [ + "EditorFeatureProfile", + "EditorFeatureProfileManager" + ], + "structs": [], + "defines": [ + "EDITOR_FEATURE_PROFILE_H" + ] + }, + "editor/builtin_fonts.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "_EDITOR_FONTS_H" + ] + }, + "editor/history_dock.h": { + "classes": [ + "HistoryDock" + ], + "structs": [], + "defines": [ + "HISTORY_DOCK_H" + ] + }, + "editor/rename_dialog.h": { + "classes": [ + "RenameDialog" + ], + "structs": [], + "defines": [ + "RENAME_DIALOG_H" + ] + }, + "editor/editor_log.h": { + "classes": [ + "EditorLog" + ], + "structs": [ + "LogMessage", + "LogFilter" + ], + "defines": [ + "EDITOR_LOG_H" + ] + }, + "editor/editor_build_profile.h": { + "classes": [ + "EditorBuildProfile", + "EditorBuildProfileManager" + ], + "structs": [ + "DetectedFile" + ], + "defines": [ + "EDITOR_BUILD_PROFILE_H" + ] + }, + "editor/progress_dialog.h": { + "classes": [ + "BackgroundProgress", + "ProgressDialog" + ], + "structs": [ + "Task", + "Task" + ], + "defines": [ + "PROGRESS_DIALOG_H" + ] + }, + "editor/groups_editor.h": { + "classes": [ + "GroupsEditor" + ], + "structs": [], + "defines": [ + "GROUPS_EDITOR_H" + ] + }, + "editor/extractable_translations.gen.h": { + "classes": [], + "structs": [ + "ExtractableTranslationList" + ], + "defines": [ + "_EXTRACTABLE_TRANSLATIONS_H" + ] + }, + "editor/editor_undo_redo_manager.h": { + "classes": [ + "EditorUndoRedoManager" + ], + "structs": [ + "Action", + "History" + ], + "defines": [ + "EDITOR_UNDO_REDO_MANAGER_H" + ] + }, + "editor/editor_help_search.h": { + "classes": [ + "EditorHelpSearch", + "EditorHelpSearch" + ], + "structs": [ + "TreeCache", + "MemberMatch", + "ClassMatch" + ], + "defines": [ + "EDITOR_HELP_SEARCH_H" + ] + }, + "editor/editor_dock_manager.h": { + "classes": [ + "DockSplitContainer", + "EditorDockManager" + ], + "structs": [], + "defines": [ + "EDITOR_DOCK_MANAGER_H" + ] + }, + "editor/editor_sectioned_inspector.h": { + "classes": [ + "SectionedInspector" + ], + "structs": [], + "defines": [ + "EDITOR_SECTIONED_INSPECTOR_H" + ] + }, + "editor/scene_create_dialog.h": { + "classes": [ + "SceneCreateDialog" + ], + "structs": [], + "defines": [ + "SCENE_CREATE_DIALOG_H" + ] + }, + "editor/doc_translations.gen.h": { + "classes": [], + "structs": [ + "DocTranslationList" + ], + "defines": [ + "_DOC_TRANSLATIONS_H" + ] + }, + "editor/scene_tree_dock.h": { + "classes": [ + "SceneTreeDock" + ], + "structs": [], + "defines": [ + "SCENE_TREE_DOCK_H" + ] + }, + "editor/run_instances_dialog.h": { + "classes": [ + "RunInstancesDialog" + ], + "structs": [ + "InstanceData" + ], + "defines": [ + "RUN_INSTANCES_DIALOG_H" + ] + }, + "editor/editor_string_names.h": { + "classes": [ + "EditorStringNames" + ], + "structs": [], + "defines": [ + "EDITOR_STRING_NAMES_H", + "EditorStringName" + ] + }, + "editor/editor_native_shader_source_visualizer.h": { + "classes": [ + "EditorNativeShaderSourceVisualizer" + ], + "structs": [], + "defines": [ + "EDITOR_NATIVE_SHADER_SOURCE_VISUALIZER_H" + ] + }, + "editor/editor_property_name_processor.h": { + "classes": [ + "EditorPropertyNameProcessor" + ], + "structs": [], + "defines": [ + "EDITOR_PROPERTY_NAME_PROCESSOR_H" + ] + }, + "editor/window_wrapper.h": { + "classes": [ + "WindowWrapper", + "ScreenSelect" + ], + "structs": [], + "defines": [ + "WINDOW_WRAPPER_H" + ] + }, + "editor/property_translations.gen.h": { + "classes": [], + "structs": [ + "PropertyTranslationList" + ], + "defines": [ + "_PROPERTY_TRANSLATIONS_H" + ] + }, + "editor/animation_track_editor.h": { + "classes": [ + "AnimationTrackKeyEdit", + "AnimationMultiTrackKeyEdit", + "AnimationTimelineEdit", + "AnimationTrackEdit", + "AnimationTrackEditPlugin", + "AnimationTrackEditGroup", + "AnimationTrackEditor", + "AnimationTrackKeyEditEditor" + ], + "structs": [ + "InsertData", + "TrackIndices", + "SelectedKey", + "KeyInfo", + "TrackClipboard", + "Key", + "KeyClipboard", + "Key", + "KeyDataCache" + ], + "defines": [ + "ANIMATION_TRACK_EDITOR_H" + ] + }, + "editor/editor_properties.h": { + "classes": [ + "EditorPropertyNil", + "EditorPropertyText", + "EditorPropertyMultilineText", + "EditorPropertyTextEnum", + "EditorPropertyPath", + "EditorPropertyLocale", + "EditorPropertyClassName", + "EditorPropertyCheck", + "EditorPropertyEnum", + "EditorPropertyFlags", + "EditorPropertyLayersGrid", + "EditorPropertyLayers", + "EditorPropertyInteger", + "EditorPropertyObjectID", + "EditorPropertySignal", + "EditorPropertyCallable", + "EditorPropertyFloat", + "EditorPropertyEasing", + "EditorPropertyRect2", + "EditorPropertyRect2i", + "EditorPropertyPlane", + "EditorPropertyQuaternion", + "EditorPropertyAABB", + "EditorPropertyTransform2D", + "EditorPropertyBasis", + "EditorPropertyTransform3D", + "EditorPropertyProjection", + "EditorPropertyColor", + "EditorPropertyNodePath", + "EditorPropertyRID", + "EditorPropertyResource", + "EditorInspectorDefaultPlugin" + ], + "structs": [], + "defines": [ + "EDITOR_PROPERTIES_H" + ] + }, + "editor/event_listener_line_edit.h": { + "classes": [ + "EventListenerLineEdit" + ], + "structs": [], + "defines": [ + "EVENT_LISTENER_LINE_EDIT_H" + ] + }, + "editor/renames_map_3_to_4.h": { + "classes": [], + "structs": [ + "RenamesMap3To4" + ], + "defines": [ + "RENAMES_MAP_3_TO_4_H" + ] + }, + "editor/register_exporters.h": { + "classes": [], + "structs": [], + "defines": [ + "REGISTER_EXPORTERS_H" + ] + }, + "editor/editor_locale_dialog.h": { + "classes": [ + "EditorLocaleDialog" + ], + "structs": [], + "defines": [ + "EDITOR_LOCALE_DIALOG_H" + ] + }, + "editor/editor_help.h": { + "classes": [ + "FindBar", + "EditorHelp", + "EditorHelpBit", + "EditorHelpTooltip", + "EditorHelpHighlighter" + ], + "structs": [ + "ThemeCache", + "PropertyCompare" + ], + "defines": [ + "EDITOR_HELP_H" + ] + }, + "editor/editor_script.h": { + "classes": [ + "EditorScript" + ], + "structs": [], + "defines": [ + "EDITOR_SCRIPT_H" + ] + }, + "editor/doc_tools.h": { + "classes": [ + "DocTools" + ], + "structs": [], + "defines": [ + "DOC_TOOLS_H" + ] + }, + "editor/editor_plugin.h": { + "classes": [ + "EditorPlugin", + "EditorPlugins" + ], + "structs": [], + "defines": [ + "EDITOR_PLUGIN_H" + ] + }, + "editor/node_dock.h": { + "classes": [ + "NodeDock" + ], + "structs": [], + "defines": [ + "NODE_DOCK_H" + ] + }, + "editor/directory_create_dialog.h": { + "classes": [ + "DirectoryCreateDialog" + ], + "structs": [], + "defines": [ + "DIRECTORY_CREATE_DIALOG_H" + ] + }, + "editor/audio_stream_preview.h": { + "classes": [ + "AudioStreamPreview", + "AudioStreamPreviewGenerator" + ], + "structs": [ + "Preview" + ], + "defines": [ + "AUDIO_STREAM_PREVIEW_H" + ] + }, + "editor/register_editor_types.h": { + "classes": [], + "structs": [], + "defines": [ + "REGISTER_EDITOR_TYPES_H" + ] + }, + "editor/project_settings_editor.h": { + "classes": [ + "ProjectSettingsEditor" + ], + "structs": [], + "defines": [ + "PROJECT_SETTINGS_EDITOR_H" + ] + }, + "editor/editor_run_native.h": { + "classes": [ + "EditorRunNative" + ], + "structs": [], + "defines": [ + "EDITOR_RUN_NATIVE_H" + ] + }, + "editor/editor_asset_installer.h": { + "classes": [ + "EditorAssetInstaller" + ], + "structs": [], + "defines": [ + "EDITOR_ASSET_INSTALLER_H" + ] + }, + "editor/action_map_editor.h": { + "classes": [ + "ActionMapEditor" + ], + "structs": [ + "ActionInfo" + ], + "defines": [ + "ACTION_MAP_EDITOR_H" + ] + }, + "editor/editor_properties_vector.h": { + "classes": [ + "EditorPropertyVectorN", + "EditorPropertyVector2", + "EditorPropertyVector2i", + "EditorPropertyVector3", + "EditorPropertyVector3i", + "EditorPropertyVector4", + "EditorPropertyVector4i" + ], + "structs": [], + "defines": [ + "EDITOR_PROPERTIES_VECTOR_H" + ] + }, + "editor/editor_paths.h": { + "classes": [ + "EditorPaths" + ], + "structs": [], + "defines": [ + "EDITOR_PATHS_H" + ] + }, + "editor/editor_settings_dialog.h": { + "classes": [ + "EditorSettingsDialog" + ], + "structs": [], + "defines": [ + "EDITOR_SETTINGS_DIALOG_H" + ] + }, + "editor/editor_translation.h": { + "classes": [], + "structs": [], + "defines": [ + "EDITOR_TRANSLATION_H" + ] + }, + "editor/editor_audio_buses.h": { + "classes": [ + "EditorAudioBus", + "EditorAudioBusDrop", + "EditorAudioBuses", + "EditorAudioMeterNotches", + "AudioBusesEditorPlugin" + ], + "structs": [ + "AudioNotch", + "ThemeCache" + ], + "defines": [ + "EDITOR_AUDIO_BUSES_H" + ] + }, + "editor/editor_properties_array_dict.h": { + "classes": [ + "EditorPropertyArrayObject", + "EditorPropertyDictionaryObject", + "EditorPropertyArray", + "EditorPropertyDictionary", + "EditorPropertyLocalizableString" + ], + "structs": [ + "Slot" + ], + "defines": [ + "EDITOR_PROPERTIES_ARRAY_DICT_H" + ] + }, + "editor/editor_resource_preview.h": { + "classes": [ + "EditorResourcePreviewGenerator", + "DrawRequester", + "EditorResourcePreview" + ], + "structs": [ + "QueueItem", + "Item" + ], + "defines": [ + "EDITOR_RESOURCE_PREVIEW_H" + ] + }, + "editor/plugin_config_dialog.h": { + "classes": [ + "PluginConfigDialog" + ], + "structs": [], + "defines": [ + "PLUGIN_CONFIG_DIALOG_H" + ] + }, + "editor/editor_quick_open.h": { + "classes": [ + "EditorQuickOpen" + ], + "structs": [ + "Entry", + "EntryComparator" + ], + "defines": [ + "EDITOR_QUICK_OPEN_H" + ] + }, + "editor/script_create_dialog.h": { + "classes": [ + "ScriptCreateDialog" + ], + "structs": [], + "defines": [ + "SCRIPT_CREATE_DIALOG_H" + ] + }, + "editor/editor_autoload_settings.h": { + "classes": [ + "EditorAutoloadSettings" + ], + "structs": [ + "AutoloadInfo" + ], + "defines": [ + "EDITOR_AUTOLOAD_SETTINGS_H" + ] + }, + "editor/pot_generator.h": { + "classes": [ + "POTGenerator" + ], + "structs": [ + "MsgidData" + ], + "defines": [ + "POT_GENERATOR_H", + "DEBUG_POT" + ] + }, + "editor/editor_data.h": { + "classes": [ + "EditorSelectionHistory", + "EditorData", + "EditorSelection" + ], + "structs": [ + "_Object", + "HistoryElement", + "CustomType", + "EditedScene", + "PropertyData" + ], + "defines": [ + "EDITOR_DATA_H" + ] + }, + "editor/import_defaults_editor.h": { + "classes": [ + "ImportDefaultsEditor" + ], + "structs": [], + "defines": [ + "IMPORT_DEFAULTS_EDITOR_H" + ] + }, + "editor/project_converter_3_to_4.h": { + "classes": [ + "ProjectConverter3To4", + "ProjectConverter3To4" + ], + "structs": [ + "SourceLine" + ], + "defines": [ + "PROJECT_CONVERTER_3_TO_4_H" + ] + }, + "editor/editor_inspector.h": { + "classes": [ + "EditorPropertyRevert", + "EditorProperty", + "EditorInspectorPlugin", + "EditorInspectorCategory", + "EditorInspectorSection", + "EditorInspectorArray", + "EditorPaginator", + "EditorInspector" + ], + "structs": [ + "AddedEditor", + "ArrayElement" + ], + "defines": [ + "EDITOR_INSPECTOR_H" + ] + }, + "editor/doc_data_compressed.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "_DOC_DATA_RAW_H" + ] + }, + "editor/group_settings_editor.h": { + "classes": [ + "GroupSettingsEditor" + ], + "structs": [], + "defines": [ + "GROUP_SETTINGS_EDITOR_H" + ] + }, + "editor/animation_bezier_editor.h": { + "classes": [ + "AnimationBezierTrackEdit" + ], + "structs": [ + "PairHasher", + "AnimMoveRestore", + "EditPoint", + "PairCompare" + ], + "defines": [ + "ANIMATION_BEZIER_EDITOR_H" + ] + }, + "editor/inspector_dock.h": { + "classes": [ + "InspectorDock" + ], + "structs": [], + "defines": [ + "INSPECTOR_DOCK_H" + ] + }, + "editor/editor_interface.h": { + "classes": [ + "EditorInterface" + ], + "structs": [], + "defines": [ + "EDITOR_INTERFACE_H" + ] + }, + "editor/shader_create_dialog.h": { + "classes": [ + "ShaderCreateDialog" + ], + "structs": [ + "ShaderTypeData" + ], + "defines": [ + "SHADER_CREATE_DIALOG_H" + ] + }, + "editor/connections_dialog.h": { + "classes": [ + "ConnectDialog", + "ConnectionsDockTree", + "ConnectionsDock" + ], + "structs": [ + "ConnectionData" + ], + "defines": [ + "CONNECTIONS_DIALOG_H" + ] + }, + "editor/editor_resource_picker.h": { + "classes": [ + "EditorResourcePicker", + "EditorScriptPicker", + "EditorShaderPicker", + "EditorAudioStreamPicker" + ], + "structs": [], + "defines": [ + "EDITOR_RESOURCE_PICKER_H" + ] + }, + "editor/localization_editor.h": { + "classes": [ + "LocalizationEditor" + ], + "structs": [], + "defines": [ + "LOCALIZATION_EDITOR_H" + ] + }, + "editor/editor_node.h": { + "classes": [ + "EditorNode", + "EditorPluginList" + ], + "structs": [ + "ExecuteThreadArgs", + "ExportDefer", + "AdditiveNodeEntry", + "ConnectionWithNodePath", + "ModificationNodeEntry", + "EditorProgress", + "EditorProgressBG" + ], + "defines": [ + "EDITOR_NODE_H" + ] + }, + "editor/editor_icons.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "_EDITOR_ICONS_H" + ] + }, + "editor/property_selector.h": { + "classes": [ + "PropertySelector" + ], + "structs": [], + "defines": [ + "PROPERTY_SELECTOR_H" + ] + }, + "editor/filesystem_dock.h": { + "classes": [ + "FileSystemTree", + "FileSystemList", + "FileSystemDock", + "FileOrFolder" + ], + "structs": [ + "FileInfo" + ], + "defines": [ + "FILESYSTEM_DOCK_H" + ] + }, + "editor/editor_plugin_settings.h": { + "classes": [ + "EditorPluginSettings" + ], + "structs": [], + "defines": [ + "EDITOR_PLUGIN_SETTINGS_H" + ] + }, + "editor/reparent_dialog.h": { + "classes": [ + "ReparentDialog" + ], + "structs": [], + "defines": [ + "REPARENT_DIALOG_H" + ] + }, + "editor/project_manager/quick_settings_dialog.h": { + "classes": [ + "QuickSettingsDialog" + ], + "structs": [], + "defines": [ + "QUICK_SETTINGS_DIALOG_H" + ] + }, + "editor/project_manager/project_list.h": { + "classes": [ + "ProjectListItemControl", + "ProjectList" + ], + "structs": [ + "Item" + ], + "defines": [ + "PROJECT_LIST_H" + ] + }, + "editor/project_manager/project_tag.h": { + "classes": [ + "ProjectTag" + ], + "structs": [], + "defines": [ + "PROJECT_TAG_H" + ] + }, + "editor/project_manager/project_dialog.h": { + "classes": [ + "ProjectDialog" + ], + "structs": [], + "defines": [ + "PROJECT_DIALOG_H" + ] + }, + "editor/plugins/gpu_particles_collision_sdf_editor_plugin.h": { + "classes": [ + "GPUParticlesCollisionSDF3DEditorPlugin" + ], + "structs": [], + "defines": [ + "GPU_PARTICLES_COLLISION_SDF_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/texture_layered_editor_plugin.h": { + "classes": [ + "TextureLayeredEditor", + "EditorInspectorPluginLayeredTexture", + "TextureLayeredEditorPlugin" + ], + "structs": [], + "defines": [ + "TEXTURE_LAYERED_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/script_editor_plugin.h": { + "classes": [ + "EditorSyntaxHighlighter", + "EditorStandardSyntaxHighlighter", + "EditorPlainTextSyntaxHighlighter", + "EditorJSONSyntaxHighlighter", + "ScriptEditorQuickOpen", + "ScriptEditorBase", + "ScriptEditor", + "ScriptEditorPlugin" + ], + "structs": [ + "ScriptHistory" + ], + "defines": [ + "SCRIPT_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/asset_library_editor_plugin.h": { + "classes": [ + "EditorAssetLibraryItem", + "EditorAssetLibraryItemDescription", + "EditorAssetLibraryItemDownload", + "EditorAssetLibrary", + "AssetLibraryEditorPlugin" + ], + "structs": [ + "Preview", + "ImageQueue" + ], + "defines": [ + "ASSET_LIBRARY_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/node_3d_editor_plugin.h": { + "classes": [ + "ViewportRotationControl", + "Node3DEditorViewport", + "Node3DEditorSelectedItem", + "Node3DEditorViewportContainer", + "Node3DEditor", + "Node3DEditorPlugin", + "ViewportNavigationControl" + ], + "structs": [ + "Axis2D", + "Axis2DCompare", + "_RayResult", + "EditData", + "Cursor", + "Gizmo" + ], + "defines": [ + "NODE_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/occluder_instance_3d_editor_plugin.h": { + "classes": [ + "OccluderInstance3DEditorPlugin" + ], + "structs": [], + "defines": [ + "OCCLUDER_INSTANCE_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/polygon_3d_editor_plugin.h": { + "classes": [ + "Polygon3DEditor", + "Polygon3DEditorPlugin" + ], + "structs": [], + "defines": [ + "POLYGON_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/navigation_obstacle_2d_editor_plugin.h": { + "classes": [ + "NavigationObstacle2DEditor", + "NavigationObstacle2DEditorPlugin" + ], + "structs": [], + "defines": [ + "NAVIGATION_OBSTACLE_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/packed_scene_translation_parser_plugin.h": { + "classes": [ + "PackedSceneEditorTranslationParserPlugin" + ], + "structs": [], + "defines": [ + "PACKED_SCENE_TRANSLATION_PARSER_PLUGIN_H" + ] + }, + "editor/plugins/theme_editor_plugin.h": { + "classes": [ + "ThemeItemImportTree", + "ThemeItemEditorDialog", + "ThemeTypeDialog", + "ThemeItemLabel", + "ThemeTypeEditor", + "ThemeEditor", + "ThemeEditorPlugin" + ], + "structs": [ + "ThemeItem", + "LeadingStylebox" + ], + "defines": [ + "THEME_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/text_shader_editor.h": { + "classes": [ + "GDShaderSyntaxHighlighter", + "ShaderTextEditor", + "TextShaderEditor" + ], + "structs": [ + "WarningsComparator" + ], + "defines": [ + "TEXT_SHADER_EDITOR_H" + ] + }, + "editor/plugins/animation_tree_editor_plugin.h": { + "classes": [ + "AnimationTreeNodeEditorPlugin", + "AnimationTreeEditor", + "AnimationTreeEditorPlugin" + ], + "structs": [], + "defines": [ + "ANIMATION_TREE_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/visual_shader_editor_plugin.h": { + "classes": [ + "VisualShaderNodePlugin", + "VisualShaderGraphPlugin", + "VisualShaderEditedProperty", + "VisualShaderEditor", + "VaryingMenuOptions", + "VisualShaderNodePluginDefault", + "EditorPropertyVisualShaderMode", + "EditorInspectorVisualShaderModePlugin", + "VisualShaderNodePortPreview", + "VisualShaderConversionPlugin" + ], + "structs": [ + "InputPort", + "Port", + "Link", + "AddOption", + "_OptionComparator", + "DragOp", + "CopyItem" + ], + "defines": [ + "VISUAL_SHADER_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/sub_viewport_preview_editor_plugin.h": { + "classes": [ + "EditorInspectorPluginSubViewportPreview", + "SubViewportPreviewEditorPlugin" + ], + "structs": [], + "defines": [ + "SUB_VIEWPORT_PREVIEW_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/texture_3d_editor_plugin.h": { + "classes": [ + "Texture3DEditor", + "EditorInspectorPlugin3DTexture", + "Texture3DEditorPlugin" + ], + "structs": [], + "defines": [ + "TEXTURE_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/gpu_particles_2d_editor_plugin.h": { + "classes": [ + "GPUParticles2DEditorPlugin" + ], + "structs": [], + "defines": [ + "GPU_PARTICLES_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/mesh_editor_plugin.h": { + "classes": [ + "MeshEditor", + "EditorInspectorPluginMesh", + "MeshEditorPlugin" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "MESH_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/collision_polygon_2d_editor_plugin.h": { + "classes": [ + "CollisionPolygon2DEditor", + "CollisionPolygon2DEditorPlugin" + ], + "structs": [], + "defines": [ + "COLLISION_POLYGON_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/lightmap_gi_editor_plugin.h": { + "classes": [ + "LightmapGIEditorPlugin" + ], + "structs": [], + "defines": [ + "LIGHTMAP_GI_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/collision_shape_2d_editor_plugin.h": { + "classes": [ + "CollisionShape2DEditor", + "CollisionShape2DEditorPlugin" + ], + "structs": [], + "defines": [ + "COLLISION_SHAPE_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/shader_editor_plugin.h": { + "classes": [ + "ShaderEditorPlugin" + ], + "structs": [ + "EditedShader" + ], + "defines": [ + "SHADER_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/resource_preloader_editor_plugin.h": { + "classes": [ + "ResourcePreloaderEditor", + "ResourcePreloaderEditorPlugin" + ], + "structs": [], + "defines": [ + "RESOURCE_PRELOADER_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/mesh_library_editor_plugin.h": { + "classes": [ + "MeshLibraryEditor", + "MeshLibraryEditorPlugin" + ], + "structs": [], + "defines": [ + "MESH_LIBRARY_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/animation_blend_space_2d_editor.h": { + "classes": [ + "AnimationNodeBlendSpace2DEditor" + ], + "structs": [], + "defines": [ + "ANIMATION_BLEND_SPACE_2D_EDITOR_H" + ] + }, + "editor/plugins/navigation_obstacle_3d_editor_plugin.h": { + "classes": [ + "NavigationObstacle3DEditor", + "NavigationObstacle3DEditorPlugin" + ], + "structs": [], + "defines": [ + "NAVIGATION_OBSTACLE_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/polygon_2d_editor_plugin.h": { + "classes": [ + "Polygon2DEditor", + "Polygon2DEditorPlugin" + ], + "structs": [], + "defines": [ + "POLYGON_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/debugger_editor_plugin.h": { + "classes": [ + "DebuggerEditorPlugin" + ], + "structs": [], + "defines": [ + "DEBUGGER_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/editor_resource_tooltip_plugins.h": { + "classes": [ + "EditorResourceTooltipPlugin", + "EditorTextureTooltipPlugin" + ], + "structs": [], + "defines": [ + "EDITOR_RESOURCE_TOOLTIP_PLUGINS_H" + ] + }, + "editor/plugins/curve_editor_plugin.h": { + "classes": [ + "CurveEdit", + "CurveEditor", + "EditorInspectorPluginCurve", + "CurveEditorPlugin", + "CurvePreviewGenerator" + ], + "structs": [], + "defines": [ + "CURVE_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/animation_player_editor_plugin.h": { + "classes": [ + "AnimationPlayerEditor", + "AnimationPlayerEditorPlugin", + "EditorInspectorPluginAnimationTrackKeyEdit", + "AnimationTrackKeyEditEditorPlugin" + ], + "structs": [ + "BlendEditor" + ], + "defines": [ + "ANIMATION_PLAYER_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/texture_editor_plugin.h": { + "classes": [ + "TexturePreview", + "EditorInspectorPluginTexture", + "TextureEditorPlugin" + ], + "structs": [], + "defines": [ + "TEXTURE_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/camera_3d_editor_plugin.h": { + "classes": [ + "Camera3DEditor", + "Camera3DEditorPlugin" + ], + "structs": [], + "defines": [ + "CAMERA_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/version_control_editor_plugin.h": { + "classes": [ + "VersionControlEditorPlugin" + ], + "structs": [], + "defines": [ + "VERSION_CONTROL_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/physical_bone_3d_editor_plugin.h": { + "classes": [ + "PhysicalBone3DEditor", + "PhysicalBone3DEditorPlugin" + ], + "structs": [], + "defines": [ + "PHYSICAL_BONE_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/bit_map_editor_plugin.h": { + "classes": [ + "BitMapEditor", + "EditorInspectorPluginBitMap", + "BitMapEditorPlugin" + ], + "structs": [], + "defines": [ + "BIT_MAP_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/skeleton_ik_3d_editor_plugin.h": { + "classes": [ + "SkeletonIK3DEditorPlugin" + ], + "structs": [], + "defines": [ + "SKELETON_IK_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/gpu_particles_3d_editor_plugin.h": { + "classes": [ + "GPUParticles3DEditorBase", + "GPUParticles3DEditor", + "GPUParticles3DEditorPlugin" + ], + "structs": [], + "defines": [ + "GPU_PARTICLES_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/material_editor_plugin.h": { + "classes": [ + "MaterialEditor", + "EditorInspectorPluginMaterial", + "MaterialEditorPlugin", + "StandardMaterial3DConversionPlugin", + "ORMMaterial3DConversionPlugin", + "ParticleProcessMaterialConversionPlugin", + "CanvasItemMaterialConversionPlugin", + "ProceduralSkyMaterialConversionPlugin", + "PanoramaSkyMaterialConversionPlugin", + "PhysicalSkyMaterialConversionPlugin", + "FogMaterialConversionPlugin" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "MATERIAL_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/dedicated_server_export_plugin.h": { + "classes": [ + "DedicatedServerExportPlugin" + ], + "structs": [], + "defines": [ + "DEDICATED_SERVER_EXPORT_PLUGIN_H" + ] + }, + "editor/plugins/sprite_2d_editor_plugin.h": { + "classes": [ + "Sprite2DEditor", + "Sprite2DEditorPlugin" + ], + "structs": [], + "defines": [ + "SPRITE_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/shader_file_editor_plugin.h": { + "classes": [ + "ShaderFileEditor", + "ShaderFileEditorPlugin" + ], + "structs": [], + "defines": [ + "SHADER_FILE_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/animation_blend_space_1d_editor.h": { + "classes": [ + "AnimationNodeBlendSpace1DEditor" + ], + "structs": [], + "defines": [ + "ANIMATION_BLEND_SPACE_1D_EDITOR_H" + ] + }, + "editor/plugins/skeleton_3d_editor_plugin.h": { + "classes": [ + "BoneTransformEditor", + "Skeleton3DEditor", + "EditorInspectorPluginSkeleton", + "Skeleton3DEditorPlugin", + "Skeleton3DGizmoPlugin" + ], + "structs": [ + "BoneInfo" + ], + "defines": [ + "SKELETON_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/multimesh_editor_plugin.h": { + "classes": [ + "MultiMeshEditor", + "MultiMeshEditorPlugin" + ], + "structs": [], + "defines": [ + "MULTIMESH_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/sprite_frames_editor_plugin.h": { + "classes": [ + "ClipboardSpriteFrames", + "SpriteFramesEditor", + "SpriteFramesEditorPlugin" + ], + "structs": [ + "Frame" + ], + "defines": [ + "SPRITE_FRAMES_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/cast_2d_editor_plugin.h": { + "classes": [ + "Cast2DEditor", + "Cast2DEditorPlugin" + ], + "structs": [], + "defines": [ + "CAST_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/navigation_polygon_editor_plugin.h": { + "classes": [ + "NavigationPolygonEditor", + "NavigationPolygonEditorPlugin" + ], + "structs": [], + "defines": [ + "NAVIGATION_POLYGON_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/animation_library_editor.h": { + "classes": [ + "AnimationLibraryEditor" + ], + "structs": [], + "defines": [ + "ANIMATION_LIBRARY_EDITOR_H" + ] + }, + "editor/plugins/gradient_texture_2d_editor_plugin.h": { + "classes": [ + "GradientTexture2DEdit", + "GradientTexture2DEditor", + "EditorInspectorPluginGradientTexture2D", + "GradientTexture2DEditorPlugin" + ], + "structs": [], + "defines": [ + "GRADIENT_TEXTURE_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/abstract_polygon_2d_editor.h": { + "classes": [ + "AbstractPolygon2DEditor", + "AbstractPolygon2DEditorPlugin" + ], + "structs": [ + "Vertex", + "PosVertex" + ], + "defines": [ + "ABSTRACT_POLYGON_2D_EDITOR_H" + ] + }, + "editor/plugins/canvas_item_editor_plugin.h": { + "classes": [ + "CanvasItemEditorSelectedItem", + "CanvasItemEditor", + "CanvasItemEditorPlugin", + "CanvasItemEditorViewport" + ], + "structs": [ + "_SelectResult", + "_HoverResult", + "BoneList", + "BoneKey", + "PoseClipboard" + ], + "defines": [ + "CANVAS_ITEM_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/input_event_editor_plugin.h": { + "classes": [ + "InputEventConfigContainer", + "EditorInspectorPluginInputEvent", + "InputEventEditorPlugin" + ], + "structs": [], + "defines": [ + "INPUT_EVENT_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/audio_stream_editor_plugin.h": { + "classes": [ + "AudioStreamEditor", + "EditorInspectorPluginAudioStream", + "AudioStreamEditorPlugin" + ], + "structs": [], + "defines": [ + "AUDIO_STREAM_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/editor_debugger_plugin.h": { + "classes": [ + "EditorDebuggerSession", + "EditorDebuggerPlugin" + ], + "structs": [], + "defines": [ + "EDITOR_DEBUGGER_PLUGIN_H" + ] + }, + "editor/plugins/navigation_link_2d_editor_plugin.h": { + "classes": [ + "NavigationLink2DEditor", + "NavigationLink2DEditorPlugin" + ], + "structs": [], + "defines": [ + "NAVIGATION_LINK_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/animation_blend_tree_editor_plugin.h": { + "classes": [ + "AnimationNodeBlendTreeEditor" + ], + "structs": [ + "AddOption" + ], + "defines": [ + "ANIMATION_BLEND_TREE_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/style_box_editor_plugin.h": { + "classes": [ + "StyleBoxPreview", + "EditorInspectorPluginStyleBox", + "StyleBoxEditorPlugin" + ], + "structs": [], + "defines": [ + "STYLE_BOX_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/control_editor_plugin.h": { + "classes": [ + "ControlPositioningWarning", + "EditorPropertyAnchorsPreset", + "EditorPropertySizeFlags", + "EditorInspectorPluginControl", + "ControlEditorPopupButton", + "ControlEditorPresetPicker", + "AnchorPresetPicker", + "SizeFlagPresetPicker", + "ControlEditorToolbar", + "ControlEditorPlugin" + ], + "structs": [], + "defines": [ + "CONTROL_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/path_3d_editor_plugin.h": { + "classes": [ + "Path3DGizmo", + "Path3DGizmoPlugin", + "Path3DEditorPlugin" + ], + "structs": [ + "HandleInfo" + ], + "defines": [ + "PATH_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/cpu_particles_2d_editor_plugin.h": { + "classes": [ + "CPUParticles2DEditorPlugin" + ], + "structs": [], + "defines": [ + "CPU_PARTICLES_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/root_motion_editor_plugin.h": { + "classes": [ + "EditorPropertyRootMotion", + "EditorInspectorRootMotionPlugin" + ], + "structs": [], + "defines": [ + "ROOT_MOTION_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/text_editor.h": { + "classes": [ + "TextEditor" + ], + "structs": [], + "defines": [ + "TEXT_EDITOR_H" + ] + }, + "editor/plugins/particle_process_material_editor_plugin.h": { + "classes": [ + "ParticleProcessMaterialMinMaxPropertyEditor", + "Hover", + "Drag", + "Mode", + "EditorInspectorParticleProcessMaterialPlugin" + ], + "structs": [], + "defines": [ + "PARTICLE_PROCESS_MATERIAL_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/animation_state_machine_editor.h": { + "classes": [ + "AnimationNodeStateMachineEditor", + "EditorAnimationMultiTransitionEdit" + ], + "structs": [ + "ThemeCache", + "NodeRect", + "TransitionLine", + "NodeUR", + "TransitionUR", + "Transition" + ], + "defines": [ + "ANIMATION_STATE_MACHINE_EDITOR_H" + ] + }, + "editor/plugins/script_text_editor.h": { + "classes": [ + "ConnectionInfoDialog", + "ScriptTextEditor" + ], + "structs": [], + "defines": [ + "SCRIPT_TEXT_EDITOR_H" + ] + }, + "editor/plugins/light_occluder_2d_editor_plugin.h": { + "classes": [ + "LightOccluder2DEditor", + "LightOccluder2DEditorPlugin" + ], + "structs": [], + "defines": [ + "LIGHT_OCCLUDER_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/gdextension_export_plugin.h": { + "classes": [ + "GDExtensionExportPlugin" + ], + "structs": [], + "defines": [ + "GDEXTENSION_EXPORT_PLUGIN_H" + ] + }, + "editor/plugins/audio_stream_randomizer_editor_plugin.h": { + "classes": [ + "AudioStreamRandomizerEditorPlugin" + ], + "structs": [], + "defines": [ + "AUDIO_STREAM_RANDOMIZER_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/packed_scene_editor_plugin.h": { + "classes": [ + "PackedSceneEditor", + "EditorInspectorPluginPackedScene", + "PackedSceneEditorPlugin" + ], + "structs": [], + "defines": [ + "PACKED_SCENE_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/texture_region_editor_plugin.h": { + "classes": [ + "TextureRegionEditor", + "EditorInspectorPluginTextureRegion", + "TextureRegionEditorPlugin" + ], + "structs": [], + "defines": [ + "TEXTURE_REGION_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/skeleton_2d_editor_plugin.h": { + "classes": [ + "Skeleton2DEditor", + "Skeleton2DEditorPlugin" + ], + "structs": [], + "defines": [ + "SKELETON_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/line_2d_editor_plugin.h": { + "classes": [ + "Line2DEditor", + "Line2DEditorPlugin" + ], + "structs": [], + "defines": [ + "LINE_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/bone_map_editor_plugin.h": { + "classes": [ + "BoneMapperButton", + "BoneMapperItem", + "BonePicker", + "BoneMapper", + "BoneMapEditor", + "EditorInspectorPluginBoneMap", + "BoneMapEditorPlugin" + ], + "structs": [], + "defines": [ + "BONE_MAP_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/gradient_editor_plugin.h": { + "classes": [ + "GradientEdit", + "GradientEditor", + "EditorInspectorPluginGradient", + "GradientEditorPlugin" + ], + "structs": [], + "defines": [ + "GRADIENT_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/voxel_gi_editor_plugin.h": { + "classes": [ + "VoxelGIEditorPlugin" + ], + "structs": [], + "defines": [ + "VOXEL_GI_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/node_3d_editor_gizmos.h": { + "classes": [ + "EditorNode3DGizmo", + "EditorNode3DGizmoPlugin" + ], + "structs": [ + "Instance" + ], + "defines": [ + "NODE_3D_EDITOR_GIZMOS_H" + ] + }, + "editor/plugins/font_config_plugin.h": { + "classes": [ + "EditorPropertyFontMetaObject", + "EditorPropertyFontOTObject", + "EditorPropertyFontMetaOverride", + "EditorPropertyOTVariation", + "EditorPropertyOTFeatures", + "EditorInspectorPluginFontVariation", + "FontPreview", + "EditorInspectorPluginFontPreview", + "EditorPropertyFontNamesArray", + "EditorInspectorPluginSystemFont", + "FontEditorPlugin" + ], + "structs": [], + "defines": [ + "FONT_CONFIG_PLUGIN_H" + ] + }, + "editor/plugins/cpu_particles_3d_editor_plugin.h": { + "classes": [ + "CPUParticles3DEditor", + "CPUParticles3DEditorPlugin" + ], + "structs": [], + "defines": [ + "CPU_PARTICLES_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/theme_editor_preview.h": { + "classes": [ + "ThemeEditorPreview", + "DefaultThemeEditorPreview", + "SceneThemeEditorPreview" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "THEME_EDITOR_PREVIEW_H" + ] + }, + "editor/plugins/path_2d_editor_plugin.h": { + "classes": [ + "Path2DEditor", + "Path2DEditorPlugin" + ], + "structs": [], + "defines": [ + "PATH_2D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/mesh_instance_3d_editor_plugin.h": { + "classes": [ + "MeshInstance3DEditor", + "MeshInstance3DEditorPlugin" + ], + "structs": [], + "defines": [ + "MESH_INSTANCE_3D_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/parallax_background_editor_plugin.h": { + "classes": [ + "ParallaxBackgroundEditorPlugin" + ], + "structs": [], + "defines": [ + "PARALLAX_BACKGROUND_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/editor_resource_conversion_plugin.h": { + "classes": [ + "EditorResourceConversionPlugin" + ], + "structs": [], + "defines": [ + "EDITOR_RESOURCE_CONVERSION_PLUGIN_H" + ] + }, + "editor/plugins/editor_preview_plugins.h": { + "classes": [ + "EditorTexturePreviewPlugin", + "EditorImagePreviewPlugin", + "EditorBitmapPreviewPlugin", + "EditorPackedScenePreviewPlugin", + "EditorMaterialPreviewPlugin", + "EditorScriptPreviewPlugin", + "EditorAudioStreamPreviewPlugin", + "EditorMeshPreviewPlugin", + "EditorFontPreviewPlugin", + "EditorGradientPreviewPlugin" + ], + "structs": [], + "defines": [ + "EDITOR_PREVIEW_PLUGINS_H" + ] + }, + "editor/plugins/gizmos/gizmo_3d_helper.h": { + "classes": [ + "Gizmo3DHelper" + ], + "structs": [], + "defines": [ + "GIZMO_3D_HELPER_H" + ] + }, + "editor/plugins/gizmos/audio_stream_player_3d_gizmo_plugin.h": { + "classes": [ + "AudioStreamPlayer3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "AUDIO_STREAM_PLAYER_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/physics_bone_3d_gizmo_plugin.h": { + "classes": [ + "PhysicalBone3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "PHYSICS_BONE_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/reflection_probe_gizmo_plugin.h": { + "classes": [ + "ReflectionProbeGizmoPlugin" + ], + "structs": [], + "defines": [ + "REFLECTION_PROBE_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/lightmap_gi_gizmo_plugin.h": { + "classes": [ + "LightmapGIGizmoPlugin" + ], + "structs": [], + "defines": [ + "LIGHTMAP_GI_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/gpu_particles_collision_3d_gizmo_plugin.h": { + "classes": [ + "GPUParticlesCollision3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "GPU_PARTICLES_COLLISION_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/occluder_instance_3d_gizmo_plugin.h": { + "classes": [ + "OccluderInstance3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "OCCLUDER_INSTANCE_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/spring_arm_3d_gizmo_plugin.h": { + "classes": [ + "SpringArm3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "SPRING_ARM_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/collision_polygon_3d_gizmo_plugin.h": { + "classes": [ + "CollisionPolygon3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "COLLISION_POLYGON_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/decal_gizmo_plugin.h": { + "classes": [ + "DecalGizmoPlugin" + ], + "structs": [], + "defines": [ + "DECAL_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/light_3d_gizmo_plugin.h": { + "classes": [ + "Light3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "LIGHT_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/sprite_base_3d_gizmo_plugin.h": { + "classes": [ + "SpriteBase3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "SPRITE_BASE_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.h": { + "classes": [ + "CollisionShape3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "COLLISION_SHAPE_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/marker_3d_gizmo_plugin.h": { + "classes": [ + "Marker3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "MARKER_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/voxel_gi_gizmo_plugin.h": { + "classes": [ + "VoxelGIGizmoPlugin" + ], + "structs": [], + "defines": [ + "VOXEL_GI_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/collision_object_3d_gizmo_plugin.h": { + "classes": [ + "CollisionObject3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "COLLISION_OBJECT_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/navigation_link_3d_gizmo_plugin.h": { + "classes": [ + "NavigationLink3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "NAVIGATION_LINK_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/visible_on_screen_notifier_3d_gizmo_plugin.h": { + "classes": [ + "VisibleOnScreenNotifier3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "VISIBLE_ON_SCREEN_NOTIFIER_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/shape_cast_3d_gizmo_plugin.h": { + "classes": [ + "ShapeCast3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "SHAPE_CAST_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/gpu_particles_3d_gizmo_plugin.h": { + "classes": [ + "GPUParticles3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "GPU_PARTICLES_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/mesh_instance_3d_gizmo_plugin.h": { + "classes": [ + "MeshInstance3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "MESH_INSTANCE_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/soft_body_3d_gizmo_plugin.h": { + "classes": [ + "SoftBody3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "SOFT_BODY_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/navigation_region_3d_gizmo_plugin.h": { + "classes": [ + "NavigationRegion3DGizmoPlugin" + ], + "structs": [ + "_EdgeKey" + ], + "defines": [ + "NAVIGATION_REGION_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/ray_cast_3d_gizmo_plugin.h": { + "classes": [ + "RayCast3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "RAY_CAST_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/camera_3d_gizmo_plugin.h": { + "classes": [ + "Camera3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "CAMERA_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/vehicle_body_3d_gizmo_plugin.h": { + "classes": [ + "VehicleWheel3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "VEHICLE_BODY_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/cpu_particles_3d_gizmo_plugin.h": { + "classes": [ + "CPUParticles3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "CPU_PARTICLES_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/joint_3d_gizmo_plugin.h": { + "classes": [ + "Joint3DGizmoPlugin", + "JointGizmosDrawer" + ], + "structs": [], + "defines": [ + "JOINT_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/audio_listener_3d_gizmo_plugin.h": { + "classes": [ + "AudioListener3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "AUDIO_LISTENER_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/label_3d_gizmo_plugin.h": { + "classes": [ + "Label3DGizmoPlugin" + ], + "structs": [], + "defines": [ + "LABEL_3D_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/fog_volume_gizmo_plugin.h": { + "classes": [ + "FogVolumeGizmoPlugin" + ], + "structs": [], + "defines": [ + "FOG_VOLUME_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/gizmos/lightmap_probe_gizmo_plugin.h": { + "classes": [ + "LightmapProbeGizmoPlugin" + ], + "structs": [], + "defines": [ + "LIGHTMAP_PROBE_GIZMO_PLUGIN_H" + ] + }, + "editor/plugins/tiles/tile_proxies_manager_dialog.h": { + "classes": [ + "TileProxiesManagerDialog" + ], + "structs": [], + "defines": [ + "TILE_PROXIES_MANAGER_DIALOG_H" + ] + }, + "editor/plugins/tiles/tile_set_scenes_collection_source_editor.h": { + "classes": [ + "TileSetScenesCollectionSourceEditor", + "TileSetScenesCollectionProxyObject", + "SceneTileProxyObject" + ], + "structs": [], + "defines": [ + "TILE_SET_SCENES_COLLECTION_SOURCE_EDITOR_H" + ] + }, + "editor/plugins/tiles/tiles_editor_plugin.h": { + "classes": [ + "TilesEditorUtils", + "TileMapEditorPlugin", + "TileSetEditorPlugin" + ], + "structs": [ + "SourceNameComparator", + "QueueItem" + ], + "defines": [ + "TILES_EDITOR_PLUGIN_H" + ] + }, + "editor/plugins/tiles/tile_set_editor.h": { + "classes": [ + "TileSetEditor", + "TileSourceInspectorPlugin" + ], + "structs": [], + "defines": [ + "TILE_SET_EDITOR_H" + ] + }, + "editor/plugins/tiles/tile_map_layer_editor.h": { + "classes": [ + "TileMapLayerSubEditorPlugin", + "TileMapLayerEditorTilesPlugin", + "TileMapLayerEditorTerrainsPlugin", + "TileMapLayerEditor" + ], + "structs": [ + "TabData" + ], + "defines": [ + "TILE_MAP_LAYER_EDITOR_H" + ] + }, + "editor/plugins/tiles/tile_atlas_view.h": { + "classes": [ + "TileAtlasView" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "TILE_ATLAS_VIEW_H" + ] + }, + "editor/plugins/tiles/tile_data_editors.h": { + "classes": [ + "TileDataEditor", + "DummyObject", + "GenericTilePolygonEditor", + "TileDataDefaultEditor", + "TileDataTextureOriginEditor", + "TileDataPositionEditor", + "TileDataYSortEditor", + "TileDataOcclusionShapeEditor", + "TileDataCollisionEditor", + "TileDataTerrainsEditor", + "TileDataNavigationEditor" + ], + "structs": [], + "defines": [ + "TILE_DATA_EDITORS_H" + ] + }, + "editor/plugins/tiles/atlas_merging_dialog.h": { + "classes": [ + "AtlasMergingDialog" + ], + "structs": [], + "defines": [ + "ATLAS_MERGING_DIALOG_H" + ] + }, + "editor/plugins/tiles/tile_set_atlas_source_editor.h": { + "classes": [ + "TileSetAtlasSourceEditor", + "TileSetAtlasSourceProxyObject", + "AtlasTileProxyObject", + "TileAtlasControl", + "EditorPropertyTilePolygon", + "EditorInspectorPluginTileData" + ], + "structs": [ + "TileSelection" + ], + "defines": [ + "TILE_SET_ATLAS_SOURCE_EDITOR_H" + ] + }, + "editor/gui/editor_zoom_widget.h": { + "classes": [ + "EditorZoomWidget" + ], + "structs": [], + "defines": [ + "EDITOR_ZOOM_WIDGET_H" + ] + }, + "editor/gui/editor_validation_panel.h": { + "classes": [ + "EditorValidationPanel" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "EDITOR_VALIDATION_PANEL_H" + ] + }, + "editor/gui/editor_scene_tabs.h": { + "classes": [ + "EditorSceneTabs" + ], + "structs": [], + "defines": [ + "EDITOR_SCENE_TABS_H" + ] + }, + "editor/gui/editor_bottom_panel.h": { + "classes": [ + "EditorBottomPanel" + ], + "structs": [ + "BottomPanelItem" + ], + "defines": [ + "EDITOR_BOTTOM_PANEL_H" + ] + }, + "editor/gui/editor_toaster.h": { + "classes": [ + "EditorToaster" + ], + "structs": [ + "Toast" + ], + "defines": [ + "EDITOR_TOASTER_H" + ] + }, + "editor/gui/editor_object_selector.h": { + "classes": [ + "EditorObjectSelector" + ], + "structs": [], + "defines": [ + "EDITOR_OBJECT_SELECTOR_H" + ] + }, + "editor/gui/editor_spin_slider.h": { + "classes": [ + "EditorSpinSlider" + ], + "structs": [], + "defines": [ + "EDITOR_SPIN_SLIDER_H" + ] + }, + "editor/gui/editor_dir_dialog.h": { + "classes": [ + "EditorDirDialog" + ], + "structs": [], + "defines": [ + "EDITOR_DIR_DIALOG_H" + ] + }, + "editor/gui/editor_title_bar.h": { + "classes": [ + "EditorTitleBar" + ], + "structs": [], + "defines": [ + "EDITOR_TITLE_BAR_H" + ] + }, + "editor/gui/editor_file_dialog.h": { + "classes": [ + "EditorFileDialog" + ], + "structs": [ + "ThemeCache" + ], + "defines": [ + "EDITOR_FILE_DIALOG_H" + ] + }, + "editor/gui/scene_tree_editor.h": { + "classes": [ + "SceneTreeEditor", + "SceneTreeDialog" + ], + "structs": [], + "defines": [ + "SCENE_TREE_EDITOR_H" + ] + }, + "editor/gui/editor_run_bar.h": { + "classes": [ + "EditorRunBar" + ], + "structs": [], + "defines": [ + "EDITOR_RUN_BAR_H" + ] + }, + "editor/debugger/editor_performance_profiler.h": { + "classes": [ + "EditorPerformanceProfiler", + "Monitor" + ], + "structs": [], + "defines": [ + "EDITOR_PERFORMANCE_PROFILER_H" + ] + }, + "editor/debugger/editor_file_server.h": { + "classes": [ + "EditorFileServer" + ], + "structs": [], + "defines": [ + "EDITOR_FILE_SERVER_H" + ] + }, + "editor/debugger/editor_debugger_server.h": { + "classes": [ + "EditorDebuggerServer" + ], + "structs": [], + "defines": [ + "EDITOR_DEBUGGER_SERVER_H" + ] + }, + "editor/debugger/script_editor_debugger.h": { + "classes": [ + "ScriptEditorDebugger" + ], + "structs": [ + "ThreadDebugged", + "ThreadSort" + ], + "defines": [ + "SCRIPT_EDITOR_DEBUGGER_H" + ] + }, + "editor/debugger/editor_visual_profiler.h": { + "classes": [ + "EditorVisualProfiler" + ], + "structs": [ + "Metric", + "Area" + ], + "defines": [ + "EDITOR_VISUAL_PROFILER_H" + ] + }, + "editor/debugger/editor_debugger_inspector.h": { + "classes": [ + "EditorDebuggerRemoteObject", + "EditorDebuggerInspector" + ], + "structs": [], + "defines": [ + "EDITOR_DEBUGGER_INSPECTOR_H" + ] + }, + "editor/debugger/editor_debugger_tree.h": { + "classes": [ + "EditorDebuggerTree" + ], + "structs": [], + "defines": [ + "EDITOR_DEBUGGER_TREE_H" + ] + }, + "editor/debugger/editor_debugger_node.h": { + "classes": [ + "EditorDebuggerNode", + "Breakpoint" + ], + "structs": [], + "defines": [ + "EDITOR_DEBUGGER_NODE_H" + ] + }, + "editor/debugger/editor_profiler.h": { + "classes": [ + "EditorProfiler" + ], + "structs": [ + "Metric", + "Category", + "Item" + ], + "defines": [ + "EDITOR_PROFILER_H" + ] + }, + "editor/debugger/debug_adapter/debug_adapter_server.h": { + "classes": [ + "DebugAdapterServer" + ], + "structs": [], + "defines": [ + "DEBUG_ADAPTER_SERVER_H" + ] + }, + "editor/debugger/debug_adapter/debug_adapter_protocol.h": { + "classes": [ + "DebugAdapterProtocol" + ], + "structs": [ + "DAPeer" + ], + "defines": [ + "DEBUG_ADAPTER_PROTOCOL_H", + "DAP_MAX_BUFFER_SIZE", + "DAP_MAX_CLIENTS" + ] + }, + "editor/debugger/debug_adapter/debug_adapter_parser.h": { + "classes": [ + "DebugAdapterParser" + ], + "structs": [], + "defines": [ + "DEBUG_ADAPTER_PARSER_H" + ] + }, + "editor/debugger/debug_adapter/debug_adapter_types.h": { + "classes": [], + "structs": [ + "Checksum", + "Source", + "Breakpoint", + "BreakpointLocation", + "Capabilities", + "Message", + "Scope", + "SourceBreakpoint", + "StackFrame", + "Thread", + "Variable" + ], + "defines": [ + "DEBUG_ADAPTER_TYPES_H" + ] + }, + "editor/export/editor_export_shared_object.h": { + "classes": [], + "structs": [ + "SharedObject" + ], + "defines": [ + "EDITOR_EXPORT_SHARED_OBJECT_H" + ] + }, + "editor/export/editor_export_plugin.h": { + "classes": [ + "EditorExportPlugin" + ], + "structs": [ + "ExtraFile" + ], + "defines": [ + "EDITOR_EXPORT_PLUGIN_H" + ] + }, + "editor/export/export_template_manager.h": { + "classes": [ + "ExportTemplateManager" + ], + "structs": [], + "defines": [ + "EXPORT_TEMPLATE_MANAGER_H" + ] + }, + "editor/export/editor_export.h": { + "classes": [ + "EditorExport" + ], + "structs": [], + "defines": [ + "EDITOR_EXPORT_H" + ] + }, + "editor/export/editor_export_platform_pc.h": { + "classes": [ + "EditorExportPlatformPC" + ], + "structs": [], + "defines": [ + "EDITOR_EXPORT_PLATFORM_PC_H" + ] + }, + "editor/export/editor_export_platform.h": { + "classes": [ + "EditorExportPlatform" + ], + "structs": [ + "ExportMessage", + "SavedData", + "PackData", + "ZipData", + "FileExportCache", + "ExportNotifier", + "ExportOption" + ], + "defines": [ + "EDITOR_EXPORT_PLATFORM_H" + ] + }, + "editor/export/editor_export_preset.h": { + "classes": [ + "EditorExportPreset" + ], + "structs": [], + "defines": [ + "EDITOR_EXPORT_PRESET_H" + ] + }, + "editor/export/project_export.h": { + "classes": [ + "ProjectExportTextureFormatError", + "ProjectExportDialog" + ], + "structs": [], + "defines": [ + "PROJECT_EXPORT_H" + ] + }, + "editor/import/resource_importer_dynamic_font.h": { + "classes": [ + "ResourceImporterDynamicFont" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_DYNAMIC_FONT_H" + ] + }, + "editor/import/resource_importer_csv_translation.h": { + "classes": [ + "ResourceImporterCSVTranslation" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_CSV_TRANSLATION_H" + ] + }, + "editor/import/resource_importer_wav.h": { + "classes": [ + "ResourceImporterWAV" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_WAV_H" + ] + }, + "editor/import/resource_importer_image.h": { + "classes": [ + "ResourceImporterImage" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_IMAGE_H" + ] + }, + "editor/import/resource_importer_texture.h": { + "classes": [ + "ResourceImporterTexture" + ], + "structs": [ + "MakeInfo" + ], + "defines": [ + "RESOURCE_IMPORTER_TEXTURE_H" + ] + }, + "editor/import/resource_importer_texture_atlas.h": { + "classes": [ + "ResourceImporterTextureAtlas" + ], + "structs": [ + "PackData" + ], + "defines": [ + "RESOURCE_IMPORTER_TEXTURE_ATLAS_H" + ] + }, + "editor/import/editor_import_plugin.h": { + "classes": [ + "EditorImportPlugin" + ], + "structs": [], + "defines": [ + "EDITOR_IMPORT_PLUGIN_H" + ] + }, + "editor/import/resource_importer_bmfont.h": { + "classes": [ + "ResourceImporterBMFont" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_BMFONT_H" + ] + }, + "editor/import/dynamic_font_import_settings.h": { + "classes": [ + "DynamicFontImportSettingsData", + "DynamicFontImportSettingsDialog" + ], + "structs": [], + "defines": [ + "DYNAMIC_FONT_IMPORT_SETTINGS_H" + ] + }, + "editor/import/resource_importer_shader_file.h": { + "classes": [ + "ResourceImporterShaderFile" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_SHADER_FILE_H" + ] + }, + "editor/import/resource_importer_texture_settings.h": { + "classes": [], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_TEXTURE_SETTINGS_H" + ] + }, + "editor/import/resource_importer_layered_texture.h": { + "classes": [ + "LayeredTextureImport", + "ResourceImporterLayeredTexture" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_LAYERED_TEXTURE_H" + ] + }, + "editor/import/resource_importer_bitmask.h": { + "classes": [ + "ResourceImporterBitMap" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_BITMASK_H" + ] + }, + "editor/import/resource_importer_imagefont.h": { + "classes": [ + "ResourceImporterImageFont" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_IMAGEFONT_H" + ] + }, + "editor/import/audio_stream_import_settings.h": { + "classes": [ + "AudioStreamImportSettingsDialog" + ], + "structs": [], + "defines": [ + "AUDIO_STREAM_IMPORT_SETTINGS_H" + ] + }, + "editor/import/3d/post_import_plugin_skeleton_renamer.h": { + "classes": [ + "PostImportPluginSkeletonRenamer" + ], + "structs": [], + "defines": [ + "POST_IMPORT_PLUGIN_SKELETON_RENAMER_H" + ] + }, + "editor/import/3d/resource_importer_obj.h": { + "classes": [ + "EditorOBJImporter", + "ResourceImporterOBJ" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_OBJ_H" + ] + }, + "editor/import/3d/post_import_plugin_skeleton_track_organizer.h": { + "classes": [ + "PostImportPluginSkeletonTrackOrganizer" + ], + "structs": [], + "defines": [ + "POST_IMPORT_PLUGIN_SKELETON_TRACK_ORGANIZER_H" + ] + }, + "editor/import/3d/post_import_plugin_skeleton_rest_fixer.h": { + "classes": [ + "PostImportPluginSkeletonRestFixer" + ], + "structs": [], + "defines": [ + "POST_IMPORT_PLUGIN_SKELETON_REST_FIXER_H" + ] + }, + "editor/import/3d/collada.h": { + "classes": [ + "Collada" + ], + "structs": [ + "Image", + "Material", + "Effect", + "Channel", + "CameraData", + "LightData", + "MeshData", + "Source", + "Vertices", + "Primitives", + "SourceRef", + "CurveData", + "Source", + "SkinControllerData", + "Source", + "Joints", + "Weights", + "SourceRef", + "MorphControllerData", + "Source", + "Vertex", + "Weight", + "Node", + "XForm", + "NodeSkeleton", + "NodeJoint", + "NodeGeometry", + "Material", + "NodeCamera", + "NodeLight", + "VisualScene", + "AnimationClip", + "AnimationTrack", + "Key", + "State", + "Version" + ], + "defines": [ + "COLLADA_H" + ] + }, + "editor/import/3d/resource_importer_scene.h": { + "classes": [ + "EditorSceneFormatImporter", + "EditorScenePostImport", + "EditorScenePostImportPlugin", + "ResourceImporterScene", + "EditorSceneFormatImporterESCN" + ], + "structs": [], + "defines": [ + "RESOURCE_IMPORTER_SCENE_H" + ] + }, + "editor/import/3d/editor_import_collada.h": { + "classes": [ + "EditorSceneFormatImporterCollada" + ], + "structs": [], + "defines": [ + "EDITOR_IMPORT_COLLADA_H" + ] + }, + "editor/import/3d/scene_import_settings.h": { + "classes": [ + "SceneImportSettingsDialog" + ], + "structs": [ + "MaterialData", + "MeshData", + "AnimationData", + "NodeData" + ], + "defines": [ + "SCENE_IMPORT_SETTINGS_H" + ] + }, + "editor/themes/editor_theme.h": { + "classes": [ + "EditorTheme" + ], + "structs": [], + "defines": [ + "EDITOR_THEME_H" + ] + }, + "editor/themes/editor_scale.h": { + "classes": [ + "EditorScale" + ], + "structs": [], + "defines": [ + "EDITOR_SCALE_H", + "EDSCALE" + ] + }, + "editor/themes/editor_fonts.h": { + "classes": [], + "structs": [], + "defines": [ + "EDITOR_FONTS_H" + ] + }, + "editor/themes/editor_theme_manager.h": { + "classes": [ + "EditorThemeManager" + ], + "structs": [ + "ThemeConfiguration" + ], + "defines": [ + "EDITOR_THEME_MANAGER_H" + ] + }, + "editor/themes/builtin_fonts.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "_EDITOR_FONTS_H" + ] + }, + "editor/themes/editor_icons.h": { + "classes": [], + "structs": [], + "defines": [ + "EDITOR_ICONS_H" + ] + }, + "editor/themes/editor_color_map.h": { + "classes": [ + "EditorColorMap" + ], + "structs": [], + "defines": [ + "EDITOR_COLOR_MAP_H" + ] + }, + "editor/themes/editor_icons.gen.h": { + "classes": [], + "structs": [], + "defines": [ + "_EDITOR_ICONS_H" + ] + } +} \ No newline at end of file diff --git a/playback_stats.h b/playback_stats.h index 886f2c5..244e34c 100644 --- a/playback_stats.h +++ b/playback_stats.h @@ -1,5 +1,9 @@ #pragma once -#include "core/object/ref_counted.h" +#include +#include +#include + +using namespace godot; class PlaybackStats : public RefCounted { GDCLASS(PlaybackStats, RefCounted); diff --git a/register_types.cpp b/register_types.cpp index aa138ef..13b01dd 100644 --- a/register_types.cpp +++ b/register_types.cpp @@ -30,27 +30,14 @@ #include "register_types.h" -#include "core/object/class_db.h" #include "speech.h" +#include #include "speech_decoder.h" #include "speech_processor.h" #include "thirdparty/jitter.h" -extern "C" -#ifdef __GNUC__ - __attribute__((noreturn)) -#endif - void - celt_fatal(const char *str, const char *file, int line) { - ERR_PRINT(String(str)); -#if defined(_MSC_VER) - _set_abort_behavior(0, _WRITE_ABORT_MSG); -#endif - abort(); -} - void initialize_speech_module(ModuleInitializationLevel p_level) { if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) { return; @@ -68,3 +55,16 @@ void uninitialize_speech_module(ModuleInitializationLevel p_level) { return; } } + +extern "C" { + +GDExtensionBool GDE_EXPORT godot_speech_library_init(const GDExtensionInterfaceGetProcAddress p_get_proc_address, GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization) { + godot::GDExtensionBinding::InitObject init_obj(p_get_proc_address, p_library, r_initialization); + + init_obj.register_initializer(initialize_speech_module); + init_obj.register_terminator(uninitialize_speech_module); + init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE); + + return init_obj.init(); +} +} \ No newline at end of file diff --git a/register_types.h b/register_types.h index 834da57..9a860f1 100644 --- a/register_types.h +++ b/register_types.h @@ -30,7 +30,10 @@ #pragma once -#include "modules/register_module_types.h" +#include +#include + +using namespace godot; void initialize_speech_module(ModuleInitializationLevel p_level); void uninitialize_speech_module(ModuleInitializationLevel p_level); diff --git a/scripts/clang-format.sh b/scripts/clang-format.sh new file mode 100755 index 0000000..cf056c5 --- /dev/null +++ b/scripts/clang-format.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +# This is based on Godot's clang-format.sh + +# This script runs clang-format on all relevant files in the repo. +# This is the primary script responsible for fixing style violations. + +set -uo pipefail + +# Loop through all code files tracked by Git. +files=$(git ls-files -- '*.h' '*.cpp' ':!thirdparty') + + +if [ ! -z "$files" ]; then + clang-format --Wno-error=unknown -i $files +fi + +diff=$(git diff --color) + +# If no diff has been generated all is OK, clean up, and exit. +if [ -z "$diff" ] ; then + printf "\e[1;32m*** Files in this commit comply with the clang-format style rules.\e[0m\n" + exit 0 +fi + +# A diff has been created, notify the user, clean up, and exit. +printf "\n\e[1;33m*** The following changes must be made to comply with the formatting rules:\e[0m\n\n" +# Perl commands replace trailing spaces with `·` and tabs with ``. +printf "$diff\n" | perl -pe 's/(.*[^ ])( +)(\e\[m)$/my $spaces="·" x length($2); sprintf("$1$spaces$3")/ge' | perl -pe 's/(.*[^\t])(\t+)(\e\[m)$/my $tabs="" x length($2); sprintf("$1$tabs$3")/ge' + +printf "\n\e[1;91m*** Please fix your commit(s) with 'git commit --amend' or 'git rebase -i '\e[0m\n" +exit 1 diff --git a/scripts/clang-tidy.sh b/scripts/clang-tidy.sh new file mode 100755 index 0000000..a1ef860 --- /dev/null +++ b/scripts/clang-tidy.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# This is based on Godot's clang-tidy.sh + +# This script runs clang-tidy on all relevant files in the repo. +# This is more thorough than clang-format and thus slower; it should only be run manually. + +set -uo pipefail + +# Loops through all code files tracked by Git. + +git ls-files -- '*.h' '*.cpp' ':!thirdparty' | +while read -r f; do + # Run clang-tidy. + clang-tidy --quiet --fix "$f" &> /dev/null + + # Run clang-format. This also fixes the output of clang-tidy. + clang-format --Wno-error=unknown -i "$f" +done + +diff=$(git diff --color) + +# If no diff has been generated all is OK, clean up, and exit. +if [ -z "$diff" ] ; then + printf "\e[1;32m*** Files in this commit comply with the clang-tidy style rules.\e[0m\n" + exit 0 +fi + +# A diff has been created, notify the user, clean up, and exit. +printf "\n\e[1;33m*** The following changes must be made to comply with the formatting rules:\e[0m\n\n" +# Perl commands replace trailing spaces with `·` and tabs with ``. +printf "$diff\n" | perl -pe 's/(.*[^ ])( +)(\e\[m)$/my $spaces="·" x length($2); sprintf("$1$spaces$3")/ge' | perl -pe 's/(.*[^\t])(\t+)(\e\[m)$/my $tabs="" x length($2); sprintf("$1$tabs$3")/ge' + +printf "\n\e[1;91m*** Please fix your commit(s) with 'git commit --amend' or 'git rebase -i '\e[0m\n" +exit 1 diff --git a/speech.cpp b/speech.cpp index 1ec8c71..e6a90db 100644 --- a/speech.cpp +++ b/speech.cpp @@ -28,9 +28,12 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /**************************************************************************/ -#include "modules/speech/thirdparty/jitter.h" -#include "scene/2d/audio_stream_player_2d.h" -#include "scene/3d/audio_stream_player_3d.h" +#include "thirdparty/jitter.h" +#include +#include +#include +#include +#include #include "speech.h" #include "speech_processor.h" @@ -445,7 +448,7 @@ void Speech::_notification(int p_what) { blank_packet.resize(SpeechProcessor::SPEECH_SETTING_BUFFER_FRAME_COUNT); blank_packet.fill(Vector2()); for (int32_t i = 0; i < SpeechProcessor::SPEECH_SETTING_BUFFER_FRAME_COUNT; i++) { - blank_packet.write[i] = Vector2(); + blank_packet[i] = Vector2(); } break; } @@ -551,7 +554,11 @@ void Speech::add_player_audio(int p_player_id, Node *p_audio_stream_player) { dict["audio_stream_player"] = p_audio_stream_player; dict["jitter_buffer"] = Array(); dict["sequence_id"] = -1; +#ifdef GODOT_MODULE_COMPAT dict["last_update"] = OS::get_singleton()->get_ticks_msec(); +#else + dict["last_update"] = Time::get_singleton()->get_ticks_msec(); +#endif dict["packets_received_this_frame"] = 0; dict["excess_packets"] = 0; dict["speech_decoder"] = speech_decoder; @@ -560,7 +567,7 @@ void Speech::add_player_audio(int p_player_id, Node *p_audio_stream_player) { dict["playback_prev_time"] = -1; player_audio[p_player_id] = dict; } else { - print_error(vformat("Attempted to duplicate player_audio entry (%s)!", p_player_id)); + ERR_PRINT(vformat("Attempted to duplicate player_audio entry (%s)!", p_player_id)); } } } @@ -569,14 +576,14 @@ void Speech::vc_debug_print(String p_str) const { if (!DEBUG) { return; } - print_line(p_str); + UtilityFunctions::print(p_str); } void Speech::vc_debug_printerr(String p_str) const { if (!DEBUG) { return; } - print_error(p_str); + ERR_PRINT(p_str); } void Speech::on_received_audio_packet(int p_peer_id, int p_sequence_id, PackedByteArray p_packet) { @@ -622,7 +629,7 @@ Dictionary Speech::get_playback_stats(Dictionary speech_stat_dict) { continue; } Dictionary stats = playback_stats->get_playback_stats(); - stats["playback_total_time"] = (OS::get_singleton()->get_ticks_msec() - int64_t(elem["playback_start_time"])) / double(SpeechProcessor::SPEECH_SETTING_MILLISECONDS_PER_SECOND); + stats["playback_total_time"] = (Time::get_singleton()->get_ticks_msec() - int64_t(elem["playback_start_time"])) / double(SpeechProcessor::SPEECH_SETTING_MILLISECONDS_PER_SECOND); stats["excess_packets"] = elem["excess_packets"]; stats["excess_s"] = int64_t(elem["excess_packets"]) * SpeechProcessor::SPEECH_SETTING_PACKET_DELTA_TIME; stat_dict[key] = stats; @@ -636,7 +643,7 @@ void Speech::remove_player_audio(int p_player_id) { return; } } - print_error(vformat("Attempted to remove a non-existant player_audio entry (%s)", p_player_id)); + ERR_PRINT(vformat("Attempted to remove a non-existant player_audio entry (%s)", p_player_id)); } void Speech::clear_all_player_audio() { diff --git a/speech.h b/speech.h index d974cfc..45a67d8 100644 --- a/speech.h +++ b/speech.h @@ -31,20 +31,26 @@ #ifndef SPEECH_H #define SPEECH_H -#include "core/error/error_macros.h" -#include "core/os/mutex.h" -#include "core/variant/array.h" -#include "core/variant/dictionary.h" -#include "modules/speech/thirdparty/jitter.h" #include "playback_stats.h" -#include "scene/main/node.h" -#include "servers/audio/effects/audio_stream_generator.h" +#include "thirdparty/jitter.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include "speech_decoder.h" #include "speech_processor.h" class SpeechProcessor; +using namespace godot; + class Speech : public Node { GDCLASS(Speech, Node); diff --git a/speech_decoder.h b/speech_decoder.h index 0a31a5f..e9362c9 100644 --- a/speech_decoder.h +++ b/speech_decoder.h @@ -31,10 +31,15 @@ #ifndef SPEECH_DECODER_H #define SPEECH_DECODER_H -#include "core/object/ref_counted.h" +#include +#include +#include +#include #include "thirdparty/opus/opus/opus.h" +using namespace godot; + class SpeechDecoder : public RefCounted { GDCLASS(SpeechDecoder, RefCounted); @@ -42,6 +47,9 @@ class SpeechDecoder : public RefCounted { ::OpusDecoder *decoder = nullptr; bool is_compressed = false; +protected: + static void _bind_methods() {} + public: SpeechDecoder(); ~SpeechDecoder(); diff --git a/speech_processor.cpp b/speech_processor.cpp index 9cca9f2..6578d2c 100644 --- a/speech_processor.cpp +++ b/speech_processor.cpp @@ -28,8 +28,11 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /**************************************************************************/ -#include "speech_processor.h" +#include +#include + #include "opus_custom.h" +#include "speech_processor.h" #include @@ -223,17 +226,24 @@ void SpeechProcessor::_mix_audio(const Vector2 *p_capture_buffer, const Vector2 void SpeechProcessor::start() { if (!ProjectSettings::get_singleton()->get("audio/enable_audio_input")) { - print_line("Need to enable Project settings > Audio > Enable Audio Input " - "option to use capturing."); + UtilityFunctions::print("Need to enable Project settings > Audio > Enable Audio Input " + "option to use capturing."); return; } if (!audio_input_stream_player || !audio_effect_capture.is_valid() || !audio_effect_error_cancellation_capture.is_valid()) { return; } +#ifdef GODOT_MODULE_COMPAT if (AudioDriver::get_singleton()) { mix_rate = AudioDriver::get_singleton()->get_mix_rate(); } +#else + if (AudioServer::get_singleton()) { + mix_rate = AudioServer::get_singleton()->get_mix_rate(); + } +#endif + audio_input_stream_player->play(); audio_effect_capture->clear_buffer(); audio_effect_error_cancellation_capture->clear_buffer(); @@ -501,28 +511,28 @@ Dictionary SpeechProcessor::get_stats() const { void SpeechProcessor::print_opus_error(int error_code) { switch (error_code) { case OPUS_OK: - print_line("OpusCodec::OPUS_OK"); + UtilityFunctions::print("OpusCodec::OPUS_OK"); break; case OPUS_BAD_ARG: - print_line("OpusCodec::OPUS_BAD_ARG"); + UtilityFunctions::print("OpusCodec::OPUS_BAD_ARG"); break; case OPUS_BUFFER_TOO_SMALL: - print_line("OpusCodec::OPUS_BUFFER_TOO_SMALL"); + UtilityFunctions::print("OpusCodec::OPUS_BUFFER_TOO_SMALL"); break; case OPUS_INTERNAL_ERROR: - print_line("OpusCodec::OPUS_INTERNAL_ERROR"); + UtilityFunctions::print("OpusCodec::OPUS_INTERNAL_ERROR"); break; case OPUS_INVALID_PACKET: - print_line("OpusCodec::OPUS_INVALID_PACKET"); + UtilityFunctions::print("OpusCodec::OPUS_INVALID_PACKET"); break; case OPUS_UNIMPLEMENTED: - print_line("OpusCodec::OPUS_UNIMPLEMENTED"); + UtilityFunctions::print("OpusCodec::OPUS_UNIMPLEMENTED"); break; case OPUS_INVALID_STATE: - print_line("OpusCodec::OPUS_INVALID_STATE"); + UtilityFunctions::print("OpusCodec::OPUS_INVALID_STATE"); break; case OPUS_ALLOC_FAIL: - print_line("OpusCodec::OPUS_ALLOC_FAIL"); + UtilityFunctions::print("OpusCodec::OPUS_ALLOC_FAIL"); break; } } diff --git a/speech_processor.h b/speech_processor.h index bbc8a64..c39beb7 100644 --- a/speech_processor.h +++ b/speech_processor.h @@ -31,16 +31,27 @@ #ifndef SPEECH_PROCESSOR_H #define SPEECH_PROCESSOR_H -#include "core/config/engine.h" -#include "core/config/project_settings.h" -#include "core/object/class_db.h" -#include "core/object/ref_counted.h" -#include "core/os/mutex.h" -#include "scene/audio/audio_stream_player.h" -#include "scene/main/node.h" -#include "servers/audio/audio_stream.h" -#include "servers/audio/effects/audio_effect_capture.h" -#include "servers/audio_server.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include @@ -64,6 +75,8 @@ namespace webrtc { struct EchoCanceller3Config; } +using namespace godot; + class SpeechProcessor : public Node { GDCLASS(SpeechProcessor, Node); Mutex mutex; diff --git a/tests/test_speech.h b/tests/test_speech.h index 7ddb661..4ef8b7e 100644 --- a/tests/test_speech.h +++ b/tests/test_speech.h @@ -31,10 +31,10 @@ #ifndef TEST_SPEECH_H #define TEST_SPEECH_H -#include "core/variant/variant.h" #include "tests/test_macros.h" +#include -#include "modules/speech/thirdparty/jitter.h" +#include "thirdparty/jitter.h" namespace TestJitter { TEST_CASE("[Modules][Speech] Basic Tests") { diff --git a/thirdparty/AEC3/base/rtc_base/platform_thread_types.cc b/thirdparty/AEC3/base/rtc_base/platform_thread_types.cc index 5de1d10..faa3efe 100644 --- a/thirdparty/AEC3/base/rtc_base/platform_thread_types.cc +++ b/thirdparty/AEC3/base/rtc_base/platform_thread_types.cc @@ -79,7 +79,6 @@ void SetCurrentThreadName(const char* name) { } #pragma warning(pop) #elif defined(WEBRTC_LINUX) || defined(WEBRTC_ANDROID) - prctl(PR_SET_NAME, reinterpret_cast(name)); // NOLINT #elif defined(WEBRTC_MAC) || defined(WEBRTC_IOS) pthread_setname_np(name); #endif diff --git a/thirdparty/godot-cpp/.github/ISSUE_TEMPLATE/bug_report.yml b/thirdparty/godot-cpp/.github/ISSUE_TEMPLATE/bug_report.yml index b52ad6f..c64397a 100644 --- a/thirdparty/godot-cpp/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/thirdparty/godot-cpp/.github/ISSUE_TEMPLATE/bug_report.yml @@ -9,7 +9,7 @@ body: - Write a descriptive issue title above. - The golden rule is to **always open *one* issue for *one* bug**. If you notice several bugs and want to report them, make sure to create one new issue for each of them. - Search [open](https://github.com/godotengine/godot-cpp/issues) and [closed](https://github.com/godotengine/godot-cpp/issues?q=is%3Aissue+is%3Aclosed) issues to ensure it has not already been reported. If you don't find a relevant match or if you're unsure, don't hesitate to **open a new issue**. The bugsquad will handle it from there if it's a duplicate. - - Verify that you are using a [supported Godot version](https://docs.godotengine.org/en/latest/about/release_policy.html). + - Verify that you are using a [supported Godot version](https://docs.godotengine.org/en/stable/about/release_policy.html). - type: input attributes: diff --git a/thirdparty/godot-cpp/.github/workflows/ci.yml b/thirdparty/godot-cpp/.github/workflows/ci.yml index ada01e9..2456314 100644 --- a/thirdparty/godot-cpp/.github/workflows/ci.yml +++ b/thirdparty/godot-cpp/.github/workflows/ci.yml @@ -4,6 +4,8 @@ on: [push, pull_request] env: # Only used for the cache key. Increment version to force clean build. GODOT_BASE_BRANCH: master + # Used to select the version of Godot to run the tests with. + GODOT_TEST_VERSION: 4.2.2-stable concurrency: group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}} @@ -117,7 +119,7 @@ jobs: - name: Web dependencies if: ${{ matrix.platform == 'web' }} - uses: mymindstorm/setup-emsdk@v13 + uses: mymindstorm/setup-emsdk@v14 with: version: ${{env.EM_VERSION}} actions-cache-folder: ${{env.EM_CACHE_FOLDER}} @@ -134,26 +136,26 @@ jobs: - name: Generate godot-cpp sources only run: | - scons platform=${{ matrix.platform }} build_library=no ${{ matrix.flags }} + scons platform=${{ matrix.platform }} verbose=yes build_library=no ${{ matrix.flags }} scons -c - name: Build godot-cpp (debug) run: | - scons platform=${{ matrix.platform }} target=template_debug ${{ matrix.flags }} + scons platform=${{ matrix.platform }} verbose=yes target=template_debug ${{ matrix.flags }} - name: Build test without rebuilding godot-cpp (debug) run: | cd test - scons platform=${{ matrix.platform }} target=template_debug ${{ matrix.flags }} build_library=no + scons platform=${{ matrix.platform }} verbose=yes target=template_debug ${{ matrix.flags }} build_library=no - name: Build test and godot-cpp (release) run: | cd test - scons platform=${{ matrix.platform }} target=template_release ${{ matrix.flags }} + scons platform=${{ matrix.platform }} verbose=yes target=template_release ${{ matrix.flags }} - name: Download latest Godot artifacts uses: dsnopek/action-download-artifact@1322f74e2dac9feed2ee76a32d9ae1ca3b4cf4e9 - if: ${{ matrix.run-tests }} + if: ${{ matrix.run-tests && env.GODOT_TEST_VERSION == 'master' }} with: repo: godotengine/godot branch: master @@ -166,15 +168,28 @@ jobs: ensure_latest: true path: godot-artifacts + - name: Prepare Godot artifacts for testing + if: ${{ matrix.run-tests && env.GODOT_TEST_VERSION == 'master' }} + run: | + chmod +x ./godot-artifacts/godot.linuxbsd.editor.x86_64.mono + echo "GODOT=$(pwd)/godot-artifacts/godot.linuxbsd.editor.x86_64.mono" >> $GITHUB_ENV + + - name: Download requested Godot version for testing + if: ${{ matrix.run-tests && env.GODOT_TEST_VERSION != 'master' }} + run: | + wget "https://github.com/godotengine/godot-builds/releases/download/${GODOT_TEST_VERSION}/Godot_v${GODOT_TEST_VERSION}_linux.x86_64.zip" -O Godot.zip + unzip -a Godot.zip + chmod +x "Godot_v${GODOT_TEST_VERSION}_linux.x86_64" + echo "GODOT=$(pwd)/Godot_v${GODOT_TEST_VERSION}_linux.x86_64" >> $GITHUB_ENV + - name: Run tests if: ${{ matrix.run-tests }} run: | - chmod +x ./godot-artifacts/godot.linuxbsd.editor.x86_64.mono - ./godot-artifacts/godot.linuxbsd.editor.x86_64.mono --headless --version + $GODOT --headless --version cd test # Need to run the editor so .godot is generated... but it crashes! Ignore that :-) - (cd project && (timeout 10 ../../godot-artifacts/godot.linuxbsd.editor.x86_64.mono --editor --headless --quit >/dev/null 2>&1 || true)) - GODOT=../godot-artifacts/godot.linuxbsd.editor.x86_64.mono ./run-tests.sh + (cd project && (timeout 30 $GODOT --editor --headless --quit >/dev/null 2>&1 || true)) + ./run-tests.sh - name: Upload artifact uses: actions/upload-artifact@v3 diff --git a/thirdparty/godot-cpp/.gitrepo b/thirdparty/godot-cpp/.gitrepo index dcd02b5..912e9ea 100644 --- a/thirdparty/godot-cpp/.gitrepo +++ b/thirdparty/godot-cpp/.gitrepo @@ -4,9 +4,9 @@ ; git-subrepo command. See https://github.com/ingydotnet/git-subrepo#readme ; [subrepo] - remote = https://github.com/V-Sekai/godot-cpp.git - branch = compat-layer - commit = df3188ed23ee999dc41cce2af93f885feb8a5552 - parent = 65e4630bb405a61d78fc49f982068b03d0725cad + remote = https://github.com/godotengine/godot-cpp + branch = 4.2 + commit = 9da6ecd14485a3dacc04d8e0558c21beb709ca9f + parent = 55869f43e7d8d313d177b94bd98c1d0abb8cdb7e method = merge cmdver = 0.4.6 diff --git a/thirdparty/godot-cpp/CMakeLists.txt b/thirdparty/godot-cpp/CMakeLists.txt index e715102..cf564d0 100644 --- a/thirdparty/godot-cpp/CMakeLists.txt +++ b/thirdparty/godot-cpp/CMakeLists.txt @@ -37,7 +37,7 @@ # Todo # Test build for Windows, Mac and mingw. -cmake_minimum_required(VERSION 3.12) +cmake_minimum_required(VERSION 3.13) project(godot-cpp LANGUAGES CXX) option(GENERATE_TEMPLATE_GET_NODE "Generate a template version of the Node class's get_node." ON) diff --git a/thirdparty/godot-cpp/README.md b/thirdparty/godot-cpp/README.md index fa28b20..ca9a738 100644 --- a/thirdparty/godot-cpp/README.md +++ b/thirdparty/godot-cpp/README.md @@ -62,21 +62,6 @@ and the [godot-cpp issue tracker](https://github.com/godotengine/godot-cpp/issue for a list of known issues, and be sure to provide feedback on issues and PRs which affect your use of this extension. -## Godot and Godot Cpp Compatibility - -If you intend to target both building as a GDExtension and as a module using godot repo, you can generate compatibility includes that will target either GDExtension or module, based on the GODOT_MODULE_COMPAT define. - -If you want such a thing built, when running the build command, `scons`, make sure you have a file called `output_header_mapping.json` at root level of this repo. This file needs to have the mappings from `godot` repo. The mappings can be generated by running the compat_generator.py script. - -Example of how to obtain them: - -``` -git clone godotengine/godot -python compat_generator.py godot -``` - -Then run the SConstruct build command as usual, and in the `gen/` folder you will now have a new folder, `include/godot_compat` which mirrors the `include/godot_cpp` includes, but have ifdef inside them and either include godot header or godot_cpp header. - ## Contributing We greatly appreciate help in maintaining and extending this project. If you @@ -147,7 +132,7 @@ void initialize_example_module(ModuleInitializationLevel p_level) { if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) { return; } - ClassDB::register_class(); + GDREGISTER_CLASS(Example); } ``` diff --git a/thirdparty/godot-cpp/binding_generator.py b/thirdparty/godot-cpp/binding_generator.py index 219cef8..9508492 100644 --- a/thirdparty/godot-cpp/binding_generator.py +++ b/thirdparty/godot-cpp/binding_generator.py @@ -3,9 +3,6 @@ import json import re import shutil -import os -from compat_generator import map_header_files -from header_matcher import match_headers from pathlib import Path @@ -73,133 +70,6 @@ def generate_wrappers(target): f.write(txt) -def generate_virtual_version(argcount, const=False, returns=False): - s = """#define GDVIRTUAL$VER($RET m_name $ARG)\\ - ::godot::StringName _gdvirtual_##m_name##_sn = #m_name;\\ - template \\ - _FORCE_INLINE_ bool _gdvirtual_##m_name##_call($CALLARGS) $CONST {\\ - if (::godot::internal::gdextension_interface_object_has_script_method(_owner, &_gdvirtual_##m_name##_sn)) { \\ - GDExtensionCallError ce;\\ - $CALLSIARGS\\ - ::godot::Variant ret;\\ - ::godot::internal::gdextension_interface_object_call_script_method(_owner, &_gdvirtual_##m_name##_sn, $CALLSIARGPASS, &ret, &ce);\\ - if (ce.error == GDEXTENSION_CALL_OK) {\\ - $CALLSIRET\\ - return true;\\ - }\\ - }\\ - if (required) {\\ - ERR_PRINT_ONCE("Required virtual method " + get_class() + "::" + #m_name + " must be overridden before calling.");\\ - $RVOID\\ - }\\ - return false;\\ - }\\ - _FORCE_INLINE_ bool _gdvirtual_##m_name##_overridden() const {\\ - return ::godot::internal::gdextension_interface_object_has_script_method(_owner, &_gdvirtual_##m_name##_sn); \\ - }\\ - _FORCE_INLINE_ static ::godot::MethodInfo _gdvirtual_##m_name##_get_method_info() {\\ - ::godot::MethodInfo method_info;\\ - method_info.name = #m_name;\\ - method_info.flags = $METHOD_FLAGS;\\ - $FILL_METHOD_INFO\\ - return method_info;\\ - } - -""" - - sproto = str(argcount) - method_info = "" - if returns: - sproto += "R" - s = s.replace("$RET", "m_ret,") - s = s.replace("$RVOID", "(void)r_ret;") # If required, may lead to uninitialized errors - method_info += "method_info.return_val = ::godot::GetTypeInfo::get_class_info();\\\n" - method_info += "\t\tmethod_info.return_val_metadata = ::godot::GetTypeInfo::METADATA;" - else: - s = s.replace("$RET ", "") - s = s.replace("\t\t\t$RVOID\\\n", "") - - if const: - sproto += "C" - s = s.replace("$CONST", "const") - s = s.replace("$METHOD_FLAGS", "::godot::METHOD_FLAG_VIRTUAL | ::godot::METHOD_FLAG_CONST") - else: - s = s.replace("$CONST ", "") - s = s.replace("$METHOD_FLAGS", "::godot::METHOD_FLAG_VIRTUAL") - - s = s.replace("$VER", sproto) - argtext = "" - callargtext = "" - callsiargs = "" - callsiargptrs = "" - if argcount > 0: - argtext += ", " - callsiargs = f"::godot::Variant vargs[{argcount}] = {{ " - callsiargptrs = f"\t\t\tconst ::godot::Variant *vargptrs[{argcount}] = {{ " - for i in range(argcount): - if i > 0: - argtext += ", " - callargtext += ", " - callsiargs += ", " - callsiargptrs += ", " - argtext += f"m_type{i + 1}" - callargtext += f"m_type{i + 1} arg{i + 1}" - callsiargs += f"::godot::Variant(arg{i + 1})" - callsiargptrs += f"&vargs[{i}]" - if method_info: - method_info += "\\\n\t\t" - method_info += f"method_info.arguments.push_back(::godot::GetTypeInfo::get_class_info());\\\n" - method_info += f"\t\tmethod_info.arguments_metadata.push_back(::godot::GetTypeInfo::METADATA);" - - if argcount: - callsiargs += " };\\\n" - callsiargptrs += " };" - s = s.replace("$CALLSIARGS", callsiargs + callsiargptrs) - s = s.replace("$CALLSIARGPASS", f"(const GDExtensionConstVariantPtr *)vargptrs, {argcount}") - else: - s = s.replace("\t\t\t$CALLSIARGS\\\n", "") - s = s.replace("$CALLSIARGPASS", "nullptr, 0") - - if returns: - if argcount > 0: - callargtext += ", " - callargtext += "m_ret &r_ret" - s = s.replace("$CALLSIRET", "r_ret = ::godot::VariantCaster::cast(ret);") - else: - s = s.replace("\t\t\t\t$CALLSIRET\\\n", "") - - s = s.replace(" $ARG", argtext) - s = s.replace("$CALLARGS", callargtext) - if method_info: - s = s.replace("$FILL_METHOD_INFO", method_info) - else: - s = s.replace("\t\t$FILL_METHOD_INFO\\\n", method_info) - - return s - - -def generate_virtuals(target): - max_versions = 12 - - txt = """/* THIS FILE IS GENERATED DO NOT EDIT */ -#ifndef GDEXTENSION_GDVIRTUAL_GEN_H -#define GDEXTENSION_GDVIRTUAL_GEN_H - -""" - - for i in range(max_versions + 1): - txt += f"/* {i} Arguments */\n\n" - txt += generate_virtual_version(i, False, False) - txt += generate_virtual_version(i, False, True) - txt += generate_virtual_version(i, True, False) - txt += generate_virtual_version(i, True, True) - - txt += "#endif // GDEXTENSION_GDVIRTUAL_GEN_H\n" - - with open(target, "w", encoding="utf-8") as f: - f.write(txt) - - def get_file_list(api_filepath, output_dir, headers=False, sources=False): api = {} files = [] @@ -208,11 +78,9 @@ def get_file_list(api_filepath, output_dir, headers=False, sources=False): core_gen_folder = Path(output_dir) / "gen" / "include" / "godot_cpp" / "core" include_gen_folder = Path(output_dir) / "gen" / "include" / "godot_cpp" - include_gen_compat_folder = Path(output_dir) / "gen" / "include" / "godot_compat" source_gen_folder = Path(output_dir) / "gen" / "src" files.append(str((core_gen_folder / "ext_wrappers.gen.inc").as_posix())) - files.append(str((core_gen_folder / "gdvirtual.gen.inc").as_posix())) for builtin_class in api["builtin_classes"]: if is_pod_type(builtin_class["name"]): @@ -311,9 +179,12 @@ def generate_bindings(api_filepath, use_template_get_node, bits="64", precision= generate_builtin_bindings(api, target_dir, real_t + "_" + bits) generate_engine_classes_bindings(api, target_dir, use_template_get_node) generate_utility_functions(api, target_dir) - generate_compat_includes(target_dir) +CLASS_ALIASES = { + "ClassDB": "ClassDBSingleton", +} + builtin_classes = [] # Key is class name, value is boolean where True means the class is refcounted. @@ -337,7 +208,6 @@ def generate_builtin_bindings(api, output_dir, build_config): source_gen_folder.mkdir(parents=True, exist_ok=True) generate_wrappers(core_gen_folder / "ext_wrappers.gen.inc") - generate_virtuals(core_gen_folder / "gdvirtual.gen.inc") # Store types beforehand. for builtin_api in api["builtin_classes"]: @@ -701,7 +571,7 @@ def generate_builtin_class_header(builtin_api, size, used_classes, fully_used_cl vararg = method["is_vararg"] if vararg: - result.append("\ttemplate") + result.append("\ttemplate") method_signature = "\t" if "is_static" in method and method["is_static"]: @@ -800,7 +670,7 @@ def generate_builtin_class_header(builtin_api, size, used_classes, fully_used_cl result.append("\tchar32_t *ptrw();") if class_name == "Array": - result.append("\ttemplate ") + result.append("\ttemplate ") result.append("\tstatic Array make(Args... args) {") result.append("\t\treturn helpers::append_all(Array(), args...);") result.append("\t}") @@ -1261,9 +1131,9 @@ def generate_engine_classes_bindings(api, output_dir, use_template_get_node): # First create map of classes and singletons. for class_api in api["classes"]: # Generate code for the ClassDB singleton under a different name. - if class_api["name"] == "ClassDB": - class_api["name"] = "ClassDBSingleton" - class_api["alias_for"] = "ClassDB" + if class_api["name"] in CLASS_ALIASES: + class_api["alias_for"] = class_api["name"] + class_api["name"] = CLASS_ALIASES[class_api["alias_for"]] engine_classes[class_api["name"]] = class_api["is_refcounted"] for native_struct in api["native_structures"]: if native_struct["name"] == "ObjectID": @@ -1273,9 +1143,9 @@ def generate_engine_classes_bindings(api, output_dir, use_template_get_node): for singleton in api["singletons"]: # Generate code for the ClassDB singleton under a different name. - if singleton["name"] == "ClassDB": - singleton["name"] = "ClassDBSingleton" - singleton["alias_for"] = "ClassDB" + if singleton["name"] in CLASS_ALIASES: + singleton["alias_for"] = singleton["name"] + singleton["name"] = CLASS_ALIASES[singleton["name"]] singletons.append(singleton["name"]) for class_api in api["classes"]: @@ -1445,41 +1315,6 @@ def generate_engine_classes_bindings(api, output_dir, use_template_get_node): header_file.write("\n".join(result)) -def generate_compat_includes(output_dir): - file_types_mapping_godot_cpp = map_header_files("gen/include") - godot_compat = Path("output_header_mapping.json") - if not godot_compat.exists(): - return - with godot_compat.open() as file: - mapping2 = json.load(file) - # Match the headers - file_types_mapping = match_headers(file_types_mapping_godot_cpp, mapping2) - - include_gen_folder = Path(output_dir) / "include" - for file_godot_cpp_name, file_godot_names in file_types_mapping.items(): - header_filename = file_godot_cpp_name.replace("godot_cpp", "godot_compat") - header_filepath = include_gen_folder / header_filename - Path(os.path.dirname(header_filepath)).mkdir(parents=True, exist_ok=True) - result = [] - snake_header_name = camel_to_snake(header_filename) - add_header(f"{snake_header_name}.hpp", result) - - header_guard = f"GODOT_COMPAT_{os.path.splitext(os.path.basename(header_filepath).upper())[0]}_HPP" - result.append(f"#ifndef {header_guard}") - result.append(f"#define {header_guard}") - result.append("") - result.append(f"#ifdef GODOT_MODULE_COMPAT") - for file_godot_name in file_godot_names: - result.append(f"#include <{file_godot_name}>") - result.append(f"#else") - result.append(f"#include <{file_godot_cpp_name}>") - result.append(f"#endif") - result.append("") - result.append(f"#endif // ! {header_guard}") - with header_filepath.open("w+", encoding="utf-8") as header_file: - header_file.write("\n".join(result)) - - def generate_engine_class_header(class_api, used_classes, fully_used_classes, use_template_get_node): global singletons result = [] @@ -1515,6 +1350,10 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us result.append("#include ") result.append("") + if class_name == "ClassDBSingleton": + result.append("#include ") + result.append("") + result.append("namespace godot {") result.append("") @@ -1536,6 +1375,10 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us result.append(f"\tGDEXTENSION_CLASS({class_name}, {inherits})") result.append("") + if is_singleton: + result.append(f"\tstatic {class_name} *singleton;") + result.append("") + result.append("public:") result.append("") @@ -1596,7 +1439,7 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us result.append("protected:") # T is the custom class we want to register (from which the call initiates, going up the inheritance chain), # B is its base class (can be a custom class too, that's why we pass it). - result.append("\ttemplate ") + result.append("\ttemplate ") result.append("\tstatic void register_virtuals() {") if class_name != "Object": result.append(f"\t\t{inherits}::register_virtuals();") @@ -1616,6 +1459,11 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us result.append("\t}") result.append("") + + if is_singleton: + result.append(f"\t~{class_name}();") + result.append("") + result.append("public:") # Special cases. @@ -1642,16 +1490,16 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us if class_name == "Object": result.append("") - result.append("\ttemplate") + result.append("\ttemplate") result.append("\tstatic T *cast_to(Object *p_object);") - result.append("\ttemplate") + result.append("\ttemplate") result.append("\tstatic const T *cast_to(const Object *p_object);") result.append("\tvirtual ~Object() = default;") elif use_template_get_node and class_name == "Node": - result.append("\ttemplate") + result.append("\ttemplate") result.append( "\tT *get_node(const NodePath &p_path) const { return Object::cast_to(get_node_internal(p_path)); }" ) @@ -1673,20 +1521,41 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us if class_name == "ClassDBSingleton": result.append("#define CLASSDB_SINGLETON_FORWARD_METHODS \\") + + if "enums" in class_api: + for enum_api in class_api["enums"]: + if enum_api["is_bitfield"]: + result.append(f'\tenum {enum_api["name"]} : uint64_t {{ \\') + else: + result.append(f'\tenum {enum_api["name"]} {{ \\') + + for value in enum_api["values"]: + result.append(f'\t\t{value["name"]} = {value["value"]}, \\') + result.append("\t}; \\") + result.append("\t \\") + for method in class_api["methods"]: - # ClassDBSingleton shouldn't have any static or vararg methods, but if some appear later, lets skip them. - if vararg: - continue + # ClassDBSingleton shouldn't have any static methods, but if some appear later, lets skip them. if "is_static" in method and method["is_static"]: continue - method_signature = "\tstatic " + vararg = "is_vararg" in method and method["is_vararg"] + if vararg: + method_signature = "\ttemplate static " + else: + method_signature = "\tstatic " + + return_type = None if "return_type" in method: - method_signature += f'{correct_type(method["return_type"])} ' + return_type = correct_type(method["return_type"].replace("ClassDBSingleton", "ClassDB"), None, False) elif "return_value" in method: - method_signature += ( - correct_type(method["return_value"]["type"], method["return_value"].get("meta", None)) + " " + return_type = correct_type( + method["return_value"]["type"].replace("ClassDBSingleton", "ClassDB"), + method["return_value"].get("meta", None), + False, ) + if return_type is not None: + method_signature += return_type + " " else: method_signature += "void " @@ -1697,7 +1566,7 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us method_arguments = method["arguments"] method_signature += make_function_parameters( - method_arguments, include_default=True, for_builtin=True, is_vararg=False + method_arguments, include_default=True, for_builtin=True, is_vararg=vararg ) method_signature += ") { \\" @@ -1705,10 +1574,14 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us result.append(method_signature) method_body = "\t\t" - if "return_type" in method or "return_value" in method: + if return_type is not None: method_body += "return " + if "alias_for" in class_api and return_type.startswith(class_api["alias_for"] + "::"): + method_body += f"({return_type})" method_body += f'ClassDBSingleton::get_singleton()->{method["name"]}(' method_body += ", ".join(map(lambda x: escape_identifier(x["name"]), method_arguments)) + if vararg: + method_body += ", args..." method_body += "); \\" result.append(method_body) @@ -1716,6 +1589,18 @@ def generate_engine_class_header(class_api, used_classes, fully_used_classes, us result.append("\t;") result.append("") + result.append("#define CLASSDB_SINGLETON_VARIANT_CAST \\") + + if "enums" in class_api: + for enum_api in class_api["enums"]: + if enum_api["is_bitfield"]: + result.append(f'\tVARIANT_BITFIELD_CAST({class_api["alias_for"]}::{enum_api["name"]}); \\') + else: + result.append(f'\tVARIANT_ENUM_CAST({class_api["alias_for"]}::{enum_api["name"]}); \\') + + result.append("\t;") + result.append("") + result.append(f"#endif // ! {header_guard}") return "\n".join(result) @@ -1733,6 +1618,7 @@ def generate_engine_class_source(class_api, used_classes, fully_used_classes, us result.append(f"#include ") result.append("") + result.append("#include ") result.append("#include ") result.append("#include ") result.append("") @@ -1747,9 +1633,10 @@ def generate_engine_class_source(class_api, used_classes, fully_used_classes, us result.append("") if is_singleton: + result.append(f"{class_name} *{class_name}::singleton = nullptr;") + result.append("") result.append(f"{class_name} *{class_name}::get_singleton() {{") # We assume multi-threaded access is OK because each assignment will assign the same value every time - result.append(f"\tstatic {class_name} *singleton = nullptr;") result.append("\tif (unlikely(singleton == nullptr)) {") result.append( f"\t\tGDExtensionObjectPtr singleton_obj = internal::gdextension_interface_global_get_singleton({class_name}::get_class_static()._native_ptr());" @@ -1763,11 +1650,22 @@ def generate_engine_class_source(class_api, used_classes, fully_used_classes, us result.append("#ifdef DEBUG_ENABLED") result.append("\t\tERR_FAIL_NULL_V(singleton, nullptr);") result.append("#endif // DEBUG_ENABLED") + result.append("\t\tif (likely(singleton)) {") + result.append(f"\t\t\tClassDB::_register_engine_singleton({class_name}::get_class_static(), singleton);") + result.append("\t\t}") result.append("\t}") result.append("\treturn singleton;") result.append("}") result.append("") + result.append(f"{class_name}::~{class_name}() {{") + result.append("\tif (singleton == this) {") + result.append(f"\t\tClassDB::_unregister_engine_singleton({class_name}::get_class_static());") + result.append("\t\tsingleton = nullptr;") + result.append("\t}") + result.append("}") + result.append("") + if "methods" in class_api: for method in class_api["methods"]: if method["is_virtual"]: @@ -2285,7 +2183,7 @@ def make_varargs_template( if with_public_declare: function_signature = "public: " - function_signature += "template " + function_signature += "template " if static: function_signature += "static " @@ -2331,9 +2229,9 @@ def make_varargs_template( args_array = f"\tstd::array variant_args {{ " for argument in method_arguments: if argument["type"] == "Variant": - args_array += argument["name"] + args_array += escape_identifier(argument["name"]) else: - args_array += f'Variant({argument["name"]})' + args_array += f'Variant({escape_identifier(argument["name"])})' args_array += ", " args_array += "Variant(args)... };" @@ -2533,6 +2431,7 @@ def correct_default_value(value, type_name): "null": "nullptr", '""': "String()", '&""': "StringName()", + '^""': "NodePath()", "[]": "Array()", "{}": "Dictionary()", "Transform2D(1, 0, 0, 1, 0, 0)": "Transform2D()", # Default transform. @@ -2544,6 +2443,10 @@ def correct_default_value(value, type_name): return f"{type_name}()" if value.startswith("Array["): return f"{{}}" + if value.startswith("&"): + return value[1::] + if value.startswith("^"): + return value[1::] return value @@ -2553,7 +2456,7 @@ def correct_typed_array(type_name): return type_name -def correct_type(type_name, meta=None): +def correct_type(type_name, meta=None, use_alias=True): type_conversion = {"float": "double", "int": "int64_t", "Nil": "Variant"} if meta != None: if "int" in meta: @@ -2569,11 +2472,15 @@ def correct_type(type_name, meta=None): if is_enum(type_name): if is_bitfield(type_name): base_class = get_enum_class(type_name) + if use_alias and base_class in CLASS_ALIASES: + base_class = CLASS_ALIASES[base_class] if base_class == "GlobalConstants": return f"BitField<{get_enum_name(type_name)}>" return f"BitField<{base_class}::{get_enum_name(type_name)}>" else: base_class = get_enum_class(type_name) + if use_alias and base_class in CLASS_ALIASES: + base_class = CLASS_ALIASES[base_class] if base_class == "GlobalConstants": return f"{get_enum_name(type_name)}" return f"{base_class}::{get_enum_name(type_name)}" diff --git a/thirdparty/godot-cpp/compat_generator.py b/thirdparty/godot-cpp/compat_generator.py deleted file mode 100644 index 938663e..0000000 --- a/thirdparty/godot-cpp/compat_generator.py +++ /dev/null @@ -1,57 +0,0 @@ -import re -import os -import json -import sys - - -def parse_header_file(file_path): - print(file_path) - types = {"classes": [], "structs": []} - # print(file_path) - - with open(file_path, "r", encoding="utf-8") as file: - content = file.read() - - # Regular expressions to match different types - class_pattern = r"class\s+([a-zA-Z_]\w*)\s*[:{]" - struct_pattern = r"struct\s+([a-zA-Z_]\w*)\s*[:{]" - - # Extract classes - types["classes"] += re.findall(class_pattern, content) - - # Extract structs - types["structs"] += re.findall(struct_pattern, content) - if len(types["classes"]) == 0 and len(types["structs"]) == 0: - print(f"{file_path} missing things") - return types - - -def map_header_files(directory): - file_types_mapping = {} - - for root, dirs, files in os.walk(directory): - if "thirdparty" in dirs: - dirs.remove("thirdparty") - if "tests" in dirs: - dirs.remove("tests") - if "misc" in dirs: - dirs.remove("misc") - for file in files: - if file.endswith(".h") or file.endswith(".hpp"): - relative_path = os.path.relpath(root, directory) - file_path = os.path.join(root, file) - file_types_mapping[f"{relative_path}/{file}"] = parse_header_file(file_path) - - return file_types_mapping - - -if __name__ == "__main__": - # Get current directory - current_directory = os.getcwd() - - if len(sys.argv) > 1: - current_directory = os.path.join(os.getcwd(), sys.argv[1]) - - file_types_mapping = map_header_files(current_directory) - with open("output_header_mapping.json", "w") as json_file: - json.dump(file_types_mapping, json_file, indent=4) diff --git a/thirdparty/godot-cpp/gdextension/extension_api.json b/thirdparty/godot-cpp/gdextension/extension_api.json index cfd5ebe..7c8097b 100644 --- a/thirdparty/godot-cpp/gdextension/extension_api.json +++ b/thirdparty/godot-cpp/gdextension/extension_api.json @@ -2,10 +2,10 @@ "header": { "version_major": 4, "version_minor": 2, - "version_patch": 0, + "version_patch": 2, "version_status": "stable", "version_build": "official", - "version_full_name": "Godot Engine v4.2.stable.official" + "version_full_name": "Godot Engine v4.2.2.stable.official" }, "builtin_class_sizes": [ { @@ -82143,6 +82143,24 @@ } ] }, + { + "name": "_begin_handle_action", + "is_const": false, + "is_static": false, + "is_vararg": false, + "is_virtual": true, + "arguments": [ + { + "name": "id", + "type": "int", + "meta": "int32" + }, + { + "name": "secondary", + "type": "bool" + } + ] + }, { "name": "_set_handle", "is_const": false, @@ -82700,6 +82718,28 @@ } ] }, + { + "name": "_begin_handle_action", + "is_const": false, + "is_static": false, + "is_vararg": false, + "is_virtual": true, + "arguments": [ + { + "name": "gizmo", + "type": "EditorNode3DGizmo" + }, + { + "name": "handle_id", + "type": "int", + "meta": "int32" + }, + { + "name": "secondary", + "type": "bool" + } + ] + }, { "name": "_set_handle", "is_const": false, @@ -136403,6 +136443,17 @@ "inherits": "Node2D", "api_type": "core", "methods": [ + { + "name": "get_rid", + "is_const": true, + "is_vararg": false, + "is_static": false, + "is_virtual": false, + "hash": 2944877500, + "return_value": { + "type": "RID" + } + }, { "name": "set_enabled", "is_const": false, @@ -136724,6 +136775,17 @@ "inherits": "Node3D", "api_type": "core", "methods": [ + { + "name": "get_rid", + "is_const": true, + "is_vararg": false, + "is_static": false, + "is_virtual": false, + "hash": 2944877500, + "return_value": { + "type": "RID" + } + }, { "name": "set_enabled", "is_const": false, @@ -140321,6 +140383,17 @@ "inherits": "Node2D", "api_type": "core", "methods": [ + { + "name": "get_rid", + "is_const": true, + "is_vararg": false, + "is_static": false, + "is_virtual": false, + "hash": 2944877500, + "return_value": { + "type": "RID" + } + }, { "name": "set_navigation_polygon", "is_const": false, @@ -140721,6 +140794,17 @@ "inherits": "Node3D", "api_type": "core", "methods": [ + { + "name": "get_rid", + "is_const": true, + "is_vararg": false, + "is_static": false, + "is_virtual": false, + "hash": 2944877500, + "return_value": { + "type": "RID" + } + }, { "name": "set_navigation_mesh", "is_const": false, @@ -150997,6 +151081,10 @@ { "name": "NOTIFICATION_PREDELETE", "value": 1 + }, + { + "name": "NOTIFICATION_EXTENSION_RELOADED", + "value": 2 } ], "enums": [ @@ -205939,6 +206027,23 @@ } ] }, + { + "name": "debug_canvas_item_get_rect", + "is_const": false, + "is_vararg": false, + "is_static": false, + "is_virtual": false, + "hash": 624227424, + "return_value": { + "type": "Rect2" + }, + "arguments": [ + { + "name": "item", + "type": "RID" + } + ] + }, { "name": "canvas_light_create", "is_const": false, @@ -207596,7 +207701,7 @@ "is_refcounted": true, "is_instantiable": true, "inherits": "ResourceImporter", - "api_type": "core" + "api_type": "editor" }, { "name": "ResourceImporterOBJ", @@ -207610,7 +207715,7 @@ "is_refcounted": true, "is_instantiable": true, "inherits": "ResourceImporter", - "api_type": "core", + "api_type": "editor", "methods": [ { "name": "load_from_buffer", diff --git a/thirdparty/godot-cpp/gdextension/gdextension_interface.h b/thirdparty/godot-cpp/gdextension/gdextension_interface.h index c3e64ef..d58f022 100644 --- a/thirdparty/godot-cpp/gdextension/gdextension_interface.h +++ b/thirdparty/godot-cpp/gdextension/gdextension_interface.h @@ -290,7 +290,7 @@ typedef struct { GDExtensionClassGetVirtual get_virtual_func; // Queries a virtual function by name and returns a callback to invoke the requested virtual function. GDExtensionClassGetRID get_rid_func; void *class_userdata; // Per-class user data, later accessible in instance bindings. -} GDExtensionClassCreationInfo; // Deprecated. Use GDExtensionClassCreationInfo3 instead. +} GDExtensionClassCreationInfo; // Deprecated. Use GDExtensionClassCreationInfo2 instead. typedef struct { GDExtensionBool is_virtual; @@ -323,41 +323,7 @@ typedef struct { GDExtensionClassCallVirtualWithData call_virtual_with_data_func; GDExtensionClassGetRID get_rid_func; void *class_userdata; // Per-class user data, later accessible in instance bindings. -} GDExtensionClassCreationInfo2; // Deprecated. Use GDExtensionClassCreationInfo3 instead. - -typedef struct { - GDExtensionBool is_virtual; - GDExtensionBool is_abstract; - GDExtensionBool is_exposed; - GDExtensionBool is_runtime; - GDExtensionClassSet set_func; - GDExtensionClassGet get_func; - GDExtensionClassGetPropertyList get_property_list_func; - GDExtensionClassFreePropertyList free_property_list_func; - GDExtensionClassPropertyCanRevert property_can_revert_func; - GDExtensionClassPropertyGetRevert property_get_revert_func; - GDExtensionClassValidateProperty validate_property_func; - GDExtensionClassNotification2 notification_func; - GDExtensionClassToString to_string_func; - GDExtensionClassReference reference_func; - GDExtensionClassUnreference unreference_func; - GDExtensionClassCreateInstance create_instance_func; // (Default) constructor; mandatory. If the class is not instantiable, consider making it virtual or abstract. - GDExtensionClassFreeInstance free_instance_func; // Destructor; mandatory. - GDExtensionClassRecreateInstance recreate_instance_func; - // Queries a virtual function by name and returns a callback to invoke the requested virtual function. - GDExtensionClassGetVirtual get_virtual_func; - // Paired with `call_virtual_with_data_func`, this is an alternative to `get_virtual_func` for extensions that - // need or benefit from extra data when calling virtual functions. - // Returns user data that will be passed to `call_virtual_with_data_func`. - // Returning `NULL` from this function signals to Godot that the virtual function is not overridden. - // Data returned from this function should be managed by the extension and must be valid until the extension is deinitialized. - // You should supply either `get_virtual_func`, or `get_virtual_call_data_func` with `call_virtual_with_data_func`. - GDExtensionClassGetVirtualCallData get_virtual_call_data_func; - // Used to call virtual functions when `get_virtual_call_data_func` is not null. - GDExtensionClassCallVirtualWithData call_virtual_with_data_func; - GDExtensionClassGetRID get_rid_func; - void *class_userdata; // Per-class user data, later accessible in instance bindings. -} GDExtensionClassCreationInfo3; +} GDExtensionClassCreationInfo2; typedef void *GDExtensionClassLibraryPtr; @@ -398,18 +364,13 @@ typedef struct { GDExtensionClassMethodPtrCall ptrcall_func; uint32_t method_flags; // Bitfield of `GDExtensionClassMethodFlags`. - /* If `has_return_value` is false, `return_value_info` and `return_value_metadata` are ignored. - * - * @todo Consider dropping `has_return_value` and making the other two properties match `GDExtensionMethodInfo` and `GDExtensionClassVirtualMethod` for consistency in future version of this struct. - */ + /* If `has_return_value` is false, `return_value_info` and `return_value_metadata` are ignored. */ GDExtensionBool has_return_value; GDExtensionPropertyInfo *return_value_info; GDExtensionClassMethodArgumentMetadata return_value_metadata; /* Arguments: `arguments_info` and `arguments_metadata` are array of size `argument_count`. * Name and hint information for the argument can be omitted in release builds. Class name should always be present if it applies. - * - * @todo Consider renaming `arguments_info` to `arguments` for consistency in future version of this struct. */ uint32_t argument_count; GDExtensionPropertyInfo *arguments_info; @@ -420,18 +381,6 @@ typedef struct { GDExtensionVariantPtr *default_arguments; } GDExtensionClassMethodInfo; -typedef struct { - GDExtensionStringNamePtr name; - uint32_t method_flags; // Bitfield of `GDExtensionClassMethodFlags`. - - GDExtensionPropertyInfo return_value; - GDExtensionClassMethodArgumentMetadata return_value_metadata; - - uint32_t argument_count; - GDExtensionPropertyInfo *arguments; - GDExtensionClassMethodArgumentMetadata *arguments_metadata; -} GDExtensionClassVirtualMethodInfo; - typedef void (*GDExtensionCallableCustomCall)(void *callable_userdata, const GDExtensionConstVariantPtr *p_args, GDExtensionInt p_argument_count, GDExtensionVariantPtr r_return, GDExtensionCallError *r_error); typedef GDExtensionBool (*GDExtensionCallableCustomIsValid)(void *callable_userdata); typedef void (*GDExtensionCallableCustomFree)(void *callable_userdata); @@ -442,39 +391,6 @@ typedef GDExtensionBool (*GDExtensionCallableCustomLessThan)(void *callable_user typedef void (*GDExtensionCallableCustomToString)(void *callable_userdata, GDExtensionBool *r_is_valid, GDExtensionStringPtr r_out); -typedef GDExtensionInt (*GDExtensionCallableCustomGetArgumentCount)(void *callable_userdata, GDExtensionBool *r_is_valid); - -typedef struct { - /* Only `call_func` and `token` are strictly required, however, `object_id` should be passed if its not a static method. - * - * `token` should point to an address that uniquely identifies the GDExtension (for example, the - * `GDExtensionClassLibraryPtr` passed to the entry symbol function. - * - * `hash_func`, `equal_func`, and `less_than_func` are optional. If not provided both `call_func` and - * `callable_userdata` together are used as the identity of the callable for hashing and comparison purposes. - * - * The hash returned by `hash_func` is cached, `hash_func` will not be called more than once per callable. - * - * `is_valid_func` is necessary if the validity of the callable can change before destruction. - * - * `free_func` is necessary if `callable_userdata` needs to be cleaned up when the callable is freed. - */ - void *callable_userdata; - void *token; - - GDObjectInstanceID object_id; - - GDExtensionCallableCustomCall call_func; - GDExtensionCallableCustomIsValid is_valid_func; - GDExtensionCallableCustomFree free_func; - - GDExtensionCallableCustomHash hash_func; - GDExtensionCallableCustomEqual equal_func; - GDExtensionCallableCustomLessThan less_than_func; - - GDExtensionCallableCustomToString to_string_func; -} GDExtensionCallableCustomInfo; // Deprecated. Use GDExtensionCallableCustomInfo2 instead. - typedef struct { /* Only `call_func` and `token` are strictly required, however, `object_id` should be passed if its not a static method. * @@ -504,9 +420,7 @@ typedef struct { GDExtensionCallableCustomLessThan less_than_func; GDExtensionCallableCustomToString to_string_func; - - GDExtensionCallableCustomGetArgumentCount get_argument_count_func; -} GDExtensionCallableCustomInfo2; +} GDExtensionCallableCustomInfo; /* SCRIPT INSTANCE EXTENSION */ @@ -515,8 +429,7 @@ typedef void *GDExtensionScriptInstanceDataPtr; // Pointer to custom ScriptInsta typedef GDExtensionBool (*GDExtensionScriptInstanceSet)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionConstVariantPtr p_value); typedef GDExtensionBool (*GDExtensionScriptInstanceGet)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionVariantPtr r_ret); typedef const GDExtensionPropertyInfo *(*GDExtensionScriptInstanceGetPropertyList)(GDExtensionScriptInstanceDataPtr p_instance, uint32_t *r_count); -typedef void (*GDExtensionScriptInstanceFreePropertyList)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionPropertyInfo *p_list); // Deprecated. Use GDExtensionScriptInstanceFreePropertyList2 instead. -typedef void (*GDExtensionScriptInstanceFreePropertyList2)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionPropertyInfo *p_list, uint32_t p_count); +typedef void (*GDExtensionScriptInstanceFreePropertyList)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionPropertyInfo *p_list); typedef GDExtensionBool (*GDExtensionScriptInstanceGetClassCategory)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionPropertyInfo *p_class_category); typedef GDExtensionVariantType (*GDExtensionScriptInstanceGetPropertyType)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionBool *r_is_valid); @@ -530,8 +443,7 @@ typedef void (*GDExtensionScriptInstancePropertyStateAdd)(GDExtensionConstString typedef void (*GDExtensionScriptInstanceGetPropertyState)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionScriptInstancePropertyStateAdd p_add_func, void *p_userdata); typedef const GDExtensionMethodInfo *(*GDExtensionScriptInstanceGetMethodList)(GDExtensionScriptInstanceDataPtr p_instance, uint32_t *r_count); -typedef void (*GDExtensionScriptInstanceFreeMethodList)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionMethodInfo *p_list); // Deprecated. Use GDExtensionScriptInstanceFreeMethodList2 instead. -typedef void (*GDExtensionScriptInstanceFreeMethodList2)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionMethodInfo *p_list, uint32_t p_count); +typedef void (*GDExtensionScriptInstanceFreeMethodList)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionMethodInfo *p_list); typedef GDExtensionBool (*GDExtensionScriptInstanceHasMethod)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name); @@ -591,7 +503,7 @@ typedef struct { GDExtensionScriptInstanceFree free_func; -} GDExtensionScriptInstanceInfo; // Deprecated. Use GDExtensionScriptInstanceInfo3 instead. +} GDExtensionScriptInstanceInfo; // Deprecated. Use GDExtensionScriptInstanceInfo2 instead. typedef struct { GDExtensionScriptInstanceSet set_func; @@ -632,48 +544,7 @@ typedef struct { GDExtensionScriptInstanceFree free_func; -} GDExtensionScriptInstanceInfo2; // Deprecated. Use GDExtensionScriptInstanceInfo3 instead. - -typedef struct { - GDExtensionScriptInstanceSet set_func; - GDExtensionScriptInstanceGet get_func; - GDExtensionScriptInstanceGetPropertyList get_property_list_func; - GDExtensionScriptInstanceFreePropertyList2 free_property_list_func; - GDExtensionScriptInstanceGetClassCategory get_class_category_func; // Optional. Set to NULL for the default behavior. - - GDExtensionScriptInstancePropertyCanRevert property_can_revert_func; - GDExtensionScriptInstancePropertyGetRevert property_get_revert_func; - - GDExtensionScriptInstanceGetOwner get_owner_func; - GDExtensionScriptInstanceGetPropertyState get_property_state_func; - - GDExtensionScriptInstanceGetMethodList get_method_list_func; - GDExtensionScriptInstanceFreeMethodList2 free_method_list_func; - GDExtensionScriptInstanceGetPropertyType get_property_type_func; - GDExtensionScriptInstanceValidateProperty validate_property_func; - - GDExtensionScriptInstanceHasMethod has_method_func; - - GDExtensionScriptInstanceCall call_func; - GDExtensionScriptInstanceNotification2 notification_func; - - GDExtensionScriptInstanceToString to_string_func; - - GDExtensionScriptInstanceRefCountIncremented refcount_incremented_func; - GDExtensionScriptInstanceRefCountDecremented refcount_decremented_func; - - GDExtensionScriptInstanceGetScript get_script_func; - - GDExtensionScriptInstanceIsPlaceholder is_placeholder_func; - - GDExtensionScriptInstanceSet set_fallback_func; - GDExtensionScriptInstanceGet get_fallback_func; - - GDExtensionScriptInstanceGetLanguage get_language_func; - - GDExtensionScriptInstanceFree free_func; - -} GDExtensionScriptInstanceInfo3; +} GDExtensionScriptInstanceInfo2; /* INITIALIZATION */ @@ -2397,34 +2268,6 @@ typedef GDExtensionObjectPtr (*GDExtensionInterfaceObjectGetInstanceFromId)(GDOb */ typedef GDObjectInstanceID (*GDExtensionInterfaceObjectGetInstanceId)(GDExtensionConstObjectPtr p_object); -/** - * @name object_has_script_method - * @since 4.3 - * - * Checks if this object has a script with the given method. - * - * @param p_object A pointer to the Object. - * @param p_method A pointer to a StringName identifying the method. - * - * @returns true if the object has a script and that script has a method with the given name. Returns false if the object has no script. - */ -typedef GDExtensionBool (*GDExtensionInterfaceObjectHasScriptMethod)(GDExtensionConstObjectPtr p_object, GDExtensionConstStringNamePtr p_method); - -/** - * @name object_call_script_method - * @since 4.3 - * - * Call the given script method on this object. - * - * @param p_object A pointer to the Object. - * @param p_method A pointer to a StringName identifying the method. - * @param p_args A pointer to a C array of Variant. - * @param p_argument_count The number of arguments. - * @param r_return A pointer a Variant which will be assigned the return value. - * @param r_error A pointer the structure which will hold error information. - */ -typedef void (*GDExtensionInterfaceObjectCallScriptMethod)(GDExtensionObjectPtr p_object, GDExtensionConstStringNamePtr p_method, const GDExtensionConstVariantPtr *p_args, GDExtensionInt p_argument_count, GDExtensionUninitializedVariantPtr r_return, GDExtensionCallError *r_error); - /* INTERFACE: Reference */ /** @@ -2455,7 +2298,7 @@ typedef void (*GDExtensionInterfaceRefSetObject)(GDExtensionRefPtr p_ref, GDExte /** * @name script_instance_create * @since 4.1 - * @deprecated in Godot 4.2. Use `script_instance_create3` instead. + * @deprecated in Godot 4.2. Use `script_instance_create2` instead. * * Creates a script instance that contains the given info and instance data. * @@ -2469,7 +2312,6 @@ typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate) /** * @name script_instance_create2 * @since 4.2 - * @deprecated in Godot 4.3. Use `script_instance_create3` instead. * * Creates a script instance that contains the given info and instance data. * @@ -2480,19 +2322,6 @@ typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate) */ typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate2)(const GDExtensionScriptInstanceInfo2 *p_info, GDExtensionScriptInstanceDataPtr p_instance_data); -/** - * @name script_instance_create3 - * @since 4.3 - * - * Creates a script instance that contains the given info and instance data. - * - * @param p_info A pointer to a GDExtensionScriptInstanceInfo3 struct. - * @param p_instance_data A pointer to a data representing the script instance in the GDExtension. This will be passed to all the function pointers on p_info. - * - * @return A pointer to a ScriptInstanceExtension object. - */ -typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate3)(const GDExtensionScriptInstanceInfo3 *p_info, GDExtensionScriptInstanceDataPtr p_instance_data); - /** * @name placeholder_script_instance_create * @since 4.2 @@ -2542,7 +2371,6 @@ typedef GDExtensionScriptInstanceDataPtr (*GDExtensionInterfaceObjectGetScriptIn /** * @name callable_custom_create * @since 4.2 - * @deprecated in Godot 4.3. Use `callable_custom_create2` instead. * * Creates a custom Callable object from a function pointer. * @@ -2553,19 +2381,6 @@ typedef GDExtensionScriptInstanceDataPtr (*GDExtensionInterfaceObjectGetScriptIn */ typedef void (*GDExtensionInterfaceCallableCustomCreate)(GDExtensionUninitializedTypePtr r_callable, GDExtensionCallableCustomInfo *p_callable_custom_info); -/** - * @name callable_custom_create2 - * @since 4.3 - * - * Creates a custom Callable object from a function pointer. - * - * Provided struct can be safely freed once the function returns. - * - * @param r_callable A pointer that will receive the new Callable. - * @param p_callable_custom_info The info required to construct a Callable. - */ -typedef void (*GDExtensionInterfaceCallableCustomCreate2)(GDExtensionUninitializedTypePtr r_callable, GDExtensionCallableCustomInfo2 *p_callable_custom_info); - /** * @name callable_custom_get_userdata * @since 4.2 @@ -2654,21 +2469,6 @@ typedef void (*GDExtensionInterfaceClassdbRegisterExtensionClass)(GDExtensionCla */ typedef void (*GDExtensionInterfaceClassdbRegisterExtensionClass2)(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo2 *p_extension_funcs); -/** - * @name classdb_register_extension_class3 - * @since 4.3 - * - * Registers an extension class in the ClassDB. - * - * Provided struct can be safely freed once the function returns. - * - * @param p_library A pointer the library received by the GDExtension's entry point function. - * @param p_class_name A pointer to a StringName with the class name. - * @param p_parent_class_name A pointer to a StringName with the parent class name. - * @param p_extension_funcs A pointer to a GDExtensionClassCreationInfo2 struct. - */ -typedef void (*GDExtensionInterfaceClassdbRegisterExtensionClass3)(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo3 *p_extension_funcs); - /** * @name classdb_register_extension_class_method * @since 4.1 @@ -2683,20 +2483,6 @@ typedef void (*GDExtensionInterfaceClassdbRegisterExtensionClass3)(GDExtensionCl */ typedef void (*GDExtensionInterfaceClassdbRegisterExtensionClassMethod)(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, const GDExtensionClassMethodInfo *p_method_info); -/** - * @name classdb_register_extension_class_virtual_method - * @since 4.3 - * - * Registers a virtual method on an extension class in ClassDB, that can be implemented by scripts or other extensions. - * - * Provided struct can be safely freed once the function returns. - * - * @param p_library A pointer the library received by the GDExtension's entry point function. - * @param p_class_name A pointer to a StringName with the class name. - * @param p_method_info A pointer to a GDExtensionClassMethodInfo struct. - */ -typedef void (*GDExtensionInterfaceClassdbRegisterExtensionClassVirtualMethod)(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, const GDExtensionClassVirtualMethodInfo *p_method_info); - /** * @name classdb_register_extension_class_integer_constant * @since 4.1 diff --git a/thirdparty/godot-cpp/header_matcher.py b/thirdparty/godot-cpp/header_matcher.py deleted file mode 100644 index cd9047f..0000000 --- a/thirdparty/godot-cpp/header_matcher.py +++ /dev/null @@ -1,36 +0,0 @@ -import json - - -def match_headers(mapping1, mapping2): - matches = {} - for header_file, data1 in mapping1.items(): - for header_file2, data2 in mapping2.items(): - # Check if classes in header_file1 are present in header_file2 - if any(class_name in data2["classes"] for class_name in data1["classes"]): - if header_file not in matches: - matches[header_file] = [] - matches[header_file].append(header_file2) - return matches - - -if __name__ == "__main__": - # Load the two header mappings - with open("output_header_mapping.json", "r") as file: - mapping1 = json.load(file) - - with open("output_header_mapping_godot.json", "r") as file: - mapping2 = json.load(file) - - # Match the headers - matches = match_headers(mapping1, mapping2) - - # Output the matches - for header_file, matching_files in matches.items(): - print(f"{header_file} matches with:") - for matching_file in matching_files: - print(f"- {matching_file}") - print() - - # Optionally, you can save the matches to a file - with open("header_matches.json", "w") as outfile: - json.dump(matches, outfile, indent=4) diff --git a/thirdparty/godot-cpp/include/godot_cpp/classes/editor_plugin_registration.hpp b/thirdparty/godot-cpp/include/godot_cpp/classes/editor_plugin_registration.hpp index 1ccde31..7870bfc 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/classes/editor_plugin_registration.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/classes/editor_plugin_registration.hpp @@ -47,11 +47,11 @@ class EditorPlugins { static void remove_plugin_class(const StringName &p_class_name); static void deinitialize(GDExtensionInitializationLevel p_level); - template + template static void add_by_type() { add_plugin_class(T::get_class_static()); } - template + template static void remove_by_type() { remove_plugin_class(T::get_class_static()); } diff --git a/thirdparty/godot-cpp/include/godot_cpp/classes/ref.hpp b/thirdparty/godot-cpp/include/godot_cpp/classes/ref.hpp index f3fc3e9..c4682bc 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/classes/ref.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/classes/ref.hpp @@ -45,7 +45,7 @@ namespace godot { class RefCounted; -template +template class Ref { T *reference = nullptr; @@ -108,7 +108,7 @@ class Ref { ref(p_from); } - template + template void operator=(const Ref &p_from) { RefCounted *refb = const_cast(static_cast(p_from.ptr())); if (!refb) { @@ -144,7 +144,7 @@ class Ref { } } - template + template void reference_ptr(T_Other *p_ptr) { if (reference == p_ptr) { return; @@ -161,7 +161,7 @@ class Ref { ref(p_from); } - template + template Ref(const Ref &p_from) { RefCounted *refb = const_cast(static_cast(p_from.ptr())); if (!refb) { @@ -226,7 +226,7 @@ class Ref { } }; -template +template struct PtrToArg> { _FORCE_INLINE_ static Ref convert(const void *p_ptr) { GDExtensionRefPtr ref = (GDExtensionRefPtr)p_ptr; @@ -248,7 +248,7 @@ struct PtrToArg> { } }; -template +template struct PtrToArg &> { typedef Ref EncodeT; @@ -259,7 +259,7 @@ struct PtrToArg &> { } }; -template +template struct GetTypeInfo, typename EnableIf::value>::type> { static const GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_OBJECT; static const GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; @@ -269,7 +269,7 @@ struct GetTypeInfo, typename EnableIf::value> } }; -template +template struct GetTypeInfo &, typename EnableIf::value>::type> { static const GDExtensionVariantType VARIANT_TYPE = GDEXTENSION_VARIANT_TYPE_OBJECT; static const GDExtensionClassMethodArgumentMetadata METADATA = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; diff --git a/thirdparty/godot-cpp/include/godot_cpp/classes/wrapped.hpp b/thirdparty/godot-cpp/include/godot_cpp/classes/wrapped.hpp index fba855d..0f9da99 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/classes/wrapped.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/classes/wrapped.hpp @@ -36,7 +36,6 @@ #include #include -#include #include @@ -89,14 +88,15 @@ class Wrapped { ::godot::List<::godot::PropertyInfo> plist_owned; void _postinitialize(); + virtual void _notificationv(int32_t p_what, bool p_reversed = false) {} Wrapped(const StringName p_godot_class); Wrapped(GodotObject *p_godot_object); virtual ~Wrapped() {} public: - static StringName &get_class_static() { - static StringName string_name = StringName("Wrapped"); + static const StringName &get_class_static() { + static const StringName string_name = StringName("Wrapped"); return string_name; } @@ -108,26 +108,6 @@ class Wrapped { GodotObject *_owner = nullptr; }; -_FORCE_INLINE_ void snarray_add_str(Vector &arr) { -} - -_FORCE_INLINE_ void snarray_add_str(Vector &arr, const StringName &p_str) { - arr.push_back(p_str); -} - -template -_FORCE_INLINE_ void snarray_add_str(Vector &arr, const StringName &p_str, P... p_args) { - arr.push_back(p_str); - snarray_add_str(arr, p_args...); -} - -template -_FORCE_INLINE_ Vector snarray(P... p_args) { - Vector arr; - snarray_add_str(arr, p_args...); - return arr; -} - namespace internal { GDExtensionPropertyInfo *create_c_property_list(const ::godot::List<::godot::PropertyInfo> &plist_cpp, uint32_t *r_size); @@ -138,7 +118,7 @@ void add_engine_class_registration_callback(EngineClassRegistrationCallback p_ca void register_engine_class(const StringName &p_name, const GDExtensionInstanceBindingCallbacks *p_callbacks); void register_engine_classes(); -template +template struct EngineClassRegistration { EngineClassRegistration() { add_engine_class_registration_callback(&EngineClassRegistration::callback); @@ -207,13 +187,14 @@ protected: return (::godot::String(::godot::Wrapped::*)() const) & m_class::_to_string; \ } \ \ - template \ + template \ static void register_virtuals() { \ m_inherits::register_virtuals(); \ } \ \ public: \ typedef m_class self_type; \ + typedef m_inherits parent_type; \ \ static void initialize_class() { \ static bool initialized = false; \ @@ -228,12 +209,12 @@ public: initialized = true; \ } \ \ - static ::godot::StringName &get_class_static() { \ - static ::godot::StringName string_name = ::godot::StringName(#m_class); \ + static const ::godot::StringName &get_class_static() { \ + static const ::godot::StringName string_name = ::godot::StringName(#m_class); \ return string_name; \ } \ \ - static ::godot::StringName &get_parent_class_static() { \ + static const ::godot::StringName &get_parent_class_static() { \ return m_inherits::get_class_static(); \ } \ \ @@ -295,7 +276,6 @@ public: if (p_instance) { \ m_class *cls = reinterpret_cast(p_instance); \ cls->plist_owned.clear(); \ - /* TODO `GDExtensionClassFreePropertyList` is ill-defined, we need a non-const pointer to free this. */ \ ::godot::internal::free_c_property_list(const_cast(p_list)); \ } \ } \ @@ -374,6 +354,11 @@ public: _gde_binding_reference_callback, \ }; \ \ +protected: \ + virtual void _notificationv(int32_t p_what, bool p_reversed = false) override { \ + m_class::notification_bind(this, p_what, p_reversed); \ + } \ + \ private: // Don't use this for your classes, use GDCLASS() instead. @@ -381,6 +366,7 @@ public: private: \ inline static ::godot::internal::EngineClassRegistration _gde_engine_class_registration_helper; \ void operator=(const m_class &p_rval) {} \ + friend class ::godot::ClassDB; \ \ protected: \ virtual const GDExtensionInstanceBindingCallbacks *_get_bindings_callbacks() const override { \ @@ -390,6 +376,8 @@ protected: m_class(const char *p_godot_class) : m_inherits(p_godot_class) {} \ m_class(GodotObject *p_godot_object) : m_inherits(p_godot_object) {} \ \ + static void _bind_methods() {} \ + \ static void (*_get_bind_methods())() { \ return nullptr; \ } \ @@ -432,15 +420,16 @@ protected: \ public: \ typedef m_class self_type; \ + typedef m_inherits parent_type; \ \ static void initialize_class() {} \ \ - static ::godot::StringName &get_class_static() { \ - static ::godot::StringName string_name = ::godot::StringName(#m_alias_for); \ + static const ::godot::StringName &get_class_static() { \ + static const ::godot::StringName string_name = ::godot::StringName(#m_alias_for); \ return string_name; \ } \ \ - static ::godot::StringName &get_parent_class_static() { \ + static const ::godot::StringName &get_parent_class_static() { \ return m_inherits::get_class_static(); \ } \ \ @@ -471,14 +460,4 @@ public: // Don't use this for your classes, use GDCLASS() instead. #define GDEXTENSION_CLASS(m_class, m_inherits) GDEXTENSION_CLASS_ALIAS(m_class, m_class, m_inherits) -#define GDVIRTUAL_CALL(m_name, ...) _gdvirtual_##m_name##_call(__VA_ARGS__) -#define GDVIRTUAL_CALL_PTR(m_obj, m_name, ...) m_obj->_gdvirtual_##m_name##_call(__VA_ARGS__) - -#define GDVIRTUAL_REQUIRED_CALL(m_name, ...) _gdvirtual_##m_name##_call(__VA_ARGS__) -#define GDVIRTUAL_REQUIRED_CALL_PTR(m_obj, m_name, ...) m_obj->_gdvirtual_##m_name##_call(__VA_ARGS__) - -#define GDVIRTUAL_BIND(m_name, ...) ::godot::ClassDB::add_virtual_method(get_class_static(), _gdvirtual_##m_name##_get_method_info(), ::godot::snarray(__VA_ARGS__)); -#define GDVIRTUAL_IS_OVERRIDDEN(m_name) _gdvirtual_##m_name##_overridden() -#define GDVIRTUAL_IS_OVERRIDDEN_PTR(m_obj, m_name) m_obj->_gdvirtual_##m_name##_overridden() - #endif // GODOT_WRAPPED_HPP diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/binder_common.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/binder_common.hpp index ce90acd..26ed4ca 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/binder_common.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/binder_common.hpp @@ -83,7 +83,7 @@ namespace godot { }; \ } -template +template struct VariantCaster { static _FORCE_INLINE_ T cast(const Variant &p_variant) { using TStripped = std::remove_pointer_t; @@ -95,7 +95,7 @@ struct VariantCaster { } }; -template +template struct VariantCaster { static _FORCE_INLINE_ T cast(const Variant &p_variant) { using TStripped = std::remove_pointer_t; @@ -107,7 +107,7 @@ struct VariantCaster { } }; -template +template struct VariantCaster { static _FORCE_INLINE_ T cast(const Variant &p_variant) { using TStripped = std::remove_pointer_t; @@ -144,7 +144,7 @@ struct VariantObjectClassChecker &> { } }; -template +template struct VariantCasterAndValidate { static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, GDExtensionCallError &r_error) { GDExtensionVariantType argtype = GDExtensionVariantType(GetTypeInfo::VARIANT_TYPE); @@ -159,7 +159,7 @@ struct VariantCasterAndValidate { } }; -template +template struct VariantCasterAndValidate { static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, GDExtensionCallError &r_error) { GDExtensionVariantType argtype = GDExtensionVariantType(GetTypeInfo::VARIANT_TYPE); @@ -174,7 +174,7 @@ struct VariantCasterAndValidate { } }; -template +template struct VariantCasterAndValidate { static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, GDExtensionCallError &r_error) { GDExtensionVariantType argtype = GDExtensionVariantType(GetTypeInfo::VARIANT_TYPE); @@ -189,47 +189,47 @@ struct VariantCasterAndValidate { } }; -template +template void call_with_ptr_args_helper(T *p_instance, void (T::*p_method)(P...), const GDExtensionConstTypePtr *p_args, IndexSequence) { (p_instance->*p_method)(PtrToArg

::convert(p_args[Is])...); } -template +template void call_with_ptr_argsc_helper(T *p_instance, void (T::*p_method)(P...) const, const GDExtensionConstTypePtr *p_args, IndexSequence) { (p_instance->*p_method)(PtrToArg

::convert(p_args[Is])...); } -template +template void call_with_ptr_args_ret_helper(T *p_instance, R (T::*p_method)(P...), const GDExtensionConstTypePtr *p_args, void *r_ret, IndexSequence) { PtrToArg::encode((p_instance->*p_method)(PtrToArg

::convert(p_args[Is])...), r_ret); } -template +template void call_with_ptr_args_retc_helper(T *p_instance, R (T::*p_method)(P...) const, const GDExtensionConstTypePtr *p_args, void *r_ret, IndexSequence) { PtrToArg::encode((p_instance->*p_method)(PtrToArg

::convert(p_args[Is])...), r_ret); } -template +template void call_with_ptr_args(T *p_instance, void (T::*p_method)(P...), const GDExtensionConstTypePtr *p_args, void * /*ret*/) { call_with_ptr_args_helper(p_instance, p_method, p_args, BuildIndexSequence{}); } -template +template void call_with_ptr_args(T *p_instance, void (T::*p_method)(P...) const, const GDExtensionConstTypePtr *p_args, void * /*ret*/) { call_with_ptr_argsc_helper(p_instance, p_method, p_args, BuildIndexSequence{}); } -template +template void call_with_ptr_args(T *p_instance, R (T::*p_method)(P...), const GDExtensionConstTypePtr *p_args, void *r_ret) { call_with_ptr_args_ret_helper(p_instance, p_method, p_args, r_ret, BuildIndexSequence{}); } -template +template void call_with_ptr_args(T *p_instance, R (T::*p_method)(P...) const, const GDExtensionConstTypePtr *p_args, void *r_ret) { call_with_ptr_args_retc_helper(p_instance, p_method, p_args, r_ret, BuildIndexSequence{}); } -template +template void call_with_variant_args_helper(T *p_instance, void (T::*p_method)(P...), const Variant **p_args, GDExtensionCallError &r_error, IndexSequence) { r_error.error = GDEXTENSION_CALL_OK; @@ -241,7 +241,7 @@ void call_with_variant_args_helper(T *p_instance, void (T::*p_method)(P...), con (void)(p_args); // Avoid warning. } -template +template void call_with_variant_argsc_helper(T *p_instance, void (T::*p_method)(P...) const, const Variant **p_args, GDExtensionCallError &r_error, IndexSequence) { r_error.error = GDEXTENSION_CALL_OK; @@ -253,7 +253,7 @@ void call_with_variant_argsc_helper(T *p_instance, void (T::*p_method)(P...) con (void)(p_args); // Avoid warning. } -template +template void call_with_variant_args_ret_helper(T *p_instance, R (T::*p_method)(P...), const Variant **p_args, Variant &r_ret, GDExtensionCallError &r_error, IndexSequence) { r_error.error = GDEXTENSION_CALL_OK; @@ -264,7 +264,7 @@ void call_with_variant_args_ret_helper(T *p_instance, R (T::*p_method)(P...), co #endif } -template +template void call_with_variant_args_retc_helper(T *p_instance, R (T::*p_method)(P...) const, const Variant **p_args, Variant &r_ret, GDExtensionCallError &r_error, IndexSequence) { r_error.error = GDEXTENSION_CALL_OK; @@ -276,7 +276,7 @@ void call_with_variant_args_retc_helper(T *p_instance, R (T::*p_method)(P...) co (void)p_args; } -template +template void call_with_variant_args(T *p_instance, void (T::*p_method)(P...), const Variant **p_args, int p_argcount, GDExtensionCallError &r_error) { #ifdef DEBUG_ENABLED if ((size_t)p_argcount > sizeof...(P)) { @@ -294,7 +294,7 @@ void call_with_variant_args(T *p_instance, void (T::*p_method)(P...), const Vari call_with_variant_args_helper(p_instance, p_method, p_args, r_error, BuildIndexSequence{}); } -template +template void call_with_variant_args_ret(T *p_instance, R (T::*p_method)(P...), const Variant **p_args, int p_argcount, Variant &r_ret, GDExtensionCallError &r_error) { #ifdef DEBUG_ENABLED if ((size_t)p_argcount > sizeof...(P)) { @@ -312,7 +312,7 @@ void call_with_variant_args_ret(T *p_instance, R (T::*p_method)(P...), const Var call_with_variant_args_ret_helper(p_instance, p_method, p_args, r_ret, r_error, BuildIndexSequence{}); } -template +template void call_with_variant_args_retc(T *p_instance, R (T::*p_method)(P...) const, const Variant **p_args, int p_argcount, Variant &r_ret, GDExtensionCallError &r_error) { #ifdef DEBUG_ENABLED if ((size_t)p_argcount > sizeof...(P)) { @@ -330,7 +330,7 @@ void call_with_variant_args_retc(T *p_instance, R (T::*p_method)(P...) const, co call_with_variant_args_retc_helper(p_instance, p_method, p_args, r_ret, r_error, BuildIndexSequence{}); } -template +template void call_with_variant_args_dv(T *p_instance, void (T::*p_method)(P...), const GDExtensionConstVariantPtr *p_args, int p_argcount, GDExtensionCallError &r_error, const std::vector &default_values) { #ifdef DEBUG_ENABLED if ((size_t)p_argcount > sizeof...(P)) { @@ -365,7 +365,7 @@ void call_with_variant_args_dv(T *p_instance, void (T::*p_method)(P...), const G call_with_variant_args_helper(p_instance, p_method, argsp.data(), r_error, BuildIndexSequence{}); } -template +template void call_with_variant_argsc_dv(T *p_instance, void (T::*p_method)(P...) const, const GDExtensionConstVariantPtr *p_args, int p_argcount, GDExtensionCallError &r_error, const std::vector &default_values) { #ifdef DEBUG_ENABLED if ((size_t)p_argcount > sizeof...(P)) { @@ -400,7 +400,7 @@ void call_with_variant_argsc_dv(T *p_instance, void (T::*p_method)(P...) const, call_with_variant_argsc_helper(p_instance, p_method, argsp.data(), r_error, BuildIndexSequence{}); } -template +template void call_with_variant_args_ret_dv(T *p_instance, R (T::*p_method)(P...), const GDExtensionConstVariantPtr *p_args, int p_argcount, Variant &r_ret, GDExtensionCallError &r_error, const std::vector &default_values) { #ifdef DEBUG_ENABLED if ((size_t)p_argcount > sizeof...(P)) { @@ -435,7 +435,7 @@ void call_with_variant_args_ret_dv(T *p_instance, R (T::*p_method)(P...), const call_with_variant_args_ret_helper(p_instance, p_method, argsp.data(), r_ret, r_error, BuildIndexSequence{}); } -template +template void call_with_variant_args_retc_dv(T *p_instance, R (T::*p_method)(P...) const, const GDExtensionConstVariantPtr *p_args, int p_argcount, Variant &r_ret, GDExtensionCallError &r_error, const std::vector &default_values) { #ifdef DEBUG_ENABLED if ((size_t)p_argcount > sizeof...(P)) { @@ -477,7 +477,7 @@ void call_with_variant_args_retc_dv(T *p_instance, R (T::*p_method)(P...) const, #pragma GCC diagnostic ignored "-Wunused-but-set-parameter" #endif -template +template void call_get_argument_type_helper(int p_arg, int &index, GDExtensionVariantType &type) { if (p_arg == index) { type = GDExtensionVariantType(GetTypeInfo::VARIANT_TYPE); @@ -485,7 +485,7 @@ void call_get_argument_type_helper(int p_arg, int &index, GDExtensionVariantType index++; } -template +template GDExtensionVariantType call_get_argument_type(int p_arg) { GDExtensionVariantType type = GDEXTENSION_VARIANT_TYPE_NIL; int index = 0; @@ -497,7 +497,7 @@ GDExtensionVariantType call_get_argument_type(int p_arg) { return type; } -template +template void call_get_argument_type_info_helper(int p_arg, int &index, PropertyInfo &info) { if (p_arg == index) { info = GetTypeInfo::get_class_info(); @@ -505,7 +505,7 @@ void call_get_argument_type_info_helper(int p_arg, int &index, PropertyInfo &inf index++; } -template +template void call_get_argument_type_info(int p_arg, PropertyInfo &info) { int index = 0; // I think rocket science is simpler than modern C++. @@ -515,7 +515,7 @@ void call_get_argument_type_info(int p_arg, PropertyInfo &info) { (void)index; // Suppress GCC warning. } -template +template void call_get_argument_metadata_helper(int p_arg, int &index, GDExtensionClassMethodArgumentMetadata &md) { if (p_arg == index) { md = GetTypeInfo::METADATA; @@ -523,7 +523,7 @@ void call_get_argument_metadata_helper(int p_arg, int &index, GDExtensionClassMe index++; } -template +template GDExtensionClassMethodArgumentMetadata call_get_argument_metadata(int p_arg) { GDExtensionClassMethodArgumentMetadata md = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE; @@ -536,7 +536,7 @@ GDExtensionClassMethodArgumentMetadata call_get_argument_metadata(int p_arg) { return md; } -template +template void call_with_variant_args_static(void (*p_method)(P...), const Variant **p_args, GDExtensionCallError &r_error, IndexSequence) { r_error.error = GDEXTENSION_CALL_OK; @@ -547,7 +547,7 @@ void call_with_variant_args_static(void (*p_method)(P...), const Variant **p_arg #endif } -template +template void call_with_variant_args_static_dv(void (*p_method)(P...), const GDExtensionConstVariantPtr *p_args, int p_argcount, GDExtensionCallError &r_error, const std::vector &default_values) { #ifdef DEBUG_ENABLED if ((size_t)p_argcount > sizeof...(P)) { @@ -582,17 +582,17 @@ void call_with_variant_args_static_dv(void (*p_method)(P...), const GDExtensionC call_with_variant_args_static(p_method, argsp.data(), r_error, BuildIndexSequence{}); } -template +template void call_with_ptr_args_static_method_helper(void (*p_method)(P...), const GDExtensionConstTypePtr *p_args, IndexSequence) { p_method(PtrToArg

::convert(p_args[Is])...); } -template +template void call_with_ptr_args_static_method(void (*p_method)(P...), const GDExtensionConstTypePtr *p_args) { call_with_ptr_args_static_method_helper(p_method, p_args, BuildIndexSequence{}); } -template +template void call_with_variant_args_static_ret(R (*p_method)(P...), const Variant **p_args, int p_argcount, Variant &r_ret, GDExtensionCallError &r_error) { #ifdef DEBUG_ENABLED if ((size_t)p_argcount > sizeof...(P)) { @@ -610,7 +610,7 @@ void call_with_variant_args_static_ret(R (*p_method)(P...), const Variant **p_ar call_with_variant_args_static_ret(p_method, p_args, r_ret, r_error, BuildIndexSequence{}); } -template +template void call_with_variant_args_static_ret(void (*p_method)(P...), const Variant **p_args, int p_argcount, Variant &r_ret, GDExtensionCallError &r_error) { #ifdef DEBUG_ENABLED if ((size_t)p_argcount > sizeof...(P)) { @@ -628,7 +628,7 @@ void call_with_variant_args_static_ret(void (*p_method)(P...), const Variant **p call_with_variant_args_static(p_method, p_args, r_error, BuildIndexSequence{}); } -template +template void call_with_variant_args_static_ret(R (*p_method)(P...), const Variant **p_args, Variant &r_ret, GDExtensionCallError &r_error, IndexSequence) { r_error.error = GDEXTENSION_CALL_OK; @@ -639,7 +639,7 @@ void call_with_variant_args_static_ret(R (*p_method)(P...), const Variant **p_ar #endif } -template +template void call_with_variant_args_static_ret_dv(R (*p_method)(P...), const GDExtensionConstVariantPtr *p_args, int p_argcount, Variant &r_ret, GDExtensionCallError &r_error, const std::vector &default_values) { #ifdef DEBUG_ENABLED if ((size_t)p_argcount > sizeof...(P)) { @@ -674,12 +674,12 @@ void call_with_variant_args_static_ret_dv(R (*p_method)(P...), const GDExtension call_with_variant_args_static_ret(p_method, argsp.data(), r_ret, r_error, BuildIndexSequence{}); } -template +template void call_with_ptr_args_static_method_ret_helper(R (*p_method)(P...), const GDExtensionConstTypePtr *p_args, void *r_ret, IndexSequence) { PtrToArg::encode(p_method(PtrToArg

::convert(p_args[Is])...), r_ret); } -template +template void call_with_ptr_args_static_method_ret(R (*p_method)(P...), const GDExtensionConstTypePtr *p_args, void *r_ret) { call_with_ptr_args_static_method_ret_helper(p_method, p_args, r_ret, BuildIndexSequence{}); } diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/builtin_ptrcall.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/builtin_ptrcall.hpp index 19250d8..286051f 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/builtin_ptrcall.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/builtin_ptrcall.hpp @@ -40,7 +40,7 @@ namespace godot { namespace internal { -template +template O *_call_builtin_method_ptr_ret_obj(const GDExtensionPtrBuiltInMethod method, GDExtensionTypePtr base, const Args &...args) { GodotObject *ret = nullptr; std::array call_args = { { (GDExtensionConstTypePtr)args... } }; @@ -51,13 +51,13 @@ O *_call_builtin_method_ptr_ret_obj(const GDExtensionPtrBuiltInMethod method, GD return reinterpret_cast(internal::get_object_instance_binding(ret)); } -template +template void _call_builtin_constructor(const GDExtensionPtrConstructor constructor, GDExtensionTypePtr base, Args... args) { std::array call_args = { { (GDExtensionConstTypePtr)args... } }; constructor(base, call_args.data()); } -template +template T _call_builtin_method_ptr_ret(const GDExtensionPtrBuiltInMethod method, GDExtensionTypePtr base, Args... args) { T ret; std::array call_args = { { (GDExtensionConstTypePtr)args... } }; @@ -65,20 +65,20 @@ T _call_builtin_method_ptr_ret(const GDExtensionPtrBuiltInMethod method, GDExten return ret; } -template +template void _call_builtin_method_ptr_no_ret(const GDExtensionPtrBuiltInMethod method, GDExtensionTypePtr base, Args... args) { std::array call_args = { { (GDExtensionConstTypePtr)args... } }; method(base, call_args.data(), nullptr, sizeof...(Args)); } -template +template T _call_builtin_operator_ptr(const GDExtensionPtrOperatorEvaluator op, GDExtensionConstTypePtr left, GDExtensionConstTypePtr right) { T ret; op(left, right, &ret); return ret; } -template +template T _call_builtin_ptr_getter(const GDExtensionPtrGetter getter, GDExtensionConstTypePtr base) { T ret; getter(base, &ret); diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/class_db.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/class_db.hpp index 65960a8..87a4089 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/class_db.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/class_db.hpp @@ -45,6 +45,7 @@ #include #include +#include #include #include #include @@ -104,15 +105,17 @@ class ClassDB { static std::unordered_map instance_binding_callbacks; // Used to remember the custom class registration order. static std::vector class_register_order; + static std::unordered_map engine_singletons; + static std::mutex engine_singletons_mutex; static MethodBind *bind_methodfi(uint32_t p_flags, MethodBind *p_bind, const MethodDefinition &method_name, const void **p_defs, int p_defcount); static void initialize_class(const ClassInfo &cl); static void bind_method_godot(const StringName &p_class_name, MethodBind *p_method); - template - static void _register_class(bool p_virtual = false, bool p_exposed = true, bool p_runtime = false); + template + static void _register_class(bool p_virtual = false, bool p_exposed = true); - template + template static GDExtensionObjectPtr _create_instance_func(void *data) { if constexpr (!std::is_abstract_v) { T *new_object = memnew(T); @@ -122,7 +125,7 @@ class ClassDB { } } - template + template static GDExtensionClassInstancePtr _recreate_instance_func(void *data, GDExtensionObjectPtr obj) { if constexpr (!std::is_abstract_v) { #ifdef HOT_RELOAD_ENABLED @@ -140,26 +143,39 @@ class ClassDB { } public: - template + template static void register_class(bool p_virtual = false); - template + template static void register_abstract_class(); - template + template static void register_internal_class(); - template - static void register_runtime_class(); _FORCE_INLINE_ static void _register_engine_class(const StringName &p_name, const GDExtensionInstanceBindingCallbacks *p_callbacks) { instance_binding_callbacks[p_name] = p_callbacks; } - template + static void _register_engine_singleton(const StringName &p_class_name, Object *p_singleton) { + std::lock_guard lock(engine_singletons_mutex); + std::unordered_map::const_iterator i = engine_singletons.find(p_class_name); + if (i != engine_singletons.end()) { + ERR_FAIL_COND((*i).second != p_singleton); + return; + } + engine_singletons[p_class_name] = p_singleton; + } + + static void _unregister_engine_singleton(const StringName &p_class_name) { + std::lock_guard lock(engine_singletons_mutex); + engine_singletons.erase(p_class_name); + } + + template static MethodBind *bind_method(N p_method_name, M p_method, VarArgs... p_args); - template + template static MethodBind *bind_static_method(StringName p_class, N p_method_name, M p_method, VarArgs... p_args); - template + template static MethodBind *bind_vararg_method(uint32_t p_flags, StringName p_name, M p_method, const MethodInfo &p_info = MethodInfo(), const std::vector &p_default_args = std::vector{}, bool p_return_nil_is_variant = true); static void add_property_group(const StringName &p_class, const String &p_name, const String &p_prefix); @@ -167,10 +183,7 @@ class ClassDB { static void add_property(const StringName &p_class, const PropertyInfo &p_pinfo, const StringName &p_setter, const StringName &p_getter, int p_index = -1); static void add_signal(const StringName &p_class, const MethodInfo &p_signal); static void bind_integer_constant(const StringName &p_class_name, const StringName &p_enum_name, const StringName &p_constant_name, GDExtensionInt p_constant_value, bool p_is_bitfield = false); - // Binds an implementation of a virtual method defined in Godot. static void bind_virtual_method(const StringName &p_class, const StringName &p_method, GDExtensionClassCallVirtual p_call); - // Add a new virtual method that can be implemented by scripts. - static void add_virtual_method(const StringName &p_class, const MethodInfo &p_method, const Vector &p_arg_names = Vector()); static MethodBind *get_method(const StringName &p_class, const StringName &p_method); @@ -200,9 +213,11 @@ class ClassDB { ::godot::ClassDB::bind_virtual_method(m_class::get_class_static(), #m_method, _call##m_method); \ } -template -void ClassDB::_register_class(bool p_virtual, bool p_exposed, bool p_runtime) { +template +void ClassDB::_register_class(bool p_virtual, bool p_exposed) { static_assert(TypesAreSame::value, "Class not declared properly, please use GDCLASS."); + static_assert(!FunctionsAreSame::value, "Class must declare 'static void _bind_methods'."); + static_assert(!std::is_abstract_v || is_abstract, "Class is abstract, please use GDREGISTER_ABSTRACT_CLASS."); instance_binding_callbacks[T::get_class_static()] = &T::_gde_binding_callbacks; // Register this class within our plugin @@ -219,11 +234,10 @@ void ClassDB::_register_class(bool p_virtual, bool p_exposed, bool p_runtime) { class_register_order.push_back(cl.name); // Register this class with Godot - GDExtensionClassCreationInfo3 class_info = { + GDExtensionClassCreationInfo2 class_info = { p_virtual, // GDExtensionBool is_virtual; is_abstract, // GDExtensionBool is_abstract; p_exposed, // GDExtensionBool is_exposed; - p_runtime, // GDExtensionBool is_runtime; T::set_bind, // GDExtensionClassSet set_func; T::get_bind, // GDExtensionClassGet get_func; T::has_get_property_list() ? T::get_property_list_bind : nullptr, // GDExtensionClassGetPropertyList get_property_list_func; @@ -245,7 +259,7 @@ void ClassDB::_register_class(bool p_virtual, bool p_exposed, bool p_runtime) { (void *)&T::get_class_static(), // void *class_userdata; }; - internal::gdextension_interface_classdb_register_extension_class3(internal::library, cl.name._native_ptr(), cl.parent_name._native_ptr(), &class_info); + internal::gdextension_interface_classdb_register_extension_class2(internal::library, cl.name._native_ptr(), cl.parent_name._native_ptr(), &class_info); // call bind_methods etc. to register all members of the class T::initialize_class(); @@ -254,27 +268,22 @@ void ClassDB::_register_class(bool p_virtual, bool p_exposed, bool p_runtime) { initialize_class(classes[cl.name]); } -template +template void ClassDB::register_class(bool p_virtual) { ClassDB::_register_class(p_virtual); } -template +template void ClassDB::register_abstract_class() { ClassDB::_register_class(); } -template +template void ClassDB::register_internal_class() { ClassDB::_register_class(false, false); } -template -void ClassDB::register_runtime_class() { - ClassDB::_register_class(false, true, true); -} - -template +template MethodBind *ClassDB::bind_method(N p_method_name, M p_method, VarArgs... p_args) { Variant args[sizeof...(p_args) + 1] = { p_args..., Variant() }; // +1 makes sure zero sized arrays are also supported. const Variant *argptrs[sizeof...(p_args) + 1]; @@ -285,7 +294,7 @@ MethodBind *ClassDB::bind_method(N p_method_name, M p_method, VarArgs... p_args) return bind_methodfi(METHOD_FLAGS_DEFAULT, bind, p_method_name, sizeof...(p_args) == 0 ? nullptr : (const void **)argptrs, sizeof...(p_args)); } -template +template MethodBind *ClassDB::bind_static_method(StringName p_class, N p_method_name, M p_method, VarArgs... p_args) { Variant args[sizeof...(p_args) + 1] = { p_args..., Variant() }; // +1 makes sure zero sized arrays are also supported. const Variant *argptrs[sizeof...(p_args) + 1]; @@ -297,7 +306,7 @@ MethodBind *ClassDB::bind_static_method(StringName p_class, N p_method_name, M p return bind_methodfi(0, bind, p_method_name, sizeof...(p_args) == 0 ? nullptr : (const void **)argptrs, sizeof...(p_args)); } -template +template MethodBind *ClassDB::bind_vararg_method(uint32_t p_flags, StringName p_name, M p_method, const MethodInfo &p_info, const std::vector &p_default_args, bool p_return_nil_is_variant) { MethodBind *bind = create_vararg_method_bind(p_method, p_info, p_return_nil_is_variant); ERR_FAIL_NULL_V(bind, nullptr); @@ -329,12 +338,13 @@ MethodBind *ClassDB::bind_vararg_method(uint32_t p_flags, StringName p_name, M p return bind; } -#define GDREGISTER_CLASS(m_class) ClassDB::register_class(); -#define GDREGISTER_VIRTUAL_CLASS(m_class) ClassDB::register_class(true); -#define GDREGISTER_ABSTRACT_CLASS(m_class) ClassDB::register_abstract_class(); -#define GDREGISTER_INTERNAL_CLASS(m_class) ClassDB::register_internal_class(); -#define GDREGISTER_RUNTIME_CLASS(m_class) ClassDB::register_runtime_class(); +#define GDREGISTER_CLASS(m_class) ::godot::ClassDB::register_class(); +#define GDREGISTER_VIRTUAL_CLASS(m_class) ::godot::ClassDB::register_class(true); +#define GDREGISTER_ABSTRACT_CLASS(m_class) ::godot::ClassDB::register_abstract_class(); +#define GDREGISTER_INTERNAL_CLASS(m_class) ::godot::ClassDB::register_internal_class(); } // namespace godot +CLASSDB_SINGLETON_VARIANT_CAST; + #endif // GODOT_CLASS_DB_HPP diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/defs.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/defs.hpp index c03db50..16812c2 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/defs.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/defs.hpp @@ -108,7 +108,7 @@ typedef float real_t; // Generic swap template. #ifndef SWAP #define SWAP(m_x, m_y) __swap_tmpl((m_x), (m_y)) -template +template inline void __swap_tmpl(T &x, T &y) { T aux = x; x = y; diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/engine_ptrcall.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/engine_ptrcall.hpp index 69ab196..555806b 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/engine_ptrcall.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/engine_ptrcall.hpp @@ -43,7 +43,7 @@ namespace godot { namespace internal { -template +template O *_call_native_mb_ret_obj(const GDExtensionMethodBindPtr mb, void *instance, const Args &...args) { GodotObject *ret = nullptr; std::array mb_args = { { (GDExtensionConstTypePtr)args... } }; @@ -54,7 +54,7 @@ O *_call_native_mb_ret_obj(const GDExtensionMethodBindPtr mb, void *instance, co return reinterpret_cast(internal::get_object_instance_binding(ret)); } -template +template R _call_native_mb_ret(const GDExtensionMethodBindPtr mb, void *instance, const Args &...args) { R ret; std::array mb_args = { { (GDExtensionConstTypePtr)args... } }; @@ -62,13 +62,13 @@ R _call_native_mb_ret(const GDExtensionMethodBindPtr mb, void *instance, const A return ret; } -template +template void _call_native_mb_no_ret(const GDExtensionMethodBindPtr mb, void *instance, const Args &...args) { std::array mb_args = { { (GDExtensionConstTypePtr)args... } }; internal::gdextension_interface_object_method_bind_ptrcall(mb, instance, mb_args.data(), nullptr); } -template +template R _call_utility_ret(GDExtensionPtrUtilityFunction func, const Args &...args) { R ret; std::array mb_args = { { (GDExtensionConstTypePtr)args... } }; @@ -76,15 +76,15 @@ R _call_utility_ret(GDExtensionPtrUtilityFunction func, const Args &...args) { return ret; } -template -Object *_call_utility_ret_obj(const GDExtensionPtrUtilityFunction func, void *instance, const Args &...args) { +template +Object *_call_utility_ret_obj(const GDExtensionPtrUtilityFunction func, const Args &...args) { GodotObject *ret = nullptr; std::array mb_args = { { (GDExtensionConstTypePtr)args... } }; func(&ret, mb_args.data(), mb_args.size()); return (Object *)internal::get_object_instance_binding(ret); } -template +template void _call_utility_no_ret(const GDExtensionPtrUtilityFunction func, const Args &...args) { std::array mb_args = { { (GDExtensionConstTypePtr)args... } }; func(nullptr, mb_args.data(), mb_args.size()); diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/math.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/math.hpp index db97ba5..1949360 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/math.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/math.hpp @@ -84,7 +84,7 @@ constexpr auto CLAMP(const T m_a, const T2 m_min, const T3 m_max) { // Generic swap template. #ifndef SWAP #define SWAP(m_x, m_y) __swap_tmpl((m_x), (m_y)) -template +template inline void __swap_tmpl(T &x, T &y) { T aux = x; x = y; @@ -138,7 +138,7 @@ static inline int get_shift_from_power_of_2(unsigned int p_bits) { return -1; } -template +template static _FORCE_INLINE_ T nearest_power_of_2_templated(T x) { --x; @@ -613,6 +613,14 @@ inline bool is_inf(double p_val) { return std::isinf(p_val); } +inline bool is_finite(float p_val) { + return std::isfinite(p_val); +} + +inline bool is_finite(double p_val) { + return std::isfinite(p_val); +} + inline bool is_equal_approx(float a, float b) { // Check for exact equality first, required to handle "infinity" values. if (a == b) { diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/memory.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/memory.hpp index 6775cf7..3c98c19 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/memory.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/memory.hpp @@ -84,7 +84,7 @@ class Memory { _ALWAYS_INLINE_ void postinitialize_handler(void *) {} -template +template _ALWAYS_INLINE_ T *_post_initialize(T *p_obj) { postinitialize_handler(p_obj); return p_obj; @@ -100,12 +100,12 @@ _ALWAYS_INLINE_ T *_post_initialize(T *p_obj) { #define memnew_placement(m_placement, m_class) ::godot::_post_initialize(new ("", m_placement, sizeof(m_class), "") m_class) // Generic comparator used in Map, List, etc. -template +template struct Comparator { _ALWAYS_INLINE_ bool operator()(const T &p_a, const T &p_b) const { return (p_a < p_b); } }; -template +template void memdelete(T *p_class, typename std::enable_if>::type * = nullptr) { if constexpr (!std::is_trivially_destructible_v) { p_class->~T(); @@ -114,12 +114,12 @@ void memdelete(T *p_class, typename std::enable_if, bool> = true> +template , bool> = true> void memdelete(T *p_class) { godot::internal::gdextension_interface_object_destroy(p_class->_owner); } -template +template void memdelete_allocator(T *p_class) { if constexpr (!std::is_trivially_destructible_v) { p_class->~T(); @@ -134,10 +134,10 @@ class DefaultAllocator { _ALWAYS_INLINE_ static void free(void *p_ptr) { Memory::free_static(p_ptr); } }; -template +template class DefaultTypedAllocator { public: - template + template _ALWAYS_INLINE_ T *new_allocation(const Args &&...p_args) { return memnew(T(p_args...)); } _ALWAYS_INLINE_ void delete_allocation(T *p_allocation) { memdelete(p_allocation); } }; diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/method_bind.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/method_bind.hpp index 37ae731..eabd6ec 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/method_bind.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/method_bind.hpp @@ -147,7 +147,7 @@ class MethodBind { virtual ~MethodBind(); }; -template +template class MethodBindVarArgBase : public MethodBind { protected: R(T::*method) @@ -208,7 +208,7 @@ class MethodBindVarArgBase : public MethodBind { } }; -template +template class MethodBindVarArgT : public MethodBindVarArgBase, T, void, false> { friend class MethodBindVarArgBase, T, void, false>; @@ -231,14 +231,14 @@ class MethodBindVarArgT : public MethodBindVarArgBase, T, v } }; -template +template MethodBind *create_vararg_method_bind(void (T::*p_method)(const Variant **, GDExtensionInt, GDExtensionCallError &), const MethodInfo &p_info, bool p_return_nil_is_variant) { MethodBind *a = memnew((MethodBindVarArgT)(p_method, p_info, p_return_nil_is_variant)); a->set_instance_class(T::get_class_static()); return a; } -template +template class MethodBindVarArgTR : public MethodBindVarArgBase, T, R, true> { friend class MethodBindVarArgBase, T, R, true>; @@ -260,7 +260,7 @@ class MethodBindVarArgTR : public MethodBindVarArgBase, } }; -template +template MethodBind *create_vararg_method_bind(R (T::*p_method)(const Variant **, GDExtensionInt, GDExtensionCallError &), const MethodInfo &p_info, bool p_return_nil_is_variant) { MethodBind *a = memnew((MethodBindVarArgTR)(p_method, p_info, p_return_nil_is_variant)); a->set_instance_class(T::get_class_static()); @@ -277,9 +277,9 @@ class _gde_UnexistingClass; // No return, not const. #ifdef TYPED_METHOD_BIND -template +template #else -template +template #endif // TYPED_METHOD_BIND class MethodBindT : public MethodBind { void (MB_T::*method)(P...); @@ -339,7 +339,7 @@ class MethodBindT : public MethodBind { } }; -template +template MethodBind *create_method_bind(void (T::*p_method)(P...)) { #ifdef TYPED_METHOD_BIND MethodBind *a = memnew((MethodBindT)(p_method)); @@ -353,9 +353,9 @@ MethodBind *create_method_bind(void (T::*p_method)(P...)) { // No return, const. #ifdef TYPED_METHOD_BIND -template +template #else -template +template #endif // TYPED_METHOD_BIND class MethodBindTC : public MethodBind { void (MB_T::*method)(P...) const; @@ -412,10 +412,11 @@ class MethodBindTC : public MethodBind { method = p_method; generate_argument_types(sizeof...(P)); set_argument_count(sizeof...(P)); + set_const(true); } }; -template +template MethodBind *create_method_bind(void (T::*p_method)(P...) const) { #ifdef TYPED_METHOD_BIND MethodBind *a = memnew((MethodBindTC)(p_method)); @@ -429,9 +430,9 @@ MethodBind *create_method_bind(void (T::*p_method)(P...) const) { // Return, not const. #ifdef TYPED_METHOD_BIND -template +template #else -template +template #endif // TYPED_METHOD_BIND class MethodBindTR : public MethodBind { R(MB_T::*method) @@ -498,7 +499,7 @@ class MethodBindTR : public MethodBind { } }; -template +template MethodBind *create_method_bind(R (T::*p_method)(P...)) { #ifdef TYPED_METHOD_BIND MethodBind *a = memnew((MethodBindTR)(p_method)); @@ -512,9 +513,9 @@ MethodBind *create_method_bind(R (T::*p_method)(P...)) { // Return, const. #ifdef TYPED_METHOD_BIND -template +template #else -template +template #endif // TYPED_METHOD_BIND class MethodBindTRC : public MethodBind { R(MB_T::*method) @@ -578,10 +579,11 @@ class MethodBindTRC : public MethodBind { generate_argument_types(sizeof...(P)); set_argument_count(sizeof...(P)); set_return(true); + set_const(true); } }; -template +template MethodBind *create_method_bind(R (T::*p_method)(P...) const) { #ifdef TYPED_METHOD_BIND MethodBind *a = memnew((MethodBindTRC)(p_method)); @@ -596,7 +598,7 @@ MethodBind *create_method_bind(R (T::*p_method)(P...) const) { // no return -template +template class MethodBindTS : public MethodBind { void (*function)(P...); @@ -652,7 +654,7 @@ class MethodBindTS : public MethodBind { } }; -template +template MethodBind *create_static_method_bind(void (*p_method)(P...)) { MethodBind *a = memnew((MethodBindTS)(p_method)); return a; @@ -660,7 +662,7 @@ MethodBind *create_static_method_bind(void (*p_method)(P...)) { // return -template +template class MethodBindTRS : public MethodBind { R(*function) (P...); @@ -722,7 +724,7 @@ class MethodBindTRS : public MethodBind { } }; -template +template MethodBind *create_static_method_bind(R (*p_method)(P...)) { MethodBind *a = memnew((MethodBindTRS)(p_method)); return a; diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/method_ptrcall.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/method_ptrcall.hpp index 32f3f45..b12a7e6 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/method_ptrcall.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/method_ptrcall.hpp @@ -39,7 +39,7 @@ namespace godot { -template +template struct PtrToArg {}; #define MAKE_PTRARG(m_type) \ @@ -166,27 +166,27 @@ MAKE_PTRARG_BY_REFERENCE(Variant); // This is for Object. -template +template struct PtrToArg { static_assert(std::is_base_of::value, "Cannot encode non-Object value as an Object"); _FORCE_INLINE_ static T *convert(const void *p_ptr) { - return reinterpret_cast(godot::internal::get_object_instance_binding(*reinterpret_cast(const_cast(p_ptr)))); + return likely(p_ptr) ? reinterpret_cast(godot::internal::get_object_instance_binding(*reinterpret_cast(const_cast(p_ptr)))) : nullptr; } typedef Object *EncodeT; _FORCE_INLINE_ static void encode(T *p_var, void *p_ptr) { - *reinterpret_cast(p_ptr) = p_var ? p_var->_owner : nullptr; + *reinterpret_cast(p_ptr) = likely(p_var) ? p_var->_owner : nullptr; } }; -template +template struct PtrToArg { static_assert(std::is_base_of::value, "Cannot encode non-Object value as an Object"); _FORCE_INLINE_ static const T *convert(const void *p_ptr) { - return reinterpret_cast(godot::internal::get_object_instance_binding(*reinterpret_cast(const_cast(p_ptr)))); + return likely(p_ptr) ? reinterpret_cast(godot::internal::get_object_instance_binding(*reinterpret_cast(const_cast(p_ptr)))) : nullptr; } typedef const Object *EncodeT; _FORCE_INLINE_ static void encode(T *p_var, void *p_ptr) { - *reinterpret_cast(p_ptr) = p_var ? p_var->_owner : nullptr; + *reinterpret_cast(p_ptr) = likely(p_var) ? p_var->_owner : nullptr; } }; diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/object.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/object.hpp index 12de658..fac1351 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/object.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/object.hpp @@ -68,8 +68,6 @@ struct MethodInfo { int id = 0; std::vector arguments; std::vector default_arguments; - GDExtensionClassMethodArgumentMetadata return_val_metadata; - std::vector arguments_metadata; inline bool operator==(const MethodInfo &p_method) const { return id == p_method.id; } inline bool operator<(const MethodInfo &p_method) const { return id == p_method.id ? (name < p_method.name) : (id < p_method.id); } @@ -80,31 +78,31 @@ struct MethodInfo { MethodInfo(); MethodInfo(StringName p_name); - template + template MethodInfo(StringName p_name, const Args &...args); MethodInfo(Variant::Type ret); MethodInfo(Variant::Type ret, StringName p_name); - template + template MethodInfo(Variant::Type ret, StringName p_name, const Args &...args); MethodInfo(const PropertyInfo &p_ret, StringName p_name); - template + template MethodInfo(const PropertyInfo &p_ret, StringName p_name, const Args &...); }; -template +template MethodInfo::MethodInfo(StringName p_name, const Args &...args) : name(p_name), flags(GDEXTENSION_METHOD_FLAG_NORMAL) { arguments = { args... }; } -template +template MethodInfo::MethodInfo(Variant::Type ret, StringName p_name, const Args &...args) : name(p_name), flags(GDEXTENSION_METHOD_FLAG_NORMAL) { return_val.type = ret; arguments = { args... }; } -template +template MethodInfo::MethodInfo(const PropertyInfo &p_ret, StringName p_name, const Args &...args) : name(p_name), return_val(p_ret), flags(GDEXTENSION_METHOD_FLAG_NORMAL) { arguments = { args... }; @@ -121,7 +119,7 @@ class ObjectDB { } }; -template +template T *Object::cast_to(Object *p_object) { if (p_object == nullptr) { return nullptr; @@ -134,7 +132,7 @@ T *Object::cast_to(Object *p_object) { return dynamic_cast(internal::get_object_instance_binding(casted)); } -template +template const T *Object::cast_to(const Object *p_object) { if (p_object == nullptr) { return nullptr; diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/property_info.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/property_info.hpp index f610f3f..39f9597 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/property_info.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/property_info.hpp @@ -47,9 +47,9 @@ struct PropertyInfo { Variant::Type type = Variant::NIL; StringName name; StringName class_name; - uint32_t hint = 0; + uint32_t hint = PROPERTY_HINT_NONE; String hint_string; - uint32_t usage = 7; + uint32_t usage = PROPERTY_USAGE_DEFAULT; PropertyInfo() = default; @@ -72,6 +72,40 @@ struct PropertyInfo { PropertyInfo(const GDExtensionPropertyInfo *p_info) : PropertyInfo(p_info->type, *reinterpret_cast(p_info->name), (PropertyHint)p_info->hint, *reinterpret_cast(p_info->hint_string), p_info->usage, *reinterpret_cast(p_info->class_name)) {} + operator Dictionary() const { + Dictionary dict; + dict["name"] = name; + dict["class_name"] = class_name; + dict["type"] = type; + dict["hint"] = hint; + dict["hint_string"] = hint_string; + dict["usage"] = usage; + return dict; + } + + static PropertyInfo from_dict(const Dictionary &p_dict) { + PropertyInfo pi; + if (p_dict.has("type")) { + pi.type = Variant::Type(int(p_dict["type"])); + } + if (p_dict.has("name")) { + pi.name = p_dict["name"]; + } + if (p_dict.has("class_name")) { + pi.class_name = p_dict["class_name"]; + } + if (p_dict.has("hint")) { + pi.hint = PropertyHint(int(p_dict["hint"])); + } + if (p_dict.has("hint_string")) { + pi.hint_string = p_dict["hint_string"]; + } + if (p_dict.has("usage")) { + pi.usage = p_dict["usage"]; + } + return pi; + } + void _update(GDExtensionPropertyInfo *p_info) { p_info->type = (GDExtensionVariantType)type; *(reinterpret_cast(p_info->name)) = name; @@ -80,17 +114,6 @@ struct PropertyInfo { p_info->usage = usage; *(reinterpret_cast(p_info->class_name)) = class_name; } - - GDExtensionPropertyInfo _to_gdextension() const { - return { - (GDExtensionVariantType)type, - name._native_ptr(), - class_name._native_ptr(), - hint, - hint_string._native_ptr(), - usage, - }; - } }; } // namespace godot diff --git a/thirdparty/godot-cpp/include/godot_cpp/core/type_info.hpp b/thirdparty/godot-cpp/include/godot_cpp/core/type_info.hpp index 9a8b840..e1f2b20 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/core/type_info.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/core/type_info.hpp @@ -58,6 +58,16 @@ struct TypesAreSame { static bool const value = true; }; +template +struct FunctionsAreSame { + static bool const value = false; +}; + +template +struct FunctionsAreSame { + static bool const value = true; +}; + template struct TypeInherits { static D *get_d(); @@ -90,7 +100,7 @@ static PropertyInfo make_property_info(Variant::Type p_type, const StringName &p // instead of a forward declaration. You can always forward declare 'T' in a header file, and then // include the actual declaration of 'T' in the source file where 'GetTypeInfo' is instantiated. -template +template struct GetTypeInfo; #define MAKE_TYPE_INFO(m_type, m_var_type) \ @@ -248,7 +258,7 @@ inline StringName _gde_constant_get_enum_name(T param, StringName p_constant) { return GetTypeInfo::get_class_info().class_name; } -template +template class BitField { int64_t value = 0; @@ -295,7 +305,7 @@ inline StringName _gde_constant_get_bitfield_name(T param, StringName p_constant return GetTypeInfo>::get_class_info().class_name; } -template +template struct PtrToArg> { _FORCE_INLINE_ static TypedArray convert(const void *p_ptr) { return TypedArray(*reinterpret_cast(p_ptr)); @@ -306,7 +316,7 @@ struct PtrToArg> { } }; -template +template struct PtrToArg &> { typedef Array EncodeT; _FORCE_INLINE_ static TypedArray @@ -370,14 +380,11 @@ MAKE_TYPED_ARRAY_INFO(Rect2i, Variant::RECT2I) MAKE_TYPED_ARRAY_INFO(Vector3, Variant::VECTOR3) MAKE_TYPED_ARRAY_INFO(Vector3i, Variant::VECTOR3I) MAKE_TYPED_ARRAY_INFO(Transform2D, Variant::TRANSFORM2D) -MAKE_TYPED_ARRAY_INFO(Vector4, Variant::VECTOR4) -MAKE_TYPED_ARRAY_INFO(Vector4i, Variant::VECTOR4I) MAKE_TYPED_ARRAY_INFO(Plane, Variant::PLANE) MAKE_TYPED_ARRAY_INFO(Quaternion, Variant::QUATERNION) MAKE_TYPED_ARRAY_INFO(AABB, Variant::AABB) MAKE_TYPED_ARRAY_INFO(Basis, Variant::BASIS) MAKE_TYPED_ARRAY_INFO(Transform3D, Variant::TRANSFORM3D) -MAKE_TYPED_ARRAY_INFO(Projection, Variant::PROJECTION) MAKE_TYPED_ARRAY_INFO(Color, Variant::COLOR) MAKE_TYPED_ARRAY_INFO(StringName, Variant::STRING_NAME) MAKE_TYPED_ARRAY_INFO(NodePath, Variant::NODE_PATH) @@ -396,11 +403,8 @@ MAKE_TYPED_ARRAY_INFO(Vector, Variant::PACKED_STRING_ARRAY) MAKE_TYPED_ARRAY_INFO(Vector, Variant::PACKED_VECTOR2_ARRAY) MAKE_TYPED_ARRAY_INFO(Vector, Variant::PACKED_VECTOR3_ARRAY) MAKE_TYPED_ARRAY_INFO(Vector, Variant::PACKED_COLOR_ARRAY) -MAKE_TYPED_ARRAY_INFO(IPAddress, Variant::STRING) */ -#undef MAKE_TYPED_ARRAY_INFO - #define CLASS_INFO(m_type) (GetTypeInfo::get_class_info()) } // namespace godot diff --git a/thirdparty/godot-cpp/include/godot_cpp/godot.hpp b/thirdparty/godot-cpp/include/godot_cpp/godot.hpp index 5a62930..e432f30 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/godot.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/godot.hpp @@ -160,26 +160,24 @@ extern "C" GDExtensionInterfaceObjectDestroy gdextension_interface_object_destro extern "C" GDExtensionInterfaceGlobalGetSingleton gdextension_interface_global_get_singleton; extern "C" GDExtensionInterfaceObjectGetInstanceBinding gdextension_interface_object_get_instance_binding; extern "C" GDExtensionInterfaceObjectSetInstanceBinding gdextension_interface_object_set_instance_binding; +extern "C" GDExtensionInterfaceObjectFreeInstanceBinding gdextension_interface_object_free_instance_binding; extern "C" GDExtensionInterfaceObjectSetInstance gdextension_interface_object_set_instance; extern "C" GDExtensionInterfaceObjectGetClassName gdextension_interface_object_get_class_name; extern "C" GDExtensionInterfaceObjectCastTo gdextension_interface_object_cast_to; extern "C" GDExtensionInterfaceObjectGetInstanceFromId gdextension_interface_object_get_instance_from_id; extern "C" GDExtensionInterfaceObjectGetInstanceId gdextension_interface_object_get_instance_id; -extern "C" GDExtensionInterfaceObjectHasScriptMethod gdextension_interface_object_has_script_method; -extern "C" GDExtensionInterfaceObjectCallScriptMethod gdextension_interface_object_call_script_method; -extern "C" GDExtensionInterfaceCallableCustomCreate2 gdextension_interface_callable_custom_create2; +extern "C" GDExtensionInterfaceCallableCustomCreate gdextension_interface_callable_custom_create; extern "C" GDExtensionInterfaceCallableCustomGetUserData gdextension_interface_callable_custom_get_userdata; extern "C" GDExtensionInterfaceRefGetObject gdextension_interface_ref_get_object; extern "C" GDExtensionInterfaceRefSetObject gdextension_interface_ref_set_object; -extern "C" GDExtensionInterfaceScriptInstanceCreate3 gdextension_interface_script_instance_create3; +extern "C" GDExtensionInterfaceScriptInstanceCreate2 gdextension_interface_script_instance_create2; extern "C" GDExtensionInterfacePlaceHolderScriptInstanceCreate gdextension_interface_placeholder_script_instance_create; extern "C" GDExtensionInterfacePlaceHolderScriptInstanceUpdate gdextension_interface_placeholder_script_instance_update; extern "C" GDExtensionInterfaceClassdbConstructObject gdextension_interface_classdb_construct_object; extern "C" GDExtensionInterfaceClassdbGetMethodBind gdextension_interface_classdb_get_method_bind; extern "C" GDExtensionInterfaceClassdbGetClassTag gdextension_interface_classdb_get_class_tag; -extern "C" GDExtensionInterfaceClassdbRegisterExtensionClass3 gdextension_interface_classdb_register_extension_class3; +extern "C" GDExtensionInterfaceClassdbRegisterExtensionClass2 gdextension_interface_classdb_register_extension_class2; extern "C" GDExtensionInterfaceClassdbRegisterExtensionClassMethod gdextension_interface_classdb_register_extension_class_method; -extern "C" GDExtensionInterfaceClassdbRegisterExtensionClassVirtualMethod gdextension_interface_classdb_register_extension_class_virtual_method; extern "C" GDExtensionInterfaceClassdbRegisterExtensionClassIntegerConstant gdextension_interface_classdb_register_extension_class_integer_constant; extern "C" GDExtensionInterfaceClassdbRegisterExtensionClassProperty gdextension_interface_classdb_register_extension_class_property; extern "C" GDExtensionInterfaceClassdbRegisterExtensionClassPropertyIndexed gdextension_interface_classdb_register_extension_class_property_indexed; diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/cowdata.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/cowdata.hpp index f2959d1..dcb74ec 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/cowdata.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/cowdata.hpp @@ -43,13 +43,13 @@ namespace godot { -template +template class Vector; -template +template class VMap; -template +template class CharStringT; static_assert(std::is_trivially_destructible_v>); @@ -60,15 +60,15 @@ static_assert(std::is_trivially_destructible_v>); #pragma GCC diagnostic ignored "-Wplacement-new" #endif -template +template class CowData { - template + template friend class Vector; - template + template friend class VMap; - template + template friend class CharStringT; public: @@ -248,7 +248,7 @@ class CowData { _FORCE_INLINE_ CowData(CowData &p_from) { _ref(p_from); }; }; -template +template void CowData::_unref(void *p_data) { if (!p_data) { return; @@ -275,7 +275,7 @@ void CowData::_unref(void *p_data) { Memory::free_static(((uint8_t *)p_data) - DATA_OFFSET, false); } -template +template typename CowData::USize CowData::_copy_on_write() { if (!_ptr) { return 0; @@ -315,7 +315,7 @@ typename CowData::USize CowData::_copy_on_write() { return rc; } -template +template template Error CowData::resize(Size p_size) { ERR_FAIL_COND_V(p_size < 0, ERR_INVALID_PARAMETER); @@ -407,7 +407,7 @@ Error CowData::resize(Size p_size) { return OK; } -template +template typename CowData::Size CowData::find(const T &p_val, Size p_from) const { Size ret = -1; @@ -425,7 +425,7 @@ typename CowData::Size CowData::find(const T &p_val, Size p_from) const { return ret; } -template +template typename CowData::Size CowData::rfind(const T &p_val, Size p_from) const { const Size s = size(); @@ -444,7 +444,7 @@ typename CowData::Size CowData::rfind(const T &p_val, Size p_from) const { return -1; } -template +template typename CowData::Size CowData::count(const T &p_val) const { Size amount = 0; for (Size i = 0; i < size(); i++) { @@ -455,12 +455,12 @@ typename CowData::Size CowData::count(const T &p_val) const { return amount; } -template +template void CowData::_ref(const CowData *p_from) { _ref(*p_from); } -template +template void CowData::_ref(const CowData &p_from) { if (_ptr == p_from._ptr) { return; // self assign, do nothing. @@ -478,7 +478,7 @@ void CowData::_ref(const CowData &p_from) { } } -template +template CowData::~CowData() { _unref(_ptr); } diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/hash_map.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/hash_map.hpp index 77c7b7a..59cd8e0 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/hash_map.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/hash_map.hpp @@ -52,7 +52,7 @@ namespace godot { * The assignment operator copy the pairs from one map to the other. */ -template +template struct HashMapElement { HashMapElement *next = nullptr; HashMapElement *prev = nullptr; @@ -62,10 +62,10 @@ struct HashMapElement { data(p_key, p_value) {} }; -template , - class Allocator = DefaultTypedAllocator>> +template , + typename Allocator = DefaultTypedAllocator>> class HashMap { public: const uint32_t MIN_CAPACITY_INDEX = 2; // Use a prime. diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/hash_set.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/hash_set.hpp index 884ae4d..1845a1b 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/hash_set.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/hash_set.hpp @@ -48,9 +48,9 @@ namespace godot { * */ -template > +template > class HashSet { public: static constexpr uint32_t MIN_CAPACITY_INDEX = 2; // Use a prime. diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/hashfuncs.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/hashfuncs.hpp index d6f3400..40b10a9 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/hashfuncs.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/hashfuncs.hpp @@ -253,7 +253,7 @@ static _FORCE_INLINE_ uint32_t hash_djb2_one_float(double p_in, uint32_t p_prev return ((p_prev << 5) + p_prev) + hash_one_uint64(u.i); } -template +template static _FORCE_INLINE_ uint32_t hash_make_uint32_t(T p_in) { union { T t; @@ -286,7 +286,7 @@ static _FORCE_INLINE_ uint64_t hash_djb2_one_64(uint64_t p_in, uint64_t p_prev = return ((p_prev << 5) + p_prev) ^ p_in; } -template +template static _FORCE_INLINE_ uint64_t hash_make_uint64_t(T p_in) { union { T t; @@ -298,15 +298,15 @@ static _FORCE_INLINE_ uint64_t hash_make_uint64_t(T p_in) { return _u._u64; } -template +template class Ref; struct HashMapHasherDefault { // Generic hash function for any type. - template + template static _FORCE_INLINE_ uint32_t hash(const T *p_pointer) { return hash_one_uint64((uint64_t)p_pointer); } - template + template static _FORCE_INLINE_ uint32_t hash(const Ref &p_ref) { return hash_one_uint64((uint64_t)p_ref.operator->()); } static _FORCE_INLINE_ uint32_t hash(const String &p_string) { return p_string.hash(); } diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/list.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/list.hpp index 2c8a7c8..376e3ea 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/list.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/list.hpp @@ -45,7 +45,7 @@ namespace godot { -template +template class List { struct _Data; @@ -410,7 +410,7 @@ class List { /** * find an element in the list, */ - template + template Element *find(const T_v &p_val) { Element *it = front(); while (it) { @@ -646,7 +646,7 @@ class List { sort_custom>(); } - template + template void sort_custom_inplace() { if (size() < 2) { return; @@ -693,7 +693,7 @@ class List { _data->last = to; } - template + template struct AuxiliaryComparator { C compare; _FORCE_INLINE_ bool operator()(const Element *a, const Element *b) const { @@ -701,7 +701,7 @@ class List { } }; - template + template void sort_custom() { // this version uses auxiliary memory for speed. // if you don't want to use auxiliary memory, use the in_place version diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/local_vector.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/local_vector.hpp index 8ce4e65..5dad32e 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/local_vector.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/local_vector.hpp @@ -43,7 +43,7 @@ namespace godot { // If tight, it grows strictly as much as needed. // Otherwise, it grows exponentially (the default and what you want in most cases). -template +template class LocalVector { private: U count = 0; @@ -257,7 +257,7 @@ class LocalVector { return -1; } - template + template void sort_custom() { U len = count; if (len == 0) { @@ -331,7 +331,7 @@ class LocalVector { } }; -template +template using TightLocalVector = LocalVector; } // namespace godot diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/pair.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/pair.hpp index ed35302..f875413 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/pair.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/pair.hpp @@ -33,7 +33,7 @@ namespace godot { -template +template struct Pair { F first; S second; @@ -49,17 +49,17 @@ struct Pair { } }; -template +template bool operator==(const Pair &pair, const Pair &other) { return (pair.first == other.first) && (pair.second == other.second); } -template +template bool operator!=(const Pair &pair, const Pair &other) { return (pair.first != other.first) || (pair.second != other.second); } -template +template struct PairSort { bool operator()(const Pair &A, const Pair &B) const { if (A.first != B.first) { @@ -69,7 +69,7 @@ struct PairSort { } }; -template +template struct KeyValue { const K key; V value; @@ -85,17 +85,17 @@ struct KeyValue { } }; -template +template bool operator==(const KeyValue &pair, const KeyValue &other) { return (pair.key == other.key) && (pair.value == other.value); } -template +template bool operator!=(const KeyValue &pair, const KeyValue &other) { return (pair.key != other.key) || (pair.value != other.value); } -template +template struct KeyValueSort { bool operator()(const KeyValue &A, const KeyValue &B) const { return A.key < B.key; diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/rb_map.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/rb_map.hpp index cce1e91..6ab71fd 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/rb_map.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/rb_map.hpp @@ -40,7 +40,7 @@ namespace godot { // based on the very nice implementation of rb-trees by: // https://web.archive.org/web/20120507164830/https://web.mit.edu/~emin/www/source_code/red_black_tree/index.html -template , class A = DefaultAllocator> +template , typename A = DefaultAllocator> class RBMap { enum Color { RED, diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/rb_set.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/rb_set.hpp index c803f81..69aa8d7 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/rb_set.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/rb_set.hpp @@ -38,7 +38,7 @@ namespace godot { -template , class A = DefaultAllocator> +template , typename A = DefaultAllocator> class RBSet { enum Color { RED, diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/rid_owner.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/rid_owner.hpp index 005fc87..1dd4a39 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/rid_owner.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/rid_owner.hpp @@ -42,7 +42,7 @@ namespace godot { -template +template class RID_Alloc { T **chunks = nullptr; uint32_t **free_list_chunks = nullptr; @@ -347,7 +347,7 @@ class RID_Alloc { } }; -template +template class RID_PtrOwner { RID_Alloc alloc; @@ -406,7 +406,7 @@ class RID_PtrOwner { alloc(p_target_chunk_byte_size) {} }; -template +template class RID_Owner { RID_Alloc alloc; diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/safe_refcount.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/safe_refcount.hpp index 519bbf7..12e6840 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/safe_refcount.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/safe_refcount.hpp @@ -57,7 +57,7 @@ namespace godot { static_assert(sizeof(SafeFlag) == sizeof(bool)); \ static_assert(alignof(SafeFlag) == alignof(bool)); -template +template class SafeNumeric { std::atomic value; @@ -195,7 +195,7 @@ class SafeRefCount { #else -template +template class SafeNumeric { protected: T value; diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/search_array.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/search_array.hpp index ce2713b..11a9db5 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/search_array.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/search_array.hpp @@ -35,7 +35,7 @@ namespace godot { -template > +template > class SearchArray { public: Comparator compare; diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/self_list.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/self_list.hpp index 3bb13a3..f7a65f6 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/self_list.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/self_list.hpp @@ -36,7 +36,7 @@ namespace godot { -template +template class SelfList { public: class List { diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/sort_array.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/sort_array.hpp index 5dda578..7ce5c78 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/sort_array.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/sort_array.hpp @@ -41,7 +41,7 @@ namespace godot { break; \ } -template +template struct _DefaultComparator { _FORCE_INLINE_ bool operator()(const T &a, const T &b) const { return (a < b); } }; @@ -52,7 +52,7 @@ struct _DefaultComparator { #define SORT_ARRAY_VALIDATE_ENABLED false #endif -template , bool Validate = SORT_ARRAY_VALIDATE_ENABLED> +template , bool Validate = SORT_ARRAY_VALIDATE_ENABLED> class SortArray { enum { INTROSORT_THRESHOLD = 16 diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/thread_work_pool.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/thread_work_pool.hpp index a3efd42..cb20c6e 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/thread_work_pool.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/thread_work_pool.hpp @@ -52,7 +52,7 @@ class ThreadWorkPool { virtual ~BaseWork() = default; }; - template + template struct Work : public BaseWork { C *instance; M method; @@ -94,7 +94,7 @@ class ThreadWorkPool { } public: - template + template void begin_work(uint32_t p_elements, C *p_instance, M p_method, U p_userdata) { ERR_FAIL_NULL(threads); // Never initialized. ERR_FAIL_COND(current_work != nullptr); @@ -145,7 +145,7 @@ class ThreadWorkPool { current_work = nullptr; } - template + template void do_work(uint32_t p_elements, C *p_instance, M p_method, U p_userdata) { switch (p_elements) { case 0: diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/vector.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/vector.hpp index 05b7184..aaa84f3 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/vector.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/vector.hpp @@ -47,7 +47,7 @@ namespace godot { -template +template class VectorWriteProxy { public: _FORCE_INLINE_ T &operator[](typename CowData::Size p_index) { @@ -57,7 +57,7 @@ class VectorWriteProxy { } }; -template +template class Vector { friend class VectorWriteProxy; @@ -110,7 +110,7 @@ class Vector { sort_custom<_DefaultComparator>(); } - template + template void sort_custom(Args &&...args) { Size len = _cowdata.size(); if (len == 0) { @@ -126,7 +126,7 @@ class Vector { return bsearch_custom<_DefaultComparator>(p_value, p_before); } - template + template Size bsearch_custom(const Value &p_value, bool p_before, Args &&...args) { SearchArray search{ args... }; return search.bisect(ptrw(), size(), p_value, p_before); @@ -293,7 +293,7 @@ class Vector { _FORCE_INLINE_ ~Vector() {} }; -template +template void Vector::reverse() { for (Size i = 0; i < size() / 2; i++) { T *p = ptrw(); @@ -301,7 +301,7 @@ void Vector::reverse() { } } -template +template void Vector::append_array(Vector p_other) { const Size ds = p_other.size(); if (ds == 0) { @@ -314,7 +314,7 @@ void Vector::append_array(Vector p_other) { } } -template +template bool Vector::push_back(T p_elem) { Error err = resize(size() + 1); ERR_FAIL_COND_V(err, true); @@ -323,7 +323,7 @@ bool Vector::push_back(T p_elem) { return false; } -template +template void Vector::fill(T p_elem) { T *p = ptrw(); for (Size i = 0; i < size(); i++) { diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/vmap.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/vmap.hpp index 881ac25..926ccd3 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/vmap.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/vmap.hpp @@ -35,7 +35,7 @@ namespace godot { -template +template class VMap { public: struct Pair { diff --git a/thirdparty/godot-cpp/include/godot_cpp/templates/vset.hpp b/thirdparty/godot-cpp/include/godot_cpp/templates/vset.hpp index 29f0cef..ce21ba8 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/templates/vset.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/templates/vset.hpp @@ -35,7 +35,7 @@ namespace godot { -template +template class VSet { Vector _data; diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/aabb.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/aabb.hpp index 7706d51..f344f2c 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/aabb.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/aabb.hpp @@ -65,6 +65,7 @@ struct _NO_DISCARD_ AABB { bool operator!=(const AABB &p_rval) const; bool is_equal_approx(const AABB &p_aabb) const; + bool is_finite() const; _FORCE_INLINE_ bool intersects(const AABB &p_aabb) const; /// Both AABBs overlap _FORCE_INLINE_ bool intersects_inclusive(const AABB &p_aabb) const; /// Both AABBs (or their faces) overlap _FORCE_INLINE_ bool encloses(const AABB &p_aabb) const; /// p_aabb is completely inside this diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/basis.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/basis.hpp index a365b02..e740a64 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/basis.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/basis.hpp @@ -128,6 +128,7 @@ struct _NO_DISCARD_ Basis { } bool is_equal_approx(const Basis &p_basis) const; + bool is_finite() const; bool operator==(const Basis &p_matrix) const; bool operator!=(const Basis &p_matrix) const; diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/callable_custom.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/callable_custom.hpp index 48a8142..34328f9 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/callable_custom.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/callable_custom.hpp @@ -41,7 +41,6 @@ class Object; class CallableCustomBase { public: virtual ObjectID get_object() const = 0; - virtual int get_argument_count(bool &r_is_valid) const; virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, GDExtensionCallError &r_call_error) const = 0; virtual ~CallableCustomBase() {} }; diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/callable_method_pointer.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/callable_method_pointer.hpp index 0c0ff34..f9e7d73 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/callable_method_pointer.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/callable_method_pointer.hpp @@ -60,7 +60,7 @@ Callable create_callable_from_ccmp(CallableCustomMethodPointerBase *p_callable_m // No return value. // -template +template class CallableCustomMethodPointer : public CallableCustomMethodPointerBase { struct Data { T *instance; @@ -73,11 +73,6 @@ class CallableCustomMethodPointer : public CallableCustomMethodPointerBase { return ObjectID(data.instance->get_instance_id()); } - virtual int get_argument_count(bool &r_is_valid) const override { - r_is_valid = true; - return sizeof...(P); - } - virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, GDExtensionCallError &r_call_error) const override { call_with_variant_args(data.instance, data.method, p_arguments, p_argcount, r_call_error); } @@ -90,7 +85,7 @@ class CallableCustomMethodPointer : public CallableCustomMethodPointerBase { } }; -template +template Callable create_custom_callable_function_pointer(T *p_instance, void (T::*p_method)(P...)) { typedef CallableCustomMethodPointer CCMP; CCMP *ccmp = memnew(CCMP(p_instance, p_method)); @@ -101,7 +96,7 @@ Callable create_custom_callable_function_pointer(T *p_instance, void (T::*p_meth // With return value. // -template +template class CallableCustomMethodPointerRet : public CallableCustomMethodPointerBase { struct Data { T *instance; @@ -115,11 +110,6 @@ class CallableCustomMethodPointerRet : public CallableCustomMethodPointerBase { return ObjectID(data.instance->get_instance_id()); } - virtual int get_argument_count(bool &r_is_valid) const override { - r_is_valid = true; - return sizeof...(P); - } - virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, GDExtensionCallError &r_call_error) const override { call_with_variant_args_ret(data.instance, data.method, p_arguments, p_argcount, r_return_value, r_call_error); } @@ -132,7 +122,7 @@ class CallableCustomMethodPointerRet : public CallableCustomMethodPointerBase { } }; -template +template Callable create_custom_callable_function_pointer(T *p_instance, R (T::*p_method)(P...)) { typedef CallableCustomMethodPointerRet CCMP; // Messes with memnew otherwise. CCMP *ccmp = memnew(CCMP(p_instance, p_method)); @@ -143,7 +133,7 @@ Callable create_custom_callable_function_pointer(T *p_instance, R (T::*p_method) // Const with return value. // -template +template class CallableCustomMethodPointerRetC : public CallableCustomMethodPointerBase { struct Data { T *instance; @@ -157,11 +147,6 @@ class CallableCustomMethodPointerRetC : public CallableCustomMethodPointerBase { return ObjectID(data.instance->get_instance_id()); } - virtual int get_argument_count(bool &r_is_valid) const override { - r_is_valid = true; - return sizeof...(P); - } - virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, GDExtensionCallError &r_call_error) const override { call_with_variant_args_retc(data.instance, data.method, p_arguments, p_argcount, r_return_value, r_call_error); } @@ -174,7 +159,7 @@ class CallableCustomMethodPointerRetC : public CallableCustomMethodPointerBase { } }; -template +template Callable create_custom_callable_function_pointer(const T *p_instance, R (T::*p_method)(P...) const) { typedef CallableCustomMethodPointerRetC CCMP; // Messes with memnew otherwise. CCMP *ccmp = memnew(CCMP(p_instance, p_method)); @@ -185,7 +170,7 @@ Callable create_custom_callable_function_pointer(const T *p_instance, R (T::*p_m // Static method with no return value. // -template +template class CallableCustomStaticMethodPointer : public CallableCustomMethodPointerBase { struct Data { void (*method)(P...); @@ -197,11 +182,6 @@ class CallableCustomStaticMethodPointer : public CallableCustomMethodPointerBase return ObjectID(); } - virtual int get_argument_count(bool &r_is_valid) const override { - r_is_valid = true; - return sizeof...(P); - } - virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, GDExtensionCallError &r_call_error) const override { call_with_variant_args_static_ret(data.method, p_arguments, p_argcount, r_return_value, r_call_error); r_return_value = Variant(); @@ -214,7 +194,7 @@ class CallableCustomStaticMethodPointer : public CallableCustomMethodPointerBase } }; -template +template Callable create_custom_callable_static_function_pointer(void (*p_method)(P...)) { typedef CallableCustomStaticMethodPointer CCMP; CCMP *ccmp = memnew(CCMP(p_method)); @@ -225,7 +205,7 @@ Callable create_custom_callable_static_function_pointer(void (*p_method)(P...)) // Static method with return value. // -template +template class CallableCustomStaticMethodPointerRet : public CallableCustomMethodPointerBase { struct Data { R(*method) @@ -238,11 +218,6 @@ class CallableCustomStaticMethodPointerRet : public CallableCustomMethodPointerB return ObjectID(); } - virtual int get_argument_count(bool &r_is_valid) const override { - r_is_valid = true; - return sizeof...(P); - } - virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, GDExtensionCallError &r_call_error) const override { call_with_variant_args_static_ret(data.method, p_arguments, p_argcount, r_return_value, r_call_error); } @@ -254,7 +229,7 @@ class CallableCustomStaticMethodPointerRet : public CallableCustomMethodPointerB } }; -template +template Callable create_custom_callable_static_function_pointer(R (*p_method)(P...)) { typedef CallableCustomStaticMethodPointerRet CCMP; CCMP *ccmp = memnew(CCMP(p_method)); diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/char_string.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/char_string.hpp index 993d046..991c039 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/char_string.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/char_string.hpp @@ -38,12 +38,12 @@ namespace godot { -template +template class CharStringT; -template +template class CharProxy { - template + template friend class CharStringT; const int64_t _index; @@ -80,7 +80,7 @@ class CharProxy { } }; -template +template class CharStringT { friend class String; diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/plane.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/plane.hpp index 727f4f5..829f801 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/plane.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/plane.hpp @@ -77,6 +77,7 @@ struct _NO_DISCARD_ Plane { Plane operator-() const { return Plane(-normal, -d); } bool is_equal_approx(const Plane &p_plane) const; bool is_equal_approx_any_side(const Plane &p_plane) const; + bool is_finite() const; _FORCE_INLINE_ bool operator==(const Plane &p_plane) const; _FORCE_INLINE_ bool operator!=(const Plane &p_plane) const; diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/quaternion.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/quaternion.hpp index 3816b66..5de91b2 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/quaternion.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/quaternion.hpp @@ -55,6 +55,7 @@ struct _NO_DISCARD_ Quaternion { } _FORCE_INLINE_ real_t length_squared() const; bool is_equal_approx(const Quaternion &p_quaternion) const; + bool is_finite() const; real_t length() const; void normalize(); Quaternion normalized() const; diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/rect2.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/rect2.hpp index cfd24b2..c37134d 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/rect2.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/rect2.hpp @@ -209,6 +209,7 @@ struct _NO_DISCARD_ Rect2 { } bool is_equal_approx(const Rect2 &p_rect) const; + bool is_finite() const; bool operator==(const Rect2 &p_rect) const { return position == p_rect.position && size == p_rect.size; } bool operator!=(const Rect2 &p_rect) const { return position != p_rect.position || size != p_rect.size; } diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/transform2d.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/transform2d.hpp index 5a48398..d73323f 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/transform2d.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/transform2d.hpp @@ -99,6 +99,7 @@ struct _NO_DISCARD_ Transform2D { void orthonormalize(); Transform2D orthonormalized() const; bool is_equal_approx(const Transform2D &p_transform) const; + bool is_finite() const; Transform2D looking_at(const Vector2 &p_target) const; diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/transform3d.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/transform3d.hpp index 3a54c0b..6fa5999 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/transform3d.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/transform3d.hpp @@ -78,6 +78,7 @@ struct _NO_DISCARD_ Transform3D { void orthogonalize(); Transform3D orthogonalized() const; bool is_equal_approx(const Transform3D &p_transform) const; + bool is_finite() const; bool operator==(const Transform3D &p_transform) const; bool operator!=(const Transform3D &p_transform) const; diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/typed_array.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/typed_array.hpp index 2261509..54738a6 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/typed_array.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/typed_array.hpp @@ -36,7 +36,7 @@ namespace godot { -template +template class TypedArray : public Array { public: _FORCE_INLINE_ void operator=(const Array &p_array) { @@ -75,8 +75,6 @@ class TypedArray : public Array { } \ }; -// All Variant::OBJECT types are intentionally omitted from this list because they are handled by -// the unspecialized TypedArray definition. MAKE_TYPED_ARRAY(bool, Variant::BOOL) MAKE_TYPED_ARRAY(uint8_t, Variant::INT) MAKE_TYPED_ARRAY(int8_t, Variant::INT) @@ -96,14 +94,11 @@ MAKE_TYPED_ARRAY(Rect2i, Variant::RECT2I) MAKE_TYPED_ARRAY(Vector3, Variant::VECTOR3) MAKE_TYPED_ARRAY(Vector3i, Variant::VECTOR3I) MAKE_TYPED_ARRAY(Transform2D, Variant::TRANSFORM2D) -MAKE_TYPED_ARRAY(Vector4, Variant::VECTOR4) -MAKE_TYPED_ARRAY(Vector4i, Variant::VECTOR4I) MAKE_TYPED_ARRAY(Plane, Variant::PLANE) MAKE_TYPED_ARRAY(Quaternion, Variant::QUATERNION) MAKE_TYPED_ARRAY(AABB, Variant::AABB) MAKE_TYPED_ARRAY(Basis, Variant::BASIS) MAKE_TYPED_ARRAY(Transform3D, Variant::TRANSFORM3D) -MAKE_TYPED_ARRAY(Projection, Variant::PROJECTION) MAKE_TYPED_ARRAY(Color, Variant::COLOR) MAKE_TYPED_ARRAY(StringName, Variant::STRING_NAME) MAKE_TYPED_ARRAY(NodePath, Variant::NODE_PATH) @@ -121,10 +116,6 @@ MAKE_TYPED_ARRAY(PackedStringArray, Variant::PACKED_STRING_ARRAY) MAKE_TYPED_ARRAY(PackedVector2Array, Variant::PACKED_VECTOR2_ARRAY) MAKE_TYPED_ARRAY(PackedVector3Array, Variant::PACKED_VECTOR3_ARRAY) MAKE_TYPED_ARRAY(PackedColorArray, Variant::PACKED_COLOR_ARRAY) -// If the IPAddress struct is added to godot-cpp, the following could also be added: -//MAKE_TYPED_ARRAY(IPAddress, Variant::STRING) - -#undef MAKE_TYPED_ARRAY } // namespace godot diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/variant.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/variant.hpp index 7ec04d2..5b09a15 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/variant.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/variant.hpp @@ -269,7 +269,7 @@ class Variant { void callp(const StringName &method, const Variant **args, int argcount, Variant &r_ret, GDExtensionCallError &r_error); - template + template Variant call(const StringName &method, Args... args) { std::array vargs = { args... }; std::array argptrs; @@ -284,7 +284,7 @@ class Variant { static void callp_static(Variant::Type type, const StringName &method, const Variant **args, int argcount, Variant &r_ret, GDExtensionCallError &r_error); - template + template static Variant call_static(Variant::Type type, const StringName &method, Args... args) { std::array vargs = { args... }; std::array argptrs; diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/vector2.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/vector2.hpp index 13c0da6..fe4d05a 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/vector2.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/vector2.hpp @@ -123,6 +123,7 @@ struct _NO_DISCARD_ Vector2 { bool is_equal_approx(const Vector2 &p_v) const; bool is_zero_approx() const; + bool is_finite() const; Vector2 operator+(const Vector2 &p_v) const; void operator+=(const Vector2 &p_v); diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/vector2i.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/vector2i.hpp index afeaeea..b3eeec3 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/vector2i.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/vector2i.hpp @@ -117,9 +117,6 @@ struct _NO_DISCARD_ Vector2i { int64_t length_squared() const; double length() const; - int64_t distance_squared_to(const Vector2i &p_to) const; - double distance_to(const Vector2i &p_to) const; - real_t aspect() const { return width / (real_t)height; } Vector2i sign() const { return Vector2i(SIGN(x), SIGN(y)); } Vector2i abs() const { return Vector2i(Math::abs(x), Math::abs(y)); } diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/vector3.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/vector3.hpp index a8d96ed..1107bca 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/vector3.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/vector3.hpp @@ -146,6 +146,7 @@ struct _NO_DISCARD_ Vector3 { bool is_equal_approx(const Vector3 &p_v) const; bool is_zero_approx() const; + bool is_finite() const; /* Operators */ diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/vector3i.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/vector3i.hpp index ae5148f..c13bd08 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/vector3i.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/vector3i.hpp @@ -82,9 +82,6 @@ struct _NO_DISCARD_ Vector3i { _FORCE_INLINE_ int64_t length_squared() const; _FORCE_INLINE_ double length() const; - _FORCE_INLINE_ int64_t distance_squared_to(const Vector3i &p_to) const; - _FORCE_INLINE_ double distance_to(const Vector3i &p_to) const; - _FORCE_INLINE_ void zero(); _FORCE_INLINE_ Vector3i abs() const; @@ -139,14 +136,6 @@ double Vector3i::length() const { return Math::sqrt((double)length_squared()); } -int64_t Vector3i::distance_squared_to(const Vector3i &p_to) const { - return (p_to - *this).length_squared(); -} - -double Vector3i::distance_to(const Vector3i &p_to) const { - return (p_to - *this).length(); -} - Vector3i Vector3i::abs() const { return Vector3i(Math::abs(x), Math::abs(y), Math::abs(z)); } diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/vector4.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/vector4.hpp index 26c57c3..b20915a 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/vector4.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/vector4.hpp @@ -81,6 +81,7 @@ struct _NO_DISCARD_ Vector4 { _FORCE_INLINE_ real_t length_squared() const; bool is_equal_approx(const Vector4 &p_vec4) const; bool is_zero_approx() const; + bool is_finite() const; real_t length() const; void normalize(); Vector4 normalized() const; diff --git a/thirdparty/godot-cpp/include/godot_cpp/variant/vector4i.hpp b/thirdparty/godot-cpp/include/godot_cpp/variant/vector4i.hpp index 36f2855..ccfcf6d 100644 --- a/thirdparty/godot-cpp/include/godot_cpp/variant/vector4i.hpp +++ b/thirdparty/godot-cpp/include/godot_cpp/variant/vector4i.hpp @@ -84,9 +84,6 @@ struct _NO_DISCARD_ Vector4i { _FORCE_INLINE_ int64_t length_squared() const; _FORCE_INLINE_ double length() const; - _FORCE_INLINE_ int64_t distance_squared_to(const Vector4i &p_to) const; - _FORCE_INLINE_ double distance_to(const Vector4i &p_to) const; - _FORCE_INLINE_ void zero(); _FORCE_INLINE_ Vector4i abs() const; @@ -143,14 +140,6 @@ double Vector4i::length() const { return Math::sqrt((double)length_squared()); } -int64_t Vector4i::distance_squared_to(const Vector4i &p_to) const { - return (p_to - *this).length_squared(); -} - -double Vector4i::distance_to(const Vector4i &p_to) const { - return (p_to - *this).length(); -} - Vector4i Vector4i::abs() const { return Vector4i(Math::abs(x), Math::abs(y), Math::abs(z), Math::abs(w)); } diff --git a/thirdparty/godot-cpp/src/classes/wrapped.cpp b/thirdparty/godot-cpp/src/classes/wrapped.cpp index ad0eefb..594cfef 100644 --- a/thirdparty/godot-cpp/src/classes/wrapped.cpp +++ b/thirdparty/godot-cpp/src/classes/wrapped.cpp @@ -51,10 +51,7 @@ void Wrapped::_postinitialize() { } godot::internal::gdextension_interface_object_set_instance_binding(_owner, godot::internal::token, this, _get_bindings_callbacks()); if (extension_class) { - Object *obj = dynamic_cast(this); - if (obj) { - obj->notification(Object::NOTIFICATION_POSTINITIALIZE); - } + _notificationv(Object::NOTIFICATION_POSTINITIALIZE); } } diff --git a/thirdparty/godot-cpp/src/core/class_db.cpp b/thirdparty/godot-cpp/src/core/class_db.cpp index acead8b..23ad94f 100644 --- a/thirdparty/godot-cpp/src/core/class_db.cpp +++ b/thirdparty/godot-cpp/src/core/class_db.cpp @@ -32,7 +32,6 @@ #include #include -#include #include @@ -43,6 +42,8 @@ namespace godot { std::unordered_map ClassDB::classes; std::unordered_map ClassDB::instance_binding_callbacks; std::vector ClassDB::class_register_order; +std::unordered_map ClassDB::engine_singletons; +std::mutex ClassDB::engine_singletons_mutex; GDExtensionInitializationLevel ClassDB::current_level = GDEXTENSION_INITIALIZATION_CORE; MethodDefinition D_METHOD(StringName p_name) { @@ -338,46 +339,6 @@ void ClassDB::bind_virtual_method(const StringName &p_class, const StringName &p type.virtual_methods[p_method] = p_call; } -void ClassDB::add_virtual_method(const StringName &p_class, const MethodInfo &p_method, const Vector &p_arg_names) { - std::unordered_map::iterator type_it = classes.find(p_class); - ERR_FAIL_COND_MSG(type_it == classes.end(), String("Class '{0}' doesn't exist.").format(Array::make(p_class))); - - GDExtensionClassVirtualMethodInfo mi; - mi.name = (GDExtensionStringNamePtr)&p_method.name; - mi.method_flags = p_method.flags; - mi.return_value = p_method.return_val._to_gdextension(); - mi.return_value_metadata = p_method.return_val_metadata; - mi.argument_count = p_method.arguments.size(); - if (mi.argument_count > 0) { - mi.arguments = (GDExtensionPropertyInfo *)memalloc(sizeof(GDExtensionPropertyInfo) * mi.argument_count); - mi.arguments_metadata = (GDExtensionClassMethodArgumentMetadata *)memalloc(sizeof(GDExtensionClassMethodArgumentMetadata) * mi.argument_count); - for (int i = 0; i < mi.argument_count; i++) { - mi.arguments[i] = p_method.arguments[i]._to_gdextension(); - mi.arguments_metadata[i] = p_method.arguments_metadata[i]; - } - } else { - mi.arguments = nullptr; - mi.arguments_metadata = nullptr; - } - - if (p_arg_names.size() != mi.argument_count) { - WARN_PRINT("Mismatch argument name count for virtual method: " + String(p_class) + "::" + p_method.name); - } else { - for (int i = 0; i < p_arg_names.size(); i++) { - mi.arguments[i].name = (GDExtensionStringNamePtr)&p_arg_names[i]; - } - } - - internal::gdextension_interface_classdb_register_extension_class_virtual_method(internal::library, &p_class, &mi); - - if (mi.arguments) { - memfree(mi.arguments); - } - if (mi.arguments_metadata) { - memfree(mi.arguments_metadata); - } -} - void ClassDB::initialize_class(const ClassInfo &p_cl) { } @@ -419,6 +380,22 @@ void ClassDB::deinitialize(GDExtensionInitializationLevel p_level) { }); class_register_order.erase(it, class_register_order.end()); } + + if (p_level == GDEXTENSION_INITIALIZATION_CORE) { + // Make a new list of the singleton objects, since freeing the instance bindings will lead to + // elements getting removed from engine_singletons. + std::vector singleton_objects; + { + std::lock_guard lock(engine_singletons_mutex); + singleton_objects.reserve(engine_singletons.size()); + for (const std::pair &pair : engine_singletons) { + singleton_objects.push_back(pair.second); + } + } + for (std::vector::iterator i = singleton_objects.begin(); i != singleton_objects.end(); i++) { + internal::gdextension_interface_object_free_instance_binding((*i)->_owner, internal::token); + } + } } } // namespace godot diff --git a/thirdparty/godot-cpp/src/core/object.cpp b/thirdparty/godot-cpp/src/core/object.cpp index dc3c879..410daf8 100644 --- a/thirdparty/godot-cpp/src/core/object.cpp +++ b/thirdparty/godot-cpp/src/core/object.cpp @@ -60,8 +60,66 @@ Object *get_object_instance_binding(GodotObject *p_engine_object) { return reinterpret_cast(gdextension_interface_object_get_instance_binding(p_engine_object, token, binding_callbacks)); } +TypedArray convert_property_list(const std::vector &p_list) { + TypedArray va; + for (const PropertyInfo &pi : p_list) { + va.push_back(Dictionary(pi)); + } + return va; +} + } // namespace internal +MethodInfo::operator Dictionary() const { + Dictionary dict; + dict["name"] = name; + dict["args"] = internal::convert_property_list(arguments); + Array da; + for (size_t i = 0; i < default_arguments.size(); i++) { + da.push_back(default_arguments[i]); + } + dict["default_args"] = da; + dict["flags"] = flags; + dict["id"] = id; + Dictionary r = return_val; + dict["return"] = r; + return dict; +} + +MethodInfo MethodInfo::from_dict(const Dictionary &p_dict) { + MethodInfo mi; + + if (p_dict.has("name")) { + mi.name = p_dict["name"]; + } + Array args; + if (p_dict.has("args")) { + args = p_dict["args"]; + } + + for (int i = 0; i < args.size(); i++) { + Dictionary d = args[i]; + mi.arguments.push_back(PropertyInfo::from_dict(d)); + } + Array defargs; + if (p_dict.has("default_args")) { + defargs = p_dict["default_args"]; + } + for (int i = 0; i < defargs.size(); i++) { + mi.default_arguments.push_back(defargs[i]); + } + + if (p_dict.has("return")) { + mi.return_val = PropertyInfo::from_dict(p_dict["return"]); + } + + if (p_dict.has("flags")) { + mi.flags = p_dict["flags"]; + } + + return mi; +} + MethodInfo::MethodInfo() : flags(GDEXTENSION_METHOD_FLAG_NORMAL) {} diff --git a/thirdparty/godot-cpp/src/godot.cpp b/thirdparty/godot-cpp/src/godot.cpp index 8a031be..9df68b1 100644 --- a/thirdparty/godot-cpp/src/godot.cpp +++ b/thirdparty/godot-cpp/src/godot.cpp @@ -166,26 +166,24 @@ GDExtensionInterfaceObjectDestroy gdextension_interface_object_destroy = nullptr GDExtensionInterfaceGlobalGetSingleton gdextension_interface_global_get_singleton = nullptr; GDExtensionInterfaceObjectGetInstanceBinding gdextension_interface_object_get_instance_binding = nullptr; GDExtensionInterfaceObjectSetInstanceBinding gdextension_interface_object_set_instance_binding = nullptr; +GDExtensionInterfaceObjectFreeInstanceBinding gdextension_interface_object_free_instance_binding = nullptr; GDExtensionInterfaceObjectSetInstance gdextension_interface_object_set_instance = nullptr; GDExtensionInterfaceObjectGetClassName gdextension_interface_object_get_class_name = nullptr; GDExtensionInterfaceObjectCastTo gdextension_interface_object_cast_to = nullptr; GDExtensionInterfaceObjectGetInstanceFromId gdextension_interface_object_get_instance_from_id = nullptr; GDExtensionInterfaceObjectGetInstanceId gdextension_interface_object_get_instance_id = nullptr; -GDExtensionInterfaceObjectHasScriptMethod gdextension_interface_object_has_script_method = nullptr; -GDExtensionInterfaceObjectCallScriptMethod gdextension_interface_object_call_script_method = nullptr; -GDExtensionInterfaceCallableCustomCreate2 gdextension_interface_callable_custom_create2 = nullptr; +GDExtensionInterfaceCallableCustomCreate gdextension_interface_callable_custom_create = nullptr; GDExtensionInterfaceCallableCustomGetUserData gdextension_interface_callable_custom_get_userdata = nullptr; GDExtensionInterfaceRefGetObject gdextension_interface_ref_get_object = nullptr; GDExtensionInterfaceRefSetObject gdextension_interface_ref_set_object = nullptr; -GDExtensionInterfaceScriptInstanceCreate3 gdextension_interface_script_instance_create3 = nullptr; +GDExtensionInterfaceScriptInstanceCreate2 gdextension_interface_script_instance_create2 = nullptr; GDExtensionInterfacePlaceHolderScriptInstanceCreate gdextension_interface_placeholder_script_instance_create = nullptr; GDExtensionInterfacePlaceHolderScriptInstanceUpdate gdextension_interface_placeholder_script_instance_update = nullptr; GDExtensionInterfaceClassdbConstructObject gdextension_interface_classdb_construct_object = nullptr; GDExtensionInterfaceClassdbGetMethodBind gdextension_interface_classdb_get_method_bind = nullptr; GDExtensionInterfaceClassdbGetClassTag gdextension_interface_classdb_get_class_tag = nullptr; -GDExtensionInterfaceClassdbRegisterExtensionClass3 gdextension_interface_classdb_register_extension_class3 = nullptr; +GDExtensionInterfaceClassdbRegisterExtensionClass2 gdextension_interface_classdb_register_extension_class2 = nullptr; GDExtensionInterfaceClassdbRegisterExtensionClassMethod gdextension_interface_classdb_register_extension_class_method = nullptr; -GDExtensionInterfaceClassdbRegisterExtensionClassVirtualMethod gdextension_interface_classdb_register_extension_class_virtual_method = nullptr; GDExtensionInterfaceClassdbRegisterExtensionClassIntegerConstant gdextension_interface_classdb_register_extension_class_integer_constant = nullptr; GDExtensionInterfaceClassdbRegisterExtensionClassProperty gdextension_interface_classdb_register_extension_class_property = nullptr; GDExtensionInterfaceClassdbRegisterExtensionClassPropertyIndexed gdextension_interface_classdb_register_extension_class_property_indexed = nullptr; @@ -406,26 +404,24 @@ GDExtensionBool GDExtensionBinding::init(GDExtensionInterfaceGetProcAddress p_ge LOAD_PROC_ADDRESS(global_get_singleton, GDExtensionInterfaceGlobalGetSingleton); LOAD_PROC_ADDRESS(object_get_instance_binding, GDExtensionInterfaceObjectGetInstanceBinding); LOAD_PROC_ADDRESS(object_set_instance_binding, GDExtensionInterfaceObjectSetInstanceBinding); + LOAD_PROC_ADDRESS(object_free_instance_binding, GDExtensionInterfaceObjectFreeInstanceBinding); LOAD_PROC_ADDRESS(object_set_instance, GDExtensionInterfaceObjectSetInstance); LOAD_PROC_ADDRESS(object_get_class_name, GDExtensionInterfaceObjectGetClassName); LOAD_PROC_ADDRESS(object_cast_to, GDExtensionInterfaceObjectCastTo); LOAD_PROC_ADDRESS(object_get_instance_from_id, GDExtensionInterfaceObjectGetInstanceFromId); LOAD_PROC_ADDRESS(object_get_instance_id, GDExtensionInterfaceObjectGetInstanceId); - LOAD_PROC_ADDRESS(object_has_script_method, GDExtensionInterfaceObjectHasScriptMethod); - LOAD_PROC_ADDRESS(object_call_script_method, GDExtensionInterfaceObjectCallScriptMethod); - LOAD_PROC_ADDRESS(callable_custom_create2, GDExtensionInterfaceCallableCustomCreate2); + LOAD_PROC_ADDRESS(callable_custom_create, GDExtensionInterfaceCallableCustomCreate); LOAD_PROC_ADDRESS(callable_custom_get_userdata, GDExtensionInterfaceCallableCustomGetUserData); LOAD_PROC_ADDRESS(ref_get_object, GDExtensionInterfaceRefGetObject); LOAD_PROC_ADDRESS(ref_set_object, GDExtensionInterfaceRefSetObject); - LOAD_PROC_ADDRESS(script_instance_create3, GDExtensionInterfaceScriptInstanceCreate3); + LOAD_PROC_ADDRESS(script_instance_create2, GDExtensionInterfaceScriptInstanceCreate2); LOAD_PROC_ADDRESS(placeholder_script_instance_create, GDExtensionInterfacePlaceHolderScriptInstanceCreate); LOAD_PROC_ADDRESS(placeholder_script_instance_update, GDExtensionInterfacePlaceHolderScriptInstanceUpdate); LOAD_PROC_ADDRESS(classdb_construct_object, GDExtensionInterfaceClassdbConstructObject); LOAD_PROC_ADDRESS(classdb_get_method_bind, GDExtensionInterfaceClassdbGetMethodBind); LOAD_PROC_ADDRESS(classdb_get_class_tag, GDExtensionInterfaceClassdbGetClassTag); - LOAD_PROC_ADDRESS(classdb_register_extension_class3, GDExtensionInterfaceClassdbRegisterExtensionClass3); + LOAD_PROC_ADDRESS(classdb_register_extension_class2, GDExtensionInterfaceClassdbRegisterExtensionClass2); LOAD_PROC_ADDRESS(classdb_register_extension_class_method, GDExtensionInterfaceClassdbRegisterExtensionClassMethod); - LOAD_PROC_ADDRESS(classdb_register_extension_class_virtual_method, GDExtensionInterfaceClassdbRegisterExtensionClassVirtualMethod); LOAD_PROC_ADDRESS(classdb_register_extension_class_integer_constant, GDExtensionInterfaceClassdbRegisterExtensionClassIntegerConstant); LOAD_PROC_ADDRESS(classdb_register_extension_class_property, GDExtensionInterfaceClassdbRegisterExtensionClassProperty); LOAD_PROC_ADDRESS(classdb_register_extension_class_property_indexed, GDExtensionInterfaceClassdbRegisterExtensionClassPropertyIndexed); diff --git a/thirdparty/godot-cpp/src/variant/aabb.cpp b/thirdparty/godot-cpp/src/variant/aabb.cpp index 92e751b..ded17d2 100644 --- a/thirdparty/godot-cpp/src/variant/aabb.cpp +++ b/thirdparty/godot-cpp/src/variant/aabb.cpp @@ -78,6 +78,10 @@ bool AABB::is_equal_approx(const AABB &p_aabb) const { return position.is_equal_approx(p_aabb.position) && size.is_equal_approx(p_aabb.size); } +bool AABB::is_finite() const { + return position.is_finite() && size.is_finite(); +} + AABB AABB::intersection(const AABB &p_aabb) const { #ifdef MATH_CHECKS if (unlikely(size.x < 0 || size.y < 0 || size.z < 0 || p_aabb.size.x < 0 || p_aabb.size.y < 0 || p_aabb.size.z < 0)) { diff --git a/thirdparty/godot-cpp/src/variant/basis.cpp b/thirdparty/godot-cpp/src/variant/basis.cpp index 8f78d9f..8d4176e 100644 --- a/thirdparty/godot-cpp/src/variant/basis.cpp +++ b/thirdparty/godot-cpp/src/variant/basis.cpp @@ -692,6 +692,10 @@ bool Basis::is_equal_approx(const Basis &p_basis) const { return rows[0].is_equal_approx(p_basis.rows[0]) && rows[1].is_equal_approx(p_basis.rows[1]) && rows[2].is_equal_approx(p_basis.rows[2]); } +bool Basis::is_finite() const { + return rows[0].is_finite() && rows[1].is_finite() && rows[2].is_finite(); +} + bool Basis::operator==(const Basis &p_matrix) const { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { diff --git a/thirdparty/godot-cpp/src/variant/callable_custom.cpp b/thirdparty/godot-cpp/src/variant/callable_custom.cpp index ae8cc48..e0540fa 100644 --- a/thirdparty/godot-cpp/src/variant/callable_custom.cpp +++ b/thirdparty/godot-cpp/src/variant/callable_custom.cpp @@ -35,11 +35,6 @@ namespace godot { -int CallableCustomBase::get_argument_count(bool &r_is_valid) const { - r_is_valid = false; - return 0; -} - static void callable_custom_call(void *p_userdata, const GDExtensionConstVariantPtr *p_args, GDExtensionInt p_argument_count, GDExtensionVariantPtr r_return, GDExtensionCallError *r_error) { CallableCustom *callable_custom = (CallableCustom *)p_userdata; callable_custom->call((const Variant **)p_args, p_argument_count, *(Variant *)r_return, *r_error); @@ -89,21 +84,13 @@ static GDExtensionBool callable_custom_less_than_func(void *p_a, void *p_b) { return func_a(a, b); } -static GDExtensionInt custom_callable_get_argument_count_func(void *p_userdata, GDExtensionBool *r_is_valid) { - CallableCustom *callable_custom = (CallableCustom *)p_userdata; - bool valid = false; - int ret = callable_custom->get_argument_count(valid); - *r_is_valid = valid; - return ret; -} - bool CallableCustom::is_valid() const { // The same default implementation as in Godot. return ObjectDB::get_instance(get_object()); } Callable::Callable(CallableCustom *p_callable_custom) { - GDExtensionCallableCustomInfo2 info = {}; + GDExtensionCallableCustomInfo info = {}; info.callable_userdata = p_callable_custom; info.token = internal::token; info.object_id = p_callable_custom->get_object(); @@ -114,9 +101,8 @@ Callable::Callable(CallableCustom *p_callable_custom) { info.equal_func = &callable_custom_equal_func; info.less_than_func = &callable_custom_less_than_func; info.to_string_func = &callable_custom_to_string; - info.get_argument_count_func = &custom_callable_get_argument_count_func; - ::godot::internal::gdextension_interface_callable_custom_create2(_native_ptr(), &info); + ::godot::internal::gdextension_interface_callable_custom_create(_native_ptr(), &info); } CallableCustom *Callable::get_custom() const { diff --git a/thirdparty/godot-cpp/src/variant/callable_method_pointer.cpp b/thirdparty/godot-cpp/src/variant/callable_method_pointer.cpp index 23b7ef5..520ed05 100644 --- a/thirdparty/godot-cpp/src/variant/callable_method_pointer.cpp +++ b/thirdparty/godot-cpp/src/variant/callable_method_pointer.cpp @@ -77,14 +77,6 @@ static GDExtensionBool custom_callable_mp_less_than_func(void *p_a, void *p_b) { return memcmp(a->get_comp_ptr(), b->get_comp_ptr(), a->get_comp_size() * 4) < 0; } -static GDExtensionInt custom_callable_mp_get_argument_count_func(void *p_userdata, GDExtensionBool *r_is_valid) { - CallableCustomMethodPointerBase *callable_method_pointer = (CallableCustomMethodPointerBase *)p_userdata; - bool valid = false; - int ret = callable_method_pointer->get_argument_count(valid); - *r_is_valid = valid; - return ret; -} - void CallableCustomMethodPointerBase::_setup(uint32_t *p_base_ptr, uint32_t p_ptr_size) { comp_ptr = p_base_ptr; comp_size = p_ptr_size / 4; @@ -101,7 +93,7 @@ void CallableCustomMethodPointerBase::_setup(uint32_t *p_base_ptr, uint32_t p_pt namespace internal { Callable create_callable_from_ccmp(CallableCustomMethodPointerBase *p_callable_method_pointer) { - GDExtensionCallableCustomInfo2 info = {}; + GDExtensionCallableCustomInfo info = {}; info.callable_userdata = p_callable_method_pointer; info.token = internal::token; info.object_id = p_callable_method_pointer->get_object(); @@ -111,10 +103,9 @@ Callable create_callable_from_ccmp(CallableCustomMethodPointerBase *p_callable_m info.hash_func = &custom_callable_mp_hash; info.equal_func = &custom_callable_mp_equal_func; info.less_than_func = &custom_callable_mp_less_than_func; - info.get_argument_count_func = &custom_callable_mp_get_argument_count_func; Callable callable; - ::godot::internal::gdextension_interface_callable_custom_create2(callable._native_ptr(), &info); + ::godot::internal::gdextension_interface_callable_custom_create(callable._native_ptr(), &info); return callable; } diff --git a/thirdparty/godot-cpp/src/variant/char_string.cpp b/thirdparty/godot-cpp/src/variant/char_string.cpp index 3c1ac10..cac46cf 100644 --- a/thirdparty/godot-cpp/src/variant/char_string.cpp +++ b/thirdparty/godot-cpp/src/variant/char_string.cpp @@ -65,7 +65,7 @@ _FORCE_INLINE_ bool is_str_less(const L *l_ptr, const R *r_ptr) { } } -template +template bool CharStringT::operator<(const CharStringT &p_right) const { if (length() == 0) { return p_right.length() != 0; @@ -74,7 +74,7 @@ bool CharStringT::operator<(const CharStringT &p_right) const { return is_str_less(get_data(), p_right.get_data()); } -template +template CharStringT &CharStringT::operator+=(T p_char) { const int64_t lhs_len = length(); resize(lhs_len + 2); @@ -86,7 +86,7 @@ CharStringT &CharStringT::operator+=(T p_char) { return *this; } -template +template void CharStringT::operator=(const T *p_cstr) { copy_from(p_cstr); } @@ -127,7 +127,7 @@ const wchar_t *CharStringT::get_data() const { } } -template +template void CharStringT::copy_from(const T *p_cstr) { if (!p_cstr) { resize(0); diff --git a/thirdparty/godot-cpp/src/variant/plane.cpp b/thirdparty/godot-cpp/src/variant/plane.cpp index 53dd439..caea516 100644 --- a/thirdparty/godot-cpp/src/variant/plane.cpp +++ b/thirdparty/godot-cpp/src/variant/plane.cpp @@ -178,6 +178,10 @@ bool Plane::is_equal_approx(const Plane &p_plane) const { return normal.is_equal_approx(p_plane.normal) && Math::is_equal_approx(d, p_plane.d); } +bool Plane::is_finite() const { + return normal.is_finite() && Math::is_finite(d); +} + Plane::operator String() const { return "[N: " + normal.operator String() + ", D: " + String::num_real(d, false) + "]"; } diff --git a/thirdparty/godot-cpp/src/variant/projection.cpp b/thirdparty/godot-cpp/src/variant/projection.cpp index c28e651..ddedc93 100644 --- a/thirdparty/godot-cpp/src/variant/projection.cpp +++ b/thirdparty/godot-cpp/src/variant/projection.cpp @@ -136,7 +136,7 @@ Projection Projection::create_for_hmd(int p_eye, real_t p_aspect, real_t p_intra Projection Projection::create_orthogonal(real_t p_left, real_t p_right, real_t p_bottom, real_t p_top, real_t p_znear, real_t p_zfar) { Projection proj; - proj.set_orthogonal(p_left, p_right, p_bottom, p_top, p_zfar, p_zfar); + proj.set_orthogonal(p_left, p_right, p_bottom, p_top, p_znear, p_zfar); return proj; } diff --git a/thirdparty/godot-cpp/src/variant/quaternion.cpp b/thirdparty/godot-cpp/src/variant/quaternion.cpp index 9d4d838..c010850 100644 --- a/thirdparty/godot-cpp/src/variant/quaternion.cpp +++ b/thirdparty/godot-cpp/src/variant/quaternion.cpp @@ -81,6 +81,10 @@ bool Quaternion::is_equal_approx(const Quaternion &p_quaternion) const { return Math::is_equal_approx(x, p_quaternion.x) && Math::is_equal_approx(y, p_quaternion.y) && Math::is_equal_approx(z, p_quaternion.z) && Math::is_equal_approx(w, p_quaternion.w); } +bool Quaternion::is_finite() const { + return Math::is_finite(x) && Math::is_finite(y) && Math::is_finite(z) && Math::is_finite(w); +} + real_t Quaternion::length() const { return Math::sqrt(length_squared()); } diff --git a/thirdparty/godot-cpp/src/variant/rect2.cpp b/thirdparty/godot-cpp/src/variant/rect2.cpp index a70fee6..62730a9 100644 --- a/thirdparty/godot-cpp/src/variant/rect2.cpp +++ b/thirdparty/godot-cpp/src/variant/rect2.cpp @@ -40,6 +40,10 @@ bool Rect2::is_equal_approx(const Rect2 &p_rect) const { return position.is_equal_approx(p_rect.position) && size.is_equal_approx(p_rect.size); } +bool Rect2::is_finite() const { + return position.is_finite() && size.is_finite(); +} + bool Rect2::intersects_segment(const Point2 &p_from, const Point2 &p_to, Point2 *r_pos, Point2 *r_normal) const { #ifdef MATH_CHECKS if (unlikely(size.x < 0 || size.y < 0)) { diff --git a/thirdparty/godot-cpp/src/variant/transform2d.cpp b/thirdparty/godot-cpp/src/variant/transform2d.cpp index 530a99e..3b2c0b0 100644 --- a/thirdparty/godot-cpp/src/variant/transform2d.cpp +++ b/thirdparty/godot-cpp/src/variant/transform2d.cpp @@ -170,6 +170,10 @@ bool Transform2D::is_equal_approx(const Transform2D &p_transform) const { return columns[0].is_equal_approx(p_transform.columns[0]) && columns[1].is_equal_approx(p_transform.columns[1]) && columns[2].is_equal_approx(p_transform.columns[2]); } +bool Transform2D::is_finite() const { + return columns[0].is_finite() && columns[1].is_finite() && columns[2].is_finite(); +} + Transform2D Transform2D::looking_at(const Vector2 &p_target) const { Transform2D return_trans = Transform2D(get_rotation(), get_origin()); Vector2 target_position = affine_inverse().xform(p_target); diff --git a/thirdparty/godot-cpp/src/variant/transform3d.cpp b/thirdparty/godot-cpp/src/variant/transform3d.cpp index 1a4189e..d71e919 100644 --- a/thirdparty/godot-cpp/src/variant/transform3d.cpp +++ b/thirdparty/godot-cpp/src/variant/transform3d.cpp @@ -175,6 +175,10 @@ bool Transform3D::is_equal_approx(const Transform3D &p_transform) const { return basis.is_equal_approx(p_transform.basis) && origin.is_equal_approx(p_transform.origin); } +bool Transform3D::is_finite() const { + return basis.is_finite() && origin.is_finite(); +} + bool Transform3D::operator==(const Transform3D &p_transform) const { return (basis == p_transform.basis && origin == p_transform.origin); } diff --git a/thirdparty/godot-cpp/src/variant/vector2.cpp b/thirdparty/godot-cpp/src/variant/vector2.cpp index df87080..ca1ab8f 100644 --- a/thirdparty/godot-cpp/src/variant/vector2.cpp +++ b/thirdparty/godot-cpp/src/variant/vector2.cpp @@ -188,6 +188,10 @@ bool Vector2::is_zero_approx() const { return Math::is_zero_approx(x) && Math::is_zero_approx(y); } +bool Vector2::is_finite() const { + return Math::is_finite(x) && Math::is_finite(y); +} + Vector2::operator String() const { return "(" + String::num_real(x, false) + ", " + String::num_real(y, false) + ")"; } diff --git a/thirdparty/godot-cpp/src/variant/vector2i.cpp b/thirdparty/godot-cpp/src/variant/vector2i.cpp index c1c1ab0..226a061 100644 --- a/thirdparty/godot-cpp/src/variant/vector2i.cpp +++ b/thirdparty/godot-cpp/src/variant/vector2i.cpp @@ -49,14 +49,6 @@ double Vector2i::length() const { return Math::sqrt((double)length_squared()); } -int64_t Vector2i::distance_squared_to(const Vector2i &p_to) const { - return (p_to - *this).length_squared(); -} - -double Vector2i::distance_to(const Vector2i &p_to) const { - return (p_to - *this).length(); -} - Vector2i Vector2i::operator+(const Vector2i &p_v) const { return Vector2i(x + p_v.x, y + p_v.y); } diff --git a/thirdparty/godot-cpp/src/variant/vector3.cpp b/thirdparty/godot-cpp/src/variant/vector3.cpp index 6153658..9f04340 100644 --- a/thirdparty/godot-cpp/src/variant/vector3.cpp +++ b/thirdparty/godot-cpp/src/variant/vector3.cpp @@ -141,6 +141,10 @@ bool Vector3::is_zero_approx() const { return Math::is_zero_approx(x) && Math::is_zero_approx(y) && Math::is_zero_approx(z); } +bool Vector3::is_finite() const { + return Math::is_finite(x) && Math::is_finite(y) && Math::is_finite(z); +} + Vector3::operator String() const { return "(" + String::num_real(x, false) + ", " + String::num_real(y, false) + ", " + String::num_real(z, false) + ")"; } diff --git a/thirdparty/godot-cpp/src/variant/vector4.cpp b/thirdparty/godot-cpp/src/variant/vector4.cpp index 72c79d1..483545e 100644 --- a/thirdparty/godot-cpp/src/variant/vector4.cpp +++ b/thirdparty/godot-cpp/src/variant/vector4.cpp @@ -67,6 +67,10 @@ bool Vector4::is_zero_approx() const { return Math::is_zero_approx(x) && Math::is_zero_approx(y) && Math::is_zero_approx(z) && Math::is_zero_approx(w); } +bool Vector4::is_finite() const { + return Math::is_finite(x) && Math::is_finite(y) && Math::is_finite(z) && Math::is_finite(w); +} + real_t Vector4::length() const { return Math::sqrt(length_squared()); } diff --git a/thirdparty/godot-cpp/test/CMakeLists.txt b/thirdparty/godot-cpp/test/CMakeLists.txt index 67f3c5c..42ea6e0 100644 --- a/thirdparty/godot-cpp/test/CMakeLists.txt +++ b/thirdparty/godot-cpp/test/CMakeLists.txt @@ -1,5 +1,5 @@ +cmake_minimum_required(VERSION 3.13) project(godot-cpp-test) -cmake_minimum_required(VERSION 3.6) set(GODOT_GDEXTENSION_DIR ../gdextension/ CACHE STRING "Path to GDExtension interface header directory") set(CPP_BINDINGS_PATH ../ CACHE STRING "Path to C++ bindings") diff --git a/thirdparty/godot-cpp/test/project/example.gd b/thirdparty/godot-cpp/test/project/example.gd deleted file mode 100644 index b20280a..0000000 --- a/thirdparty/godot-cpp/test/project/example.gd +++ /dev/null @@ -1,5 +0,0 @@ -extends Example - -func _do_something_virtual(p_name, p_value): - custom_signal.emit(p_name, p_value) - return "Implemented" diff --git a/thirdparty/godot-cpp/test/project/main.gd b/thirdparty/godot-cpp/test/project/main.gd index 5cf483e..dc92a90 100644 --- a/thirdparty/godot-cpp/test/project/main.gd +++ b/thirdparty/godot-cpp/test/project/main.gd @@ -102,7 +102,6 @@ func _ready(): # mp_callable() with void method. var mp_callable: Callable = example.test_callable_mp() assert_equal(mp_callable.is_valid(), true) - assert_equal(mp_callable.get_argument_count(), 3) mp_callable.call(example, "void", 36) assert_equal(custom_signal_emitted, ["unbound_method1: Example - void", 36]) @@ -118,17 +117,14 @@ func _ready(): # mp_callable() with return value. var mp_callable_ret: Callable = example.test_callable_mp_ret() - assert_equal(mp_callable_ret.get_argument_count(), 3) assert_equal(mp_callable_ret.call(example, "test", 77), "unbound_method2: Example - test - 77") # mp_callable() with const method and return value. var mp_callable_retc: Callable = example.test_callable_mp_retc() - assert_equal(mp_callable_retc.get_argument_count(), 3) assert_equal(mp_callable_retc.call(example, "const", 101), "unbound_method3: Example - const - 101") # mp_callable_static() with void method. var mp_callable_static: Callable = example.test_callable_mp_static() - assert_equal(mp_callable_static.get_argument_count(), 3) mp_callable_static.call(example, "static", 83) assert_equal(custom_signal_emitted, ["unbound_static_method1: Example - static", 83]) @@ -144,7 +140,6 @@ func _ready(): # mp_callable_static() with return value. var mp_callable_static_ret: Callable = example.test_callable_mp_static_ret() - assert_equal(mp_callable_static_ret.get_argument_count(), 3) assert_equal(mp_callable_static_ret.call(example, "static-ret", 84), "unbound_static_method2: Example - static-ret - 84") # CallableCustom. @@ -155,7 +150,6 @@ func _ready(): assert_equal(custom_callable.hash(), 27); assert_equal(custom_callable.get_object(), null); assert_equal(custom_callable.get_method(), ""); - assert_equal(custom_callable.get_argument_count(), 2) assert_equal(str(custom_callable), ""); # PackedArray iterators @@ -191,6 +185,10 @@ func _ready(): control.queue_free() sprite.queue_free() + # Test that passing null for objects works as expected too. + var example_null : Example = null + assert_equal(example.test_object_cast_to_node(example_null), false) + # Test conversions to and from Variant. assert_equal(example.test_variant_vector2i_conversion(Vector2i(1, 1)), Vector2i(1, 1)) assert_equal(example.test_variant_vector2i_conversion(Vector2(1.0, 1.0)), Vector2i(1, 1)) @@ -248,9 +246,8 @@ func _ready(): assert_equal(new_example_ref.was_post_initialized(), true) assert_equal(example.test_post_initialize(), true) - # Test a virtual method defined in GDExtension and implemented in script. - assert_equal(example.test_virtual_implemented_in_script("Virtual", 939), "Implemented") - assert_equal(custom_signal_emitted, ["Virtual", 939]) + # Test that we can access an engine singleton. + assert_equal(example.test_use_engine_singleton(), OS.get_name()) # Test that notifications happen on both parent and child classes. var example_child = $ExampleChild diff --git a/thirdparty/godot-cpp/test/project/main.tscn b/thirdparty/godot-cpp/test/project/main.tscn index e786025..14e0aed 100644 --- a/thirdparty/godot-cpp/test/project/main.tscn +++ b/thirdparty/godot-cpp/test/project/main.tscn @@ -1,13 +1,11 @@ -[gd_scene load_steps=3 format=3 uid="uid://dmx2xuigcpvt4"] +[gd_scene load_steps=2 format=3 uid="uid://dmx2xuigcpvt4"] [ext_resource type="Script" path="res://main.gd" id="1_qesh5"] -[ext_resource type="Script" path="res://example.gd" id="2_jju25"] [node name="Node" type="Node"] script = ExtResource("1_qesh5") [node name="Example" type="Example" parent="."] -script = ExtResource("2_jju25") [node name="ExampleMin" type="ExampleMin" parent="Example"] layout_mode = 0 diff --git a/thirdparty/godot-cpp/test/src/example.cpp b/thirdparty/godot-cpp/test/src/example.cpp index 3ec8bca..0520f99 100644 --- a/thirdparty/godot-cpp/test/src/example.cpp +++ b/thirdparty/godot-cpp/test/src/example.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include using namespace godot; @@ -49,11 +50,6 @@ class MyCallableCustom : public CallableCustom { return ObjectID(); } - virtual int get_argument_count(bool &r_is_valid) const { - r_is_valid = true; - return 2; - } - virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, GDExtensionCallError &r_call_error) const { r_return_value = "Hi"; r_call_error.error = GDEXTENSION_CALL_OK; @@ -236,8 +232,7 @@ void Example::_bind_methods() { ClassDB::bind_method(D_METHOD("callable_bind"), &Example::callable_bind); ClassDB::bind_method(D_METHOD("test_post_initialize"), &Example::test_post_initialize); - GDVIRTUAL_BIND(_do_something_virtual, "name", "value"); - ClassDB::bind_method(D_METHOD("test_virtual_implemented_in_script"), &Example::test_virtual_implemented_in_script); + ClassDB::bind_method(D_METHOD("test_use_engine_singleton"), &Example::test_use_engine_singleton); ClassDB::bind_static_method("Example", D_METHOD("test_static", "a", "b"), &Example::test_static); ClassDB::bind_static_method("Example", D_METHOD("test_static2"), &Example::test_static2); @@ -663,30 +658,6 @@ void ExampleChild::_notification(int p_what) { } } -String Example::test_virtual_implemented_in_script(const String &p_name, int p_value) { - String ret; - if (GDVIRTUAL_CALL(_do_something_virtual, p_name, p_value, ret)) { - return ret; - } - return "Unimplemented"; -} - -void ExampleRuntime::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_prop_value", "value"), &ExampleRuntime::set_prop_value); - ClassDB::bind_method(D_METHOD("get_prop_value"), &ExampleRuntime::get_prop_value); - ADD_PROPERTY(PropertyInfo(Variant::INT, "prop_value"), "set_prop_value", "get_prop_value"); -} - -void ExampleRuntime::set_prop_value(int p_prop_value) { - prop_value = p_prop_value; -} - -int ExampleRuntime::get_prop_value() const { - return prop_value; -} - -ExampleRuntime::ExampleRuntime() { -} - -ExampleRuntime::~ExampleRuntime() { +String Example::test_use_engine_singleton() const { + return OS::get_singleton()->get_name(); } diff --git a/thirdparty/godot-cpp/test/src/example.h b/thirdparty/godot-cpp/test/src/example.h index 0ad9493..fba01a4 100644 --- a/thirdparty/godot-cpp/test/src/example.h +++ b/thirdparty/godot-cpp/test/src/example.h @@ -24,7 +24,6 @@ #include #include -#include using namespace godot; @@ -184,8 +183,7 @@ class Example : public Control { virtual bool _has_point(const Vector2 &point) const override; virtual void _input(const Ref &event) override; - GDVIRTUAL2R(String, _do_something_virtual, String, int); - String test_virtual_implemented_in_script(const String &p_name, int p_value); + String test_use_engine_singleton() const; }; VARIANT_ENUM_CAST(Example::Constants); @@ -246,20 +244,4 @@ class ExampleChild : public ExampleBase { void _notification(int p_what); }; -class ExampleRuntime : public Node { - GDCLASS(ExampleRuntime, Node); - - int prop_value = 12; - -protected: - static void _bind_methods(); - -public: - void set_prop_value(int p_prop_value); - int get_prop_value() const; - - ExampleRuntime(); - ~ExampleRuntime(); -}; - #endif // EXAMPLE_CLASS_H diff --git a/thirdparty/godot-cpp/test/src/register_types.cpp b/thirdparty/godot-cpp/test/src/register_types.cpp index cbede66..04bd728 100644 --- a/thirdparty/godot-cpp/test/src/register_types.cpp +++ b/thirdparty/godot-cpp/test/src/register_types.cpp @@ -21,15 +21,14 @@ void initialize_example_module(ModuleInitializationLevel p_level) { return; } - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(true); - ClassDB::register_abstract_class(); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_class(); - ClassDB::register_runtime_class(); + GDREGISTER_CLASS(ExampleRef); + GDREGISTER_CLASS(ExampleMin); + GDREGISTER_CLASS(Example); + GDREGISTER_VIRTUAL_CLASS(ExampleVirtual); + GDREGISTER_ABSTRACT_CLASS(ExampleAbstractBase); + GDREGISTER_CLASS(ExampleConcrete); + GDREGISTER_CLASS(ExampleBase); + GDREGISTER_CLASS(ExampleChild); } void uninitialize_example_module(ModuleInitializationLevel p_level) { diff --git a/thirdparty/godot-cpp/tools/godotcpp.py b/thirdparty/godot-cpp/tools/godotcpp.py index 5ba2742..13a57e9 100644 --- a/thirdparty/godot-cpp/tools/godotcpp.py +++ b/thirdparty/godot-cpp/tools/godotcpp.py @@ -3,6 +3,7 @@ from SCons.Variables import EnumVariable, PathVariable, BoolVariable from SCons.Variables.BoolVariable import _text2bool from SCons.Tool import Tool +from SCons.Action import Action from SCons.Builder import Builder from SCons.Errors import UserError from SCons.Script import ARGUMENTS @@ -66,6 +67,67 @@ def get_custom_platforms(env): return platforms +def no_verbose(env): + colors = {} + + # Colors are disabled in non-TTY environments such as pipes. This means + # that if output is redirected to a file, it will not contain color codes + if sys.stdout.isatty(): + colors["blue"] = "\033[0;94m" + colors["bold_blue"] = "\033[1;94m" + colors["reset"] = "\033[0m" + else: + colors["blue"] = "" + colors["bold_blue"] = "" + colors["reset"] = "" + + # There is a space before "..." to ensure that source file names can be + # Ctrl + clicked in the VS Code terminal. + compile_source_message = "{}Compiling {}$SOURCE{} ...{}".format( + colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"] + ) + java_compile_source_message = "{}Compiling {}$SOURCE{} ...{}".format( + colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"] + ) + compile_shared_source_message = "{}Compiling shared {}$SOURCE{} ...{}".format( + colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"] + ) + link_program_message = "{}Linking Program {}$TARGET{} ...{}".format( + colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"] + ) + link_library_message = "{}Linking Static Library {}$TARGET{} ...{}".format( + colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"] + ) + ranlib_library_message = "{}Ranlib Library {}$TARGET{} ...{}".format( + colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"] + ) + link_shared_library_message = "{}Linking Shared Library {}$TARGET{} ...{}".format( + colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"] + ) + java_library_message = "{}Creating Java Archive {}$TARGET{} ...{}".format( + colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"] + ) + compiled_resource_message = "{}Creating Compiled Resource {}$TARGET{} ...{}".format( + colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"] + ) + generated_file_message = "{}Generating {}$TARGET{} ...{}".format( + colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"] + ) + + env.Append(CXXCOMSTR=[compile_source_message]) + env.Append(CCCOMSTR=[compile_source_message]) + env.Append(SHCCCOMSTR=[compile_shared_source_message]) + env.Append(SHCXXCOMSTR=[compile_shared_source_message]) + env.Append(ARCOMSTR=[link_library_message]) + env.Append(RANLIBCOMSTR=[ranlib_library_message]) + env.Append(SHLINKCOMSTR=[link_shared_library_message]) + env.Append(LINKCOMSTR=[link_program_message]) + env.Append(JARCOMSTR=[java_library_message]) + env.Append(JAVACCOMSTR=[java_compile_source_message]) + env.Append(RCCOMSTR=[compiled_resource_message]) + env.Append(GENCOMSTR=[generated_file_message]) + + platforms = ["linux", "macos", "windows", "android", "ios", "web"] # CPU architecture options. @@ -254,6 +316,7 @@ def options(opts, env): ) opts.Add(BoolVariable("debug_symbols", "Build with debugging symbols", True)) opts.Add(BoolVariable("dev_build", "Developer build with dev-only debugging code (DEV_ENABLED)", False)) + opts.Add(BoolVariable("verbose", "Enable verbose output for the compilation", False)) # Add platform options (custom tools can override platforms) for pl in sorted(set(platforms + custom_platforms)): @@ -381,8 +444,16 @@ def generate(env): env.Tool("compilation_db") env.Alias("compiledb", env.CompilationDatabase(normalize_path(env["compiledb_file"], env))) + # Formatting + if not env["verbose"]: + no_verbose(env) + # Builders - env.Append(BUILDERS={"GodotCPPBindings": Builder(action=scons_generate_bindings, emitter=scons_emit_files)}) + env.Append( + BUILDERS={ + "GodotCPPBindings": Builder(action=Action(scons_generate_bindings, "$GENCOMSTR"), emitter=scons_emit_files) + } + ) env.AddMethod(_godot_cpp, "GodotCPP") diff --git a/thirdparty/jitter.cpp b/thirdparty/jitter.cpp index 018b1d8..81b0bef 100644 --- a/thirdparty/jitter.cpp +++ b/thirdparty/jitter.cpp @@ -81,7 +81,9 @@ */ #include "jitter.h" -#include "core/error/error_macros.h" +#include +#include +#include void VoipJitterBuffer::jitter_buffer_reset(Ref jitter) { if (jitter.is_null()) { @@ -108,7 +110,7 @@ void VoipJitterBuffer::jitter_buffer_reset(Ref jitter) { tb_init(jitter->_tb[i]); jitter->timeBuffers[i] = jitter->_tb[i]; } - print_verbose("reset"); + UtilityFunctions::print_verbose("reset"); } int VoipJitterBuffer::jitter_buffer_ctl(Ref jitter, int request, int32_t *ptr) { @@ -286,7 +288,7 @@ void VoipJitterBuffer::jitter_buffer_put(Ref jitter, const Refpackets[i_jitter] != nullptr) { jitter->packets[i_jitter]->get_data().clear(); } - print_verbose(vformat("Buffer is full, discarding earliest frame %d (currently at %d)", packet->get_timestamp(), jitter->pointer_timestamp)); + UtilityFunctions::print_verbose(vformat("Buffer is full, discarding earliest frame %d (currently at %d)", packet->get_timestamp(), jitter->pointer_timestamp)); } // Check if the packet object is valid before copying data and setting properties @@ -366,7 +368,7 @@ Array VoipJitterBuffer::jitter_buffer_get(Ref jitter, Refpointer_timestamp += jitter->interp_requested; packet->get_data().clear(); - print_verbose("Deferred interpolate"); + UtilityFunctions::print_verbose("Deferred interpolate"); jitter->interp_requested = 0; @@ -499,10 +501,10 @@ Array VoipJitterBuffer::jitter_buffer_get(Ref jitter, Reflost_count++; - print_verbose("m"); - print_verbose(vformat("lost_count = %d\n", jitter->lost_count)); + UtilityFunctions::print_verbose("m"); + UtilityFunctions::print_verbose(vformat("lost_count = %d\n", jitter->lost_count)); opt = compute_opt_delay(jitter); @@ -523,7 +525,7 @@ Array VoipJitterBuffer::jitter_buffer_get(Ref jitter, Refpointer_timestamp -= jitter->delay_step;*/ - print_verbose(vformat("Forced to interpolate.")); + UtilityFunctions::print_verbose(vformat("Forced to interpolate.")); } else { /* Normal packet loss */ packet->set_timestamp(jitter->pointer_timestamp); @@ -722,7 +724,7 @@ int16_t VoipJitterBuffer::compute_opt_delay(Ref jitter) { late_factor = jitter->auto_tradeoff * jitter->window_size / tot_count; } - print_verbose(vformat("late_factor = %f\n", late_factor)); + UtilityFunctions::print_verbose(vformat("late_factor = %f\n", late_factor)); for (i = 0; i < MAX_BUFFERS; i++) { pos[i] = 0; } @@ -773,7 +775,7 @@ int16_t VoipJitterBuffer::compute_opt_delay(Ref jitter) { deltaT = best - worst; /* This is a default "automatic latency tradeoff" when none is provided */ jitter->auto_tradeoff = 1 + deltaT / TOP_DELAY; - print_verbose(vformat("auto_tradeoff = %d (%d %d %d)\n", jitter->auto_tradeoff, best, worst, i)); + UtilityFunctions::print_verbose(vformat("auto_tradeoff = %d (%d %d %d)\n", jitter->auto_tradeoff, best, worst, i)); /* FIXME: Compute a short-term estimate too and combine with the long-term one */ @@ -797,7 +799,7 @@ void VoipJitterBuffer::update_timings(Ref jitter, int32_t timing) /* If the current sub-window is full, perform a rotation and discard oldest sub-window */ if (jitter->timeBuffers[0]->get_curr_count() >= jitter->subwindow_size) { int i; - print_verbose("Rotate buffer"); + UtilityFunctions::print_verbose("Rotate buffer"); TimingBuffer *tmp = jitter->timeBuffers[MAX_BUFFERS - 1]; for (i = MAX_BUFFERS - 1; i >= 1; i--) { jitter->timeBuffers[i] = jitter->timeBuffers[i - 1]; @@ -828,16 +830,16 @@ int32_t VoipJitterBuffer::_jitter_buffer_update_delay(Ref jitter, return 0; } int16_t opt = compute_opt_delay(jitter); - print_verbose(vformat("opt adjustment is %d ", opt)); + UtilityFunctions::print_verbose(vformat("opt adjustment is %d ", opt)); if (opt < 0) { shift_timings(jitter, -opt); jitter->pointer_timestamp += opt; jitter->interp_requested = -opt; - print_verbose(vformat("Decision to interpolate %d samples\n", -opt)); + UtilityFunctions::print_verbose(vformat("Decision to interpolate %d samples\n", -opt)); } else if (opt > 0) { shift_timings(jitter, -opt); jitter->pointer_timestamp += opt; - print_verbose(vformat("Decision to drop %d samples\n", opt)); + UtilityFunctions::print_verbose(vformat("Decision to drop %d samples\n", opt)); } return opt; } diff --git a/thirdparty/jitter.h b/thirdparty/jitter.h index 8b487b4..018aede 100644 --- a/thirdparty/jitter.h +++ b/thirdparty/jitter.h @@ -93,8 +93,10 @@ #include #include -#include "core/object/ref_counted.h" -#include "core/variant/variant.h" +#include +#include +#include +#include #define speex_assert(cond) \ { \ @@ -118,7 +120,9 @@ #define MAX_BUFFERS 3 #define TOP_DELAY 40 -#include "core/variant/variant.h" +#include + +using namespace godot; /** Definition of an incoming packet */ class JitterBufferPacket : public RefCounted { @@ -267,7 +271,9 @@ class JitterBuffer : public RefCounted { } ~JitterBuffer() { for (int i = 0; i < MAX_BUFFERS; ++i) { - memdelete_notnull(_tb[i]); + if (_tb[i]) { + memdelete(_tb[i]); + } _tb[i] = nullptr; timeBuffers[i] = nullptr; } diff --git a/thirdparty/libogg/COPYING b/thirdparty/libogg/COPYING new file mode 100644 index 0000000..6111c6c --- /dev/null +++ b/thirdparty/libogg/COPYING @@ -0,0 +1,28 @@ +Copyright (c) 2002, Xiph.org Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +- Neither the name of the Xiph.org Foundation nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/thirdparty/libogg/bitwise.c b/thirdparty/libogg/bitwise.c new file mode 100644 index 0000000..f5ef791 --- /dev/null +++ b/thirdparty/libogg/bitwise.c @@ -0,0 +1,1087 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE Ogg CONTAINER SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2014 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: packing variable sized words into an octet stream + + ********************************************************************/ + +/* We're 'LSb' endian; if we write a word but read individual bits, + then we'll read the lsb first */ + +#include +#include +#include +#include + +#define BUFFER_INCREMENT 256 + +static const unsigned long mask[]= +{0x00000000,0x00000001,0x00000003,0x00000007,0x0000000f, + 0x0000001f,0x0000003f,0x0000007f,0x000000ff,0x000001ff, + 0x000003ff,0x000007ff,0x00000fff,0x00001fff,0x00003fff, + 0x00007fff,0x0000ffff,0x0001ffff,0x0003ffff,0x0007ffff, + 0x000fffff,0x001fffff,0x003fffff,0x007fffff,0x00ffffff, + 0x01ffffff,0x03ffffff,0x07ffffff,0x0fffffff,0x1fffffff, + 0x3fffffff,0x7fffffff,0xffffffff }; + +static const unsigned int mask8B[]= +{0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; + +void oggpack_writeinit(oggpack_buffer *b){ + memset(b,0,sizeof(*b)); + b->ptr=b->buffer=_ogg_malloc(BUFFER_INCREMENT); + b->buffer[0]='\0'; + b->storage=BUFFER_INCREMENT; +} + +void oggpackB_writeinit(oggpack_buffer *b){ + oggpack_writeinit(b); +} + +int oggpack_writecheck(oggpack_buffer *b){ + if(!b->ptr || !b->storage)return -1; + return 0; +} + +int oggpackB_writecheck(oggpack_buffer *b){ + return oggpack_writecheck(b); +} + +void oggpack_writetrunc(oggpack_buffer *b,long bits){ + long bytes=bits>>3; + if(b->ptr){ + bits-=bytes*8; + b->ptr=b->buffer+bytes; + b->endbit=bits; + b->endbyte=bytes; + *b->ptr&=mask[bits]; + } +} + +void oggpackB_writetrunc(oggpack_buffer *b,long bits){ + long bytes=bits>>3; + if(b->ptr){ + bits-=bytes*8; + b->ptr=b->buffer+bytes; + b->endbit=bits; + b->endbyte=bytes; + *b->ptr&=mask8B[bits]; + } +} + +/* Takes only up to 32 bits. */ +void oggpack_write(oggpack_buffer *b,unsigned long value,int bits){ + if(bits<0 || bits>32) goto err; + if(b->endbyte>=b->storage-4){ + void *ret; + if(!b->ptr)return; + if(b->storage>LONG_MAX-BUFFER_INCREMENT) goto err; + ret=_ogg_realloc(b->buffer,b->storage+BUFFER_INCREMENT); + if(!ret) goto err; + b->buffer=ret; + b->storage+=BUFFER_INCREMENT; + b->ptr=b->buffer+b->endbyte; + } + + value&=mask[bits]; + bits+=b->endbit; + + b->ptr[0]|=value<endbit; + + if(bits>=8){ + b->ptr[1]=(unsigned char)(value>>(8-b->endbit)); + if(bits>=16){ + b->ptr[2]=(unsigned char)(value>>(16-b->endbit)); + if(bits>=24){ + b->ptr[3]=(unsigned char)(value>>(24-b->endbit)); + if(bits>=32){ + if(b->endbit) + b->ptr[4]=(unsigned char)(value>>(32-b->endbit)); + else + b->ptr[4]=0; + } + } + } + } + + b->endbyte+=bits/8; + b->ptr+=bits/8; + b->endbit=bits&7; + return; + err: + oggpack_writeclear(b); +} + +/* Takes only up to 32 bits. */ +void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits){ + if(bits<0 || bits>32) goto err; + if(b->endbyte>=b->storage-4){ + void *ret; + if(!b->ptr)return; + if(b->storage>LONG_MAX-BUFFER_INCREMENT) goto err; + ret=_ogg_realloc(b->buffer,b->storage+BUFFER_INCREMENT); + if(!ret) goto err; + b->buffer=ret; + b->storage+=BUFFER_INCREMENT; + b->ptr=b->buffer+b->endbyte; + } + + value=(value&mask[bits])<<(32-bits); + bits+=b->endbit; + + b->ptr[0]|=value>>(24+b->endbit); + + if(bits>=8){ + b->ptr[1]=(unsigned char)(value>>(16+b->endbit)); + if(bits>=16){ + b->ptr[2]=(unsigned char)(value>>(8+b->endbit)); + if(bits>=24){ + b->ptr[3]=(unsigned char)(value>>(b->endbit)); + if(bits>=32){ + if(b->endbit) + b->ptr[4]=(unsigned char)(value<<(8-b->endbit)); + else + b->ptr[4]=0; + } + } + } + } + + b->endbyte+=bits/8; + b->ptr+=bits/8; + b->endbit=bits&7; + return; + err: + oggpack_writeclear(b); +} + +void oggpack_writealign(oggpack_buffer *b){ + int bits=8-b->endbit; + if(bits<8) + oggpack_write(b,0,bits); +} + +void oggpackB_writealign(oggpack_buffer *b){ + int bits=8-b->endbit; + if(bits<8) + oggpackB_write(b,0,bits); +} + +static void oggpack_writecopy_helper(oggpack_buffer *b, + void *source, + long bits, + void (*w)(oggpack_buffer *, + unsigned long, + int), + int msb){ + unsigned char *ptr=(unsigned char *)source; + + long bytes=bits/8; + long pbytes=(b->endbit+bits)/8; + bits-=bytes*8; + + /* expand storage up-front */ + if(b->endbyte+pbytes>=b->storage){ + void *ret; + if(!b->ptr) goto err; + if(b->storage>b->endbyte+pbytes+BUFFER_INCREMENT) goto err; + b->storage=b->endbyte+pbytes+BUFFER_INCREMENT; + ret=_ogg_realloc(b->buffer,b->storage); + if(!ret) goto err; + b->buffer=ret; + b->ptr=b->buffer+b->endbyte; + } + + /* copy whole octets */ + if(b->endbit){ + int i; + /* unaligned copy. Do it the hard way. */ + for(i=0;iptr,source,bytes); + b->ptr+=bytes; + b->endbyte+=bytes; + *b->ptr=0; + } + + /* copy trailing bits */ + if(bits){ + if(msb) + w(b,(unsigned long)(ptr[bytes]>>(8-bits)),bits); + else + w(b,(unsigned long)(ptr[bytes]),bits); + } + return; + err: + oggpack_writeclear(b); +} + +void oggpack_writecopy(oggpack_buffer *b,void *source,long bits){ + oggpack_writecopy_helper(b,source,bits,oggpack_write,0); +} + +void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits){ + oggpack_writecopy_helper(b,source,bits,oggpackB_write,1); +} + +void oggpack_reset(oggpack_buffer *b){ + if(!b->ptr)return; + b->ptr=b->buffer; + b->buffer[0]=0; + b->endbit=b->endbyte=0; +} + +void oggpackB_reset(oggpack_buffer *b){ + oggpack_reset(b); +} + +void oggpack_writeclear(oggpack_buffer *b){ + if(b->buffer)_ogg_free(b->buffer); + memset(b,0,sizeof(*b)); +} + +void oggpackB_writeclear(oggpack_buffer *b){ + oggpack_writeclear(b); +} + +void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes){ + memset(b,0,sizeof(*b)); + b->buffer=b->ptr=buf; + b->storage=bytes; +} + +void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes){ + oggpack_readinit(b,buf,bytes); +} + +/* Read in bits without advancing the bitptr; bits <= 32 */ +long oggpack_look(oggpack_buffer *b,int bits){ + unsigned long ret; + unsigned long m; + + if(bits<0 || bits>32) return -1; + m=mask[bits]; + bits+=b->endbit; + + if(b->endbyte >= b->storage-4){ + /* not the main path */ + if(b->endbyte > b->storage-((bits+7)>>3)) return -1; + /* special case to avoid reading b->ptr[0], which might be past the end of + the buffer; also skips some useless accounting */ + else if(!bits)return(0L); + } + + ret=b->ptr[0]>>b->endbit; + if(bits>8){ + ret|=b->ptr[1]<<(8-b->endbit); + if(bits>16){ + ret|=b->ptr[2]<<(16-b->endbit); + if(bits>24){ + ret|=b->ptr[3]<<(24-b->endbit); + if(bits>32 && b->endbit) + ret|=b->ptr[4]<<(32-b->endbit); + } + } + } + return(m&ret); +} + +/* Read in bits without advancing the bitptr; bits <= 32 */ +long oggpackB_look(oggpack_buffer *b,int bits){ + unsigned long ret; + int m=32-bits; + + if(m<0 || m>32) return -1; + bits+=b->endbit; + + if(b->endbyte >= b->storage-4){ + /* not the main path */ + if(b->endbyte > b->storage-((bits+7)>>3)) return -1; + /* special case to avoid reading b->ptr[0], which might be past the end of + the buffer; also skips some useless accounting */ + else if(!bits)return(0L); + } + + ret=b->ptr[0]<<(24+b->endbit); + if(bits>8){ + ret|=b->ptr[1]<<(16+b->endbit); + if(bits>16){ + ret|=b->ptr[2]<<(8+b->endbit); + if(bits>24){ + ret|=b->ptr[3]<<(b->endbit); + if(bits>32 && b->endbit) + ret|=b->ptr[4]>>(8-b->endbit); + } + } + } + return ((ret&0xffffffff)>>(m>>1))>>((m+1)>>1); +} + +long oggpack_look1(oggpack_buffer *b){ + if(b->endbyte>=b->storage)return(-1); + return((b->ptr[0]>>b->endbit)&1); +} + +long oggpackB_look1(oggpack_buffer *b){ + if(b->endbyte>=b->storage)return(-1); + return((b->ptr[0]>>(7-b->endbit))&1); +} + +void oggpack_adv(oggpack_buffer *b,int bits){ + bits+=b->endbit; + + if(b->endbyte > b->storage-((bits+7)>>3)) goto overflow; + + b->ptr+=bits/8; + b->endbyte+=bits/8; + b->endbit=bits&7; + return; + + overflow: + b->ptr=NULL; + b->endbyte=b->storage; + b->endbit=1; +} + +void oggpackB_adv(oggpack_buffer *b,int bits){ + oggpack_adv(b,bits); +} + +void oggpack_adv1(oggpack_buffer *b){ + if(++(b->endbit)>7){ + b->endbit=0; + b->ptr++; + b->endbyte++; + } +} + +void oggpackB_adv1(oggpack_buffer *b){ + oggpack_adv1(b); +} + +/* bits <= 32 */ +long oggpack_read(oggpack_buffer *b,int bits){ + long ret; + unsigned long m; + + if(bits<0 || bits>32) goto err; + m=mask[bits]; + bits+=b->endbit; + + if(b->endbyte >= b->storage-4){ + /* not the main path */ + if(b->endbyte > b->storage-((bits+7)>>3)) goto overflow; + /* special case to avoid reading b->ptr[0], which might be past the end of + the buffer; also skips some useless accounting */ + else if(!bits)return(0L); + } + + ret=b->ptr[0]>>b->endbit; + if(bits>8){ + ret|=b->ptr[1]<<(8-b->endbit); + if(bits>16){ + ret|=b->ptr[2]<<(16-b->endbit); + if(bits>24){ + ret|=b->ptr[3]<<(24-b->endbit); + if(bits>32 && b->endbit){ + ret|=b->ptr[4]<<(32-b->endbit); + } + } + } + } + ret&=m; + b->ptr+=bits/8; + b->endbyte+=bits/8; + b->endbit=bits&7; + return ret; + + overflow: + err: + b->ptr=NULL; + b->endbyte=b->storage; + b->endbit=1; + return -1L; +} + +/* bits <= 32 */ +long oggpackB_read(oggpack_buffer *b,int bits){ + long ret; + long m=32-bits; + + if(m<0 || m>32) goto err; + bits+=b->endbit; + + if(b->endbyte+4>=b->storage){ + /* not the main path */ + if(b->endbyte > b->storage-((bits+7)>>3)) goto overflow; + /* special case to avoid reading b->ptr[0], which might be past the end of + the buffer; also skips some useless accounting */ + else if(!bits)return(0L); + } + + ret=b->ptr[0]<<(24+b->endbit); + if(bits>8){ + ret|=b->ptr[1]<<(16+b->endbit); + if(bits>16){ + ret|=b->ptr[2]<<(8+b->endbit); + if(bits>24){ + ret|=b->ptr[3]<<(b->endbit); + if(bits>32 && b->endbit) + ret|=b->ptr[4]>>(8-b->endbit); + } + } + } + ret=((ret&0xffffffffUL)>>(m>>1))>>((m+1)>>1); + + b->ptr+=bits/8; + b->endbyte+=bits/8; + b->endbit=bits&7; + return ret; + + overflow: + err: + b->ptr=NULL; + b->endbyte=b->storage; + b->endbit=1; + return -1L; +} + +long oggpack_read1(oggpack_buffer *b){ + long ret; + + if(b->endbyte >= b->storage) goto overflow; + ret=(b->ptr[0]>>b->endbit)&1; + + b->endbit++; + if(b->endbit>7){ + b->endbit=0; + b->ptr++; + b->endbyte++; + } + return ret; + + overflow: + b->ptr=NULL; + b->endbyte=b->storage; + b->endbit=1; + return -1L; +} + +long oggpackB_read1(oggpack_buffer *b){ + long ret; + + if(b->endbyte >= b->storage) goto overflow; + ret=(b->ptr[0]>>(7-b->endbit))&1; + + b->endbit++; + if(b->endbit>7){ + b->endbit=0; + b->ptr++; + b->endbyte++; + } + return ret; + + overflow: + b->ptr=NULL; + b->endbyte=b->storage; + b->endbit=1; + return -1L; +} + +long oggpack_bytes(oggpack_buffer *b){ + return(b->endbyte+(b->endbit+7)/8); +} + +long oggpack_bits(oggpack_buffer *b){ + return(b->endbyte*8+b->endbit); +} + +long oggpackB_bytes(oggpack_buffer *b){ + return oggpack_bytes(b); +} + +long oggpackB_bits(oggpack_buffer *b){ + return oggpack_bits(b); +} + +unsigned char *oggpack_get_buffer(oggpack_buffer *b){ + return(b->buffer); +} + +unsigned char *oggpackB_get_buffer(oggpack_buffer *b){ + return oggpack_get_buffer(b); +} + +/* Self test of the bitwise routines; everything else is based on + them, so they damned well better be solid. */ + +#ifdef _V_SELFTEST +#include + +static int ilog(unsigned int v){ + int ret=0; + while(v){ + ret++; + v>>=1; + } + return(ret); +} + +oggpack_buffer o; +oggpack_buffer r; + +void report(char *in){ + fprintf(stderr,"%s",in); + exit(1); +} + +void cliptest(unsigned long *b,int vals,int bits,int *comp,int compsize){ + long bytes,i; + unsigned char *buffer; + + oggpack_reset(&o); + for(i=0;i + +static const ogg_uint32_t crc_lookup[8][256]={ +{0x00000000,0x04c11db7,0x09823b6e,0x0d4326d9,0x130476dc,0x17c56b6b,0x1a864db2,0x1e475005, + 0x2608edb8,0x22c9f00f,0x2f8ad6d6,0x2b4bcb61,0x350c9b64,0x31cd86d3,0x3c8ea00a,0x384fbdbd, + 0x4c11db70,0x48d0c6c7,0x4593e01e,0x4152fda9,0x5f15adac,0x5bd4b01b,0x569796c2,0x52568b75, + 0x6a1936c8,0x6ed82b7f,0x639b0da6,0x675a1011,0x791d4014,0x7ddc5da3,0x709f7b7a,0x745e66cd, + 0x9823b6e0,0x9ce2ab57,0x91a18d8e,0x95609039,0x8b27c03c,0x8fe6dd8b,0x82a5fb52,0x8664e6e5, + 0xbe2b5b58,0xbaea46ef,0xb7a96036,0xb3687d81,0xad2f2d84,0xa9ee3033,0xa4ad16ea,0xa06c0b5d, + 0xd4326d90,0xd0f37027,0xddb056fe,0xd9714b49,0xc7361b4c,0xc3f706fb,0xceb42022,0xca753d95, + 0xf23a8028,0xf6fb9d9f,0xfbb8bb46,0xff79a6f1,0xe13ef6f4,0xe5ffeb43,0xe8bccd9a,0xec7dd02d, + 0x34867077,0x30476dc0,0x3d044b19,0x39c556ae,0x278206ab,0x23431b1c,0x2e003dc5,0x2ac12072, + 0x128e9dcf,0x164f8078,0x1b0ca6a1,0x1fcdbb16,0x018aeb13,0x054bf6a4,0x0808d07d,0x0cc9cdca, + 0x7897ab07,0x7c56b6b0,0x71159069,0x75d48dde,0x6b93dddb,0x6f52c06c,0x6211e6b5,0x66d0fb02, + 0x5e9f46bf,0x5a5e5b08,0x571d7dd1,0x53dc6066,0x4d9b3063,0x495a2dd4,0x44190b0d,0x40d816ba, + 0xaca5c697,0xa864db20,0xa527fdf9,0xa1e6e04e,0xbfa1b04b,0xbb60adfc,0xb6238b25,0xb2e29692, + 0x8aad2b2f,0x8e6c3698,0x832f1041,0x87ee0df6,0x99a95df3,0x9d684044,0x902b669d,0x94ea7b2a, + 0xe0b41de7,0xe4750050,0xe9362689,0xedf73b3e,0xf3b06b3b,0xf771768c,0xfa325055,0xfef34de2, + 0xc6bcf05f,0xc27dede8,0xcf3ecb31,0xcbffd686,0xd5b88683,0xd1799b34,0xdc3abded,0xd8fba05a, + 0x690ce0ee,0x6dcdfd59,0x608edb80,0x644fc637,0x7a089632,0x7ec98b85,0x738aad5c,0x774bb0eb, + 0x4f040d56,0x4bc510e1,0x46863638,0x42472b8f,0x5c007b8a,0x58c1663d,0x558240e4,0x51435d53, + 0x251d3b9e,0x21dc2629,0x2c9f00f0,0x285e1d47,0x36194d42,0x32d850f5,0x3f9b762c,0x3b5a6b9b, + 0x0315d626,0x07d4cb91,0x0a97ed48,0x0e56f0ff,0x1011a0fa,0x14d0bd4d,0x19939b94,0x1d528623, + 0xf12f560e,0xf5ee4bb9,0xf8ad6d60,0xfc6c70d7,0xe22b20d2,0xe6ea3d65,0xeba91bbc,0xef68060b, + 0xd727bbb6,0xd3e6a601,0xdea580d8,0xda649d6f,0xc423cd6a,0xc0e2d0dd,0xcda1f604,0xc960ebb3, + 0xbd3e8d7e,0xb9ff90c9,0xb4bcb610,0xb07daba7,0xae3afba2,0xaafbe615,0xa7b8c0cc,0xa379dd7b, + 0x9b3660c6,0x9ff77d71,0x92b45ba8,0x9675461f,0x8832161a,0x8cf30bad,0x81b02d74,0x857130c3, + 0x5d8a9099,0x594b8d2e,0x5408abf7,0x50c9b640,0x4e8ee645,0x4a4ffbf2,0x470cdd2b,0x43cdc09c, + 0x7b827d21,0x7f436096,0x7200464f,0x76c15bf8,0x68860bfd,0x6c47164a,0x61043093,0x65c52d24, + 0x119b4be9,0x155a565e,0x18197087,0x1cd86d30,0x029f3d35,0x065e2082,0x0b1d065b,0x0fdc1bec, + 0x3793a651,0x3352bbe6,0x3e119d3f,0x3ad08088,0x2497d08d,0x2056cd3a,0x2d15ebe3,0x29d4f654, + 0xc5a92679,0xc1683bce,0xcc2b1d17,0xc8ea00a0,0xd6ad50a5,0xd26c4d12,0xdf2f6bcb,0xdbee767c, + 0xe3a1cbc1,0xe760d676,0xea23f0af,0xeee2ed18,0xf0a5bd1d,0xf464a0aa,0xf9278673,0xfde69bc4, + 0x89b8fd09,0x8d79e0be,0x803ac667,0x84fbdbd0,0x9abc8bd5,0x9e7d9662,0x933eb0bb,0x97ffad0c, + 0xafb010b1,0xab710d06,0xa6322bdf,0xa2f33668,0xbcb4666d,0xb8757bda,0xb5365d03,0xb1f740b4}, + +{0x00000000,0xd219c1dc,0xa0f29e0f,0x72eb5fd3,0x452421a9,0x973de075,0xe5d6bfa6,0x37cf7e7a, + 0x8a484352,0x5851828e,0x2abadd5d,0xf8a31c81,0xcf6c62fb,0x1d75a327,0x6f9efcf4,0xbd873d28, + 0x10519b13,0xc2485acf,0xb0a3051c,0x62bac4c0,0x5575baba,0x876c7b66,0xf58724b5,0x279ee569, + 0x9a19d841,0x4800199d,0x3aeb464e,0xe8f28792,0xdf3df9e8,0x0d243834,0x7fcf67e7,0xadd6a63b, + 0x20a33626,0xf2baf7fa,0x8051a829,0x524869f5,0x6587178f,0xb79ed653,0xc5758980,0x176c485c, + 0xaaeb7574,0x78f2b4a8,0x0a19eb7b,0xd8002aa7,0xefcf54dd,0x3dd69501,0x4f3dcad2,0x9d240b0e, + 0x30f2ad35,0xe2eb6ce9,0x9000333a,0x4219f2e6,0x75d68c9c,0xa7cf4d40,0xd5241293,0x073dd34f, + 0xbabaee67,0x68a32fbb,0x1a487068,0xc851b1b4,0xff9ecfce,0x2d870e12,0x5f6c51c1,0x8d75901d, + 0x41466c4c,0x935fad90,0xe1b4f243,0x33ad339f,0x04624de5,0xd67b8c39,0xa490d3ea,0x76891236, + 0xcb0e2f1e,0x1917eec2,0x6bfcb111,0xb9e570cd,0x8e2a0eb7,0x5c33cf6b,0x2ed890b8,0xfcc15164, + 0x5117f75f,0x830e3683,0xf1e56950,0x23fca88c,0x1433d6f6,0xc62a172a,0xb4c148f9,0x66d88925, + 0xdb5fb40d,0x094675d1,0x7bad2a02,0xa9b4ebde,0x9e7b95a4,0x4c625478,0x3e890bab,0xec90ca77, + 0x61e55a6a,0xb3fc9bb6,0xc117c465,0x130e05b9,0x24c17bc3,0xf6d8ba1f,0x8433e5cc,0x562a2410, + 0xebad1938,0x39b4d8e4,0x4b5f8737,0x994646eb,0xae893891,0x7c90f94d,0x0e7ba69e,0xdc626742, + 0x71b4c179,0xa3ad00a5,0xd1465f76,0x035f9eaa,0x3490e0d0,0xe689210c,0x94627edf,0x467bbf03, + 0xfbfc822b,0x29e543f7,0x5b0e1c24,0x8917ddf8,0xbed8a382,0x6cc1625e,0x1e2a3d8d,0xcc33fc51, + 0x828cd898,0x50951944,0x227e4697,0xf067874b,0xc7a8f931,0x15b138ed,0x675a673e,0xb543a6e2, + 0x08c49bca,0xdadd5a16,0xa83605c5,0x7a2fc419,0x4de0ba63,0x9ff97bbf,0xed12246c,0x3f0be5b0, + 0x92dd438b,0x40c48257,0x322fdd84,0xe0361c58,0xd7f96222,0x05e0a3fe,0x770bfc2d,0xa5123df1, + 0x189500d9,0xca8cc105,0xb8679ed6,0x6a7e5f0a,0x5db12170,0x8fa8e0ac,0xfd43bf7f,0x2f5a7ea3, + 0xa22feebe,0x70362f62,0x02dd70b1,0xd0c4b16d,0xe70bcf17,0x35120ecb,0x47f95118,0x95e090c4, + 0x2867adec,0xfa7e6c30,0x889533e3,0x5a8cf23f,0x6d438c45,0xbf5a4d99,0xcdb1124a,0x1fa8d396, + 0xb27e75ad,0x6067b471,0x128ceba2,0xc0952a7e,0xf75a5404,0x254395d8,0x57a8ca0b,0x85b10bd7, + 0x383636ff,0xea2ff723,0x98c4a8f0,0x4add692c,0x7d121756,0xaf0bd68a,0xdde08959,0x0ff94885, + 0xc3cab4d4,0x11d37508,0x63382adb,0xb121eb07,0x86ee957d,0x54f754a1,0x261c0b72,0xf405caae, + 0x4982f786,0x9b9b365a,0xe9706989,0x3b69a855,0x0ca6d62f,0xdebf17f3,0xac544820,0x7e4d89fc, + 0xd39b2fc7,0x0182ee1b,0x7369b1c8,0xa1707014,0x96bf0e6e,0x44a6cfb2,0x364d9061,0xe45451bd, + 0x59d36c95,0x8bcaad49,0xf921f29a,0x2b383346,0x1cf74d3c,0xceee8ce0,0xbc05d333,0x6e1c12ef, + 0xe36982f2,0x3170432e,0x439b1cfd,0x9182dd21,0xa64da35b,0x74546287,0x06bf3d54,0xd4a6fc88, + 0x6921c1a0,0xbb38007c,0xc9d35faf,0x1bca9e73,0x2c05e009,0xfe1c21d5,0x8cf77e06,0x5eeebfda, + 0xf33819e1,0x2121d83d,0x53ca87ee,0x81d34632,0xb61c3848,0x6405f994,0x16eea647,0xc4f7679b, + 0x79705ab3,0xab699b6f,0xd982c4bc,0x0b9b0560,0x3c547b1a,0xee4dbac6,0x9ca6e515,0x4ebf24c9}, + +{0x00000000,0x01d8ac87,0x03b1590e,0x0269f589,0x0762b21c,0x06ba1e9b,0x04d3eb12,0x050b4795, + 0x0ec56438,0x0f1dc8bf,0x0d743d36,0x0cac91b1,0x09a7d624,0x087f7aa3,0x0a168f2a,0x0bce23ad, + 0x1d8ac870,0x1c5264f7,0x1e3b917e,0x1fe33df9,0x1ae87a6c,0x1b30d6eb,0x19592362,0x18818fe5, + 0x134fac48,0x129700cf,0x10fef546,0x112659c1,0x142d1e54,0x15f5b2d3,0x179c475a,0x1644ebdd, + 0x3b1590e0,0x3acd3c67,0x38a4c9ee,0x397c6569,0x3c7722fc,0x3daf8e7b,0x3fc67bf2,0x3e1ed775, + 0x35d0f4d8,0x3408585f,0x3661add6,0x37b90151,0x32b246c4,0x336aea43,0x31031fca,0x30dbb34d, + 0x269f5890,0x2747f417,0x252e019e,0x24f6ad19,0x21fdea8c,0x2025460b,0x224cb382,0x23941f05, + 0x285a3ca8,0x2982902f,0x2beb65a6,0x2a33c921,0x2f388eb4,0x2ee02233,0x2c89d7ba,0x2d517b3d, + 0x762b21c0,0x77f38d47,0x759a78ce,0x7442d449,0x714993dc,0x70913f5b,0x72f8cad2,0x73206655, + 0x78ee45f8,0x7936e97f,0x7b5f1cf6,0x7a87b071,0x7f8cf7e4,0x7e545b63,0x7c3daeea,0x7de5026d, + 0x6ba1e9b0,0x6a794537,0x6810b0be,0x69c81c39,0x6cc35bac,0x6d1bf72b,0x6f7202a2,0x6eaaae25, + 0x65648d88,0x64bc210f,0x66d5d486,0x670d7801,0x62063f94,0x63de9313,0x61b7669a,0x606fca1d, + 0x4d3eb120,0x4ce61da7,0x4e8fe82e,0x4f5744a9,0x4a5c033c,0x4b84afbb,0x49ed5a32,0x4835f6b5, + 0x43fbd518,0x4223799f,0x404a8c16,0x41922091,0x44996704,0x4541cb83,0x47283e0a,0x46f0928d, + 0x50b47950,0x516cd5d7,0x5305205e,0x52dd8cd9,0x57d6cb4c,0x560e67cb,0x54679242,0x55bf3ec5, + 0x5e711d68,0x5fa9b1ef,0x5dc04466,0x5c18e8e1,0x5913af74,0x58cb03f3,0x5aa2f67a,0x5b7a5afd, + 0xec564380,0xed8eef07,0xefe71a8e,0xee3fb609,0xeb34f19c,0xeaec5d1b,0xe885a892,0xe95d0415, + 0xe29327b8,0xe34b8b3f,0xe1227eb6,0xe0fad231,0xe5f195a4,0xe4293923,0xe640ccaa,0xe798602d, + 0xf1dc8bf0,0xf0042777,0xf26dd2fe,0xf3b57e79,0xf6be39ec,0xf766956b,0xf50f60e2,0xf4d7cc65, + 0xff19efc8,0xfec1434f,0xfca8b6c6,0xfd701a41,0xf87b5dd4,0xf9a3f153,0xfbca04da,0xfa12a85d, + 0xd743d360,0xd69b7fe7,0xd4f28a6e,0xd52a26e9,0xd021617c,0xd1f9cdfb,0xd3903872,0xd24894f5, + 0xd986b758,0xd85e1bdf,0xda37ee56,0xdbef42d1,0xdee40544,0xdf3ca9c3,0xdd555c4a,0xdc8df0cd, + 0xcac91b10,0xcb11b797,0xc978421e,0xc8a0ee99,0xcdaba90c,0xcc73058b,0xce1af002,0xcfc25c85, + 0xc40c7f28,0xc5d4d3af,0xc7bd2626,0xc6658aa1,0xc36ecd34,0xc2b661b3,0xc0df943a,0xc10738bd, + 0x9a7d6240,0x9ba5cec7,0x99cc3b4e,0x981497c9,0x9d1fd05c,0x9cc77cdb,0x9eae8952,0x9f7625d5, + 0x94b80678,0x9560aaff,0x97095f76,0x96d1f3f1,0x93dab464,0x920218e3,0x906bed6a,0x91b341ed, + 0x87f7aa30,0x862f06b7,0x8446f33e,0x859e5fb9,0x8095182c,0x814db4ab,0x83244122,0x82fceda5, + 0x8932ce08,0x88ea628f,0x8a839706,0x8b5b3b81,0x8e507c14,0x8f88d093,0x8de1251a,0x8c39899d, + 0xa168f2a0,0xa0b05e27,0xa2d9abae,0xa3010729,0xa60a40bc,0xa7d2ec3b,0xa5bb19b2,0xa463b535, + 0xafad9698,0xae753a1f,0xac1ccf96,0xadc46311,0xa8cf2484,0xa9178803,0xab7e7d8a,0xaaa6d10d, + 0xbce23ad0,0xbd3a9657,0xbf5363de,0xbe8bcf59,0xbb8088cc,0xba58244b,0xb831d1c2,0xb9e97d45, + 0xb2275ee8,0xb3fff26f,0xb19607e6,0xb04eab61,0xb545ecf4,0xb49d4073,0xb6f4b5fa,0xb72c197d}, + +{0x00000000,0xdc6d9ab7,0xbc1a28d9,0x6077b26e,0x7cf54c05,0xa098d6b2,0xc0ef64dc,0x1c82fe6b, + 0xf9ea980a,0x258702bd,0x45f0b0d3,0x999d2a64,0x851fd40f,0x59724eb8,0x3905fcd6,0xe5686661, + 0xf7142da3,0x2b79b714,0x4b0e057a,0x97639fcd,0x8be161a6,0x578cfb11,0x37fb497f,0xeb96d3c8, + 0x0efeb5a9,0xd2932f1e,0xb2e49d70,0x6e8907c7,0x720bf9ac,0xae66631b,0xce11d175,0x127c4bc2, + 0xeae946f1,0x3684dc46,0x56f36e28,0x8a9ef49f,0x961c0af4,0x4a719043,0x2a06222d,0xf66bb89a, + 0x1303defb,0xcf6e444c,0xaf19f622,0x73746c95,0x6ff692fe,0xb39b0849,0xd3ecba27,0x0f812090, + 0x1dfd6b52,0xc190f1e5,0xa1e7438b,0x7d8ad93c,0x61082757,0xbd65bde0,0xdd120f8e,0x017f9539, + 0xe417f358,0x387a69ef,0x580ddb81,0x84604136,0x98e2bf5d,0x448f25ea,0x24f89784,0xf8950d33, + 0xd1139055,0x0d7e0ae2,0x6d09b88c,0xb164223b,0xade6dc50,0x718b46e7,0x11fcf489,0xcd916e3e, + 0x28f9085f,0xf49492e8,0x94e32086,0x488eba31,0x540c445a,0x8861deed,0xe8166c83,0x347bf634, + 0x2607bdf6,0xfa6a2741,0x9a1d952f,0x46700f98,0x5af2f1f3,0x869f6b44,0xe6e8d92a,0x3a85439d, + 0xdfed25fc,0x0380bf4b,0x63f70d25,0xbf9a9792,0xa31869f9,0x7f75f34e,0x1f024120,0xc36fdb97, + 0x3bfad6a4,0xe7974c13,0x87e0fe7d,0x5b8d64ca,0x470f9aa1,0x9b620016,0xfb15b278,0x277828cf, + 0xc2104eae,0x1e7dd419,0x7e0a6677,0xa267fcc0,0xbee502ab,0x6288981c,0x02ff2a72,0xde92b0c5, + 0xcceefb07,0x108361b0,0x70f4d3de,0xac994969,0xb01bb702,0x6c762db5,0x0c019fdb,0xd06c056c, + 0x3504630d,0xe969f9ba,0x891e4bd4,0x5573d163,0x49f12f08,0x959cb5bf,0xf5eb07d1,0x29869d66, + 0xa6e63d1d,0x7a8ba7aa,0x1afc15c4,0xc6918f73,0xda137118,0x067eebaf,0x660959c1,0xba64c376, + 0x5f0ca517,0x83613fa0,0xe3168dce,0x3f7b1779,0x23f9e912,0xff9473a5,0x9fe3c1cb,0x438e5b7c, + 0x51f210be,0x8d9f8a09,0xede83867,0x3185a2d0,0x2d075cbb,0xf16ac60c,0x911d7462,0x4d70eed5, + 0xa81888b4,0x74751203,0x1402a06d,0xc86f3ada,0xd4edc4b1,0x08805e06,0x68f7ec68,0xb49a76df, + 0x4c0f7bec,0x9062e15b,0xf0155335,0x2c78c982,0x30fa37e9,0xec97ad5e,0x8ce01f30,0x508d8587, + 0xb5e5e3e6,0x69887951,0x09ffcb3f,0xd5925188,0xc910afe3,0x157d3554,0x750a873a,0xa9671d8d, + 0xbb1b564f,0x6776ccf8,0x07017e96,0xdb6ce421,0xc7ee1a4a,0x1b8380fd,0x7bf43293,0xa799a824, + 0x42f1ce45,0x9e9c54f2,0xfeebe69c,0x22867c2b,0x3e048240,0xe26918f7,0x821eaa99,0x5e73302e, + 0x77f5ad48,0xab9837ff,0xcbef8591,0x17821f26,0x0b00e14d,0xd76d7bfa,0xb71ac994,0x6b775323, + 0x8e1f3542,0x5272aff5,0x32051d9b,0xee68872c,0xf2ea7947,0x2e87e3f0,0x4ef0519e,0x929dcb29, + 0x80e180eb,0x5c8c1a5c,0x3cfba832,0xe0963285,0xfc14ccee,0x20795659,0x400ee437,0x9c637e80, + 0x790b18e1,0xa5668256,0xc5113038,0x197caa8f,0x05fe54e4,0xd993ce53,0xb9e47c3d,0x6589e68a, + 0x9d1cebb9,0x4171710e,0x2106c360,0xfd6b59d7,0xe1e9a7bc,0x3d843d0b,0x5df38f65,0x819e15d2, + 0x64f673b3,0xb89be904,0xd8ec5b6a,0x0481c1dd,0x18033fb6,0xc46ea501,0xa419176f,0x78748dd8, + 0x6a08c61a,0xb6655cad,0xd612eec3,0x0a7f7474,0x16fd8a1f,0xca9010a8,0xaae7a2c6,0x768a3871, + 0x93e25e10,0x4f8fc4a7,0x2ff876c9,0xf395ec7e,0xef171215,0x337a88a2,0x530d3acc,0x8f60a07b}, + +{0x00000000,0x490d678d,0x921acf1a,0xdb17a897,0x20f48383,0x69f9e40e,0xb2ee4c99,0xfbe32b14, + 0x41e90706,0x08e4608b,0xd3f3c81c,0x9afeaf91,0x611d8485,0x2810e308,0xf3074b9f,0xba0a2c12, + 0x83d20e0c,0xcadf6981,0x11c8c116,0x58c5a69b,0xa3268d8f,0xea2bea02,0x313c4295,0x78312518, + 0xc23b090a,0x8b366e87,0x5021c610,0x192ca19d,0xe2cf8a89,0xabc2ed04,0x70d54593,0x39d8221e, + 0x036501af,0x4a686622,0x917fceb5,0xd872a938,0x2391822c,0x6a9ce5a1,0xb18b4d36,0xf8862abb, + 0x428c06a9,0x0b816124,0xd096c9b3,0x999bae3e,0x6278852a,0x2b75e2a7,0xf0624a30,0xb96f2dbd, + 0x80b70fa3,0xc9ba682e,0x12adc0b9,0x5ba0a734,0xa0438c20,0xe94eebad,0x3259433a,0x7b5424b7, + 0xc15e08a5,0x88536f28,0x5344c7bf,0x1a49a032,0xe1aa8b26,0xa8a7ecab,0x73b0443c,0x3abd23b1, + 0x06ca035e,0x4fc764d3,0x94d0cc44,0xddddabc9,0x263e80dd,0x6f33e750,0xb4244fc7,0xfd29284a, + 0x47230458,0x0e2e63d5,0xd539cb42,0x9c34accf,0x67d787db,0x2edae056,0xf5cd48c1,0xbcc02f4c, + 0x85180d52,0xcc156adf,0x1702c248,0x5e0fa5c5,0xa5ec8ed1,0xece1e95c,0x37f641cb,0x7efb2646, + 0xc4f10a54,0x8dfc6dd9,0x56ebc54e,0x1fe6a2c3,0xe40589d7,0xad08ee5a,0x761f46cd,0x3f122140, + 0x05af02f1,0x4ca2657c,0x97b5cdeb,0xdeb8aa66,0x255b8172,0x6c56e6ff,0xb7414e68,0xfe4c29e5, + 0x444605f7,0x0d4b627a,0xd65ccaed,0x9f51ad60,0x64b28674,0x2dbfe1f9,0xf6a8496e,0xbfa52ee3, + 0x867d0cfd,0xcf706b70,0x1467c3e7,0x5d6aa46a,0xa6898f7e,0xef84e8f3,0x34934064,0x7d9e27e9, + 0xc7940bfb,0x8e996c76,0x558ec4e1,0x1c83a36c,0xe7608878,0xae6deff5,0x757a4762,0x3c7720ef, + 0x0d9406bc,0x44996131,0x9f8ec9a6,0xd683ae2b,0x2d60853f,0x646de2b2,0xbf7a4a25,0xf6772da8, + 0x4c7d01ba,0x05706637,0xde67cea0,0x976aa92d,0x6c898239,0x2584e5b4,0xfe934d23,0xb79e2aae, + 0x8e4608b0,0xc74b6f3d,0x1c5cc7aa,0x5551a027,0xaeb28b33,0xe7bfecbe,0x3ca84429,0x75a523a4, + 0xcfaf0fb6,0x86a2683b,0x5db5c0ac,0x14b8a721,0xef5b8c35,0xa656ebb8,0x7d41432f,0x344c24a2, + 0x0ef10713,0x47fc609e,0x9cebc809,0xd5e6af84,0x2e058490,0x6708e31d,0xbc1f4b8a,0xf5122c07, + 0x4f180015,0x06156798,0xdd02cf0f,0x940fa882,0x6fec8396,0x26e1e41b,0xfdf64c8c,0xb4fb2b01, + 0x8d23091f,0xc42e6e92,0x1f39c605,0x5634a188,0xadd78a9c,0xe4daed11,0x3fcd4586,0x76c0220b, + 0xccca0e19,0x85c76994,0x5ed0c103,0x17dda68e,0xec3e8d9a,0xa533ea17,0x7e244280,0x3729250d, + 0x0b5e05e2,0x4253626f,0x9944caf8,0xd049ad75,0x2baa8661,0x62a7e1ec,0xb9b0497b,0xf0bd2ef6, + 0x4ab702e4,0x03ba6569,0xd8adcdfe,0x91a0aa73,0x6a438167,0x234ee6ea,0xf8594e7d,0xb15429f0, + 0x888c0bee,0xc1816c63,0x1a96c4f4,0x539ba379,0xa878886d,0xe175efe0,0x3a624777,0x736f20fa, + 0xc9650ce8,0x80686b65,0x5b7fc3f2,0x1272a47f,0xe9918f6b,0xa09ce8e6,0x7b8b4071,0x328627fc, + 0x083b044d,0x413663c0,0x9a21cb57,0xd32cacda,0x28cf87ce,0x61c2e043,0xbad548d4,0xf3d82f59, + 0x49d2034b,0x00df64c6,0xdbc8cc51,0x92c5abdc,0x692680c8,0x202be745,0xfb3c4fd2,0xb231285f, + 0x8be90a41,0xc2e46dcc,0x19f3c55b,0x50fea2d6,0xab1d89c2,0xe210ee4f,0x390746d8,0x700a2155, + 0xca000d47,0x830d6aca,0x581ac25d,0x1117a5d0,0xeaf48ec4,0xa3f9e949,0x78ee41de,0x31e32653}, + +{0x00000000,0x1b280d78,0x36501af0,0x2d781788,0x6ca035e0,0x77883898,0x5af02f10,0x41d82268, + 0xd9406bc0,0xc26866b8,0xef107130,0xf4387c48,0xb5e05e20,0xaec85358,0x83b044d0,0x989849a8, + 0xb641ca37,0xad69c74f,0x8011d0c7,0x9b39ddbf,0xdae1ffd7,0xc1c9f2af,0xecb1e527,0xf799e85f, + 0x6f01a1f7,0x7429ac8f,0x5951bb07,0x4279b67f,0x03a19417,0x1889996f,0x35f18ee7,0x2ed9839f, + 0x684289d9,0x736a84a1,0x5e129329,0x453a9e51,0x04e2bc39,0x1fcab141,0x32b2a6c9,0x299aabb1, + 0xb102e219,0xaa2aef61,0x8752f8e9,0x9c7af591,0xdda2d7f9,0xc68ada81,0xebf2cd09,0xf0dac071, + 0xde0343ee,0xc52b4e96,0xe853591e,0xf37b5466,0xb2a3760e,0xa98b7b76,0x84f36cfe,0x9fdb6186, + 0x0743282e,0x1c6b2556,0x311332de,0x2a3b3fa6,0x6be31dce,0x70cb10b6,0x5db3073e,0x469b0a46, + 0xd08513b2,0xcbad1eca,0xe6d50942,0xfdfd043a,0xbc252652,0xa70d2b2a,0x8a753ca2,0x915d31da, + 0x09c57872,0x12ed750a,0x3f956282,0x24bd6ffa,0x65654d92,0x7e4d40ea,0x53355762,0x481d5a1a, + 0x66c4d985,0x7decd4fd,0x5094c375,0x4bbcce0d,0x0a64ec65,0x114ce11d,0x3c34f695,0x271cfbed, + 0xbf84b245,0xa4acbf3d,0x89d4a8b5,0x92fca5cd,0xd32487a5,0xc80c8add,0xe5749d55,0xfe5c902d, + 0xb8c79a6b,0xa3ef9713,0x8e97809b,0x95bf8de3,0xd467af8b,0xcf4fa2f3,0xe237b57b,0xf91fb803, + 0x6187f1ab,0x7aaffcd3,0x57d7eb5b,0x4cffe623,0x0d27c44b,0x160fc933,0x3b77debb,0x205fd3c3, + 0x0e86505c,0x15ae5d24,0x38d64aac,0x23fe47d4,0x622665bc,0x790e68c4,0x54767f4c,0x4f5e7234, + 0xd7c63b9c,0xccee36e4,0xe196216c,0xfabe2c14,0xbb660e7c,0xa04e0304,0x8d36148c,0x961e19f4, + 0xa5cb3ad3,0xbee337ab,0x939b2023,0x88b32d5b,0xc96b0f33,0xd243024b,0xff3b15c3,0xe41318bb, + 0x7c8b5113,0x67a35c6b,0x4adb4be3,0x51f3469b,0x102b64f3,0x0b03698b,0x267b7e03,0x3d53737b, + 0x138af0e4,0x08a2fd9c,0x25daea14,0x3ef2e76c,0x7f2ac504,0x6402c87c,0x497adff4,0x5252d28c, + 0xcaca9b24,0xd1e2965c,0xfc9a81d4,0xe7b28cac,0xa66aaec4,0xbd42a3bc,0x903ab434,0x8b12b94c, + 0xcd89b30a,0xd6a1be72,0xfbd9a9fa,0xe0f1a482,0xa12986ea,0xba018b92,0x97799c1a,0x8c519162, + 0x14c9d8ca,0x0fe1d5b2,0x2299c23a,0x39b1cf42,0x7869ed2a,0x6341e052,0x4e39f7da,0x5511faa2, + 0x7bc8793d,0x60e07445,0x4d9863cd,0x56b06eb5,0x17684cdd,0x0c4041a5,0x2138562d,0x3a105b55, + 0xa28812fd,0xb9a01f85,0x94d8080d,0x8ff00575,0xce28271d,0xd5002a65,0xf8783ded,0xe3503095, + 0x754e2961,0x6e662419,0x431e3391,0x58363ee9,0x19ee1c81,0x02c611f9,0x2fbe0671,0x34960b09, + 0xac0e42a1,0xb7264fd9,0x9a5e5851,0x81765529,0xc0ae7741,0xdb867a39,0xf6fe6db1,0xedd660c9, + 0xc30fe356,0xd827ee2e,0xf55ff9a6,0xee77f4de,0xafafd6b6,0xb487dbce,0x99ffcc46,0x82d7c13e, + 0x1a4f8896,0x016785ee,0x2c1f9266,0x37379f1e,0x76efbd76,0x6dc7b00e,0x40bfa786,0x5b97aafe, + 0x1d0ca0b8,0x0624adc0,0x2b5cba48,0x3074b730,0x71ac9558,0x6a849820,0x47fc8fa8,0x5cd482d0, + 0xc44ccb78,0xdf64c600,0xf21cd188,0xe934dcf0,0xa8ecfe98,0xb3c4f3e0,0x9ebce468,0x8594e910, + 0xab4d6a8f,0xb06567f7,0x9d1d707f,0x86357d07,0xc7ed5f6f,0xdcc55217,0xf1bd459f,0xea9548e7, + 0x720d014f,0x69250c37,0x445d1bbf,0x5f7516c7,0x1ead34af,0x058539d7,0x28fd2e5f,0x33d52327}, + +{0x00000000,0x4f576811,0x9eaed022,0xd1f9b833,0x399cbdf3,0x76cbd5e2,0xa7326dd1,0xe86505c0, + 0x73397be6,0x3c6e13f7,0xed97abc4,0xa2c0c3d5,0x4aa5c615,0x05f2ae04,0xd40b1637,0x9b5c7e26, + 0xe672f7cc,0xa9259fdd,0x78dc27ee,0x378b4fff,0xdfee4a3f,0x90b9222e,0x41409a1d,0x0e17f20c, + 0x954b8c2a,0xda1ce43b,0x0be55c08,0x44b23419,0xacd731d9,0xe38059c8,0x3279e1fb,0x7d2e89ea, + 0xc824f22f,0x87739a3e,0x568a220d,0x19dd4a1c,0xf1b84fdc,0xbeef27cd,0x6f169ffe,0x2041f7ef, + 0xbb1d89c9,0xf44ae1d8,0x25b359eb,0x6ae431fa,0x8281343a,0xcdd65c2b,0x1c2fe418,0x53788c09, + 0x2e5605e3,0x61016df2,0xb0f8d5c1,0xffafbdd0,0x17cab810,0x589dd001,0x89646832,0xc6330023, + 0x5d6f7e05,0x12381614,0xc3c1ae27,0x8c96c636,0x64f3c3f6,0x2ba4abe7,0xfa5d13d4,0xb50a7bc5, + 0x9488f9e9,0xdbdf91f8,0x0a2629cb,0x457141da,0xad14441a,0xe2432c0b,0x33ba9438,0x7cedfc29, + 0xe7b1820f,0xa8e6ea1e,0x791f522d,0x36483a3c,0xde2d3ffc,0x917a57ed,0x4083efde,0x0fd487cf, + 0x72fa0e25,0x3dad6634,0xec54de07,0xa303b616,0x4b66b3d6,0x0431dbc7,0xd5c863f4,0x9a9f0be5, + 0x01c375c3,0x4e941dd2,0x9f6da5e1,0xd03acdf0,0x385fc830,0x7708a021,0xa6f11812,0xe9a67003, + 0x5cac0bc6,0x13fb63d7,0xc202dbe4,0x8d55b3f5,0x6530b635,0x2a67de24,0xfb9e6617,0xb4c90e06, + 0x2f957020,0x60c21831,0xb13ba002,0xfe6cc813,0x1609cdd3,0x595ea5c2,0x88a71df1,0xc7f075e0, + 0xbadefc0a,0xf589941b,0x24702c28,0x6b274439,0x834241f9,0xcc1529e8,0x1dec91db,0x52bbf9ca, + 0xc9e787ec,0x86b0effd,0x574957ce,0x181e3fdf,0xf07b3a1f,0xbf2c520e,0x6ed5ea3d,0x2182822c, + 0x2dd0ee65,0x62878674,0xb37e3e47,0xfc295656,0x144c5396,0x5b1b3b87,0x8ae283b4,0xc5b5eba5, + 0x5ee99583,0x11befd92,0xc04745a1,0x8f102db0,0x67752870,0x28224061,0xf9dbf852,0xb68c9043, + 0xcba219a9,0x84f571b8,0x550cc98b,0x1a5ba19a,0xf23ea45a,0xbd69cc4b,0x6c907478,0x23c71c69, + 0xb89b624f,0xf7cc0a5e,0x2635b26d,0x6962da7c,0x8107dfbc,0xce50b7ad,0x1fa90f9e,0x50fe678f, + 0xe5f41c4a,0xaaa3745b,0x7b5acc68,0x340da479,0xdc68a1b9,0x933fc9a8,0x42c6719b,0x0d91198a, + 0x96cd67ac,0xd99a0fbd,0x0863b78e,0x4734df9f,0xaf51da5f,0xe006b24e,0x31ff0a7d,0x7ea8626c, + 0x0386eb86,0x4cd18397,0x9d283ba4,0xd27f53b5,0x3a1a5675,0x754d3e64,0xa4b48657,0xebe3ee46, + 0x70bf9060,0x3fe8f871,0xee114042,0xa1462853,0x49232d93,0x06744582,0xd78dfdb1,0x98da95a0, + 0xb958178c,0xf60f7f9d,0x27f6c7ae,0x68a1afbf,0x80c4aa7f,0xcf93c26e,0x1e6a7a5d,0x513d124c, + 0xca616c6a,0x8536047b,0x54cfbc48,0x1b98d459,0xf3fdd199,0xbcaab988,0x6d5301bb,0x220469aa, + 0x5f2ae040,0x107d8851,0xc1843062,0x8ed35873,0x66b65db3,0x29e135a2,0xf8188d91,0xb74fe580, + 0x2c139ba6,0x6344f3b7,0xb2bd4b84,0xfdea2395,0x158f2655,0x5ad84e44,0x8b21f677,0xc4769e66, + 0x717ce5a3,0x3e2b8db2,0xefd23581,0xa0855d90,0x48e05850,0x07b73041,0xd64e8872,0x9919e063, + 0x02459e45,0x4d12f654,0x9ceb4e67,0xd3bc2676,0x3bd923b6,0x748e4ba7,0xa577f394,0xea209b85, + 0x970e126f,0xd8597a7e,0x09a0c24d,0x46f7aa5c,0xae92af9c,0xe1c5c78d,0x303c7fbe,0x7f6b17af, + 0xe4376989,0xab600198,0x7a99b9ab,0x35ced1ba,0xddabd47a,0x92fcbc6b,0x43050458,0x0c526c49}, + +{0x00000000,0x5ba1dcca,0xb743b994,0xece2655e,0x6a466e9f,0x31e7b255,0xdd05d70b,0x86a40bc1, + 0xd48cdd3e,0x8f2d01f4,0x63cf64aa,0x386eb860,0xbecab3a1,0xe56b6f6b,0x09890a35,0x5228d6ff, + 0xadd8a7cb,0xf6797b01,0x1a9b1e5f,0x413ac295,0xc79ec954,0x9c3f159e,0x70dd70c0,0x2b7cac0a, + 0x79547af5,0x22f5a63f,0xce17c361,0x95b61fab,0x1312146a,0x48b3c8a0,0xa451adfe,0xfff07134, + 0x5f705221,0x04d18eeb,0xe833ebb5,0xb392377f,0x35363cbe,0x6e97e074,0x8275852a,0xd9d459e0, + 0x8bfc8f1f,0xd05d53d5,0x3cbf368b,0x671eea41,0xe1bae180,0xba1b3d4a,0x56f95814,0x0d5884de, + 0xf2a8f5ea,0xa9092920,0x45eb4c7e,0x1e4a90b4,0x98ee9b75,0xc34f47bf,0x2fad22e1,0x740cfe2b, + 0x262428d4,0x7d85f41e,0x91679140,0xcac64d8a,0x4c62464b,0x17c39a81,0xfb21ffdf,0xa0802315, + 0xbee0a442,0xe5417888,0x09a31dd6,0x5202c11c,0xd4a6cadd,0x8f071617,0x63e57349,0x3844af83, + 0x6a6c797c,0x31cda5b6,0xdd2fc0e8,0x868e1c22,0x002a17e3,0x5b8bcb29,0xb769ae77,0xecc872bd, + 0x13380389,0x4899df43,0xa47bba1d,0xffda66d7,0x797e6d16,0x22dfb1dc,0xce3dd482,0x959c0848, + 0xc7b4deb7,0x9c15027d,0x70f76723,0x2b56bbe9,0xadf2b028,0xf6536ce2,0x1ab109bc,0x4110d576, + 0xe190f663,0xba312aa9,0x56d34ff7,0x0d72933d,0x8bd698fc,0xd0774436,0x3c952168,0x6734fda2, + 0x351c2b5d,0x6ebdf797,0x825f92c9,0xd9fe4e03,0x5f5a45c2,0x04fb9908,0xe819fc56,0xb3b8209c, + 0x4c4851a8,0x17e98d62,0xfb0be83c,0xa0aa34f6,0x260e3f37,0x7dafe3fd,0x914d86a3,0xcaec5a69, + 0x98c48c96,0xc365505c,0x2f873502,0x7426e9c8,0xf282e209,0xa9233ec3,0x45c15b9d,0x1e608757, + 0x79005533,0x22a189f9,0xce43eca7,0x95e2306d,0x13463bac,0x48e7e766,0xa4058238,0xffa45ef2, + 0xad8c880d,0xf62d54c7,0x1acf3199,0x416eed53,0xc7cae692,0x9c6b3a58,0x70895f06,0x2b2883cc, + 0xd4d8f2f8,0x8f792e32,0x639b4b6c,0x383a97a6,0xbe9e9c67,0xe53f40ad,0x09dd25f3,0x527cf939, + 0x00542fc6,0x5bf5f30c,0xb7179652,0xecb64a98,0x6a124159,0x31b39d93,0xdd51f8cd,0x86f02407, + 0x26700712,0x7dd1dbd8,0x9133be86,0xca92624c,0x4c36698d,0x1797b547,0xfb75d019,0xa0d40cd3, + 0xf2fcda2c,0xa95d06e6,0x45bf63b8,0x1e1ebf72,0x98bab4b3,0xc31b6879,0x2ff90d27,0x7458d1ed, + 0x8ba8a0d9,0xd0097c13,0x3ceb194d,0x674ac587,0xe1eece46,0xba4f128c,0x56ad77d2,0x0d0cab18, + 0x5f247de7,0x0485a12d,0xe867c473,0xb3c618b9,0x35621378,0x6ec3cfb2,0x8221aaec,0xd9807626, + 0xc7e0f171,0x9c412dbb,0x70a348e5,0x2b02942f,0xada69fee,0xf6074324,0x1ae5267a,0x4144fab0, + 0x136c2c4f,0x48cdf085,0xa42f95db,0xff8e4911,0x792a42d0,0x228b9e1a,0xce69fb44,0x95c8278e, + 0x6a3856ba,0x31998a70,0xdd7bef2e,0x86da33e4,0x007e3825,0x5bdfe4ef,0xb73d81b1,0xec9c5d7b, + 0xbeb48b84,0xe515574e,0x09f73210,0x5256eeda,0xd4f2e51b,0x8f5339d1,0x63b15c8f,0x38108045, + 0x9890a350,0xc3317f9a,0x2fd31ac4,0x7472c60e,0xf2d6cdcf,0xa9771105,0x4595745b,0x1e34a891, + 0x4c1c7e6e,0x17bda2a4,0xfb5fc7fa,0xa0fe1b30,0x265a10f1,0x7dfbcc3b,0x9119a965,0xcab875af, + 0x3548049b,0x6ee9d851,0x820bbd0f,0xd9aa61c5,0x5f0e6a04,0x04afb6ce,0xe84dd390,0xb3ec0f5a, + 0xe1c4d9a5,0xba65056f,0x56876031,0x0d26bcfb,0x8b82b73a,0xd0236bf0,0x3cc10eae,0x6760d264}}; diff --git a/thirdparty/libogg/framing.c b/thirdparty/libogg/framing.c new file mode 100644 index 0000000..724d116 --- /dev/null +++ b/thirdparty/libogg/framing.c @@ -0,0 +1,2114 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE Ogg CONTAINER SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2018 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: code raw packets into framed OggSquish stream and + decode Ogg streams back into raw packets + + note: The CRC code is directly derived from public domain code by + Ross Williams (ross@guest.adelaide.edu.au). See docs/framing.html + for details. + + ********************************************************************/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include + +/* A complete description of Ogg framing exists in docs/framing.html */ + +int ogg_page_version(const ogg_page *og){ + return((int)(og->header[4])); +} + +int ogg_page_continued(const ogg_page *og){ + return((int)(og->header[5]&0x01)); +} + +int ogg_page_bos(const ogg_page *og){ + return((int)(og->header[5]&0x02)); +} + +int ogg_page_eos(const ogg_page *og){ + return((int)(og->header[5]&0x04)); +} + +ogg_int64_t ogg_page_granulepos(const ogg_page *og){ + unsigned char *page=og->header; + ogg_uint64_t granulepos=page[13]&(0xff); + granulepos= (granulepos<<8)|(page[12]&0xff); + granulepos= (granulepos<<8)|(page[11]&0xff); + granulepos= (granulepos<<8)|(page[10]&0xff); + granulepos= (granulepos<<8)|(page[9]&0xff); + granulepos= (granulepos<<8)|(page[8]&0xff); + granulepos= (granulepos<<8)|(page[7]&0xff); + granulepos= (granulepos<<8)|(page[6]&0xff); + return((ogg_int64_t)granulepos); +} + +int ogg_page_serialno(const ogg_page *og){ + return((int)((ogg_uint32_t)og->header[14]) | + ((ogg_uint32_t)og->header[15]<<8) | + ((ogg_uint32_t)og->header[16]<<16) | + ((ogg_uint32_t)og->header[17]<<24)); +} + +long ogg_page_pageno(const ogg_page *og){ + return((long)((ogg_uint32_t)og->header[18]) | + ((ogg_uint32_t)og->header[19]<<8) | + ((ogg_uint32_t)og->header[20]<<16) | + ((ogg_uint32_t)og->header[21]<<24)); +} + + + +/* returns the number of packets that are completed on this page (if + the leading packet is begun on a previous page, but ends on this + page, it's counted */ + +/* NOTE: + If a page consists of a packet begun on a previous page, and a new + packet begun (but not completed) on this page, the return will be: + ogg_page_packets(page) ==1, + ogg_page_continued(page) !=0 + + If a page happens to be a single packet that was begun on a + previous page, and spans to the next page (in the case of a three or + more page packet), the return will be: + ogg_page_packets(page) ==0, + ogg_page_continued(page) !=0 +*/ + +int ogg_page_packets(const ogg_page *og){ + int i,n=og->header[26],count=0; + for(i=0;iheader[27+i]<255)count++; + return(count); +} + + +#if 0 +/* helper to initialize lookup for direct-table CRC (illustrative; we + use the static init in crctable.h) */ + +static void _ogg_crc_init(){ + int i, j; + ogg_uint32_t polynomial, crc; + polynomial = 0x04c11db7; /* The same as the ethernet generator + polynomial, although we use an + unreflected alg and an init/final + of 0, not 0xffffffff */ + for (i = 0; i <= 0xFF; i++){ + crc = i << 24; + + for (j = 0; j < 8; j++) + crc = (crc << 1) ^ (crc & (1 << 31) ? polynomial : 0); + + crc_lookup[0][i] = crc; + } + + for (i = 0; i <= 0xFF; i++) + for (j = 1; j < 8; j++) + crc_lookup[j][i] = crc_lookup[0][(crc_lookup[j - 1][i] >> 24) & 0xFF] ^ (crc_lookup[j - 1][i] << 8); +} +#endif + +#include "crctable.h" + +/* init the encode/decode logical stream state */ + +int ogg_stream_init(ogg_stream_state *os,int serialno){ + if(os){ + memset(os,0,sizeof(*os)); + os->body_storage=16*1024; + os->lacing_storage=1024; + + os->body_data=_ogg_malloc(os->body_storage*sizeof(*os->body_data)); + os->lacing_vals=_ogg_malloc(os->lacing_storage*sizeof(*os->lacing_vals)); + os->granule_vals=_ogg_malloc(os->lacing_storage*sizeof(*os->granule_vals)); + + if(!os->body_data || !os->lacing_vals || !os->granule_vals){ + ogg_stream_clear(os); + return -1; + } + + os->serialno=serialno; + + return(0); + } + return(-1); +} + +/* async/delayed error detection for the ogg_stream_state */ +int ogg_stream_check(ogg_stream_state *os){ + if(!os || !os->body_data) return -1; + return 0; +} + +/* _clear does not free os, only the non-flat storage within */ +int ogg_stream_clear(ogg_stream_state *os){ + if(os){ + if(os->body_data)_ogg_free(os->body_data); + if(os->lacing_vals)_ogg_free(os->lacing_vals); + if(os->granule_vals)_ogg_free(os->granule_vals); + + memset(os,0,sizeof(*os)); + } + return(0); +} + +int ogg_stream_destroy(ogg_stream_state *os){ + if(os){ + ogg_stream_clear(os); + _ogg_free(os); + } + return(0); +} + +/* Helpers for ogg_stream_encode; this keeps the structure and + what's happening fairly clear */ + +static int _os_body_expand(ogg_stream_state *os,long needed){ + if(os->body_storage-needed<=os->body_fill){ + long body_storage; + void *ret; + if(os->body_storage>LONG_MAX-needed){ + ogg_stream_clear(os); + return -1; + } + body_storage=os->body_storage+needed; + if(body_storagebody_data,body_storage*sizeof(*os->body_data)); + if(!ret){ + ogg_stream_clear(os); + return -1; + } + os->body_storage=body_storage; + os->body_data=ret; + } + return 0; +} + +static int _os_lacing_expand(ogg_stream_state *os,long needed){ + if(os->lacing_storage-needed<=os->lacing_fill){ + long lacing_storage; + void *ret; + if(os->lacing_storage>LONG_MAX-needed){ + ogg_stream_clear(os); + return -1; + } + lacing_storage=os->lacing_storage+needed; + if(lacing_storagelacing_vals,lacing_storage*sizeof(*os->lacing_vals)); + if(!ret){ + ogg_stream_clear(os); + return -1; + } + os->lacing_vals=ret; + ret=_ogg_realloc(os->granule_vals,lacing_storage* + sizeof(*os->granule_vals)); + if(!ret){ + ogg_stream_clear(os); + return -1; + } + os->granule_vals=ret; + os->lacing_storage=lacing_storage; + } + return 0; +} + +/* checksum the page */ +/* Direct table CRC; note that this will be faster in the future if we + perform the checksum simultaneously with other copies */ + +static ogg_uint32_t _os_update_crc(ogg_uint32_t crc, unsigned char *buffer, int size){ + while (size>=8){ + crc^=((ogg_uint32_t)buffer[0]<<24)|((ogg_uint32_t)buffer[1]<<16)|((ogg_uint32_t)buffer[2]<<8)|((ogg_uint32_t)buffer[3]); + + crc=crc_lookup[7][ crc>>24 ]^crc_lookup[6][(crc>>16)&0xFF]^ + crc_lookup[5][(crc>> 8)&0xFF]^crc_lookup[4][ crc &0xFF]^ + crc_lookup[3][buffer[4] ]^crc_lookup[2][buffer[5] ]^ + crc_lookup[1][buffer[6] ]^crc_lookup[0][buffer[7] ]; + + buffer+=8; + size-=8; + } + + while (size--) + crc=(crc<<8)^crc_lookup[0][((crc >> 24)&0xff)^*buffer++]; + return crc; +} + +void ogg_page_checksum_set(ogg_page *og){ + if(og){ + ogg_uint32_t crc_reg=0; + + /* safety; needed for API behavior, but not framing code */ + og->header[22]=0; + og->header[23]=0; + og->header[24]=0; + og->header[25]=0; + + crc_reg=_os_update_crc(crc_reg,og->header,og->header_len); + crc_reg=_os_update_crc(crc_reg,og->body,og->body_len); + + og->header[22]=(unsigned char)(crc_reg&0xff); + og->header[23]=(unsigned char)((crc_reg>>8)&0xff); + og->header[24]=(unsigned char)((crc_reg>>16)&0xff); + og->header[25]=(unsigned char)((crc_reg>>24)&0xff); + } +} + +/* submit data to the internal buffer of the framing engine */ +int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, int count, + long e_o_s, ogg_int64_t granulepos){ + + long bytes = 0, lacing_vals; + int i; + + if(ogg_stream_check(os)) return -1; + if(!iov) return 0; + + for (i = 0; i < count; ++i){ + if(iov[i].iov_len>LONG_MAX) return -1; + if(bytes>LONG_MAX-(long)iov[i].iov_len) return -1; + bytes += (long)iov[i].iov_len; + } + lacing_vals=bytes/255+1; + + if(os->body_returned){ + /* advance packet data according to the body_returned pointer. We + had to keep it around to return a pointer into the buffer last + call */ + + os->body_fill-=os->body_returned; + if(os->body_fill) + memmove(os->body_data,os->body_data+os->body_returned, + os->body_fill); + os->body_returned=0; + } + + /* make sure we have the buffer storage */ + if(_os_body_expand(os,bytes) || _os_lacing_expand(os,lacing_vals)) + return -1; + + /* Copy in the submitted packet. Yes, the copy is a waste; this is + the liability of overly clean abstraction for the time being. It + will actually be fairly easy to eliminate the extra copy in the + future */ + + for (i = 0; i < count; ++i) { + memcpy(os->body_data+os->body_fill, iov[i].iov_base, iov[i].iov_len); + os->body_fill += (int)iov[i].iov_len; + } + + /* Store lacing vals for this packet */ + for(i=0;ilacing_vals[os->lacing_fill+i]=255; + os->granule_vals[os->lacing_fill+i]=os->granulepos; + } + os->lacing_vals[os->lacing_fill+i]=bytes%255; + os->granulepos=os->granule_vals[os->lacing_fill+i]=granulepos; + + /* flag the first segment as the beginning of the packet */ + os->lacing_vals[os->lacing_fill]|= 0x100; + + os->lacing_fill+=lacing_vals; + + /* for the sake of completeness */ + os->packetno++; + + if(e_o_s)os->e_o_s=1; + + return(0); +} + +int ogg_stream_packetin(ogg_stream_state *os,ogg_packet *op){ + ogg_iovec_t iov; + iov.iov_base = op->packet; + iov.iov_len = op->bytes; + return ogg_stream_iovecin(os, &iov, 1, op->e_o_s, op->granulepos); +} + +/* Conditionally flush a page; force==0 will only flush nominal-size + pages, force==1 forces us to flush a page regardless of page size + so long as there's any data available at all. */ +static int ogg_stream_flush_i(ogg_stream_state *os,ogg_page *og, int force, int nfill){ + int i; + int vals=0; + int maxvals=(os->lacing_fill>255?255:os->lacing_fill); + int bytes=0; + long acc=0; + ogg_int64_t granule_pos=-1; + + if(ogg_stream_check(os)) return(0); + if(maxvals==0) return(0); + + /* construct a page */ + /* decide how many segments to include */ + + /* If this is the initial header case, the first page must only include + the initial header packet */ + if(os->b_o_s==0){ /* 'initial header page' case */ + granule_pos=0; + for(vals=0;valslacing_vals[vals]&0x0ff)<255){ + vals++; + break; + } + } + }else{ + + /* The extra packets_done, packet_just_done logic here attempts to do two things: + 1) Don't unnecessarily span pages. + 2) Unless necessary, don't flush pages if there are less than four packets on + them; this expands page size to reduce unnecessary overhead if incoming packets + are large. + These are not necessary behaviors, just 'always better than naive flushing' + without requiring an application to explicitly request a specific optimized + behavior. We'll want an explicit behavior setup pathway eventually as well. */ + + int packets_done=0; + int packet_just_done=0; + for(vals=0;valsnfill && packet_just_done>=4){ + force=1; + break; + } + acc+=os->lacing_vals[vals]&0x0ff; + if((os->lacing_vals[vals]&0xff)<255){ + granule_pos=os->granule_vals[vals]; + packet_just_done=++packets_done; + }else + packet_just_done=0; + } + if(vals==255)force=1; + } + + if(!force) return(0); + + /* construct the header in temp storage */ + memcpy(os->header,"OggS",4); + + /* stream structure version */ + os->header[4]=0x00; + + /* continued packet flag? */ + os->header[5]=0x00; + if((os->lacing_vals[0]&0x100)==0)os->header[5]|=0x01; + /* first page flag? */ + if(os->b_o_s==0)os->header[5]|=0x02; + /* last page flag? */ + if(os->e_o_s && os->lacing_fill==vals)os->header[5]|=0x04; + os->b_o_s=1; + + /* 64 bits of PCM position */ + for(i=6;i<14;i++){ + os->header[i]=(unsigned char)(granule_pos&0xff); + granule_pos>>=8; + } + + /* 32 bits of stream serial number */ + { + long serialno=os->serialno; + for(i=14;i<18;i++){ + os->header[i]=(unsigned char)(serialno&0xff); + serialno>>=8; + } + } + + /* 32 bits of page counter (we have both counter and page header + because this val can roll over) */ + if(os->pageno==-1)os->pageno=0; /* because someone called + stream_reset; this would be a + strange thing to do in an + encode stream, but it has + plausible uses */ + { + long pageno=os->pageno++; + for(i=18;i<22;i++){ + os->header[i]=(unsigned char)(pageno&0xff); + pageno>>=8; + } + } + + /* zero for computation; filled in later */ + os->header[22]=0; + os->header[23]=0; + os->header[24]=0; + os->header[25]=0; + + /* segment table */ + os->header[26]=(unsigned char)(vals&0xff); + for(i=0;iheader[i+27]=(unsigned char)(os->lacing_vals[i]&0xff); + + /* set pointers in the ogg_page struct */ + og->header=os->header; + og->header_len=os->header_fill=vals+27; + og->body=os->body_data+os->body_returned; + og->body_len=bytes; + + /* advance the lacing data and set the body_returned pointer */ + + os->lacing_fill-=vals; + memmove(os->lacing_vals,os->lacing_vals+vals,os->lacing_fill*sizeof(*os->lacing_vals)); + memmove(os->granule_vals,os->granule_vals+vals,os->lacing_fill*sizeof(*os->granule_vals)); + os->body_returned+=bytes; + + /* calculate the checksum */ + + ogg_page_checksum_set(og); + + /* done */ + return(1); +} + +/* This will flush remaining packets into a page (returning nonzero), + even if there is not enough data to trigger a flush normally + (undersized page). If there are no packets or partial packets to + flush, ogg_stream_flush returns 0. Note that ogg_stream_flush will + try to flush a normal sized page like ogg_stream_pageout; a call to + ogg_stream_flush does not guarantee that all packets have flushed. + Only a return value of 0 from ogg_stream_flush indicates all packet + data is flushed into pages. + + since ogg_stream_flush will flush the last page in a stream even if + it's undersized, you almost certainly want to use ogg_stream_pageout + (and *not* ogg_stream_flush) unless you specifically need to flush + a page regardless of size in the middle of a stream. */ + +int ogg_stream_flush(ogg_stream_state *os,ogg_page *og){ + return ogg_stream_flush_i(os,og,1,4096); +} + +/* Like the above, but an argument is provided to adjust the nominal + page size for applications which are smart enough to provide their + own delay based flushing */ + +int ogg_stream_flush_fill(ogg_stream_state *os,ogg_page *og, int nfill){ + return ogg_stream_flush_i(os,og,1,nfill); +} + +/* This constructs pages from buffered packet segments. The pointers +returned are to static buffers; do not free. The returned buffers are +good only until the next call (using the same ogg_stream_state) */ + +int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og){ + int force=0; + if(ogg_stream_check(os)) return 0; + + if((os->e_o_s&&os->lacing_fill) || /* 'were done, now flush' case */ + (os->lacing_fill&&!os->b_o_s)) /* 'initial header page' case */ + force=1; + + return(ogg_stream_flush_i(os,og,force,4096)); +} + +/* Like the above, but an argument is provided to adjust the nominal +page size for applications which are smart enough to provide their +own delay based flushing */ + +int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill){ + int force=0; + if(ogg_stream_check(os)) return 0; + + if((os->e_o_s&&os->lacing_fill) || /* 'were done, now flush' case */ + (os->lacing_fill&&!os->b_o_s)) /* 'initial header page' case */ + force=1; + + return(ogg_stream_flush_i(os,og,force,nfill)); +} + +int ogg_stream_eos(ogg_stream_state *os){ + if(ogg_stream_check(os)) return 1; + return os->e_o_s; +} + +/* DECODING PRIMITIVES: packet streaming layer **********************/ + +/* This has two layers to place more of the multi-serialno and paging + control in the application's hands. First, we expose a data buffer + using ogg_sync_buffer(). The app either copies into the + buffer, or passes it directly to read(), etc. We then call + ogg_sync_wrote() to tell how many bytes we just added. + + Pages are returned (pointers into the buffer in ogg_sync_state) + by ogg_sync_pageout(). The page is then submitted to + ogg_stream_pagein() along with the appropriate + ogg_stream_state* (ie, matching serialno). We then get raw + packets out calling ogg_stream_packetout() with a + ogg_stream_state. */ + +/* initialize the struct to a known state */ +int ogg_sync_init(ogg_sync_state *oy){ + if(oy){ + oy->storage = -1; /* used as a readiness flag */ + memset(oy,0,sizeof(*oy)); + } + return(0); +} + +/* clear non-flat storage within */ +int ogg_sync_clear(ogg_sync_state *oy){ + if(oy){ + if(oy->data)_ogg_free(oy->data); + memset(oy,0,sizeof(*oy)); + } + return(0); +} + +int ogg_sync_destroy(ogg_sync_state *oy){ + if(oy){ + ogg_sync_clear(oy); + _ogg_free(oy); + } + return(0); +} + +int ogg_sync_check(ogg_sync_state *oy){ + if(oy->storage<0) return -1; + return 0; +} + +char *ogg_sync_buffer(ogg_sync_state *oy, long size){ + if(ogg_sync_check(oy)) return NULL; + + /* first, clear out any space that has been previously returned */ + if(oy->returned){ + oy->fill-=oy->returned; + if(oy->fill>0) + memmove(oy->data,oy->data+oy->returned,oy->fill); + oy->returned=0; + } + + if(size>oy->storage-oy->fill){ + /* We need to extend the internal buffer */ + long newsize; + void *ret; + + if(size>INT_MAX-4096-oy->fill){ + ogg_sync_clear(oy); + return NULL; + } + newsize=size+oy->fill+4096; /* an extra page to be nice */ + if(oy->data) + ret=_ogg_realloc(oy->data,newsize); + else + ret=_ogg_malloc(newsize); + if(!ret){ + ogg_sync_clear(oy); + return NULL; + } + oy->data=ret; + oy->storage=newsize; + } + + /* expose a segment at least as large as requested at the fill mark */ + return((char *)oy->data+oy->fill); +} + +int ogg_sync_wrote(ogg_sync_state *oy, long bytes){ + if(ogg_sync_check(oy))return -1; + if(oy->fill+bytes>oy->storage)return -1; + oy->fill+=bytes; + return(0); +} + +/* sync the stream. This is meant to be useful for finding page + boundaries. + + return values for this: + -n) skipped n bytes + 0) page not ready; more data (no bytes skipped) + n) page synced at current location; page length n bytes + +*/ + +long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og){ + unsigned char *page=oy->data+oy->returned; + unsigned char *next; + long bytes=oy->fill-oy->returned; + + if(ogg_sync_check(oy))return 0; + + if(oy->headerbytes==0){ + int headerbytes,i; + if(bytes<27)return(0); /* not enough for a header */ + + /* verify capture pattern */ + if(memcmp(page,"OggS",4))goto sync_fail; + + headerbytes=page[26]+27; + if(bytesbodybytes+=page[27+i]; + oy->headerbytes=headerbytes; + } + + if(oy->bodybytes+oy->headerbytes>bytes)return(0); + + /* The whole test page is buffered. Verify the checksum */ + { + /* Grab the checksum bytes, set the header field to zero */ + char chksum[4]; + ogg_page log; + + memcpy(chksum,page+22,4); + memset(page+22,0,4); + + /* set up a temp page struct and recompute the checksum */ + log.header=page; + log.header_len=oy->headerbytes; + log.body=page+oy->headerbytes; + log.body_len=oy->bodybytes; + ogg_page_checksum_set(&log); + + /* Compare */ + if(memcmp(chksum,page+22,4)){ + /* D'oh. Mismatch! Corrupt page (or miscapture and not a page + at all) */ + /* replace the computed checksum with the one actually read in */ + memcpy(page+22,chksum,4); + +#ifndef DISABLE_CRC + /* Bad checksum. Lose sync */ + goto sync_fail; +#endif + } + } + + /* yes, have a whole page all ready to go */ + { + if(og){ + og->header=page; + og->header_len=oy->headerbytes; + og->body=page+oy->headerbytes; + og->body_len=oy->bodybytes; + } + + oy->unsynced=0; + oy->returned+=(bytes=oy->headerbytes+oy->bodybytes); + oy->headerbytes=0; + oy->bodybytes=0; + return(bytes); + } + + sync_fail: + + oy->headerbytes=0; + oy->bodybytes=0; + + /* search for possible capture */ + next=memchr(page+1,'O',bytes-1); + if(!next) + next=oy->data+oy->fill; + + oy->returned=(int)(next-oy->data); + return((long)-(next-page)); +} + +/* sync the stream and get a page. Keep trying until we find a page. + Suppress 'sync errors' after reporting the first. + + return values: + -1) recapture (hole in data) + 0) need more data + 1) page returned + + Returns pointers into buffered data; invalidated by next call to + _stream, _clear, _init, or _buffer */ + +int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og){ + + if(ogg_sync_check(oy))return 0; + + /* all we need to do is verify a page at the head of the stream + buffer. If it doesn't verify, we look for the next potential + frame */ + + for(;;){ + long ret=ogg_sync_pageseek(oy,og); + if(ret>0){ + /* have a page */ + return(1); + } + if(ret==0){ + /* need more data */ + return(0); + } + + /* head did not start a synced page... skipped some bytes */ + if(!oy->unsynced){ + oy->unsynced=1; + return(-1); + } + + /* loop. keep looking */ + + } +} + +/* add the incoming page to the stream state; we decompose the page + into packet segments here as well. */ + +int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og){ + unsigned char *header=og->header; + unsigned char *body=og->body; + long bodysize=og->body_len; + int segptr=0; + + int version=ogg_page_version(og); + int continued=ogg_page_continued(og); + int bos=ogg_page_bos(og); + int eos=ogg_page_eos(og); + ogg_int64_t granulepos=ogg_page_granulepos(og); + int serialno=ogg_page_serialno(og); + long pageno=ogg_page_pageno(og); + int segments=header[26]; + + if(ogg_stream_check(os)) return -1; + + /* clean up 'returned data' */ + { + long lr=os->lacing_returned; + long br=os->body_returned; + + /* body data */ + if(br){ + os->body_fill-=br; + if(os->body_fill) + memmove(os->body_data,os->body_data+br,os->body_fill); + os->body_returned=0; + } + + if(lr){ + /* segment table */ + if(os->lacing_fill-lr){ + memmove(os->lacing_vals,os->lacing_vals+lr, + (os->lacing_fill-lr)*sizeof(*os->lacing_vals)); + memmove(os->granule_vals,os->granule_vals+lr, + (os->lacing_fill-lr)*sizeof(*os->granule_vals)); + } + os->lacing_fill-=lr; + os->lacing_packet-=lr; + os->lacing_returned=0; + } + } + + /* check the serial number */ + if(serialno!=os->serialno)return(-1); + if(version>0)return(-1); + + if(_os_lacing_expand(os,segments+1)) return -1; + + /* are we in sequence? */ + if(pageno!=os->pageno){ + int i; + + /* unroll previous partial packet (if any) */ + for(i=os->lacing_packet;ilacing_fill;i++) + os->body_fill-=os->lacing_vals[i]&0xff; + os->lacing_fill=os->lacing_packet; + + /* make a note of dropped data in segment table */ + if(os->pageno!=-1){ + os->lacing_vals[os->lacing_fill++]=0x400; + os->lacing_packet++; + } + } + + /* are we a 'continued packet' page? If so, we may need to skip + some segments */ + if(continued){ + if(os->lacing_fill<1 || + (os->lacing_vals[os->lacing_fill-1]&0xff)<255 || + os->lacing_vals[os->lacing_fill-1]==0x400){ + bos=0; + for(;segptrbody_data+os->body_fill,body,bodysize); + os->body_fill+=bodysize; + } + + { + int saved=-1; + while(segptrlacing_vals[os->lacing_fill]=val; + os->granule_vals[os->lacing_fill]=-1; + + if(bos){ + os->lacing_vals[os->lacing_fill]|=0x100; + bos=0; + } + + if(val<255)saved=os->lacing_fill; + + os->lacing_fill++; + segptr++; + + if(val<255)os->lacing_packet=os->lacing_fill; + } + + /* set the granulepos on the last granuleval of the last full packet */ + if(saved!=-1){ + os->granule_vals[saved]=granulepos; + } + + } + + if(eos){ + os->e_o_s=1; + if(os->lacing_fill>0) + os->lacing_vals[os->lacing_fill-1]|=0x200; + } + + os->pageno=pageno+1; + + return(0); +} + +/* clear things to an initial state. Good to call, eg, before seeking */ +int ogg_sync_reset(ogg_sync_state *oy){ + if(ogg_sync_check(oy))return -1; + + oy->fill=0; + oy->returned=0; + oy->unsynced=0; + oy->headerbytes=0; + oy->bodybytes=0; + return(0); +} + +int ogg_stream_reset(ogg_stream_state *os){ + if(ogg_stream_check(os)) return -1; + + os->body_fill=0; + os->body_returned=0; + + os->lacing_fill=0; + os->lacing_packet=0; + os->lacing_returned=0; + + os->header_fill=0; + + os->e_o_s=0; + os->b_o_s=0; + os->pageno=-1; + os->packetno=0; + os->granulepos=0; + + return(0); +} + +int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno){ + if(ogg_stream_check(os)) return -1; + ogg_stream_reset(os); + os->serialno=serialno; + return(0); +} + +static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv){ + + /* The last part of decode. We have the stream broken into packet + segments. Now we need to group them into packets (or return the + out of sync markers) */ + + int ptr=os->lacing_returned; + + if(os->lacing_packet<=ptr)return(0); + + if(os->lacing_vals[ptr]&0x400){ + /* we need to tell the codec there's a gap; it might need to + handle previous packet dependencies. */ + os->lacing_returned++; + os->packetno++; + return(-1); + } + + if(!op && !adv)return(1); /* just using peek as an inexpensive way + to ask if there's a whole packet + waiting */ + + /* Gather the whole packet. We'll have no holes or a partial packet */ + { + int size=os->lacing_vals[ptr]&0xff; + long bytes=size; + int eos=os->lacing_vals[ptr]&0x200; /* last packet of the stream? */ + int bos=os->lacing_vals[ptr]&0x100; /* first packet of the stream? */ + + while(size==255){ + int val=os->lacing_vals[++ptr]; + size=val&0xff; + if(val&0x200)eos=0x200; + bytes+=size; + } + + if(op){ + op->e_o_s=eos; + op->b_o_s=bos; + op->packet=os->body_data+os->body_returned; + op->packetno=os->packetno; + op->granulepos=os->granule_vals[ptr]; + op->bytes=bytes; + } + + if(adv){ + os->body_returned+=bytes; + os->lacing_returned=ptr+1; + os->packetno++; + } + } + return(1); +} + +int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op){ + if(ogg_stream_check(os)) return 0; + return _packetout(os,op,1); +} + +int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op){ + if(ogg_stream_check(os)) return 0; + return _packetout(os,op,0); +} + +void ogg_packet_clear(ogg_packet *op) { + _ogg_free(op->packet); + memset(op, 0, sizeof(*op)); +} + +#ifdef _V_SELFTEST +#include + +ogg_stream_state os_en, os_de; +ogg_sync_state oy; + +void checkpacket(ogg_packet *op,long len, int no, long pos){ + long j; + static int sequence=0; + static int lastno=0; + + if(op->bytes!=len){ + fprintf(stderr,"incorrect packet length (%ld != %ld)!\n",op->bytes,len); + exit(1); + } + if(op->granulepos!=pos){ + fprintf(stderr,"incorrect packet granpos (%ld != %ld)!\n",(long)op->granulepos,pos); + exit(1); + } + + /* packet number just follows sequence/gap; adjust the input number + for that */ + if(no==0){ + sequence=0; + }else{ + sequence++; + if(no>lastno+1) + sequence++; + } + lastno=no; + if(op->packetno!=sequence){ + fprintf(stderr,"incorrect packet sequence %ld != %d\n", + (long)(op->packetno),sequence); + exit(1); + } + + /* Test data */ + for(j=0;jbytes;j++) + if(op->packet[j]!=((j+no)&0xff)){ + fprintf(stderr,"body data mismatch (1) at pos %ld: %x!=%lx!\n\n", + j,op->packet[j],(j+no)&0xff); + exit(1); + } +} + +void check_page(unsigned char *data,const int *header,ogg_page *og){ + long j; + /* Test data */ + for(j=0;jbody_len;j++) + if(og->body[j]!=data[j]){ + fprintf(stderr,"body data mismatch (2) at pos %ld: %x!=%x!\n\n", + j,data[j],og->body[j]); + exit(1); + } + + /* Test header */ + for(j=0;jheader_len;j++){ + if(og->header[j]!=header[j]){ + fprintf(stderr,"header content mismatch at pos %ld:\n",j); + for(j=0;jheader[j]); + fprintf(stderr,"\n"); + exit(1); + } + } + if(og->header_len!=header[26]+27){ + fprintf(stderr,"header length incorrect! (%ld!=%d)\n", + og->header_len,header[26]+27); + exit(1); + } +} + +void print_header(ogg_page *og){ + int j; + fprintf(stderr,"\nHEADER:\n"); + fprintf(stderr," capture: %c %c %c %c version: %d flags: %x\n", + og->header[0],og->header[1],og->header[2],og->header[3], + (int)og->header[4],(int)og->header[5]); + + fprintf(stderr," granulepos: %d serialno: %d pageno: %ld\n", + (og->header[9]<<24)|(og->header[8]<<16)| + (og->header[7]<<8)|og->header[6], + (og->header[17]<<24)|(og->header[16]<<16)| + (og->header[15]<<8)|og->header[14], + ((long)(og->header[21])<<24)|(og->header[20]<<16)| + (og->header[19]<<8)|og->header[18]); + + fprintf(stderr," checksum: %02x:%02x:%02x:%02x\n segments: %d (", + (int)og->header[22],(int)og->header[23], + (int)og->header[24],(int)og->header[25], + (int)og->header[26]); + + for(j=27;jheader_len;j++) + fprintf(stderr,"%d ",(int)og->header[j]); + fprintf(stderr,")\n\n"); +} + +void copy_page(ogg_page *og){ + unsigned char *temp=_ogg_malloc(og->header_len); + memcpy(temp,og->header,og->header_len); + og->header=temp; + + temp=_ogg_malloc(og->body_len); + memcpy(temp,og->body,og->body_len); + og->body=temp; +} + +void free_page(ogg_page *og){ + _ogg_free (og->header); + _ogg_free (og->body); +} + +void error(void){ + fprintf(stderr,"error!\n"); + exit(1); +} + +/* 17 only */ +const int head1_0[] = {0x4f,0x67,0x67,0x53,0,0x06, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,0,0,0,0, + 0x15,0xed,0xec,0x91, + 1, + 17}; + +/* 17, 254, 255, 256, 500, 510, 600 byte, pad */ +const int head1_1[] = {0x4f,0x67,0x67,0x53,0,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,0,0,0,0, + 0x59,0x10,0x6c,0x2c, + 1, + 17}; +const int head2_1[] = {0x4f,0x67,0x67,0x53,0,0x04, + 0x07,0x18,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,1,0,0,0, + 0x89,0x33,0x85,0xce, + 13, + 254,255,0,255,1,255,245,255,255,0, + 255,255,90}; + +/* nil packets; beginning,middle,end */ +const int head1_2[] = {0x4f,0x67,0x67,0x53,0,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,0,0,0,0, + 0xff,0x7b,0x23,0x17, + 1, + 0}; +const int head2_2[] = {0x4f,0x67,0x67,0x53,0,0x04, + 0x07,0x28,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,1,0,0,0, + 0x5c,0x3f,0x66,0xcb, + 17, + 17,254,255,0,0,255,1,0,255,245,255,255,0, + 255,255,90,0}; + +/* large initial packet */ +const int head1_3[] = {0x4f,0x67,0x67,0x53,0,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,0,0,0,0, + 0x01,0x27,0x31,0xaa, + 18, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,10}; + +const int head2_3[] = {0x4f,0x67,0x67,0x53,0,0x04, + 0x07,0x08,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,1,0,0,0, + 0x7f,0x4e,0x8a,0xd2, + 4, + 255,4,255,0}; + + +/* continuing packet test */ +const int head1_4[] = {0x4f,0x67,0x67,0x53,0,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,0,0,0,0, + 0xff,0x7b,0x23,0x17, + 1, + 0}; + +const int head2_4[] = {0x4f,0x67,0x67,0x53,0,0x00, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0x02,0x03,0x04,1,0,0,0, + 0xf8,0x3c,0x19,0x79, + 255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255}; + +const int head3_4[] = {0x4f,0x67,0x67,0x53,0,0x05, + 0x07,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,2,0,0,0, + 0x38,0xe6,0xb6,0x28, + 6, + 255,220,255,4,255,0}; + + +/* spill expansion test */ +const int head1_4b[] = {0x4f,0x67,0x67,0x53,0,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,0,0,0,0, + 0xff,0x7b,0x23,0x17, + 1, + 0}; + +const int head2_4b[] = {0x4f,0x67,0x67,0x53,0,0x00, + 0x07,0x10,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,1,0,0,0, + 0xce,0x8f,0x17,0x1a, + 23, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,10,255,4,255,0,0}; + + +const int head3_4b[] = {0x4f,0x67,0x67,0x53,0,0x04, + 0x07,0x14,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,2,0,0,0, + 0x9b,0xb2,0x50,0xa1, + 1, + 0}; + +/* page with the 255 segment limit */ +const int head1_5[] = {0x4f,0x67,0x67,0x53,0,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,0,0,0,0, + 0xff,0x7b,0x23,0x17, + 1, + 0}; + +const int head2_5[] = {0x4f,0x67,0x67,0x53,0,0x00, + 0x07,0xfc,0x03,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,1,0,0,0, + 0xed,0x2a,0x2e,0xa7, + 255, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10}; + +const int head3_5[] = {0x4f,0x67,0x67,0x53,0,0x04, + 0x07,0x00,0x04,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,2,0,0,0, + 0x6c,0x3b,0x82,0x3d, + 1, + 50}; + + +/* packet that overspans over an entire page */ +const int head1_6[] = {0x4f,0x67,0x67,0x53,0,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,0,0,0,0, + 0xff,0x7b,0x23,0x17, + 1, + 0}; + +const int head2_6[] = {0x4f,0x67,0x67,0x53,0,0x00, + 0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,1,0,0,0, + 0x68,0x22,0x7c,0x3d, + 255, + 100, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255}; + +const int head3_6[] = {0x4f,0x67,0x67,0x53,0,0x01, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0x02,0x03,0x04,2,0,0,0, + 0xf4,0x87,0xba,0xf3, + 255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255}; + +const int head4_6[] = {0x4f,0x67,0x67,0x53,0,0x05, + 0x07,0x10,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,3,0,0,0, + 0xf7,0x2f,0x6c,0x60, + 5, + 254,255,4,255,0}; + +/* packet that overspans over an entire page */ +const int head1_7[] = {0x4f,0x67,0x67,0x53,0,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,0,0,0,0, + 0xff,0x7b,0x23,0x17, + 1, + 0}; + +const int head2_7[] = {0x4f,0x67,0x67,0x53,0,0x00, + 0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,1,0,0,0, + 0x68,0x22,0x7c,0x3d, + 255, + 100, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255, + 255,255,255,255,255,255}; + +const int head3_7[] = {0x4f,0x67,0x67,0x53,0,0x05, + 0x07,0x08,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x03,0x04,2,0,0,0, + 0xd4,0xe0,0x60,0xe5, + 1, + 0}; + +int compare_packet(const ogg_packet *op1, const ogg_packet *op2){ + if(op1->packet!=op2->packet){ + fprintf(stderr,"op1->packet != op2->packet\n"); + return(1); + } + if(op1->bytes!=op2->bytes){ + fprintf(stderr,"op1->bytes != op2->bytes\n"); + return(1); + } + if(op1->b_o_s!=op2->b_o_s){ + fprintf(stderr,"op1->b_o_s != op2->b_o_s\n"); + return(1); + } + if(op1->e_o_s!=op2->e_o_s){ + fprintf(stderr,"op1->e_o_s != op2->e_o_s\n"); + return(1); + } + if(op1->granulepos!=op2->granulepos){ + fprintf(stderr,"op1->granulepos != op2->granulepos\n"); + return(1); + } + if(op1->packetno!=op2->packetno){ + fprintf(stderr,"op1->packetno != op2->packetno\n"); + return(1); + } + return(0); +} + +void test_pack(const int *pl, const int **headers, int byteskip, + int pageskip, int packetskip){ + unsigned char *data=_ogg_malloc(1024*1024); /* for scripted test cases only */ + long inptr=0; + long outptr=0; + long deptr=0; + long depacket=0; + long granule_pos=7,pageno=0; + int i,j,packets,pageout=pageskip; + int eosflag=0; + int bosflag=0; + + int byteskipcount=0; + + ogg_stream_reset(&os_en); + ogg_stream_reset(&os_de); + ogg_sync_reset(&oy); + + for(packets=0;packetsbyteskip){ + memcpy(next,og.header,byteskipcount-byteskip); + next+=byteskipcount-byteskip; + byteskipcount=byteskip; + } + + byteskipcount+=og.body_len; + if(byteskipcount>byteskip){ + memcpy(next,og.body,byteskipcount-byteskip); + next+=byteskipcount-byteskip; + byteskipcount=byteskip; + } + + ogg_sync_wrote(&oy,(long)(next-buf)); + + while(1){ + int ret=ogg_sync_pageout(&oy,&og_de); + if(ret==0)break; + if(ret<0)continue; + /* got a page. Happy happy. Verify that it's good. */ + + fprintf(stderr,"(%d), ",pageout); + + check_page(data+deptr,headers[pageout],&og_de); + deptr+=og_de.body_len; + pageout++; + + /* submit it to deconstitution */ + ogg_stream_pagein(&os_de,&og_de); + + /* packets out? */ + while(ogg_stream_packetpeek(&os_de,&op_de2)>0){ + ogg_stream_packetpeek(&os_de,NULL); + ogg_stream_packetout(&os_de,&op_de); /* just catching them all */ + + /* verify peek and out match */ + if(compare_packet(&op_de,&op_de2)){ + fprintf(stderr,"packetout != packetpeek! pos=%ld\n", + depacket); + exit(1); + } + + /* verify the packet! */ + /* check data */ + if(memcmp(data+depacket,op_de.packet,op_de.bytes)){ + fprintf(stderr,"packet data mismatch in decode! pos=%ld\n", + depacket); + exit(1); + } + /* check bos flag */ + if(bosflag==0 && op_de.b_o_s==0){ + fprintf(stderr,"b_o_s flag not set on packet!\n"); + exit(1); + } + if(bosflag && op_de.b_o_s){ + fprintf(stderr,"b_o_s flag incorrectly set on packet!\n"); + exit(1); + } + bosflag=1; + depacket+=op_de.bytes; + + /* check eos flag */ + if(eosflag){ + fprintf(stderr,"Multiple decoded packets with eos flag!\n"); + exit(1); + } + + if(op_de.e_o_s)eosflag=1; + + /* check granulepos flag */ + if(op_de.granulepos!=-1){ + fprintf(stderr," granule:%ld ",(long)op_de.granulepos); + } + } + } + } + } + } + } + _ogg_free(data); + if(headers[pageno]!=NULL){ + fprintf(stderr,"did not write last page!\n"); + exit(1); + } + if(headers[pageout]!=NULL){ + fprintf(stderr,"did not decode last page!\n"); + exit(1); + } + if(inptr!=outptr){ + fprintf(stderr,"encoded page data incomplete!\n"); + exit(1); + } + if(inptr!=deptr){ + fprintf(stderr,"decoded page data incomplete!\n"); + exit(1); + } + if(inptr!=depacket){ + fprintf(stderr,"decoded packet data incomplete!\n"); + exit(1); + } + if(!eosflag){ + fprintf(stderr,"Never got a packet with EOS set!\n"); + exit(1); + } + fprintf(stderr,"ok.\n"); +} + +int main(void){ + + ogg_stream_init(&os_en,0x04030201); + ogg_stream_init(&os_de,0x04030201); + ogg_sync_init(&oy); + + /* Exercise each code path in the framing code. Also verify that + the checksums are working. */ + + { + /* 17 only */ + const int packets[]={17, -1}; + const int *headret[]={head1_0,NULL}; + + fprintf(stderr,"testing single page encoding... "); + test_pack(packets,headret,0,0,0); + } + + { + /* 17, 254, 255, 256, 500, 510, 600 byte, pad */ + const int packets[]={17, 254, 255, 256, 500, 510, 600, -1}; + const int *headret[]={head1_1,head2_1,NULL}; + + fprintf(stderr,"testing basic page encoding... "); + test_pack(packets,headret,0,0,0); + } + + { + /* nil packets; beginning,middle,end */ + const int packets[]={0,17, 254, 255, 0, 256, 0, 500, 510, 600, 0, -1}; + const int *headret[]={head1_2,head2_2,NULL}; + + fprintf(stderr,"testing basic nil packets... "); + test_pack(packets,headret,0,0,0); + } + + { + /* large initial packet */ + const int packets[]={4345,259,255,-1}; + const int *headret[]={head1_3,head2_3,NULL}; + + fprintf(stderr,"testing initial-packet lacing > 4k... "); + test_pack(packets,headret,0,0,0); + } + + { + /* continuing packet test; with page spill expansion, we have to + overflow the lacing table. */ + const int packets[]={0,65500,259,255,-1}; + const int *headret[]={head1_4,head2_4,head3_4,NULL}; + + fprintf(stderr,"testing single packet page span... "); + test_pack(packets,headret,0,0,0); + } + + { + /* spill expand packet test */ + const int packets[]={0,4345,259,255,0,0,-1}; + const int *headret[]={head1_4b,head2_4b,head3_4b,NULL}; + + fprintf(stderr,"testing page spill expansion... "); + test_pack(packets,headret,0,0,0); + } + + /* page with the 255 segment limit */ + { + + const int packets[]={0,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,50,-1}; + const int *headret[]={head1_5,head2_5,head3_5,NULL}; + + fprintf(stderr,"testing max packet segments... "); + test_pack(packets,headret,0,0,0); + } + + { + /* packet that overspans over an entire page */ + const int packets[]={0,100,130049,259,255,-1}; + const int *headret[]={head1_6,head2_6,head3_6,head4_6,NULL}; + + fprintf(stderr,"testing very large packets... "); + test_pack(packets,headret,0,0,0); + } + +#ifndef DISABLE_CRC + { + /* test for the libogg 1.1.1 resync in large continuation bug + found by Josh Coalson) */ + const int packets[]={0,100,130049,259,255,-1}; + const int *headret[]={head1_6,head2_6,head3_6,head4_6,NULL}; + + fprintf(stderr,"testing continuation resync in very large packets... "); + test_pack(packets,headret,100,2,3); + } +#else + fprintf(stderr,"Skipping continuation resync test due to --disable-crc\n"); +#endif + + { + /* term only page. why not? */ + const int packets[]={0,100,64770,-1}; + const int *headret[]={head1_7,head2_7,head3_7,NULL}; + + fprintf(stderr,"testing zero data page (1 nil packet)... "); + test_pack(packets,headret,0,0,0); + } + + + + { + /* build a bunch of pages for testing */ + unsigned char *data=_ogg_malloc(1024*1024); + int pl[]={0, 1,1,98,4079, 1,1,2954,2057, 76,34,912,0,234,1000,1000, 1000,300,-1}; + int inptr=0,i,j; + ogg_page og[5]; + + ogg_stream_reset(&os_en); + + for(i=0;pl[i]!=-1;i++){ + ogg_packet op; + int len=pl[i]; + + op.packet=data+inptr; + op.bytes=len; + op.e_o_s=(pl[i+1]<0?1:0); + op.granulepos=(i+1)*1000; + + for(j=0;j0)error(); + + /* Test fractional page inputs: incomplete fixed header */ + memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+3, + 20); + ogg_sync_wrote(&oy,20); + if(ogg_sync_pageout(&oy,&og_de)>0)error(); + + /* Test fractional page inputs: incomplete header */ + memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+23, + 5); + ogg_sync_wrote(&oy,5); + if(ogg_sync_pageout(&oy,&og_de)>0)error(); + + /* Test fractional page inputs: incomplete body */ + + memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+28, + og[1].header_len-28); + ogg_sync_wrote(&oy,og[1].header_len-28); + if(ogg_sync_pageout(&oy,&og_de)>0)error(); + + memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body,1000); + ogg_sync_wrote(&oy,1000); + if(ogg_sync_pageout(&oy,&og_de)>0)error(); + + memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body+1000, + og[1].body_len-1000); + ogg_sync_wrote(&oy,og[1].body_len-1000); + if(ogg_sync_pageout(&oy,&og_de)<=0)error(); + + fprintf(stderr,"ok.\n"); + } + + /* Test fractional page inputs: page + incomplete capture */ + { + ogg_page og_de; + fprintf(stderr,"Testing sync on 1+partial inputs... "); + ogg_sync_reset(&oy); + + memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, + og[1].header_len); + ogg_sync_wrote(&oy,og[1].header_len); + + memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, + og[1].body_len); + ogg_sync_wrote(&oy,og[1].body_len); + + memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, + 20); + ogg_sync_wrote(&oy,20); + if(ogg_sync_pageout(&oy,&og_de)<=0)error(); + if(ogg_sync_pageout(&oy,&og_de)>0)error(); + + memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+20, + og[1].header_len-20); + ogg_sync_wrote(&oy,og[1].header_len-20); + memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, + og[1].body_len); + ogg_sync_wrote(&oy,og[1].body_len); + if(ogg_sync_pageout(&oy,&og_de)<=0)error(); + + fprintf(stderr,"ok.\n"); + } + + /* Test recapture: garbage + page */ + { + ogg_page og_de; + fprintf(stderr,"Testing search for capture... "); + ogg_sync_reset(&oy); + + /* 'garbage' */ + memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, + og[1].body_len); + ogg_sync_wrote(&oy,og[1].body_len); + + memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, + og[1].header_len); + ogg_sync_wrote(&oy,og[1].header_len); + + memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, + og[1].body_len); + ogg_sync_wrote(&oy,og[1].body_len); + + memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header, + 20); + ogg_sync_wrote(&oy,20); + if(ogg_sync_pageout(&oy,&og_de)>0)error(); + if(ogg_sync_pageout(&oy,&og_de)<=0)error(); + if(ogg_sync_pageout(&oy,&og_de)>0)error(); + + memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header+20, + og[2].header_len-20); + ogg_sync_wrote(&oy,og[2].header_len-20); + memcpy(ogg_sync_buffer(&oy,og[2].body_len),og[2].body, + og[2].body_len); + ogg_sync_wrote(&oy,og[2].body_len); + if(ogg_sync_pageout(&oy,&og_de)<=0)error(); + + fprintf(stderr,"ok.\n"); + } + +#ifndef DISABLE_CRC + /* Test recapture: page + garbage + page */ + { + ogg_page og_de; + fprintf(stderr,"Testing recapture... "); + ogg_sync_reset(&oy); + + memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, + og[1].header_len); + ogg_sync_wrote(&oy,og[1].header_len); + + memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, + og[1].body_len); + ogg_sync_wrote(&oy,og[1].body_len); + + memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header, + og[2].header_len); + ogg_sync_wrote(&oy,og[2].header_len); + + memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header, + og[2].header_len); + ogg_sync_wrote(&oy,og[2].header_len); + + if(ogg_sync_pageout(&oy,&og_de)<=0)error(); + + memcpy(ogg_sync_buffer(&oy,og[2].body_len),og[2].body, + og[2].body_len-5); + ogg_sync_wrote(&oy,og[2].body_len-5); + + memcpy(ogg_sync_buffer(&oy,og[3].header_len),og[3].header, + og[3].header_len); + ogg_sync_wrote(&oy,og[3].header_len); + + memcpy(ogg_sync_buffer(&oy,og[3].body_len),og[3].body, + og[3].body_len); + ogg_sync_wrote(&oy,og[3].body_len); + + if(ogg_sync_pageout(&oy,&og_de)>0)error(); + if(ogg_sync_pageout(&oy,&og_de)<=0)error(); + + fprintf(stderr,"ok.\n"); + } +#else + fprintf(stderr,"Skipping recapture test due to --disable-crc\n"); +#endif + + /* Free page data that was previously copied */ + { + for(i=0;i<5;i++){ + free_page(&og[i]); + } + } + } + ogg_sync_clear(&oy); + ogg_stream_clear(&os_en); + ogg_stream_clear(&os_de); + + return(0); +} + +#endif diff --git a/thirdparty/libogg/ogg/config_types.h b/thirdparty/libogg/ogg/config_types.h new file mode 100644 index 0000000..1a87df6 --- /dev/null +++ b/thirdparty/libogg/ogg/config_types.h @@ -0,0 +1,26 @@ +#ifndef __CONFIG_TYPES_H__ +#define __CONFIG_TYPES_H__ + +/* these are filled in by configure or cmake*/ +#define INCLUDE_INTTYPES_H 1 +#define INCLUDE_STDINT_H 1 +#define INCLUDE_SYS_TYPES_H 1 + +#if INCLUDE_INTTYPES_H +# include +#endif +#if INCLUDE_STDINT_H +# include +#endif +#if INCLUDE_SYS_TYPES_H +# include +#endif + +typedef int16_t ogg_int16_t; +typedef uint16_t ogg_uint16_t; +typedef int32_t ogg_int32_t; +typedef uint32_t ogg_uint32_t; +typedef int64_t ogg_int64_t; +typedef uint64_t ogg_uint64_t; + +#endif diff --git a/thirdparty/libogg/ogg/ogg.h b/thirdparty/libogg/ogg/ogg.h new file mode 100644 index 0000000..c4325aa --- /dev/null +++ b/thirdparty/libogg/ogg/ogg.h @@ -0,0 +1,209 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: toplevel libogg include + + ********************************************************************/ +#ifndef _OGG_H +#define _OGG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +typedef struct { + void *iov_base; + size_t iov_len; +} ogg_iovec_t; + +typedef struct { + long endbyte; + int endbit; + + unsigned char *buffer; + unsigned char *ptr; + long storage; +} oggpack_buffer; + +/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ + +typedef struct { + unsigned char *header; + long header_len; + unsigned char *body; + long body_len; +} ogg_page; + +/* ogg_stream_state contains the current encode/decode state of a logical + Ogg bitstream **********************************************************/ + +typedef struct { + unsigned char *body_data; /* bytes from packet bodies */ + long body_storage; /* storage elements allocated */ + long body_fill; /* elements stored; fill mark */ + long body_returned; /* elements of fill returned */ + + + int *lacing_vals; /* The values that will go to the segment table */ + ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact + this way, but it is simple coupled to the + lacing fifo */ + long lacing_storage; + long lacing_fill; + long lacing_packet; + long lacing_returned; + + unsigned char header[282]; /* working space for header encode */ + int header_fill; + + int e_o_s; /* set when we have buffered the last packet in the + logical bitstream */ + int b_o_s; /* set after we've written the initial page + of a logical bitstream */ + long serialno; + long pageno; + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ + ogg_int64_t granulepos; + +} ogg_stream_state; + +/* ogg_packet is used to encapsulate the data and metadata belonging + to a single raw Ogg/Vorbis packet *************************************/ + +typedef struct { + unsigned char *packet; + long bytes; + long b_o_s; + long e_o_s; + + ogg_int64_t granulepos; + + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ +} ogg_packet; + +typedef struct { + unsigned char *data; + int storage; + int fill; + int returned; + + int unsynced; + int headerbytes; + int bodybytes; +} ogg_sync_state; + +/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ + +extern void oggpack_writeinit(oggpack_buffer *b); +extern int oggpack_writecheck(oggpack_buffer *b); +extern void oggpack_writetrunc(oggpack_buffer *b,long bits); +extern void oggpack_writealign(oggpack_buffer *b); +extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpack_reset(oggpack_buffer *b); +extern void oggpack_writeclear(oggpack_buffer *b); +extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpack_look(oggpack_buffer *b,int bits); +extern long oggpack_look1(oggpack_buffer *b); +extern void oggpack_adv(oggpack_buffer *b,int bits); +extern void oggpack_adv1(oggpack_buffer *b); +extern long oggpack_read(oggpack_buffer *b,int bits); +extern long oggpack_read1(oggpack_buffer *b); +extern long oggpack_bytes(oggpack_buffer *b); +extern long oggpack_bits(oggpack_buffer *b); +extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); + +extern void oggpackB_writeinit(oggpack_buffer *b); +extern int oggpackB_writecheck(oggpack_buffer *b); +extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); +extern void oggpackB_writealign(oggpack_buffer *b); +extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpackB_reset(oggpack_buffer *b); +extern void oggpackB_writeclear(oggpack_buffer *b); +extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpackB_look(oggpack_buffer *b,int bits); +extern long oggpackB_look1(oggpack_buffer *b); +extern void oggpackB_adv(oggpack_buffer *b,int bits); +extern void oggpackB_adv1(oggpack_buffer *b); +extern long oggpackB_read(oggpack_buffer *b,int bits); +extern long oggpackB_read1(oggpack_buffer *b); +extern long oggpackB_bytes(oggpack_buffer *b); +extern long oggpackB_bits(oggpack_buffer *b); +extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); + +/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ + +extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); +extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, + int count, long e_o_s, ogg_int64_t granulepos); +extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); +extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); + +/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ + +extern int ogg_sync_init(ogg_sync_state *oy); +extern int ogg_sync_clear(ogg_sync_state *oy); +extern int ogg_sync_reset(ogg_sync_state *oy); +extern int ogg_sync_destroy(ogg_sync_state *oy); +extern int ogg_sync_check(ogg_sync_state *oy); + +extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); +extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); +extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); +extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); +extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); +extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); + +/* Ogg BITSTREAM PRIMITIVES: general ***************************/ + +extern int ogg_stream_init(ogg_stream_state *os,int serialno); +extern int ogg_stream_clear(ogg_stream_state *os); +extern int ogg_stream_reset(ogg_stream_state *os); +extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); +extern int ogg_stream_destroy(ogg_stream_state *os); +extern int ogg_stream_check(ogg_stream_state *os); +extern int ogg_stream_eos(ogg_stream_state *os); + +extern void ogg_page_checksum_set(ogg_page *og); + +extern int ogg_page_version(const ogg_page *og); +extern int ogg_page_continued(const ogg_page *og); +extern int ogg_page_bos(const ogg_page *og); +extern int ogg_page_eos(const ogg_page *og); +extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); +extern int ogg_page_serialno(const ogg_page *og); +extern long ogg_page_pageno(const ogg_page *og); +extern int ogg_page_packets(const ogg_page *og); + +extern void ogg_packet_clear(ogg_packet *op); + + +#ifdef __cplusplus +} +#endif + +#endif /* _OGG_H */ diff --git a/thirdparty/libogg/ogg/os_types.h b/thirdparty/libogg/ogg/os_types.h new file mode 100644 index 0000000..e655a1d --- /dev/null +++ b/thirdparty/libogg/ogg/os_types.h @@ -0,0 +1,158 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: Define a consistent set of types on each platform. + + ********************************************************************/ +#ifndef _OS_TYPES_H +#define _OS_TYPES_H + +/* make it easy on the folks that want to compile the libs with a + different malloc than stdlib */ +#define _ogg_malloc malloc +#define _ogg_calloc calloc +#define _ogg_realloc realloc +#define _ogg_free free + +#if defined(_WIN32) + +# if defined(__CYGWIN__) +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + typedef uint64_t ogg_uint64_t; +# elif defined(__MINGW32__) +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; +# elif defined(__MWERKS__) + typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; +# else +# if defined(_MSC_VER) && (_MSC_VER >= 1800) /* MSVC 2013 and newer */ +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + typedef uint64_t ogg_uint64_t; +# else + /* MSVC/Borland */ + typedef __int64 ogg_int64_t; + typedef __int32 ogg_int32_t; + typedef unsigned __int32 ogg_uint32_t; + typedef unsigned __int64 ogg_uint64_t; + typedef __int16 ogg_int16_t; + typedef unsigned __int16 ogg_uint16_t; +# endif +# endif + +#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ + +# include + typedef int16_t ogg_int16_t; + typedef u_int16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef u_int32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + typedef u_int64_t ogg_uint64_t; + +#elif defined(__HAIKU__) + + /* Haiku */ +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; + +#elif defined(__BEOS__) + + /* Be */ +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + typedef uint64_t ogg_uint64_t; + +#elif defined (__EMX__) + + /* OS/2 GCC */ + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; + + +#elif defined (DJGPP) + + /* DJGPP */ + typedef short ogg_int16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; + +#elif defined(R5900) + + /* PS2 EE */ + typedef long ogg_int64_t; + typedef unsigned long ogg_uint64_t; + typedef int ogg_int32_t; + typedef unsigned ogg_uint32_t; + typedef short ogg_int16_t; + +#elif defined(__SYMBIAN32__) + + /* Symbian GCC */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + typedef unsigned long long int ogg_uint64_t; + +#elif defined(__TMS320C6X__) + + /* TI C64x compiler */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + typedef unsigned long long int ogg_uint64_t; + +#else + +# include + +#endif + +#endif /* _OS_TYPES_H */