Skip to content

Commit 2b97efb

Browse files
committed
test oculus openxr env
1 parent d51fea3 commit 2b97efb

3 files changed

Lines changed: 19 additions & 27 deletions

File tree

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

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -880,14 +880,9 @@ private void initializeOpenXRSession() {
880880

881881
session = new XrSession(sessionPtr.get(0), instance);
882882

883-
XrSessionBeginInfo sessionBeginInfo = XrSessionBeginInfo.calloc(stack);
884-
sessionBeginInfo.type(XR10.XR_TYPE_SESSION_BEGIN_INFO);
885-
sessionBeginInfo.next(NULL);
886-
sessionBeginInfo.primaryViewConfigurationType(XR10.XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO);
887-
888-
error = XR10.xrBeginSession(session, sessionBeginInfo);
889-
logError(error, "xrBeginSession", "");
890-
this.isActive = true;
883+
while (!this.isActive) {
884+
pollVREvents();
885+
}
891886

892887
}
893888
}
@@ -988,7 +983,7 @@ private void initializeOpenXRSwapChain() {
988983
XrSwapchainCreateInfo swapchainCreateInfo = XrSwapchainCreateInfo.calloc(stack);
989984
swapchainCreateInfo.type(XR10.XR_TYPE_SWAPCHAIN_CREATE_INFO);
990985
swapchainCreateInfo.next(NULL);
991-
swapchainCreateInfo.createFlags(XR10.XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT);
986+
swapchainCreateInfo.createFlags(0);
992987
swapchainCreateInfo.usageFlags(XR10.XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT);
993988
swapchainCreateInfo.format(chosenFormat);
994989
swapchainCreateInfo.sampleCount(1);
@@ -1355,7 +1350,6 @@ private long createAction(String name, String localisedName, String type, XrActi
13551350
case "pose" -> hands.actionType(XR10.XR_ACTION_TYPE_POSE_INPUT);
13561351
case "haptic" -> hands.actionType(XR10.XR_ACTION_TYPE_VIBRATION_OUTPUT);
13571352
}
1358-
hands.countSubactionPaths(0);
13591353
if(subactionPaths != null) {
13601354
LongBuffer buffer = stackCallocLong(subactionPaths.length);
13611355
for(String path : subactionPaths) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ private void triggerHapticPulse(ControllerType controller, float durationSeconds
2626
info.action(new XrAction(MCOpenXR.get().haptics[i], actionSet));
2727

2828
XrHapticVibration vibration = XrHapticVibration.calloc(stack);
29-
vibration.type(XR10.XR_ACTION_TYPE_VIBRATION_OUTPUT);
29+
vibration.type(XR10.XR_TYPE_HAPTIC_VIBRATION);
3030
vibration.next(NULL);
3131
vibration.duration((long) (durationSeconds * 1_000_000_000));
3232
vibration.frequency(frequency);

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

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,8 @@
1212
import org.vivecraft.client_vr.provider.VRRenderer;
1313
import org.vivecraft.client_vr.render.RenderConfigException;
1414

15-
import java.nio.ByteBuffer;
1615
import java.nio.IntBuffer;
1716

18-
import static org.lwjgl.system.MemoryUtil.memAddress;
19-
import static org.lwjgl.system.MemoryUtil.memUTF8;
20-
2117
public class OpenXRStereoRenderer extends VRRenderer {
2218
private final MCOpenXR openxr;
2319
private int swapIndex;
@@ -129,9 +125,10 @@ public void endFrame() throws RenderConfigException {
129125
GL31.glBlitFramebuffer(0,0, getRightEyeTarget().viewWidth, getRightEyeTarget().viewHeight, 0,0, rightFramebuffers[swapIndex].viewWidth, rightFramebuffers[swapIndex].viewHeight, GL31.GL_STENCIL_BUFFER_BIT | GL31.GL_COLOR_BUFFER_BIT, GL31.GL_NEAREST);
130126

131127
try (MemoryStack stack = MemoryStack.stackPush()){
132-
PointerBuffer layers = stack.callocPointer(1);
133-
int error;
134128
if (this.openxr.shouldRender) {
129+
PointerBuffer layers = stack.callocPointer(1);
130+
int error;
131+
135132
error = XR10.xrReleaseSwapchainImage(
136133
openxr.swapchain,
137134
XrSwapchainImageReleaseInfo.calloc(stack)
@@ -144,17 +141,18 @@ public void endFrame() throws RenderConfigException {
144141
.views(projectionLayerViews);
145142

146143
layers.put(compositionLayerProjection);
144+
145+
layers.flip();
146+
147+
error = XR10.xrEndFrame(
148+
openxr.session,
149+
XrFrameEndInfo.calloc(stack)
150+
.type(XR10.XR_TYPE_FRAME_END_INFO)
151+
.displayTime(openxr.time)
152+
.environmentBlendMode(XR10.XR_ENVIRONMENT_BLEND_MODE_OPAQUE)
153+
.layers(layers));
154+
this.openxr.logAll(error, "xrEndFrame", "");
147155
}
148-
layers.flip();
149-
150-
error = XR10.xrEndFrame(
151-
openxr.session,
152-
XrFrameEndInfo.calloc(stack)
153-
.type(XR10.XR_TYPE_FRAME_END_INFO)
154-
.displayTime(openxr.time)
155-
.environmentBlendMode(XR10.XR_ENVIRONMENT_BLEND_MODE_OPAQUE)
156-
.layers(layers));
157-
this.openxr.logAll(error, "xrEndFrame", "");
158156

159157
projectionLayerViews.close();
160158
}

0 commit comments

Comments
 (0)