From 75564806c80334e31e1776fe846dfe2828abae78 Mon Sep 17 00:00:00 2001 From: Niklas Rousset Date: Sat, 5 Aug 2023 20:15:25 +0200 Subject: [PATCH 1/4] new method for increasing brightness (fixes #29, #28, #22, #4) --- BrightIntosh.xcodeproj/project.pbxproj | 16 ++++--- BrightIntosh/AppDelegate.swift | 46 ++++++++++++++++++-- BrightIntosh/Info.plist | 2 - BrightIntosh/Overlay.swift | 58 ++++---------------------- BrightIntosh/OverlayWindow.swift | 27 ++++++------ BrightIntosh/overlay_shader.metal | 23 ---------- 6 files changed, 74 insertions(+), 98 deletions(-) delete mode 100644 BrightIntosh/overlay_shader.metal diff --git a/BrightIntosh.xcodeproj/project.pbxproj b/BrightIntosh.xcodeproj/project.pbxproj index a4d9d05..c5e8ae0 100644 --- a/BrightIntosh.xcodeproj/project.pbxproj +++ b/BrightIntosh.xcodeproj/project.pbxproj @@ -12,14 +12,12 @@ 9C8803762A72625E00476017 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1DF94512A5EF20E00FA285F /* AppDelegate.swift */; }; 9C8803772A72625E00476017 /* OverlayWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D044EA2A60205E0022B970 /* OverlayWindow.swift */; }; 9C8803782A72625E00476017 /* AccessibilityService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CBD4E942A67E9F600C7A625 /* AccessibilityService.swift */; }; - 9C8803792A72625E00476017 /* overlay_shader.metal in Sources */ = {isa = PBXBuildFile; fileRef = C1DF944F2A5EF20E00FA285F /* overlay_shader.metal */; }; 9C88037A2A72625E00476017 /* Overlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1DF94502A5EF20E00FA285F /* Overlay.swift */; }; 9C88037B2A72625E00476017 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B521142A5EF85500E9B7AC /* main.swift */; }; 9C88037E2A72625E00476017 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9C9C78022A62AEE800778CAE /* Assets.xcassets */; }; 9C9C78032A62AEE800778CAE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9C9C78022A62AEE800778CAE /* Assets.xcassets */; }; 9CBD4E952A67E9F600C7A625 /* AccessibilityService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CBD4E942A67E9F600C7A625 /* AccessibilityService.swift */; }; C1B5215A2A5EFFDB00E9B7AC /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1DF94512A5EF20E00FA285F /* AppDelegate.swift */; }; - C1B5215B2A5EFFDB00E9B7AC /* overlay_shader.metal in Sources */ = {isa = PBXBuildFile; fileRef = C1DF944F2A5EF20E00FA285F /* overlay_shader.metal */; }; C1B5215C2A5EFFDB00E9B7AC /* Overlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1DF94502A5EF20E00FA285F /* Overlay.swift */; }; C1B5215D2A5EFFDB00E9B7AC /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B521142A5EF85500E9B7AC /* main.swift */; }; C1D044EB2A60205E0022B970 /* OverlayWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D044EA2A60205E0022B970 /* OverlayWindow.swift */; }; @@ -34,7 +32,6 @@ C1B521172A5EFCB300E9B7AC /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C1B521482A5EFF5800E9B7AC /* BrightIntosh.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BrightIntosh.app; sourceTree = BUILT_PRODUCTS_DIR; }; C1D044EA2A60205E0022B970 /* OverlayWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayWindow.swift; sourceTree = ""; }; - C1DF944F2A5EF20E00FA285F /* overlay_shader.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; path = overlay_shader.metal; sourceTree = ""; }; C1DF94502A5EF20E00FA285F /* Overlay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Overlay.swift; sourceTree = ""; }; C1DF94512A5EF20E00FA285F /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; C1DF94572A5EF66200FA285F /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; @@ -81,7 +78,6 @@ children = ( C1B521172A5EFCB300E9B7AC /* Info.plist */, C1DF94512A5EF20E00FA285F /* AppDelegate.swift */, - C1DF944F2A5EF20E00FA285F /* overlay_shader.metal */, C1DF94502A5EF20E00FA285F /* Overlay.swift */, C1B521142A5EF85500E9B7AC /* main.swift */, C1D044EA2A60205E0022B970 /* OverlayWindow.swift */, @@ -139,8 +135,12 @@ LastSwiftUpdateCheck = 1430; LastUpgradeCheck = 1430; TargetAttributes = { + 9C8803732A72625E00476017 = { + LastSwiftMigration = 1430; + }; C1B521472A5EFF5800E9B7AC = { CreatedOnToolsVersion = 14.3.1; + LastSwiftMigration = 1430; }; }; }; @@ -191,7 +191,6 @@ 9C8803762A72625E00476017 /* AppDelegate.swift in Sources */, 9C8803772A72625E00476017 /* OverlayWindow.swift in Sources */, 9C8803782A72625E00476017 /* AccessibilityService.swift in Sources */, - 9C8803792A72625E00476017 /* overlay_shader.metal in Sources */, 9C88037A2A72625E00476017 /* Overlay.swift in Sources */, 9C88037B2A72625E00476017 /* main.swift in Sources */, ); @@ -205,7 +204,6 @@ C1B5215A2A5EFFDB00E9B7AC /* AppDelegate.swift in Sources */, C1D044EB2A60205E0022B970 /* OverlayWindow.swift in Sources */, 9CBD4E952A67E9F600C7A625 /* AccessibilityService.swift in Sources */, - C1B5215B2A5EFFDB00E9B7AC /* overlay_shader.metal in Sources */, C1B5215C2A5EFFDB00E9B7AC /* Overlay.swift in Sources */, C1B5215D2A5EFFDB00E9B7AC /* main.swift in Sources */, ); @@ -220,6 +218,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = BrightIntosh/BrightIntosh.entitlements; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; @@ -257,6 +256,7 @@ SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG STORE"; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; }; name = Debug; @@ -267,6 +267,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = BrightIntosh/BrightIntosh.entitlements; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; @@ -314,6 +315,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = BrightIntosh/BrightIntosh.entitlements; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; @@ -350,6 +352,7 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; }; name = Debug; @@ -360,6 +363,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = BrightIntosh/BrightIntosh.entitlements; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; diff --git a/BrightIntosh/AppDelegate.swift b/BrightIntosh/AppDelegate.swift index ecfa870..cc7b6f1 100644 --- a/BrightIntosh/AppDelegate.swift +++ b/BrightIntosh/AppDelegate.swift @@ -9,6 +9,11 @@ import Cocoa import ServiceManagement import Carbon +extension NSScreen { + var displayId: CGDirectDisplayID? { + return deviceDescription[NSDeviceDescriptionKey(rawValue: "NSScreenNumber")] as? CGDirectDisplayID + } +} class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { private var statusItem: NSStatusItem! @@ -66,8 +71,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { addKeyListeners() }*/ - // Schedule version check every 3 hours #if !STORE + // Schedule version check every 3 hours let versionCheckDate = Date() let versionCheckTimer = Timer(fire: versionCheckDate, interval: 10800, repeats: true, block: {t in self.fetchNewestVersion()}) RunLoop.main.add(versionCheckTimer, forMode: RunLoop.Mode.default) @@ -88,9 +93,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } func setupOverlay(screen: NSScreen) { - let rect = NSRect(x: screen.visibleFrame.origin.x, y: screen.visibleFrame.origin.y, width: screen.frame.width, height: screen.frame.height) + let rect = NSRect(x: screen.visibleFrame.origin.x, y: screen.visibleFrame.origin.y, width: 1, height: 1) overlayWindow = OverlayWindow(rect: rect, screen: screen) overlayAvailable = true + adjustGammaTable(screen: screen) } func destroyOverlay() { @@ -100,6 +106,40 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } } + func adjustGammaTable(screen: NSScreen) { + if let displayId = screen.displayId { + resetGammaTable() + + let maxEdr: Float = 1.75 //Float(screen.maximumExtendedDynamicRangeColorComponentValue) + + let tableSize: Int = 256 // The size of the gamma table + var redTable = [CGGammaValue](repeating: 0, count: tableSize) + var greenTable = [CGGammaValue](repeating: 0, count: tableSize) + var blueTable = [CGGammaValue](repeating: 0, count: tableSize) + var sampleCount: UInt32 = 0 + let result = CGGetDisplayTransferByTable(displayId, UInt32(tableSize), &redTable, &greenTable, &blueTable, &sampleCount) + + guard result == CGError.success else { + return + } + + for i in 0.. NSScreen? { for screen in NSScreen.screens { let screenNumber = screen.deviceDescription[NSDeviceDescriptionKey("NSScreenNumber")] @@ -172,7 +212,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { func addKeyListeners() { /* TODO: Use this once Carbon is fully deprecated without a better successor. - NSEvent.addGlobalMonitorForEvents(matching: NSEvent.EventTypeMask.keyDown, handler: {(event: NSEvent) -> Void in if let chars = event.characters, event.modifierFlags.contains(NSEvent.ModifierFlags.command) && event.modifierFlags.contains(NSEvent.ModifierFlags.shift) && chars.contains("b") { self.toggleBrightIntosh() @@ -191,6 +230,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } } else { destroyOverlay() + resetGammaTable() } } diff --git a/BrightIntosh/Info.plist b/BrightIntosh/Info.plist index b39a4a7..2a3480f 100644 --- a/BrightIntosh/Info.plist +++ b/BrightIntosh/Info.plist @@ -4,8 +4,6 @@ ITSAppUsesNonExemptEncryption - LSBackgroundOnly - LSUIElement diff --git a/BrightIntosh/Overlay.swift b/BrightIntosh/Overlay.swift index 6839737..aa0523e 100644 --- a/BrightIntosh/Overlay.swift +++ b/BrightIntosh/Overlay.swift @@ -9,14 +9,9 @@ import Cocoa import MetalKit class Overlay: MTKView, MTKViewDelegate { - private let colorSpace = CGColorSpace(name: CGColorSpace.extendedLinearDisplayP3) + private let colorSpace = CGColorSpace(name: CGColorSpace.extendedLinearSRGB) private var commandQueue: MTLCommandQueue? - private var commandBuffer: MTLCommandBuffer? - - private var renderPassDescriptor: MTLRenderPassDescriptor? - private var pipelineState: MTLRenderPipelineState? - private var vertexBuffer: MTLBuffer? private var fragmentColor = vector_float4(1.0, 1.0, 1.0, 1.0) @@ -39,53 +34,19 @@ class Overlay: MTKView, MTKViewDelegate { fatalError("Could not create command queue") } - guard let fragmentShader = device.makeDefaultLibrary()?.makeFunction(name: "fragmentShader") else { - fatalError("Could not create fragment shader function") - } - guard let vertexShader = device.makeDefaultLibrary()?.makeFunction(name: "vertexShader") else { - fatalError("Could not create vertex shader function") - } - delegate = self - framebufferOnly = false preferredFramesPerSecond = screen.maximumFramesPerSecond colorPixelFormat = .rgba16Float colorspace = colorSpace - clearColor = MTLClearColorMake(0, 0, 0, 0) + clearColor = MTLClearColorMake(1.0, 1.0, 1.0, 1.0) if let layer = self.layer as? CAMetalLayer { layer.wantsExtendedDynamicRangeContent = true layer.isOpaque = false - layer.displaySyncEnabled = true layer.pixelFormat = .rgba16Float - layer.compositingFilter = "multiply" } - // Pipeline - let pipelineDescriptor = MTLRenderPipelineDescriptor() - pipelineDescriptor.vertexFunction = vertexShader - pipelineDescriptor.fragmentFunction = fragmentShader - pipelineDescriptor.colorAttachments[0].pixelFormat = MTLPixelFormat.rgba16Float - - - guard let pipelineState = try? device.makeRenderPipelineState(descriptor: pipelineDescriptor) else { - fatalError("Failed to create Metal Pipeline state") - } - self.pipelineState = pipelineState - - - // Vertex buffer - let vertices: [Float] = [ - -1.0, -1.0, 0.0, 1.0, - -1.0, 1.0, 0.0, 1.0, - 1.0, -1.0, 0.0, 1.0, - 1.0, 1.0, 0.0, 1.0, - ] - - self.vertexBuffer = device.makeBuffer(bytes: vertices, length: vertices.count * MemoryLayout.size, options: [])! - screenUpdate(screen: screen) - } required init(coder: NSCoder) { @@ -94,24 +55,21 @@ class Overlay: MTKView, MTKViewDelegate { func screenUpdate(screen: NSScreen) { - let maxEdrValue = Float(screen.maximumExtendedDynamicRangeColorComponentValue) - fragmentColor = vector_float4(maxEdrValue, maxEdrValue, maxEdrValue, 1.0) + let maxEdrValue = screen.maximumExtendedDynamicRangeColorComponentValue + let maxRenderedEdrValue = screen.maximumReferenceExtendedDynamicRangeColorComponentValue + + let factor = maxEdrValue / max(maxRenderedEdrValue, 1.0) - 1.0 + clearColor = MTLClearColorMake(factor, factor, factor, 1.0) } func draw(in view: MTKView) { guard let commandQueue = commandQueue, let renderPassDescriptor = view.currentRenderPassDescriptor, let commandBuffer = commandQueue.makeCommandBuffer(), - let renderEncoder = commandBuffer.makeRenderCommandEncoder(descriptor: renderPassDescriptor), - let vertexBuffer = self.vertexBuffer, - let pipelineState = self.pipelineState else { + let renderEncoder = commandBuffer.makeRenderCommandEncoder(descriptor: renderPassDescriptor) else { return } - renderEncoder.setRenderPipelineState(pipelineState) - renderEncoder.setVertexBuffer(vertexBuffer, offset: 0, index: 0) - renderEncoder.setFragmentBytes(&fragmentColor, length: MemoryLayout.size(ofValue: fragmentColor), index: 0) - renderEncoder.drawPrimitives(type: .triangleStrip, vertexStart: 0, vertexCount: 4) renderEncoder.endEncoding() commandBuffer.present(view.currentDrawable!) diff --git a/BrightIntosh/OverlayWindow.swift b/BrightIntosh/OverlayWindow.swift index d09b11a..a70b6cf 100644 --- a/BrightIntosh/OverlayWindow.swift +++ b/BrightIntosh/OverlayWindow.swift @@ -9,33 +9,32 @@ import Cocoa class OverlayWindow: NSWindow { - private var overlay: Overlay! + private var overlay: Overlay? init(rect: NSRect, screen: NSScreen) { - super.init(contentRect: rect, styleMask: [.fullSizeContentView, .borderless], backing: .buffered, defer: false) - - NSApplication.shared.activate(ignoringOtherApps: true) + super.init(contentRect: rect, styleMask: [], backing: BackingStoreType(rawValue: 0)!, defer: false) + print(rect) + print(screen.frame.origin) setFrameOrigin(screen.frame.origin) isOpaque = false hasShadow = false backgroundColor = NSColor.clear ignoresMouseEvents = true - level = NSWindow.Level(rawValue: Int(CGShieldingWindowLevel())) - collectionBehavior = [.stationary, .canJoinAllSpaces, .ignoresCycle, .canJoinAllApplications, .fullScreenAuxiliary] - makeKeyAndOrderFront(nil) + level = .screenSaver + collectionBehavior = [.stationary, .ignoresCycle, .canJoinAllSpaces] isReleasedWhenClosed = false - hidesOnDeactivate = false - - guard let view = contentView else { return } + canHide = false + isMovableByWindowBackground = true + alphaValue = 1 + orderFrontRegardless() - overlay = Overlay(frame: view.bounds, screen: screen) - overlay.autoresizingMask = [.width, .height] - view.addSubview(overlay) + overlay = Overlay(frame: rect, screen: screen) + contentView = overlay } func screenUpdate(screen: NSScreen) { - overlay.screenUpdate(screen: screen) + overlay?.screenUpdate(screen: screen) } } diff --git a/BrightIntosh/overlay_shader.metal b/BrightIntosh/overlay_shader.metal deleted file mode 100644 index 19a1c04..0000000 --- a/BrightIntosh/overlay_shader.metal +++ /dev/null @@ -1,23 +0,0 @@ -#include - -using namespace metal; - -struct VertexIn { - float4 position [[position]]; -}; - -struct VertexOut { - float4 position [[position]]; - float2 texCoord; -}; - -vertex VertexOut vertexShader(constant VertexIn* vertexArray [[buffer(0)]], uint vertexId [[vertex_id]]) { - VertexOut out; - out.position = vertexArray[vertexId].position; - return out; -} - - -fragment float4 fragmentShader(VertexOut in [[stage_in]], constant float4 &color [[buffer(0)]]) { - return color; -} From 675fb8dace11afad3ea5a974f4cbf811476ee925 Mon Sep 17 00:00:00 2001 From: Niklas Rousset Date: Sat, 5 Aug 2023 20:16:53 +0200 Subject: [PATCH 2/4] remove prints --- BrightIntosh/OverlayWindow.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/BrightIntosh/OverlayWindow.swift b/BrightIntosh/OverlayWindow.swift index a70b6cf..15725e0 100644 --- a/BrightIntosh/OverlayWindow.swift +++ b/BrightIntosh/OverlayWindow.swift @@ -14,8 +14,6 @@ class OverlayWindow: NSWindow { init(rect: NSRect, screen: NSScreen) { super.init(contentRect: rect, styleMask: [], backing: BackingStoreType(rawValue: 0)!, defer: false) - print(rect) - print(screen.frame.origin) setFrameOrigin(screen.frame.origin) isOpaque = false hasShadow = false From e904ea040673073408aaf152d2d7ac3c9d7c961d Mon Sep 17 00:00:00 2001 From: Niklas Rousset Date: Sat, 5 Aug 2023 21:26:51 +0200 Subject: [PATCH 3/4] gamma changable in debug menu --- BrightIntosh/AppDelegate.swift | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/BrightIntosh/AppDelegate.swift b/BrightIntosh/AppDelegate.swift index cc7b6f1..8f15f8a 100644 --- a/BrightIntosh/AppDelegate.swift +++ b/BrightIntosh/AppDelegate.swift @@ -35,6 +35,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { private let BRIGHTINTOSH_URL = "https://brightintosh.de" private let BRIGHTINTOSH_VERSION_URL = "https://api.github.com/repos/niklasr22/BrightIntosh/releases/latest" + private var gamma: Float = 1.7 + func applicationDidFinishLaunching(_ aNotification: Notification) { appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String @@ -110,8 +112,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { if let displayId = screen.displayId { resetGammaTable() - let maxEdr: Float = 1.75 //Float(screen.maximumExtendedDynamicRangeColorComponentValue) - let tableSize: Int = 256 // The size of the gamma table var redTable = [CGGammaValue](repeating: 0, count: tableSize) var greenTable = [CGGammaValue](repeating: 0, count: tableSize) @@ -124,13 +124,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { } for i in 0.. Date: Sat, 5 Aug 2023 21:26:58 +0200 Subject: [PATCH 4/4] new version --- BrightIntosh.xcodeproj/project.pbxproj | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/BrightIntosh.xcodeproj/project.pbxproj b/BrightIntosh.xcodeproj/project.pbxproj index c5e8ae0..57df62a 100644 --- a/BrightIntosh.xcodeproj/project.pbxproj +++ b/BrightIntosh.xcodeproj/project.pbxproj @@ -222,7 +222,7 @@ CODE_SIGN_ENTITLEMENTS = BrightIntosh/BrightIntosh.entitlements; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 12; + CURRENT_PROJECT_VERSION = 13; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = 9K32WDUN2H; ENABLE_HARDENED_RUNTIME = YES; @@ -247,7 +247,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 13.3; - MARKETING_VERSION = 1.0.9; + MARKETING_VERSION = 1.0.10; PRODUCT_BUNDLE_IDENTIFIER = de.brightintosh.app; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; @@ -271,7 +271,7 @@ CODE_SIGN_ENTITLEMENTS = BrightIntosh/BrightIntosh.entitlements; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 12; + CURRENT_PROJECT_VERSION = 13; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = 9K32WDUN2H; ENABLE_HARDENED_RUNTIME = YES; @@ -296,7 +296,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 13.3; - MARKETING_VERSION = 1.0.9; + MARKETING_VERSION = 1.0.10; PRODUCT_BUNDLE_IDENTIFIER = de.brightintosh.app; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; @@ -319,7 +319,7 @@ CODE_SIGN_ENTITLEMENTS = BrightIntosh/BrightIntosh.entitlements; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 12; + CURRENT_PROJECT_VERSION = 13; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = 9K32WDUN2H; ENABLE_HARDENED_RUNTIME = YES; @@ -344,7 +344,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 13.3; - MARKETING_VERSION = 1.0.9; + MARKETING_VERSION = 1.0.10; PRODUCT_BUNDLE_IDENTIFIER = de.brightintosh.app; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; @@ -367,7 +367,7 @@ CODE_SIGN_ENTITLEMENTS = BrightIntosh/BrightIntosh.entitlements; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 12; + CURRENT_PROJECT_VERSION = 13; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = 9K32WDUN2H; ENABLE_HARDENED_RUNTIME = YES; @@ -392,7 +392,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 13.3; - MARKETING_VERSION = 1.0.9; + MARKETING_VERSION = 1.0.10; PRODUCT_BUNDLE_IDENTIFIER = de.brightintosh.app; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto;