Quick changes

This commit is contained in:
Stossy11 2024-12-01 08:38:32 +11:00
parent 860d4d363d
commit 464f14f143
5 changed files with 43 additions and 25 deletions

View File

@ -554,6 +554,11 @@
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
@ -646,6 +651,11 @@
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;

View File

@ -11,8 +11,8 @@ import SDL2
import GameController
struct Controller: Identifiable, Hashable {
let id: String
let name: String
var id: String
var name: String
}
struct iOSNav<Content: View>: View {
@ -205,6 +205,7 @@ class Ryujinx {
func getConnectedControllers() -> [Controller] {
guard let jsonPtr = get_game_controllers() else {
return []
}

View File

@ -25,6 +25,7 @@ struct ContentView: View {
@State private var config: Ryujinx.Configuration
@State private var settings: [MoltenVKSettings]
@State private var isVirtualControllerActive: Bool = false
@State var onscreencontroller: Controller?
// MARK: - Initialization
init() {
@ -89,15 +90,13 @@ struct ContentView: View {
Section("Controller") {
Button("Refresh", action: refreshControllersList)
Divider()
ForEach(controllersList, id: \.self) { controller in
if controller.name != "Apple Touch Controller" {
controllerRow(for: controller)
}
}
}
}
}
private func controllerRow(for controller: Controller) -> some View {
HStack {
@ -128,15 +127,11 @@ struct ContentView: View {
virtualController = GCVirtualController(configuration: configuration)
virtualController?.connect()
controllersList.removeAll(where: { $0.name == "Apple Touch Controller" })
}
private func destroyVirtualController() {
virtualController?.disconnect()
virtualController = nil
// Remove virtual controller from current controllers
controllersList.removeAll(where: { $0.name == "Apple Touch Controller" })
}
// MARK: - Helper Methods
@ -152,15 +147,10 @@ struct ContentView: View {
private func setupEmulation() {
virtualController?.disconnect()
if controllersList.first(where: { $0 == onscreencontroller}) != nil {
controllerCallback = {
DispatchQueue.main.async {
controllersList = Ryujinx.shared.getConnectedControllers()
currentControllers.removeAll(where: { $0.name == "Apple Touch Controller" })
if controllersList.count == 2,
controllersList.contains(where: { $0.name == "Apple Touch Controller" }) {
currentControllers.append(controllersList[1])
}
print(currentControllers)
start(displayid: 1)
@ -169,16 +159,33 @@ struct ContentView: View {
showVirtualController()
} else {
DispatchQueue.main.async {
print(currentControllers)
start(displayid: 1)
}
}
}
private func refreshControllersList() {
Timer.scheduledTimer(withTimeInterval: 0.5, repeats: false) { _ in
controllersList = Ryujinx.shared.getConnectedControllers()
controllersList.removeAll(where: { $0.id == "0" })
var controller = controllersList.first(where: { $0.name == "Apple Touch Controller" })
controllersList.removeAll(where: { $0.name == "Apple Touch Controller" })
if let controller = controllersList.first, !controllersList.isEmpty {
controller?.name = "On-Screen Controller"
onscreencontroller = controller
controllersList.append(controller!)
// controllersList.removeAll(where: { $0.name == "Apple Touch Controller" })
if controllersList.count > 2 {
let controller = controllersList[2]
currentControllers.append(controller)
} else if let controller = controllersList.first(where: { $0.id == controller?.id }), !controllersList.isEmpty {
currentControllers.append(controller)
}
}

View File

@ -110,7 +110,7 @@ namespace Ryujinx.Graphics.Vulkan
_textures.AsSpan().Fill(initialImageInfo);
_images.AsSpan().Fill(initialImageInfo);
if (gd.Capabilities.SupportsNullDescriptors && !OperatingSystem.IsIOS())
if (gd.Capabilities.SupportsNullDescriptors)
{
// If null descriptors are supported, we can pass null as the handle.
_dummyBuffer = null;