Skip to content

Commit

Permalink
PicoVR Support. (#2696)
Browse files Browse the repository at this point in the history
* Implement rendering and device delegate

* Implement controller

* Fix missing WebVR calls

* Prevent crash on start up

* Support controller buttons

* Add taskcluster support for PicoVR

* Add PicoVR r8 rules.

* Keep head in correct location.

* Added support for G2 and pulling models from private repo

* G2 touchpad support

* Add support for G2 handedness

* Temp Neo 2 scrolling solution.

* Disable immersive axes for now

* Fix Oreo lists flicker

* Update to support PicoVR NDK 1.3.3

* Revert 1.3.3 changes

* Prevent back button from quitting application

* Add missing device flags

* Prevent recenter on Neo 2

* Dissable DeviceDelegatePicoVR::SetReorientTransform for demo

* Add PicoVR models

* Add BrowserWorld::Draw() to support non Pico platforms

* Awesome bar fixes

* Update Pico controller strings

Co-authored-by: Imanol Fernandez <mortimergoro@gmail.com>
Co-authored-by: Manuel Martin <imanol.martin@gmail.com>
  • Loading branch information
3 people committed Jan 22, 2020
1 parent 9f14997 commit 2db96c1
Show file tree
Hide file tree
Showing 39 changed files with 80,213 additions and 160 deletions.
11 changes: 11 additions & 0 deletions app/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,13 @@ target_sources(
src/googlevr/cpp/native-lib.cpp
src/googlevr/cpp/DeviceDelegateGoogleVR.cpp
)
elseif(PICOVR)
target_sources(
native-lib
PUBLIC
src/picovr/cpp/native-lib.cpp
src/picovr/cpp/DeviceDelegatePicoVR.cpp
)
elseif(NOAPI)
target_sources(
native-lib
Expand Down Expand Up @@ -142,6 +149,10 @@ add_library(wavevr-lib SHARED IMPORTED)
set_target_properties(wavevr-lib PROPERTIES IMPORTED_LOCATION
${CMAKE_SOURCE_DIR}/../third_party/wavesdk/build/wvr_client/jni/${ANDROID_ABI}/libwvr_api.so )

add_library(picovr-lib SHARED IMPORTED)
set_target_properties(picovr-lib PROPERTIES IMPORTED_LOCATION
${CMAKE_SOURCE_DIR}/../third_party/picovr/${ANDROID_ABI}/libPvr_NativeSDK.so )


# Specifies libraries CMake should link to your target library. You
# can link multiple libraries, such as libraries you define in this
Expand Down
22 changes: 22 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,16 @@ android {
}
}

picovr {
dimension "platform"
externalNativeBuild {
cmake {
cppFlags " -DPICOVR"
arguments "-DVR_SDK_LIB=picovr-lib", "-DPICOVR=ON"
}
}
}

noapi {
dimension "platform"
externalNativeBuild {
Expand Down Expand Up @@ -263,6 +273,8 @@ android {
'svrArmRelease',
'svrArm64Debug',
'svrArm64Release',
'picovrArm64Debug',
'picovrArm64Release',
'wavevrArmDebug',
'wavevrArmRelease',
'wavevrArm64Debug',
Expand Down Expand Up @@ -408,6 +420,13 @@ android {
manifest.srcFile "src/wavevr/AndroidManifest.xml"
}

picovr {
java.srcDirs = [
'src/picovr/java'
]
jniLibs.srcDirs = ["${project.rootDir}/third_party/picovr"]
}

noapi {
java.srcDirs = [
'src/noapi/java'
Expand Down Expand Up @@ -512,6 +531,9 @@ dependencies {

// ODG
svrImplementation fileTree(dir: "${project.rootDir}/third_party/svr/", include: ['*.jar'])

// Pico
picovrImplementation fileTree(dir: "${project.rootDir}/third_party/picovr/", include: ['*.jar'])
}

if (findProject(':servo')) {
Expand Down
6 changes: 6 additions & 0 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,12 @@
-keep class com.htc.** {*;}
-keep class com.qualcomm.** {*;}

# --------------------------------------------------------------------
# Keep classes from PicoVR SDK
# --------------------------------------------------------------------
-keep class com.psmart.vrlib.** {*;}
-keep class com.picovr.** {*;}

-dontwarn **
-target 1.7
-dontusemixedcaseclassnames
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ public void setSelecting(boolean aSelecting) {
}
if (mShowAddTab) {
setOnClickListener(mSelecting ? null : mCardClickListener);
mTabAddView.setDuplicateParentStateEnabled(!mSelecting);
}
}

Expand Down Expand Up @@ -251,7 +252,6 @@ private void updateState() {
mCloseButton.setVisibility(interacted && !selected && !mSelecting ? View.VISIBLE : View.GONE);
mSendTabButton.setVisibility(interacted && !selected && !mSelecting ? View.VISIBLE : View.GONE);
mTitle.setVisibility(interacted && !selected ? View.VISIBLE : View.GONE);
mTabOverlay.setHovered(hovered || selected);
mTabOverlay.setPressed(mPressed);
if (mSelecting) {
mTabOverlay.setBackgroundResource(selected ? R.drawable.tab_overlay_checked : R.drawable.tab_overlay_unchecked);
Expand All @@ -265,9 +265,7 @@ private void updateState() {
mSelectionImage.setVisibility(selected && !interacted ? View.VISIBLE : View.GONE);
mUnselectImage.setVisibility(selected && interacted ? View.VISIBLE : View.GONE);
if (mShowAddTab) {
mTabAddView.setHovered(hovered && !mSelecting);
mTabAddView.setPressed(mPressed && !mSelecting);
mTabAddIcon.setHovered(mTabAddView.isHovered());
mTabAddIcon.setPressed(mTabAddView.isPressed());
if (mTabAddIcon.isHovered() && mTabAddIcon.getPaddingLeft() != mMinIconPadding) {
AnimationHelper.animateViewPadding(mTabAddIcon, mTabAddIcon.getPaddingLeft(), mMinIconPadding, ICON_ANIMATION_DURATION);
Expand Down Expand Up @@ -308,6 +306,7 @@ public void onBitmapChanged(Session aSession, Bitmap aBitmap) {
mMaxIconPadding,
mMinIconPadding,
ICON_ANIMATION_DURATION);
post(() -> setHovered(true));
return false;

case MotionEvent.ACTION_HOVER_EXIT:
Expand All @@ -316,6 +315,7 @@ public void onBitmapChanged(Session aSession, Bitmap aBitmap) {
mMaxIconPadding,
ICON_ANIMATION_DURATION,
null);
setHovered(false);
return false;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ public class SuggestionsWidget extends UIWidget implements WidgetManagerDelegate

public interface URLBarPopupDelegate {
default void OnItemClicked(SuggestionItem item) {}
default void OnItemLongClicked(SuggestionItem item) {}
}

public SuggestionsWidget(Context aContext) {
Expand Down Expand Up @@ -297,25 +296,17 @@ public View getView(int position, View convertView, ViewGroup parent) {
return false;
}

View favicon = view.findViewById(R.id.favicon);
TextView title = view.findViewById(R.id.title);
View url = view.findViewById(R.id.url);
int ev = motionEvent.getActionMasked();
switch (ev) {
case MotionEvent.ACTION_HOVER_ENTER:
view.setHovered(true);
favicon.setHovered(true);
title.setHovered(true);
title.setShadowLayer(title.getShadowRadius(), title.getShadowDx(), title.getShadowDy(), getContext().getColor(R.color.text_shadow_light));
url.setHovered(true);
return true;

case MotionEvent.ACTION_HOVER_EXIT:
view.setHovered(false);
favicon.setHovered(false);
title.setHovered(false);
title.setShadowLayer(title.getShadowRadius(), title.getShadowDx(), title.getShadowDy(), getContext().getColor(R.color.text_shadow));
url.setHovered(false);
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
package org.mozilla.vrbrowser.ui.widgets.menus;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
Expand Down Expand Up @@ -190,25 +189,14 @@ public boolean onHover(View view, MotionEvent event) {
}

TextView label = view.findViewById(R.id.listItemText);
ImageView image = view.findViewById(R.id.listItemImage);
switch (event.getActionMasked()) {
case MotionEvent.ACTION_HOVER_ENTER:
view.setHovered(true);
label.setHovered(true);
label.setShadowLayer(label.getShadowRadius(), label.getShadowDx(), label.getShadowDy(), mContext.getColor(R.color.text_shadow_light));
if (image != null) {
image.setHovered(true);
}
return true;
return false;

case MotionEvent.ACTION_HOVER_EXIT:
view.setHovered(false);
label.setShadowLayer(label.getShadowRadius(), label.getShadowDx(), label.getShadowDy(), mContext.getColor(R.color.text_shadow));
label.setHovered(false);
if (image != null) {
image.setHovered(false);
}
return true;
return false;
}

return false;
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/assets/userAgentOverride.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
"ae0755740e4354ac67025056e775ad06d8a529ae4f37244fbb02d72199e2c780311e47aa9895079b980ec4bfa676f1f39c4ab41ea995c524e52bde9a73623da2": "Mozilla/5.0 (Linux; Android 7.1.1; Quest) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/7.0.13.186866463 SamsungBrowser/4.0 Chrome/77.0.3865.126 Mobile VR Safari/537.36",
"e6137b4c2f49a3917c2c90a50fb270a5eebb962f2c72344ae2e29e321bb21891e5ca4fec06cae78e14f4a8510473e934234e9ec3f60e8415f5f6da754c55b9b1": "Mozilla/5.0 (Linux; Android 7.1.1; Quest) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/7.0.13.186866463 SamsungBrowser/4.0 Chrome/77.0.3865.126 Mobile VR Safari/537.36"
}


0 comments on commit 2db96c1

Please sign in to comment.