Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1856)

Unified Diff: chrome/browser/android/vr_shell/vr_shell_gl.h

Issue 2739973002: Revert of WebVR compositor bypass via BrowserMain context + mailbox (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/vr_shell/vr_shell_gl.h
diff --git a/chrome/browser/android/vr_shell/vr_shell_gl.h b/chrome/browser/android/vr_shell/vr_shell_gl.h
index 54bc7d34ef802c1b9114c5d848eaf7222528b871..b04cb8a071418c2e3214013f536ec6c3467f5bdc 100644
--- a/chrome/browser/android/vr_shell/vr_shell_gl.h
+++ b/chrome/browser/android/vr_shell/vr_shell_gl.h
@@ -37,27 +37,14 @@
class SurfaceTexture;
}
-namespace gpu {
-struct MailboxHolder;
-}
-
namespace vr_shell {
-class MailboxToSurfaceBridge;
class UiScene;
class VrController;
class VrShell;
class VrShellDelegate;
class VrShellRenderer;
struct ContentRectangle;
-
-struct WebVrBounds {
- WebVrBounds(gvr::Rectf left, gvr::Rectf right, gvr::Sizei size)
- : left_bounds(left), right_bounds(right), source_size(size) {}
- gvr::Rectf left_bounds;
- gvr::Rectf right_bounds;
- gvr::Sizei source_size;
-};
// This class manages all GLThread owned objects and GL rendering for VrShell.
// It is not threadsafe and must only be used on the GL thread.
@@ -85,7 +72,6 @@
void OnResume();
void SetWebVrMode(bool enabled);
- void CreateOrResizeWebVRSurface(const gvr::Sizei& size);
void CreateContentSurface();
void ContentBoundsChanged(int width, int height);
void ContentPhysicalBoundsChanged(int width, int height);
@@ -95,8 +81,8 @@
void UpdateWebVRTextureBounds(int16_t frame_index,
const gvr::Rectf& left_bounds,
- const gvr::Rectf& right_bounds,
- const gvr::Sizei& source_size);
+ const gvr::Rectf& right_bounds);
+ gvr::Sizei GetWebVRCompositorSurfaceSize();
void UpdateScene(std::unique_ptr<base::ListValue> commands);
@@ -107,15 +93,12 @@
void CreateVRDisplayInfo(
const base::Callback<void(device::mojom::VRDisplayInfoPtr)>& callback,
uint32_t device_id);
- void SubmitWebVRFrame(int16_t frame_index, const gpu::MailboxHolder& mailbox);
- void SetSubmitClient(
- device::mojom::VRSubmitFrameClientPtrInfo submit_client_info);
private:
void GvrInit(gvr_context* gvr_api);
void InitializeRenderer();
- void DrawFrame(int16_t frame_index);
- void DrawVrShellAndUnbind(const gvr::Mat4f& head_pose, gvr::Frame& frame);
+ void DrawFrame();
+ void DrawVrShell(const gvr::Mat4f& head_pose, gvr::Frame& frame);
void DrawUiView(const gvr::Mat4f* head_pose,
const std::vector<const ContentRectangle*>& elements,
const gvr::Sizei& render_size,
@@ -137,7 +120,6 @@
void CreateUiSurface();
void OnUIFrameAvailable();
void OnContentFrameAvailable();
- void OnWebVRFrameAvailable();
bool GetPixelEncodedFrameIndex(uint16_t* frame_index);
void OnVSync();
@@ -153,8 +135,6 @@
int ui_texture_id_ = 0;
// samplerExternalOES texture data for main content image.
int content_texture_id_ = 0;
- // samplerExternalOES texture data for WebVR content image.
- int webvr_texture_id_ = 0;
std::unique_ptr<UiScene> scene_;
@@ -162,7 +142,6 @@
scoped_refptr<gl::GLContext> context_;
scoped_refptr<gl::SurfaceTexture> ui_surface_texture_;
scoped_refptr<gl::SurfaceTexture> content_surface_texture_;
- scoped_refptr<gl::SurfaceTexture> webvr_surface_texture_;
std::unique_ptr<gl::ScopedJavaSurface> ui_surface_;
std::unique_ptr<gl::ScopedJavaSurface> content_surface_;
@@ -175,18 +154,12 @@
std::unique_ptr<gvr::BufferViewport> webvr_left_viewport_;
std::unique_ptr<gvr::BufferViewport> webvr_right_viewport_;
std::unique_ptr<gvr::SwapChain> swap_chain_;
- std::queue<std::pair<uint8_t, WebVrBounds>> pending_bounds_;
- int premature_received_frames_ = 0;
- std::queue<uint16_t> pending_frames_;
- std::unique_ptr<MailboxToSurfaceBridge> mailbox_bridge_;
+ using BoundsPair = std::pair<gvr::Rectf, gvr::Rectf>;
+ std::queue<std::pair<uint8_t, BoundsPair>> pending_bounds_;
// Current sizes for the render buffers.
gvr::Sizei render_size_primary_;
gvr::Sizei render_size_headlocked_;
-
- // Intended render_size_primary_ for use by VrShell, so that it
- // can be restored after exiting WebVR mode.
- gvr::Sizei render_size_vrshell_;
std::unique_ptr<VrShellRenderer> vr_shell_renderer_;
@@ -202,10 +175,10 @@
int content_tex_css_width_ = 0;
int content_tex_css_height_ = 0;
gvr::Sizei content_tex_physical_size_ = {0, 0};
- gvr::Sizei webvr_surface_size_ = {0, 0};
gvr::Sizei ui_tex_physical_size_ = {0, 0};
std::vector<gvr::Mat4f> webvr_head_pose_;
+ int webvr_texture_id_ = 0;
bool web_vr_mode_;
bool ready_to_draw_ = false;
bool surfaceless_rendering_;
@@ -222,7 +195,6 @@
GetVSyncCallback callback_;
bool received_frame_ = false;
mojo::Binding<device::mojom::VRVSyncProvider> binding_;
- device::mojom::VRSubmitFrameClientPtr submit_client_;
base::WeakPtr<VrShell> weak_vr_shell_;
base::WeakPtr<VrShellDelegate> delegate_provider_;
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell_delegate.cc ('k') | chrome/browser/android/vr_shell/vr_shell_gl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698