Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into feature/sculpting
Browse files Browse the repository at this point in the history
  • Loading branch information
andybak committed Apr 3, 2024
2 parents 0ab81e8 + 234e1f7 commit adc74f4
Show file tree
Hide file tree
Showing 12 changed files with 105 additions and 27 deletions.
72 changes: 58 additions & 14 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:
STAMP=""
echo "prerelease=false" >> $GITHUB_OUTPUT
echo "itchchannelname=release" >> $GITHUB_OUTPUT
echo "fastlanelane=release" >> $GITHUB_OUTPUT
echo "fastlanelane=beta" >> $GITHUB_OUTPUT
else
# This is the first 7 characters of the commit; we do it this way rather than via rev-parse to avoid an 'if' conditional depending on whether it's a PR or push. (unlike git describe, git rev-parse doesn't default to the current HEAD)
Expand Down Expand Up @@ -571,15 +571,14 @@ jobs:
# Some platforms share a cache; it's not a 1:1 mapping of either targetPlatform or vrsdk, so we have a distinct variable for which cache to use
key: Library_${{ matrix.cache }}_${{ env.UNITY_VERSION }}

createdmg:
name: Create and Notarize DMG
needs: [configuration, build]
signmacos:
name: Sign the MacOS .app
needs: [build]
if: |
github.event_name == 'push' &&
github.repository == 'icosa-foundation/open-brush' &&
(github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v'))
runs-on: macos-latest # the ovr-platform-util tool is only available for Mac and Windows
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down Expand Up @@ -639,11 +638,46 @@ jobs:
codesign --deep --force --verify --verbose --timestamp --options runtime --entitlements ../Support/macos/OpenBrush.entitlements --sign "Developer ID Application: Icosa Gallery Ltd (${{ vars.APPLE_TEAM_ID }})" $FILENAME/Contents/Plugins/UsdCs.bundle
codesign --deep --force --verify --verbose --timestamp --options runtime --entitlements ../Support/macos/OpenBrush.entitlements --sign "Developer ID Application: Icosa Gallery Ltd (${{ vars.APPLE_TEAM_ID }})" $FILENAME/Contents/Plugins/lib_burst_generated.bundle
codesign --deep --force --verify --verbose --timestamp --options runtime --entitlements ../Support/macos/OpenBrush.entitlements --sign "Developer ID Application: Icosa Gallery Ltd (${{ vars.APPLE_TEAM_ID }})" $FILENAME
cd -
tar -c -v -z -f OpenBrush.tgz StandaloneOSX
- name: Upload signed app
uses: actions/upload-artifact@v4
with:
name: MacOS Monoscopic (signed)
path: |
OpenBrush.tgz
createdmg:
name: Create and Notarize DMG
needs: [signmacos]
if: |
github.event_name == 'push' &&
github.repository == 'icosa-foundation/open-brush' &&
(github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v'))
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
lfs: true # We don't use LFS, but it adds no time, and leave it here in case we do at some point later
sparse-checkout: |
Support/macos
- name: Download Build Artifacts
uses: actions/download-artifact@v4
with:
name: MacOS Monoscopic (signed)
path: build_macos_monoscopic

- name: Create a notarized DMG
env:
VERSION: ${{ needs.configuration.outputs.version }}
run: |
tar xvfz build_macos_monoscopic/*tgz
export FILENAME=$(basename $(readlink -f StandaloneOSX/OpenBrush*.app))
mkdir dist
Expand Down Expand Up @@ -857,7 +891,7 @@ jobs:

publish_steam:
name: Publish Steam Release
needs: [configuration, build]
needs: [build, signmacos]
if: |
github.event_name == 'push' &&
github.repository == 'icosa-foundation/open-brush' &&
Expand All @@ -883,19 +917,29 @@ jobs:
with:
name: Windows OpenXR
path: build_windows_openxr
- name: Download Build Artifacts (MacOS Monoscopic Signed)
uses: actions/download-artifact@v4
with:
name: MacOS Monoscopic (signed)
path: build_macos_monoscopic
- name: Upload Build
run: |
cd build_macos_monoscopic
tar xvfz OpenBrush.tgz
cd -
pip install -U jinjanator
jinjanate Support/steam/app.vdf.j2 > build_windows_openxr/app.vdf
jinjanate Support/steam/main_depot.vdf.j2 > build_windows_openxr/main_depot.vdf
jinjanate Support/steam/app.vdf.j2 > app.vdf
jinjanate Support/steam/main_depot.win.vdf.j2 > build_windows_openxr/main_depot.vdf
jinjanate Support/steam/main_depot.mac.vdf.j2 > build_macos_monoscopic/main_depot.vdf
jinjanate Support/steam/installscript_win.vdf.j2 > build_windows_openxr/installscript_win.vdf
steamcmd +login $STEAM_USERNAME +run_app_build $(pwd)/build_windows_openxr/app.vdf +quit
steamcmd +login $STEAM_USERNAME +run_app_build $(pwd)/app.vdf +quit
env:
STEAM_USERNAME: ${{ vars.STEAM_USERNAME }}
STEAM_PASSWORD: ${{ secrets.STEAM_PASSWORD }}
VERSION: ${{ needs.configuration.outputs.version }}
OPEN_BRUSH_APP_ID: ${{ vars.STEAM_APP_ID }}
OPEN_BRUSH_WINDOWS_DEPOT_ID: ${{ vars.STEAM_WINDOWS_DEPOT_ID }}
OPEN_BRUSH_MAC_DEPOT_ID: ${{ vars.STEAM_MAC_DEPOT_ID }}
OPEN_BRUSH_EXECUTABLE: ${{ needs.configuration.outputs.basename}}.exe
CHANNEL: beta
- name: Update steam login secret
Expand Down Expand Up @@ -1051,10 +1095,10 @@ jobs:
if [ "$PRERELEASE" == "false" ]
then
./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest_$VERSION.apk --channel LIVE:quest2+ --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so'
./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest_$VERSION.apk --channel LIVE:quest2+ --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --age-group MIXED_AGES
else
CHANGELOG="${RAW_CHANGELOG}"
./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest_$VERSION.apk --channel Beta:quest2+ --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --notes "${CHANGELOG}"
./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest_$VERSION.apk --channel Beta:quest2+ --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --notes "${CHANGELOG}" --age-group MIXED_AGES
fi
publish_oculus_quest1:
Expand Down Expand Up @@ -1091,10 +1135,10 @@ jobs:
if [ "$PRERELEASE" == "false" ]
then
./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest1_$VERSION.apk --channel LIVE:quest1only --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so'
./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest1_$VERSION.apk --channel LIVE:quest1only --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --age-group MIXED_AGES
else
CHANGELOG="${RAW_CHANGELOG}"
./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest1_$VERSION.apk --channel Beta:quest1only --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --notes "${CHANGELOG}"
./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest1_$VERSION.apk --channel Beta:quest1only --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --notes "${CHANGELOG}" --age-group MIXED_AGES
fi
publish_oculus_rift:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5.0.0
- uses: actions/setup-python@v5.1.0
with:
python-version: '3.12'
- uses: actions/[email protected]
Expand Down
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
repos:
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.34.0
rev: v1.35.1
hooks:
- id: yamllint
- repo: https://github.com/psf/black
rev: 24.2.0
rev: 24.3.0
hooks:
- id: black
files: ^Support/
Expand All @@ -16,7 +16,7 @@ repos:
- id: flake8
files: ^Support/
- repo: https://github.com/PyCQA/pylint.git
rev: v3.0.3
rev: v3.1.0
hooks:
- id: pylint
name: pylint
Expand Down
4 changes: 3 additions & 1 deletion Assets/Scenes/Main.unity
Original file line number Diff line number Diff line change
Expand Up @@ -10149,7 +10149,9 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_GlobalNoiseTexture: {fileID: 2800000, guid: 13d389131c327b94f84fbac121bf6f8f,
type: 3}
m_DefaultBrush: {fileID: 11400000, guid: eb608f68fb3036b47be357a021ed7618, type: 2}
m_DefaultBrush: {fileID: 11400000, guid: b802f6ef146800b4bb78e9c705622cad, type: 2}
m_ZapboxDefaultBrush: {fileID: 11400000, guid: eb608f68fb3036b47be357a021ed7618,
type: 2}
m_BlocksMaterials:
- brushDescriptor: {fileID: 11400000, guid: 0e87b49c65463a343a448a556d7d6c3e, type: 2}
- brushDescriptor: {fileID: 11400000, guid: d6c87eafa4cdba042933c1b4f6da46f7, type: 2}
Expand Down
10 changes: 9 additions & 1 deletion Assets/Scripts/BrushCatalog.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ public static void UnitTestTearDown(GameObject container)
public Texture2D m_GlobalNoiseTexture;

[SerializeField] private Brush m_DefaultBrush;
[SerializeField] private Brush m_ZapboxDefaultBrush;
private bool m_IsLoading;
private Dictionary<Guid, Brush> m_GuidToBrush;
private HashSet<Brush> m_AllBrushes;
Expand All @@ -82,7 +83,14 @@ public Brush GetBrush(Guid guid)
}
public Brush DefaultBrush
{
get { return m_DefaultBrush; }
get
{
#if ZAPBOX_SUPPORTED
// TODO:Mikesky - Fix brush transparency!
return m_ZapboxDefaultBrush;
#endif
return m_DefaultBrush;
}
}
public IEnumerable<Brush> AllBrushes
{
Expand Down
Binary file modified Assets/Textures/Trademarked/logowatermark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Assets/Textures/Trademarked/logowatermarklabs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 1 addition & 2 deletions Support/Python/tbdata/printing.py
Original file line number Diff line number Diff line change
Expand Up @@ -249,8 +249,7 @@ def calculate_pos_error(cp0, cp1, middle_cps):
t = (cp._dist - cp0._dist) / strip_length
pos_interpolated = t * cp0._pos + (1 - t) * cp1._pos
pos_error = np.linalg.norm((pos_interpolated - cp._pos))
if pos_error > max_pos_error:
max_pos_error = pos_error
max_pos_error = max(max_pos_error, pos_error)

return max_pos_error

Expand Down
3 changes: 1 addition & 2 deletions Support/bin/analyze_refgraph.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,7 @@ def iter_desired_guids():
except LookupError as e:
print(e)
continue
for guid in guids:
yield guid
yield from guids

for guid in iter_desired_guids():
name = rg.guid_to_name.get(guid, guid)
Expand Down
5 changes: 3 additions & 2 deletions Support/steam/app.vdf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
{
"appid" "{{ OPEN_BRUSH_APP_ID }}"
"Desc" "{{ VERSION }}"
"buildoutput" "../build_output/{{ CHANNEL }}" // Path for steamcmd logs
"buildoutput" "build_output/{{ CHANNEL }}" // Path for steamcmd logs
"contentroot" "." // This file will be copied into the root of the release
"setlive" "{{ CHANNEL }}"
"preview" "0" // For local testing, set this to 1
"local" "" // Not relevant; this is for a custom CDN
"depots"
{
"{{ OPEN_BRUSH_WINDOWS_DEPOT_ID }}" main_depot.vdf
"{{ OPEN_BRUSH_WINDOWS_DEPOT_ID }}" build_windows_openxr/main_depot.vdf
"{{ OPEN_BRUSH_MAC_DEPOT_ID }}" build_macos_monoscopic/main_depot.vdf
}
}
25 changes: 25 additions & 0 deletions Support/steam/main_depot.mac.vdf.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
"DepotBuildConfig"
{
// # Set your assigned depot ID here
"DepotID" "{{ OPEN_BRUSH_MAC_DEPOT_ID }}"

"ContentRoot" "build_macos_monoscopic/StandaloneOSX"

"FileMapping"
{
// Include all files in the build output directory (ContentRoot)
"LocalPath" "*"

// Destination is the main install directory
"DepotPath" "."

// If LocalPath contains wildcards, setting this means that all
// matching files within subdirectories of LocalPath will also
// be included.
"recursive" "1"
}

// but exclude all symbol files
"FileExclusion" "*.pdb"
"FileExclusion" "build_log.txt"
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// # Set your assigned depot ID here
"DepotID" "{{ OPEN_BRUSH_WINDOWS_DEPOT_ID }}"

"ContentRoot" "StandaloneWindows64"
"ContentRoot" "build_windows_openxr/StandaloneWindows64"

"FileMapping"
{
Expand Down

0 comments on commit adc74f4

Please sign in to comment.