├── .all-contributorsrc ├── .clang-format ├── .cmake-format.json ├── .github ├── CODEOWNERS ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── actions │ ├── build-plugin │ │ └── action.yml │ └── package-plugin │ │ └── action.yml ├── assets │ └── images │ │ ├── block-noise-example.png │ │ ├── domain-warping.png │ │ ├── evolution.png │ │ ├── general-noise-properties.png │ │ ├── linear-noise-example.png │ │ ├── noise-complexity.png │ │ ├── noise-logo.png │ │ ├── open-simplex-noise-example.png │ │ ├── presets.png │ │ ├── smoothstep-noise-example.png │ │ ├── source-properties.png │ │ ├── subscale-properties.png │ │ ├── transform.png │ │ └── worley-noise-example.png ├── scripts │ ├── .Aptfile │ ├── .Brewfile │ ├── .Wingetfile │ ├── .build.zsh │ ├── .package.zsh │ ├── Build-Windows.ps1 │ ├── Package-Windows.ps1 │ ├── build-linux.sh │ ├── build-linux.zsh │ ├── build-macos.zsh │ ├── check-changes.sh │ ├── check-cmake.sh │ ├── check-format.sh │ ├── package-linux.sh │ ├── package-linux.zsh │ ├── package-macos.zsh │ ├── utils.pwsh │ │ ├── Check-Git.ps1 │ │ ├── Ensure-Location.ps1 │ │ ├── Expand-ArchiveExt.ps1 │ │ ├── Install-BuildDependencies.ps1 │ │ ├── Invoke-External.ps1 │ │ ├── Invoke-GitCheckout.ps1 │ │ ├── Logger.ps1 │ │ ├── Setup-Host.ps1 │ │ └── Setup-Obs.ps1 │ └── utils.zsh │ │ ├── check_linux │ │ ├── check_macos │ │ ├── check_packages │ │ ├── log_debug │ │ ├── log_error │ │ ├── log_info │ │ ├── log_output │ │ ├── log_status │ │ ├── log_warning │ │ ├── mkcd │ │ ├── read_codesign │ │ ├── read_codesign_installer │ │ ├── read_codesign_pass │ │ ├── read_codesign_user │ │ ├── set_loglevel │ │ ├── setup_ccache │ │ ├── setup_linux │ │ ├── setup_macos │ │ └── setup_obs └── workflows │ └── build.yml ├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── README.md ├── build-aux ├── .functions │ ├── log_debug │ ├── log_error │ ├── log_group │ ├── log_info │ ├── log_output │ ├── log_status │ ├── log_warning │ └── set_loglevel ├── .run-format.zsh ├── run-clang-format ├── run-cmake-format └── run-swift-format ├── buildspec.json ├── cmake ├── Bundle │ └── macos │ │ ├── Plugin-Info.plist.in │ │ ├── entitlements.plist │ │ └── installer-macos.pkgproj.in └── ObsPluginHelpers.cmake ├── data ├── locale │ └── en-US.ini ├── presets │ └── global_presets.json └── shaders │ ├── dual_kawase_down_sample.effect │ ├── dual_kawase_up_sample.effect │ ├── mix.effect │ ├── noise.effect │ ├── noise_displace-backup.effect │ ├── noise_displace.effect │ ├── noise_functions.effect │ ├── noise_gradient.effect │ ├── noise_hash_pcg.effect │ ├── noise_hash_sin.effect │ ├── noise_mappings.effect │ ├── noise_type_block.effect │ ├── noise_type_linear.effect │ ├── noise_type_open_simplex.effect │ ├── noise_type_smoothstep.effect │ ├── noise_type_worley.effect │ ├── render_output.effect │ └── utilities.effect ├── installer.iss.in ├── media ├── icon.ico └── logo.png ├── resource.rc.in └── src ├── dual-kawase.c ├── dual-kawase.h ├── obs-noise-plugin.c ├── obs-noise-source.c ├── obs-noise-source.h ├── obs-noise.h ├── obs-utils.c ├── obs-utils.h ├── version.h └── version.h.in /.all-contributorsrc: -------------------------------------------------------------------------------- 1 | { 2 | "projectName": "obs-composite-blur", 3 | "projectOwner": "FiniteSingularity", 4 | "files": [ 5 | "README.md" 6 | ], 7 | "commitType": "docs", 8 | "commitConvention": "angular", 9 | "contributorsPerLine": 7, 10 | "contributors": [ 11 | { 12 | "login": "FiniteSingularity", 13 | "name": "FiniteSingularity", 14 | "avatar_url": "https://avatars.githubusercontent.com/u/72580859?v=4", 15 | "profile": "https://github.com/FiniteSingularity", 16 | "contributions": [ 17 | "code", 18 | "doc" 19 | ] 20 | }, 21 | { 22 | "login": "exeldro", 23 | "name": "Exeldro", 24 | "avatar_url": "https://avatars.githubusercontent.com/u/5457024?v=4", 25 | "profile": "https://github.com/exeldro", 26 | "contributions": [ 27 | "code" 28 | ] 29 | }, 30 | { 31 | "login": "prgmitchell", 32 | "name": "prgmitchell", 33 | "avatar_url": "https://avatars.githubusercontent.com/u/86465454?v=4", 34 | "profile": "https://github.com/prgmitchell", 35 | "contributions": [ 36 | "bug" 37 | ] 38 | }, 39 | { 40 | "login": "andilippi", 41 | "name": "Andi Stone", 42 | "avatar_url": "https://avatars.githubusercontent.com/u/64610623?v=4", 43 | "profile": "https://www.youtube.com/andilippi", 44 | "contributions": [ 45 | "bug" 46 | ] 47 | }, 48 | { 49 | "login": "dnaka91", 50 | "name": "Dominik Nakamura", 51 | "avatar_url": "https://avatars.githubusercontent.com/u/36804488?v=4", 52 | "profile": "https://home.dnaka91.rocks", 53 | "contributions": [ 54 | "doc", 55 | "platform" 56 | ] 57 | } 58 | ] 59 | } 60 | -------------------------------------------------------------------------------- /.clang-format: -------------------------------------------------------------------------------- 1 | # please use clang-format version 8 or later 2 | 3 | Standard: Cpp11 4 | AccessModifierOffset: -8 5 | AlignAfterOpenBracket: Align 6 | AlignConsecutiveAssignments: false 7 | AlignConsecutiveDeclarations: false 8 | AlignEscapedNewlines: Left 9 | AlignOperands: true 10 | AlignTrailingComments: true 11 | #AllowAllArgumentsOnNextLine: false # requires clang-format 9 12 | #AllowAllConstructorInitializersOnNextLine: false # requires clang-format 9 13 | AllowAllParametersOfDeclarationOnNextLine: false 14 | AllowShortBlocksOnASingleLine: false 15 | AllowShortCaseLabelsOnASingleLine: false 16 | AllowShortFunctionsOnASingleLine: Inline 17 | AllowShortIfStatementsOnASingleLine: false 18 | #AllowShortLambdasOnASingleLine: Inline # requires clang-format 9 19 | AllowShortLoopsOnASingleLine: false 20 | AlwaysBreakAfterDefinitionReturnType: None 21 | AlwaysBreakAfterReturnType: None 22 | AlwaysBreakBeforeMultilineStrings: false 23 | AlwaysBreakTemplateDeclarations: false 24 | BinPackArguments: true 25 | BinPackParameters: true 26 | BraceWrapping: 27 | AfterClass: false 28 | AfterControlStatement: false 29 | AfterEnum: false 30 | AfterFunction: true 31 | AfterNamespace: false 32 | AfterObjCDeclaration: false 33 | AfterStruct: false 34 | AfterUnion: false 35 | AfterExternBlock: false 36 | BeforeCatch: false 37 | BeforeElse: false 38 | IndentBraces: false 39 | SplitEmptyFunction: true 40 | SplitEmptyRecord: true 41 | SplitEmptyNamespace: true 42 | BreakBeforeBinaryOperators: None 43 | BreakBeforeBraces: Custom 44 | BreakBeforeTernaryOperators: true 45 | BreakConstructorInitializers: BeforeColon 46 | BreakStringLiterals: false # apparently unpredictable 47 | ColumnLimit: 80 48 | CompactNamespaces: false 49 | ConstructorInitializerAllOnOneLineOrOnePerLine: true 50 | ConstructorInitializerIndentWidth: 8 51 | ContinuationIndentWidth: 8 52 | Cpp11BracedListStyle: true 53 | DerivePointerAlignment: false 54 | DisableFormat: false 55 | FixNamespaceComments: false 56 | ForEachMacros: 57 | - 'json_object_foreach' 58 | - 'json_object_foreach_safe' 59 | - 'json_array_foreach' 60 | - 'HASH_ITER' 61 | IncludeBlocks: Preserve 62 | IndentCaseLabels: false 63 | IndentPPDirectives: None 64 | IndentWidth: 8 65 | IndentWrappedFunctionNames: false 66 | KeepEmptyLinesAtTheStartOfBlocks: true 67 | MaxEmptyLinesToKeep: 1 68 | NamespaceIndentation: None 69 | #ObjCBinPackProtocolList: Auto # requires clang-format 7 70 | ObjCBlockIndentWidth: 8 71 | ObjCSpaceAfterProperty: true 72 | ObjCSpaceBeforeProtocolList: true 73 | 74 | PenaltyBreakAssignment: 10 75 | PenaltyBreakBeforeFirstCallParameter: 30 76 | PenaltyBreakComment: 10 77 | PenaltyBreakFirstLessLess: 0 78 | PenaltyBreakString: 10 79 | PenaltyExcessCharacter: 100 80 | PenaltyReturnTypeOnItsOwnLine: 60 81 | 82 | PointerAlignment: Right 83 | ReflowComments: false 84 | SortIncludes: false 85 | SortUsingDeclarations: false 86 | SpaceAfterCStyleCast: false 87 | #SpaceAfterLogicalNot: false # requires clang-format 9 88 | SpaceAfterTemplateKeyword: false 89 | SpaceBeforeAssignmentOperators: true 90 | #SpaceBeforeCtorInitializerColon: true # requires clang-format 7 91 | #SpaceBeforeInheritanceColon: true # requires clang-format 7 92 | SpaceBeforeParens: ControlStatements 93 | #SpaceBeforeRangeBasedForLoopColon: true # requires clang-format 7 94 | SpaceInEmptyParentheses: false 95 | SpacesBeforeTrailingComments: 1 96 | SpacesInAngles: false 97 | SpacesInCStyleCastParentheses: false 98 | SpacesInContainerLiterals: false 99 | SpacesInParentheses: false 100 | SpacesInSquareBrackets: false 101 | #StatementMacros: # requires clang-format 8 102 | # - 'Q_OBJECT' 103 | TabWidth: 8 104 | #TypenameMacros: # requires clang-format 9 105 | # - 'DARRAY' 106 | UseTab: ForContinuationAndIndentation 107 | --- 108 | Language: ObjC 109 | -------------------------------------------------------------------------------- /.cmake-format.json: -------------------------------------------------------------------------------- 1 | { 2 | "format": { 3 | "line_width": 120, 4 | "tab_size": 2, 5 | "enable_sort": true, 6 | "autosort": true 7 | }, 8 | "additional_commands": { 9 | "find_qt": { 10 | "flags": [], 11 | "kwargs": { 12 | "COMPONENTS": "+", 13 | "COMPONENTS_WIN": "+", 14 | "COMPONENTS_MACOS": "+", 15 | "COMPONENTS_LINUX": "+" 16 | } 17 | }, 18 | "set_target_properties_obs": { 19 | "pargs": 1, 20 | "flags": [], 21 | "kwargs": { 22 | "PROPERTIES": { 23 | "kwargs": { 24 | "PREFIX": 1, 25 | "OUTPUT_NAME": 1, 26 | "FOLDER": 1, 27 | "VERSION": 1, 28 | "SOVERSION": 1, 29 | "AUTOMOC": 1, 30 | "AUTOUIC": 1, 31 | "AUTORCC": 1, 32 | "AUTOUIC_SEARCH_PATHS": 1, 33 | "BUILD_RPATH": 1, 34 | "INSTALL_RPATH": 1 35 | } 36 | } 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | /.github/ @FiniteSingularity 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: finitesingularity 2 | patreon: FiniteSingularity 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "[BUG] - Bug Title Here" 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Environment** 27 | - OS/Version: [e.g. Windows 11] 28 | - OBS Version: [e.g. 29.1.2] 29 | - Composite Blur Plugin Version: [e.g. 0.0.1-alpha] 30 | - Blur Algorithm/Type: [e.g. Gaussian, Area] 31 | 32 | **GPU** 33 | - GPU make/model [e.g.- nvidia RTX 3800] 34 | - GPU VRAM [e.g.- 10Gb] 35 | 36 | **Additional context** 37 | Add any other context about the problem here. 38 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "[FEATURE] - Feature Title Here" 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/actions/build-plugin/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Setup and build plugin' 2 | description: 'Builds the plugin for specified architecture and build config.' 3 | inputs: 4 | target: 5 | description: 'Build target for dependencies' 6 | required: true 7 | config: 8 | description: 'Build configuration' 9 | required: false 10 | default: 'Release' 11 | codesign: 12 | description: 'Enable codesigning (macOS only)' 13 | required: false 14 | default: 'false' 15 | codesignIdent: 16 | description: 'Developer ID for application codesigning (macOS only)' 17 | required: false 18 | default: '-' 19 | visualStudio: 20 | description: 'Visual Studio version (Windows only)' 21 | required: false 22 | default: 'Visual Studio 16 2019' 23 | workingDirectory: 24 | description: 'Working directory for packaging' 25 | required: false 26 | default: ${{ github.workspace }} 27 | runs: 28 | using: 'composite' 29 | steps: 30 | - name: Run macOS Build 31 | if: ${{ runner.os == 'macOS' }} 32 | shell: zsh {0} 33 | env: 34 | CODESIGN_IDENT: ${{ inputs.codesignIdent }} 35 | run: | 36 | build_args=( 37 | -c ${{ inputs.config }} 38 | -t macos-${{ inputs.target }} 39 | ) 40 | 41 | if [[ '${{ inputs.codesign }}' == 'true' ]] build_args+=(-s) 42 | if (( ${+CI} && ${+RUNNER_DEBUG} )) build_args+=(--debug) 43 | 44 | ${{ inputs.workingDirectory }}/.github/scripts/build-macos.zsh ${build_args} 45 | 46 | - name: Run Linux Build 47 | if: ${{ runner.os == 'Linux' }} 48 | shell: bash 49 | run: | 50 | build_args=( 51 | -c ${{ inputs.config }} 52 | -t linux-${{ inputs.target }} 53 | ) 54 | 55 | if [[ -n "${CI}" && -n "${RUNNER_DEBUG}" ]]; then 56 | build_args+=(--debug) 57 | fi 58 | 59 | ${{ inputs.workingDirectory }}/.github/scripts/build-linux.sh "${build_args[@]}" 60 | 61 | - name: Run Windows Build 62 | if: ${{ runner.os == 'Windows' }} 63 | shell: pwsh 64 | run: | 65 | $BuildArgs = @{ 66 | Target = '${{ inputs.target }}' 67 | Configuration = '${{ inputs.config }}' 68 | CMakeGenerator = '${{ inputs.visualStudio }}' 69 | } 70 | 71 | if ( ( Test-Path env:CI ) -and ( Test-Path env:RUNNER_DEBUG ) ) { 72 | $BuildArgs += @{ 73 | Debug = $true 74 | } 75 | } 76 | 77 | ${{ inputs.workingDirectory }}/.github/scripts/Build-Windows.ps1 @BuildArgs 78 | -------------------------------------------------------------------------------- /.github/actions/package-plugin/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Package plugin' 2 | description: 'Packages the plugin for specified architecture and build config.' 3 | inputs: 4 | target: 5 | description: 'Build target for dependencies' 6 | required: true 7 | config: 8 | description: 'Build configuration' 9 | required: false 10 | default: 'Release' 11 | codesign: 12 | description: 'Enable codesigning (macOS only)' 13 | required: false 14 | default: 'false' 15 | notarize: 16 | description: 'Enable notarization (macOS only)' 17 | required: false 18 | default: 'false' 19 | codesignIdent: 20 | description: 'Developer ID for application codesigning (macOS only)' 21 | required: false 22 | default: '-' 23 | installerIdent: 24 | description: 'Developer ID for installer package codesigning (macOS only)' 25 | required: false 26 | default: '' 27 | codesignUser: 28 | description: 'Apple ID username for notarization (macOS only)' 29 | required: false 30 | default: '' 31 | codesignPass: 32 | description: 'Apple ID password for notarization (macOS only)' 33 | required: false 34 | default: '' 35 | createInstaller: 36 | description: 'Create InnoSetup installer (Windows only)' 37 | required: false 38 | default: 'false' 39 | workingDirectory: 40 | description: 'Working directory for packaging' 41 | required: false 42 | default: ${{ github.workspace }} 43 | runs: 44 | using: 'composite' 45 | steps: 46 | - name: Run macOS packaging 47 | if: ${{ runner.os == 'macOS' }} 48 | shell: zsh {0} 49 | env: 50 | CODESIGN_IDENT: ${{ inputs.codesignIdent }} 51 | CODESIGN_IDENT_INSTALLER: ${{ inputs.installerIdent }} 52 | CODESIGN_IDENT_USER: ${{ inputs.codesignUser }} 53 | CODESIGN_IDENT_PASS: ${{ inputs.codesignPass }} 54 | run: | 55 | package_args=( 56 | -c ${{ inputs.config }} 57 | -t macos-${{ inputs.target }} 58 | ) 59 | 60 | if [[ '${{ inputs.codesign }}' == 'true' ]] package_args+=(-s) 61 | if [[ '${{ inputs.notarize }}' == 'true' ]] package_args+=(-n) 62 | if (( ${+CI} && ${+RUNNER_DEBUG} )) build_args+=(--debug) 63 | 64 | ${{ inputs.workingDirectory }}/.github/scripts/package-macos.zsh ${package_args} 65 | 66 | - name: Run Linux packaging 67 | if: ${{ runner.os == 'Linux' }} 68 | shell: bash 69 | run: | 70 | package_args=( 71 | -c ${{ inputs.config }} 72 | -t linux-${{ inputs.target }} 73 | ) 74 | if [[ -n "${CI}" && -n "${RUNNER_DEBUG}" ]]; then 75 | build_args+=(--debug) 76 | fi 77 | 78 | ${{ inputs.workingDirectory }}/.github/scripts/package-linux.sh "${package_args[@]}" 79 | 80 | - name: Run Windows packaging 81 | if: ${{ runner.os == 'Windows' }} 82 | shell: pwsh 83 | run: | 84 | $PackageArgs = @{ 85 | Target = '${{ inputs.target }}' 86 | Configuration = '${{ inputs.config }}' 87 | } 88 | 89 | if ( '${{ inputs.createInstaller }}' -eq 'true' ) { 90 | $PackageArgs += @{BuildInstaller = $true} 91 | } 92 | 93 | if ( ( Test-Path env:CI ) -and ( Test-Path env:RUNNER_DEBUG ) ) { 94 | $BuildArgs += @{ 95 | Debug = $true 96 | } 97 | } 98 | 99 | ${{ inputs.workingDirectory }}/.github/scripts/Package-Windows.ps1 @PackageArgs 100 | -------------------------------------------------------------------------------- /.github/assets/images/block-noise-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/block-noise-example.png -------------------------------------------------------------------------------- /.github/assets/images/domain-warping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/domain-warping.png -------------------------------------------------------------------------------- /.github/assets/images/evolution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/evolution.png -------------------------------------------------------------------------------- /.github/assets/images/general-noise-properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/general-noise-properties.png -------------------------------------------------------------------------------- /.github/assets/images/linear-noise-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/linear-noise-example.png -------------------------------------------------------------------------------- /.github/assets/images/noise-complexity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/noise-complexity.png -------------------------------------------------------------------------------- /.github/assets/images/noise-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/noise-logo.png -------------------------------------------------------------------------------- /.github/assets/images/open-simplex-noise-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/open-simplex-noise-example.png -------------------------------------------------------------------------------- /.github/assets/images/presets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/presets.png -------------------------------------------------------------------------------- /.github/assets/images/smoothstep-noise-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/smoothstep-noise-example.png -------------------------------------------------------------------------------- /.github/assets/images/source-properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/source-properties.png -------------------------------------------------------------------------------- /.github/assets/images/subscale-properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/subscale-properties.png -------------------------------------------------------------------------------- /.github/assets/images/transform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/transform.png -------------------------------------------------------------------------------- /.github/assets/images/worley-noise-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FiniteSingularity/obs-noise/0815be272ce2b49981dd37d9e28e0bc88f206edc/.github/assets/images/worley-noise-example.png -------------------------------------------------------------------------------- /.github/scripts/.Aptfile: -------------------------------------------------------------------------------- 1 | package 'cmake' 2 | package 'ccache' 3 | package 'curl' 4 | package 'git' 5 | package 'jq' 6 | package 'ninja-build', bin: 'ninja' 7 | package 'pkg-config' 8 | package 'clang' 9 | package 'clang-format-13' 10 | -------------------------------------------------------------------------------- /.github/scripts/.Brewfile: -------------------------------------------------------------------------------- 1 | brew "ccache" 2 | brew "coreutils" 3 | brew "cmake" 4 | brew "git" 5 | brew "jq" 6 | brew "ninja" 7 | -------------------------------------------------------------------------------- /.github/scripts/.Wingetfile: -------------------------------------------------------------------------------- 1 | package '7zip.7zip', path: '7-zip', bin: '7z' 2 | package 'cmake', path: 'Cmake\bin', bin: 'cmake' 3 | package 'innosetup', path: 'Inno Setup 6', bin: 'iscc' 4 | -------------------------------------------------------------------------------- /.github/scripts/.build.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | builtin emulate -L zsh 4 | setopt EXTENDED_GLOB 5 | setopt PUSHD_SILENT 6 | setopt ERR_EXIT 7 | setopt ERR_RETURN 8 | setopt NO_UNSET 9 | setopt PIPE_FAIL 10 | setopt NO_AUTO_PUSHD 11 | setopt NO_PUSHD_IGNORE_DUPS 12 | setopt FUNCTION_ARGZERO 13 | 14 | ## Enable for script debugging 15 | # setopt WARN_CREATE_GLOBAL 16 | # setopt WARN_NESTED_VAR 17 | # setopt XTRACE 18 | 19 | autoload -Uz is-at-least && if ! is-at-least 5.2; then 20 | print -u2 -PR "%F{1}${funcstack[1]##*/}:%f Running on Zsh version %B${ZSH_VERSION}%b, but Zsh %B5.2%b is the minimum supported version. Upgrade Zsh to fix this issue." 21 | exit 1 22 | fi 23 | 24 | _trap_error() { 25 | print -u2 -PR '%F{1} ✖︎ script execution error%f' 26 | print -PR -e " 27 | Callstack: 28 | ${(j:\n :)funcfiletrace} 29 | " 30 | exit 2 31 | } 32 | 33 | build() { 34 | if (( ! ${+SCRIPT_HOME} )) typeset -g SCRIPT_HOME=${ZSH_ARGZERO:A:h} 35 | local host_os=${${(s:-:)ZSH_ARGZERO:t:r}[2]} 36 | local target="${host_os}-${CPUTYPE}" 37 | local project_root=${SCRIPT_HOME:A:h:h} 38 | local buildspec_file="${project_root}/buildspec.json" 39 | 40 | trap '_trap_error' ZERR 41 | 42 | fpath=("${SCRIPT_HOME}/utils.zsh" ${fpath}) 43 | autoload -Uz log_info log_error log_output set_loglevel check_${host_os} setup_${host_os} setup_obs setup_ccache 44 | 45 | if [[ ! -r ${buildspec_file} ]] { 46 | log_error \ 47 | 'No buildspec.json found. Please create a build specification for your project.' \ 48 | 'A buildspec.json.template file is provided in the repository to get you started.' 49 | return 2 50 | } 51 | 52 | typeset -g -a skips=() 53 | local -i _verbosity=1 54 | local -r _version='1.0.0' 55 | local -r -a _valid_targets=( 56 | macos-x86_64 57 | macos-arm64 58 | macos-universal 59 | linux-x86_64 60 | ) 61 | local -r -a _valid_configs=(Debug RelWithDebInfo Release MinSizeRel) 62 | if [[ ${host_os} == 'macos' ]] { 63 | local -r -a _valid_generators=(Xcode Ninja 'Unix Makefiles') 64 | local generator="${${CI:+Ninja}:-Xcode}" 65 | } else { 66 | local -r -a _valid_generators=(Ninja 'Unix Makefiles') 67 | local generator='Ninja' 68 | } 69 | local -r _usage=" 70 | Usage: %B${functrace[1]%:*}%b