Skip to content

Commit b17e67f

Browse files
committed
QC Changes
1 parent e0fe8a2 commit b17e67f

6 files changed

Lines changed: 52 additions & 52 deletions

File tree

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ subprojects {
3333
implementation("org.lwjgl:lwjgl-openvr:${rootProject.lwjgl_version}:natives-windows") { transitive = false }
3434

3535
// Use custom OpenXR lib for Android and GLES bindings
36-
//implementation("QuestCraftPlusPlus:lwjgl3:${rootProject.lwjgl_version}:lwjgl-openxr-${rootProject.lwjgl_version}")
36+
implementation("QuestCraftPlusPlus:lwjgl3:${rootProject.lwjgl_version}:lwjgl-openxr-${rootProject.lwjgl_version}")
3737

38-
implementation("org.lwjgl:lwjgl-openxr:${rootProject.lwjgl_version}")
38+
//implementation("org.lwjgl:lwjgl-openxr:${rootProject.lwjgl_version}")
3939
implementation("org.lwjgl:lwjgl-openxr:${rootProject.lwjgl_version}:natives-linux")
4040
implementation("org.lwjgl:lwjgl-openxr:${rootProject.lwjgl_version}:natives-windows")
4141

common/src/main/java/org/vivecraft/client/gui/settings/GuiBindings.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import net.minecraft.network.chat.Component;
1111
import org.vivecraft.client.gui.framework.screens.GuiGroupedListEditorScreen;
1212
import org.vivecraft.client_vr.provider.control.ActionSet;
13+
import org.vivecraft.client_vr.provider.control.ControllerPaths;
1314
import org.vivecraft.client_vr.provider.control.Source;
1415
import org.vivecraft.client_vr.provider.openxr.MCOpenXR;
1516
import org.vivecraft.client_vr.provider.control.BindingProfile;
@@ -49,7 +50,7 @@ public GuiBindings(Screen lastScreen) {
4950
"Custom Profile",
5051
"New custom profile",
5152
"Custom",
52-
null,
53+
new ControllerPaths("", MCOpenXR.get().getCurrentInteractionProfile()),
5354
bindings
5455
);
5556

common/src/main/java/org/vivecraft/client_vr/provider/openxr/DeviceCompat.java

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.lwjgl.system.linux.X11;
1515
import org.lwjgl.system.windows.User32;
1616
import org.vivecraft.client_vr.settings.VRSettings;
17+
import org.vivecraft.util.VLoader;
1718

1819
import java.util.Objects;
1920

@@ -110,61 +111,59 @@ public Struct checkGraphics(MemoryStack stack, XrInstance instance, long systemI
110111
class Mobile implements DeviceCompat {
111112
@Override
112113
public long getPlatformInfo(MemoryStack stack) {
113-
// return XrInstanceCreateInfoAndroidKHR.calloc(stack).set(
114-
// KHRAndroidCreateInstance.XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR,
115-
// NULL,
116-
// VLoader.getDalvikVM(),
117-
// VLoader.getDalvikActivity()
118-
// ).address();
119-
return NULL;
114+
return XrInstanceCreateInfoAndroidKHR.calloc(stack).set(
115+
KHRAndroidCreateInstance.XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR,
116+
NULL,
117+
VLoader.getDalvikVM(),
118+
VLoader.getDalvikActivity()
119+
).address();
120120
}
121121

122122
@Override
123123
public void initOpenXRLoader(MemoryStack stack) {
124-
// VRSettings.LOGGER.info("Platform: {}", System.getProperty("os.version"));
125-
// VLoader.setupAndroid();
126-
// XrLoaderInitInfoAndroidKHR initInfo = XrLoaderInitInfoAndroidKHR.calloc(stack).set(
127-
// KHRLoaderInitAndroid.XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR,
128-
// NULL,
129-
// VLoader.getDalvikVM(),
130-
// VLoader.getDalvikActivity()
131-
// );
132-
//
133-
// KHRLoaderInit.xrInitializeLoaderKHR(XrLoaderInitInfoBaseHeaderKHR.create(initInfo.address()));
124+
VRSettings.LOGGER.info("Platform: {}", System.getProperty("os.version"));
125+
VLoader.setupAndroid();
126+
// Ensure Android XR environment is ready
127+
try {Thread.sleep(2500);} catch (InterruptedException ignored) {}
128+
XrLoaderInitInfoAndroidKHR initInfo = XrLoaderInitInfoAndroidKHR.calloc(stack).set(
129+
KHRLoaderInitAndroid.XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR,
130+
NULL,
131+
VLoader.getDalvikVM(),
132+
VLoader.getDalvikActivity()
133+
);
134+
135+
KHRLoaderInit.xrInitializeLoaderKHR(XrLoaderInitInfoBaseHeaderKHR.create(initInfo.address()));
134136
}
135137

136138
@Override
137139
public String getGraphicsExtension() {
138-
//return KHROpenGLESEnable.XR_KHR_OPENGL_ES_ENABLE_EXTENSION_NAME;
139-
return null;
140+
return KHROpenGLESEnable.XR_KHR_OPENGL_ES_ENABLE_EXTENSION_NAME;
140141
}
141142

142143
@Override
143144
public XrSwapchainImageOpenGLKHR.Buffer createImageBuffers(int imageCount, MemoryStack stack) {
144-
// XrSwapchainImageOpenGLKHR.Buffer swapchainImageBuffer = XrSwapchainImageOpenGLKHR.calloc(imageCount, stack);
145-
// for (XrSwapchainImageOpenGLKHR image : swapchainImageBuffer) {
146-
// image.type(KHROpenGLESEnable.XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR);
147-
// }
148-
//
149-
// return swapchainImageBuffer;
150-
return null;
145+
XrSwapchainImageOpenGLKHR.Buffer swapchainImageBuffer = XrSwapchainImageOpenGLKHR.calloc(imageCount, stack);
146+
for (XrSwapchainImageOpenGLKHR image : swapchainImageBuffer) {
147+
image.type(KHROpenGLESEnable.XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR);
148+
}
149+
150+
return swapchainImageBuffer;
151151
}
152152

153153
@Override
154154
public Struct checkGraphics(MemoryStack stack, XrInstance instance, long systemID) {
155-
// XrGraphicsRequirementsOpenGLESKHR graphicsRequirements = XrGraphicsRequirementsOpenGLESKHR.calloc(stack).type(KHROpenGLESEnable.XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR);
156-
// KHROpenGLESEnable.xrGetOpenGLESGraphicsRequirementsKHR(instance, systemID, graphicsRequirements);
157-
// XrGraphicsBindingOpenGLESAndroidKHR graphicsBinding = XrGraphicsBindingOpenGLESAndroidKHR.calloc(stack);
158-
// graphicsBinding.set(
159-
// KHROpenGLESEnable.XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR,
160-
// NULL,
161-
// VLoader.getEGLDisplay(),
162-
// VLoader.getEGLConfig(),
163-
// VLoader.getEGLContext()
164-
// );
165-
//
166-
// return graphicsBinding;
167-
return null;
155+
XrGraphicsRequirementsOpenGLESKHR graphicsRequirements = XrGraphicsRequirementsOpenGLESKHR.calloc(stack).type(KHROpenGLESEnable.XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR);
156+
KHROpenGLESEnable.xrGetOpenGLESGraphicsRequirementsKHR(instance, systemID, graphicsRequirements);
157+
XrGraphicsBindingOpenGLESAndroidKHR graphicsBinding = XrGraphicsBindingOpenGLESAndroidKHR.calloc(stack);
158+
graphicsBinding.set(
159+
KHROpenGLESEnable.XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR,
160+
NULL,
161+
VLoader.getEGLDisplay(),
162+
VLoader.getEGLConfig(),
163+
VLoader.getEGLContext()
164+
);
165+
166+
return graphicsBinding;
168167
}
169168
}
170169
}

common/src/main/java/org/vivecraft/client_vr/provider/openxr/MCOpenXR.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ protected ControllerType findActiveBindingControllerType(KeyMapping keyMapping)
141141
} else {
142142
var action = this.getInputAction(keyMapping);
143143
for (ControllerType controllerType : ControllerType.values()) {
144+
if (action.activeAction == 0) continue;
144145
var handedaction = action.getHandle(this.activeController[controllerType.ordinal()])
145146
.get(action.activeAction);
146147
if (handedaction.hand() != controllerType) {

common/src/main/resources/assets/vivecraft/input/oculus_defaults.json

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,15 @@
6969
"sources": [
7070
{
7171
"inputs": [
72-
{"action": "vivecraft.key.ingameMenuButton", "type": "PRESS"},
73-
{"action": "vivecraft.key.toggleKeyboard", "type": "LONG_PRESS"}
72+
{"action": "vivecraft.key.ingameMenuButton", "type": "PRESS"}
7473
],
75-
"path": "/user/hand/left/input/y/click"
74+
"path": "/user/hand/left/input/menu/click"
7675
},
7776
{
7877
"inputs": [
7978
{"action": "key.inventory", "type": "PRESS"}
8079
],
81-
"path": "/user/hand/left/input/x/click"
80+
"path": "/user/hand/left/input/y/click"
8281
}
8382
]
8483
},
@@ -143,7 +142,7 @@
143142
"inputs": [
144143
{"action": "vivecraft.key.teleport", "type": "PRESS"}
145144
],
146-
"path": "/user/hand/left/input/trigger/value"
145+
"path": "/user/hand/left/input/x/click"
147146
},
148147
{
149148
"inputs": [
@@ -155,7 +154,7 @@
155154
"inputs": [
156155
{"action": "key.use", "type": "PRESS"}
157156
],
158-
"path": "/user/hand/right/input/a/click"
157+
"path": "/user/hand/left/input/trigger/value"
159158
},
160159
{
161160
"inputs": [
@@ -167,7 +166,7 @@
167166
"inputs": [
168167
{"action": "key.jump", "type": "PRESS"}
169168
],
170-
"path": "/user/hand/left/input/thumbstick/click"
169+
"path": "/user/hand/right/input/a/click"
171170
},
172171
{
173172
"inputs": [
@@ -185,7 +184,7 @@
185184
"inputs": [
186185
{"action": "vivecraft.key.teleportFallback", "type": "VEC1"}
187186
],
188-
"path": "/user/hand/left/input/trigger/value"
187+
"path": "/user/hand/left/input/x/click"
189188
}
190189
]
191190
},

fabric/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ dependencies {
7070
include(implementation("org.lwjgl:lwjgl-openvr:${rootProject.lwjgl_version}:natives-windows")) { transitive = false }
7171

7272
// Use custom OpenXR lib for Android and GLES bindings
73-
//include(implementation("QuestCraftPlusPlus:lwjgl3:${rootProject.lwjgl_version}:lwjgl-openxr-${rootProject.lwjgl_version}"))
73+
include(implementation("QuestCraftPlusPlus:lwjgl3:${rootProject.lwjgl_version}:lwjgl-openxr-${rootProject.lwjgl_version}"))
7474

75-
include(implementation("org.lwjgl:lwjgl-openxr:${rootProject.lwjgl_version}"))
75+
//include(implementation("org.lwjgl:lwjgl-openxr:${rootProject.lwjgl_version}"))
7676
include(implementation("org.lwjgl:lwjgl-openxr:${rootProject.lwjgl_version}:natives-windows"))
7777
include(implementation("org.lwjgl:lwjgl-openxr:${rootProject.lwjgl_version}:natives-linux"))
7878

0 commit comments

Comments
 (0)