Skip to content

Commit

Permalink
in progress
Browse files Browse the repository at this point in the history
  • Loading branch information
maunvz committed Dec 1, 2024
1 parent 8af27c4 commit a75c609
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 17 deletions.
4 changes: 2 additions & 2 deletions plugin/src/main/cpp/classes/android_surface_layer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,9 @@ void AndroidSurfaceLayer::set_size_2d_meters(float p_width_m, float p_height_m)
// Just set all of them
layer->layerMono.size.width = p_width_m;
layer->layerMono.size.height = p_height_m;
layer->layerStereoLeft.size.width = p_width_m;
layer->layerStereoLeft.size.width = p_width_m / 2;
layer->layerStereoLeft.size.height = p_height_m;
layer->layerStereoRight.size.width = p_width_m;
layer->layerStereoRight.size.width = p_width_m / 2;
layer->layerStereoRight.size.height = p_height_m;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,12 +192,14 @@ uint64_t OpenXRKhrAndroidSurfaceSwapchainExtensionWrapper::_get_composition_laye
if (layers[layerIndex]->sideBySide3D) {
p_index_countdown--;
}
if (p_index_countdown == 0) {
p_index_countdown = -1;
break;
}
p_index_countdown--;
}

// Then grab the layer and quadLayer to return
WARN_PRINT("OpenXR: Failed to get swapchain [" + get_openxr_api()->get_error_string(result) + "]");

auto layer = layers[layerIndex];
XrCompositionLayerQuad* quadLayer;
if (layer->sideBySide3D) {
Expand All @@ -219,8 +221,21 @@ uint64_t OpenXRKhrAndroidSurfaceSwapchainExtensionWrapper::_get_composition_laye
};

int OpenXRKhrAndroidSurfaceSwapchainExtensionWrapper::_get_composition_layer_order(int p_index) {
auto layer = layers[p_index];
return layer->order;
// First, calculate the layerIndex and which eye
int layerIndex = 0;
int p_index_countdown = p_index;
for (; layerIndex < layers.size() && p_index_countdown > 0; layerIndex++) {
if (layers[layerIndex]->sideBySide3D) {
p_index_countdown--;
}
if (p_index_countdown == 0) {
p_index_countdown = -1;
break;
}
p_index_countdown--;
}

return layers[layerIndex]->order;
};

bool OpenXRKhrAndroidSurfaceSwapchainExtensionWrapper::initialize_khr_android_surface_swapchain_extension(const XrInstance &p_instance) {
Expand Down
29 changes: 18 additions & 11 deletions tests/hello_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -29,26 +29,30 @@ int _get_composition_layer(int p_index, std::vector<QuadSurfaceLayer> layers) {
if (layers[layerIndex].sideBySide3D) {
p_index_countdown--;
}
if (p_index_countdown == 0) {
p_index_countdown = -1;
break;
}
p_index_countdown--;
}

// Then grab the layer and quadLayer to return
auto layer = layers[layerIndex];
int quadLayer;
if (layer.sideBySide3D) {
quadLayer = p_index_countdown == -1 ? LEFT : RIGHT;
} else {
quadLayer = MONO;
}
// auto layer = layers[layerIndex];
// int quadLayer;
// if (layer.sideBySide3D) {
// quadLayer = p_index_countdown == -1 ? LEFT : RIGHT;
// } else {
// quadLayer = MONO;
// }

return quadLayer;
return layerIndex;
};

// Demonstrate some basic assertions.
TEST(HelloTest, BasicAssertions) {
std::vector<QuadSurfaceLayer> layers = {
{false},
{false},
{true},
{false},
{false},
};
Expand All @@ -58,6 +62,9 @@ TEST(HelloTest, BasicAssertions) {
// Expect equality.
EXPECT_EQ(7 * 6, 42);

EXPECT_EQ(_get_composition_layer_count(layers), 4);
EXPECT_EQ(_get_composition_layer(0, layers), MONO);
EXPECT_EQ(_get_composition_layer_count(layers), 5);
EXPECT_EQ(_get_composition_layer(0, layers), 0);
EXPECT_EQ(_get_composition_layer(1, layers), 1);
EXPECT_EQ(_get_composition_layer(2, layers), 1);
EXPECT_EQ(_get_composition_layer(3, layers), 2);
}

0 comments on commit a75c609

Please sign in to comment.