forked from MeloNX/MeloNX
Quick changes
This commit is contained in:
parent
860d4d363d
commit
464f14f143
@ -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",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 1.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
|
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",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 1.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
|
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
|
||||||
|
Binary file not shown.
@ -11,8 +11,8 @@ import SDL2
|
|||||||
import GameController
|
import GameController
|
||||||
|
|
||||||
struct Controller: Identifiable, Hashable {
|
struct Controller: Identifiable, Hashable {
|
||||||
let id: String
|
var id: String
|
||||||
let name: String
|
var name: String
|
||||||
}
|
}
|
||||||
|
|
||||||
struct iOSNav<Content: View>: View {
|
struct iOSNav<Content: View>: View {
|
||||||
@ -205,6 +205,7 @@ class Ryujinx {
|
|||||||
|
|
||||||
func getConnectedControllers() -> [Controller] {
|
func getConnectedControllers() -> [Controller] {
|
||||||
|
|
||||||
|
|
||||||
guard let jsonPtr = get_game_controllers() else {
|
guard let jsonPtr = get_game_controllers() else {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ struct ContentView: View {
|
|||||||
@State private var config: Ryujinx.Configuration
|
@State private var config: Ryujinx.Configuration
|
||||||
@State private var settings: [MoltenVKSettings]
|
@State private var settings: [MoltenVKSettings]
|
||||||
@State private var isVirtualControllerActive: Bool = false
|
@State private var isVirtualControllerActive: Bool = false
|
||||||
|
@State var onscreencontroller: Controller?
|
||||||
|
|
||||||
// MARK: - Initialization
|
// MARK: - Initialization
|
||||||
init() {
|
init() {
|
||||||
@ -89,11 +90,9 @@ struct ContentView: View {
|
|||||||
|
|
||||||
Section("Controller") {
|
Section("Controller") {
|
||||||
Button("Refresh", action: refreshControllersList)
|
Button("Refresh", action: refreshControllersList)
|
||||||
|
Divider()
|
||||||
ForEach(controllersList, id: \.self) { controller in
|
ForEach(controllersList, id: \.self) { controller in
|
||||||
if controller.name != "Apple Touch Controller" {
|
controllerRow(for: controller)
|
||||||
controllerRow(for: controller)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -128,15 +127,11 @@ struct ContentView: View {
|
|||||||
virtualController = GCVirtualController(configuration: configuration)
|
virtualController = GCVirtualController(configuration: configuration)
|
||||||
virtualController?.connect()
|
virtualController?.connect()
|
||||||
|
|
||||||
controllersList.removeAll(where: { $0.name == "Apple Touch Controller" })
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private func destroyVirtualController() {
|
private func destroyVirtualController() {
|
||||||
virtualController?.disconnect()
|
virtualController?.disconnect()
|
||||||
virtualController = nil
|
virtualController = nil
|
||||||
|
|
||||||
// Remove virtual controller from current controllers
|
|
||||||
controllersList.removeAll(where: { $0.name == "Apple Touch Controller" })
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Helper Methods
|
// MARK: - Helper Methods
|
||||||
@ -152,33 +147,45 @@ struct ContentView: View {
|
|||||||
private func setupEmulation() {
|
private func setupEmulation() {
|
||||||
virtualController?.disconnect()
|
virtualController?.disconnect()
|
||||||
|
|
||||||
|
if controllersList.first(where: { $0 == onscreencontroller}) != nil {
|
||||||
controllerCallback = {
|
controllerCallback = {
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
controllersList = Ryujinx.shared.getConnectedControllers()
|
controllersList = Ryujinx.shared.getConnectedControllers()
|
||||||
currentControllers.removeAll(where: { $0.name == "Apple Touch Controller" })
|
|
||||||
if controllersList.count == 2,
|
print(currentControllers)
|
||||||
controllersList.contains(where: { $0.name == "Apple Touch Controller" }) {
|
start(displayid: 1)
|
||||||
currentControllers.append(controllersList[1])
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
showVirtualController()
|
||||||
|
} else {
|
||||||
|
|
||||||
|
DispatchQueue.main.async {
|
||||||
print(currentControllers)
|
print(currentControllers)
|
||||||
start(displayid: 1)
|
start(displayid: 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
showVirtualController()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private func refreshControllersList() {
|
private func refreshControllersList() {
|
||||||
Timer.scheduledTimer(withTimeInterval: 0.5, repeats: false) { _ in
|
Timer.scheduledTimer(withTimeInterval: 0.5, repeats: false) { _ in
|
||||||
controllersList = Ryujinx.shared.getConnectedControllers()
|
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" })
|
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)
|
currentControllers.append(controller)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,7 +110,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||||||
_textures.AsSpan().Fill(initialImageInfo);
|
_textures.AsSpan().Fill(initialImageInfo);
|
||||||
_images.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.
|
// If null descriptors are supported, we can pass null as the handle.
|
||||||
_dummyBuffer = null;
|
_dummyBuffer = null;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user