Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Changelog
## v0.12.10 - 2026-04-29
### 🐞 Fixes
- [Patch] Fixed bundle script to include required helper scripts (8bec369…)
## v0.12.8 - 2026-04-28
### 🐞 Fixes
- [Patch] Updated script to follow engine dependency tag version (761dc47…)
Expand Down
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ let package = Package(
// Use a branch during active development:
// .package(url: "https://github.com/untoldengine/UntoldEngine.git", branch: "develop"),
// Or pin to a release:
.package(url: "https://github.com/untoldengine/UntoldEngine.git", exact: "0.12.8"),
.package(url: "https://github.com/untoldengine/UntoldEngine.git", exact: "0.12.10"),
],
targets: [
.executableTarget(
Expand Down
2 changes: 1 addition & 1 deletion Sources/UntoldEditor/Editor/ToolbarView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
struct ToolbarView: View {
@ObservedObject var selectionManager: SelectionManager
@ObservedObject var editorBasePath = EditorAssetBasePath.shared
private let editorVersionLabel = "v0.12.8"
private let editorVersionLabel = "v0.12.10"

var onSave: () -> Void
var onSaveAs: () -> Void
Expand Down
15 changes: 14 additions & 1 deletion Sources/UntoldEditor/Systems/EditorRenderingSystem.swift
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,22 @@ func buildEditModeGraph() -> RenderGraphResult {
)
graph[lookPass.id] = lookPass

let outputDependency: String
if FXAAParams.shared.enabled {
let fxaaPass = RenderPass(
id: "fxaa",
dependencies: [lookPass.id],
execute: fxaaRenderPass
)
graph[fxaaPass.id] = fxaaPass
outputDependency = fxaaPass.id
} else {
outputDependency = lookPass.id
}

let outputPass = RenderPass(
id: "outputTransform",
dependencies: [lookPass.id],
dependencies: [outputDependency],
execute: outputTransformRenderPass
)
graph[outputPass.id] = outputPass
Expand Down
4 changes: 2 additions & 2 deletions Sources/UntoldEditor/main.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
var window: NSWindow!

func applicationDidFinishLaunching(_: Notification) {
Logger.log(message: "Launching Untold Engine Editor v0.12.8")
Logger.log(message: "Launching Untold Engine Editor v0.12.10")

// Step 1. Create and configure the window
window = NSWindow(
Expand All @@ -27,7 +27,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
defer: false
)

window.title = "Untold Engine Editor v0.12.8"
window.title = "Untold Engine Editor v0.12.10"
window.center()

let hostingView = NSHostingView(rootView: EditorView())
Expand Down
97 changes: 90 additions & 7 deletions Tests/UntoldEditorTests/BuildEditModeGraphTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,14 @@ final class BuildEditModeGraphTests: XCTestCase {

// MARK: - Tests

func test_buildEditModeGraph_withEnvironmentRoot() {
let original = renderEnvironment
func test_buildEditModeGraph_withEnvironmentRoot_fxaaDisabled() {
let originalEnv = renderEnvironment
renderEnvironment = true
defer { renderEnvironment = original }
defer { renderEnvironment = originalEnv }

let originalFXAA = FXAAParams.shared.enabled
FXAAParams.shared.enabled = false
defer { FXAAParams.shared.enabled = originalFXAA }

let (graph, finalID) = buildEditModeGraph()

Expand All @@ -80,14 +84,55 @@ final class BuildEditModeGraphTests: XCTestCase {
assertDeps(graph, "look", ["precomp"])
assertDeps(graph, "outputTransform", ["look"])

// Sanity: no cycles
assertNoCycles(graph)
}

func test_buildEditModeGraph_withGridRoot() {
let original = renderEnvironment
func test_buildEditModeGraph_withEnvironmentRoot_fxaaEnabled() {
let originalEnv = renderEnvironment
renderEnvironment = true
defer { renderEnvironment = originalEnv }

let originalFXAA = FXAAParams.shared.enabled
FXAAParams.shared.enabled = true
defer { FXAAParams.shared.enabled = originalFXAA }

let (graph, finalID) = buildEditModeGraph()

XCTAssertEqual(finalID, "outputTransform")

let expectedIDs: Set = [
"environment", "shadow", "batchedShadow", "model", "batchedModel", "lightPass",
"transparency", "outline", "lightVisualPass", "gizmo", "precomp", "gaussian", "look", "fxaa", "outputTransform",
]
XCTAssertEqual(Set(graph.keys), expectedIDs)

assertDeps(graph, "environment", [])
assertDeps(graph, "shadow", ["environment"])
assertDeps(graph, "batchedShadow", ["shadow"])
assertDeps(graph, "model", ["batchedShadow"])
assertDeps(graph, "batchedModel", ["model"])
assertDeps(graph, "lightPass", ["batchedModel", "model", "shadow"])
assertDeps(graph, "transparency", ["lightPass"])
assertDeps(graph, "outline", ["batchedModel"])
assertDeps(graph, "lightVisualPass", ["outline"])
assertDeps(graph, "gizmo", ["lightVisualPass"])
assertDeps(graph, "gaussian", ["model"])
assertDeps(graph, "precomp", ["model", "gizmo", "transparency", "gaussian"])
assertDeps(graph, "look", ["precomp"])
assertDeps(graph, "fxaa", ["look"])
assertDeps(graph, "outputTransform", ["fxaa"])

assertNoCycles(graph)
}

func test_buildEditModeGraph_withGridRoot_fxaaDisabled() {
let originalEnv = renderEnvironment
renderEnvironment = false
defer { renderEnvironment = original }
defer { renderEnvironment = originalEnv }

let originalFXAA = FXAAParams.shared.enabled
FXAAParams.shared.enabled = false
defer { FXAAParams.shared.enabled = originalFXAA }

let (graph, finalID) = buildEditModeGraph()

Expand Down Expand Up @@ -116,4 +161,42 @@ final class BuildEditModeGraphTests: XCTestCase {

assertNoCycles(graph)
}

func test_buildEditModeGraph_withGridRoot_fxaaEnabled() {
let originalEnv = renderEnvironment
renderEnvironment = false
defer { renderEnvironment = originalEnv }

let originalFXAA = FXAAParams.shared.enabled
FXAAParams.shared.enabled = true
defer { FXAAParams.shared.enabled = originalFXAA }

let (graph, finalID) = buildEditModeGraph()

XCTAssertEqual(finalID, "outputTransform")

let expectedIDs: Set = [
"grid", "shadow", "batchedShadow", "model", "batchedModel", "lightPass",
"transparency", "outline", "lightVisualPass", "gizmo", "precomp", "gaussian", "look", "fxaa", "outputTransform",
]
XCTAssertEqual(Set(graph.keys), expectedIDs)

assertDeps(graph, "grid", [])
assertDeps(graph, "shadow", ["grid"])
assertDeps(graph, "batchedShadow", ["shadow"])
assertDeps(graph, "model", ["batchedShadow"])
assertDeps(graph, "batchedModel", ["model"])
assertDeps(graph, "lightPass", ["batchedModel", "model", "shadow"])
assertDeps(graph, "transparency", ["lightPass"])
assertDeps(graph, "outline", ["batchedModel"])
assertDeps(graph, "lightVisualPass", ["outline"])
assertDeps(graph, "gizmo", ["lightVisualPass"])
assertDeps(graph, "gaussian", ["model"])
assertDeps(graph, "precomp", ["model", "gizmo", "transparency", "gaussian"])
assertDeps(graph, "look", ["precomp"])
assertDeps(graph, "fxaa", ["look"])
assertDeps(graph, "outputTransform", ["fxaa"])

assertNoCycles(graph)
}
}
4 changes: 4 additions & 0 deletions Tests/UntoldEditorTests/EditorRenderingSystemTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ final class EditorRenderingSystemTests: XCTestCase {
private var originalRenderEnvironment: Bool!
private var originalVisualDebug: Bool!
private var originalGameMode: Bool!
private var originalFXAAEnabled: Bool!

override func setUp() {
super.setUp()
Expand All @@ -26,6 +27,7 @@ final class EditorRenderingSystemTests: XCTestCase {
originalRenderEnvironment = renderEnvironment
originalVisualDebug = visualDebug
originalGameMode = gameMode
originalFXAAEnabled = FXAAParams.shared.enabled

// Set up Metal device
guard let device = MTLCreateSystemDefaultDevice() else {
Expand All @@ -41,13 +43,15 @@ final class EditorRenderingSystemTests: XCTestCase {
renderEnvironment = false
visualDebug = false
gameMode = false
FXAAParams.shared.enabled = false
}

override func tearDown() {
// Restore original state
renderEnvironment = originalRenderEnvironment
visualDebug = originalVisualDebug
gameMode = originalGameMode
FXAAParams.shared.enabled = originalFXAAEnabled

super.tearDown()
}
Expand Down
3 changes: 3 additions & 0 deletions create_app_bundle.sh
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ if [ -d "$SCRIPTS_SRC" ]; then
mkdir -p "$APP_BUNDLE/Contents/Resources/scripts"
cp "$SCRIPTS_SRC/export-untold" "$APP_BUNDLE/Contents/Resources/scripts/"
cp "$SCRIPTS_SRC/export-untold-tiles" "$APP_BUNDLE/Contents/Resources/scripts/"
cp "$SCRIPTS_SRC/untoldexporter.py" "$APP_BUNDLE/Contents/Resources/scripts/"
cp "$SCRIPTS_SRC/tilestreamingpartition.py" "$APP_BUNDLE/Contents/Resources/scripts/"
cp "$SCRIPTS_SRC/untoldexplorer.py" "$APP_BUNDLE/Contents/Resources/scripts/"
cp "$SCRIPTS_SRC/texbake.py" "$APP_BUNDLE/Contents/Resources/scripts/"
chmod +x "$APP_BUNDLE/Contents/Resources/scripts/export-untold"
chmod +x "$APP_BUNDLE/Contents/Resources/scripts/export-untold-tiles"
Expand Down
Loading