mirror of
https://github.com/GayPizzaSpecifications/voxelotl-engine.git
synced 2025-08-02 13:00:53 +00:00
use main.m and SDL_main functionality
This commit is contained in:
parent
e4194ff2ec
commit
b0ccd3b335
@ -1,7 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.24)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "13.6" CACHE STRING "Minimum MacOS version" FORCE)
|
||||
set(CMAKE_Swift_LANGUAGE_VERSION 5)
|
||||
project(voxelotl LANGUAGES C Swift VERSION "0.1.0")
|
||||
project(voxelotl LANGUAGES C OBJC Swift VERSION "0.1.0")
|
||||
|
||||
find_library(SDL3 SDL3 REQUIRED PATHS "${CMAKE_SOURCE_DIR}/Frameworks" NO_DEFAULT_PATH)
|
||||
|
||||
|
@ -66,7 +66,10 @@ add_executable(Voxelotl MACOSX_BUNDLE
|
||||
GameDelegate.swift
|
||||
Application.swift
|
||||
|
||||
main.swift)
|
||||
# Entry point
|
||||
Program.swift
|
||||
main.m
|
||||
)
|
||||
|
||||
set_source_files_properties(
|
||||
shader.metal PROPERTIES
|
||||
@ -103,7 +106,7 @@ set_source_files_properties(test.png PROPERTIES MACOSX_PACKAGE_LOCATION Resource
|
||||
|
||||
#TODO: should use TREE mode as documented in https://cmake.org/cmake/help/latest/command/source_group.html
|
||||
source_group("Resources" FILES Assets.xcassets test.png)
|
||||
source_group("Source Files" REGULAR_EXPRESSION "\\.(swift|metal)$")
|
||||
source_group("Source Files" REGULAR_EXPRESSION "\\.(swift|metal|m)$")
|
||||
source_group("Source Files\\Common" REGULAR_EXPRESSION "Common/")
|
||||
source_group("Source Files\\Random" REGULAR_EXPRESSION "Random/")
|
||||
source_group("Source Files\\Noise" REGULAR_EXPRESSION "Noise/")
|
||||
|
17
Sources/Voxelotl/Program.swift
Normal file
17
Sources/Voxelotl/Program.swift
Normal file
@ -0,0 +1,17 @@
|
||||
import Foundation
|
||||
|
||||
@objc public class Program: NSObject {
|
||||
@objc public static func run() -> Int32 {
|
||||
Thread.current.qualityOfService = .userInteractive
|
||||
|
||||
let app = Application(
|
||||
delegate: Game(),
|
||||
configuration: ApplicationConfiguration(
|
||||
frame: Size(1280, 720),
|
||||
title: "Voxelotl Demo",
|
||||
flags: [ .resizable, .highDPI ],
|
||||
vsyncMode: .on(interval: 1)))
|
||||
|
||||
return app.run()
|
||||
}
|
||||
}
|
6
Sources/Voxelotl/main.m
Normal file
6
Sources/Voxelotl/main.m
Normal file
@ -0,0 +1,6 @@
|
||||
#include <SDL3/SDL_main.h>
|
||||
#include <Voxelotl-Swift.h>
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
return [Program run];
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
import Foundation
|
||||
|
||||
Thread.current.qualityOfService = .userInteractive
|
||||
|
||||
let app = Application(
|
||||
delegate: Game(),
|
||||
configuration: ApplicationConfiguration(
|
||||
frame: Size(1280, 720),
|
||||
title: "Voxelotl Demo",
|
||||
flags: [ .resizable, .highDPI ],
|
||||
vsyncMode: .on(interval: 1)))
|
||||
|
||||
exit(app.run())
|
Loading…
Reference in New Issue
Block a user