mirror of
				https://github.com/GayPizzaSpecifications/voxelotl-engine.git
				synced 2025-11-04 10:59:39 +00:00 
			
		
		
		
	Merge pull request #5 from GayPizzaSpecifications/use-sdl-main
use main.m and SDL_main functionality
This commit is contained in:
		@ -1,7 +1,7 @@
 | 
				
			|||||||
cmake_minimum_required(VERSION 3.24)
 | 
					cmake_minimum_required(VERSION 3.24)
 | 
				
			||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "13.6" CACHE STRING "Minimum MacOS version" FORCE)
 | 
					set(CMAKE_OSX_DEPLOYMENT_TARGET "13.6" CACHE STRING "Minimum MacOS version" FORCE)
 | 
				
			||||||
set(CMAKE_Swift_LANGUAGE_VERSION 5)
 | 
					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)
 | 
					find_library(SDL3 SDL3 REQUIRED PATHS "${CMAKE_SOURCE_DIR}/Frameworks" NO_DEFAULT_PATH)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -66,7 +66,10 @@ add_executable(Voxelotl MACOSX_BUNDLE
 | 
				
			|||||||
  GameDelegate.swift
 | 
					  GameDelegate.swift
 | 
				
			||||||
  Application.swift
 | 
					  Application.swift
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  main.swift)
 | 
					  # Entry point
 | 
				
			||||||
 | 
					  Program.swift
 | 
				
			||||||
 | 
					  main.m
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set_source_files_properties(
 | 
					set_source_files_properties(
 | 
				
			||||||
  shader.metal 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
 | 
					#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("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\\Common" REGULAR_EXPRESSION "Common/")
 | 
				
			||||||
source_group("Source Files\\Random" REGULAR_EXPRESSION "Random/")
 | 
					source_group("Source Files\\Random" REGULAR_EXPRESSION "Random/")
 | 
				
			||||||
source_group("Source Files\\Noise" REGULAR_EXPRESSION "Noise/")
 | 
					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())
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user