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

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

Issue 2299613003: New Compositor and tab content
Patch Set: more clean up Created 4 years, 4 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
« no previous file with comments | « chrome/android/java_sources.gni ('k') | chrome/browser/android/vr_shell/vr_shell.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/android/vr_shell/vr_shell.h
diff --git a/chrome/browser/android/vr_shell/vr_shell.h b/chrome/browser/android/vr_shell/vr_shell.h
index 4fcff02aca8e683e1b218bd9d2cd14a4118cbffa..5eadd56c9459287b34c4aec2fa6cc91e5889f850 100644
--- a/chrome/browser/android/vr_shell/vr_shell.h
+++ b/chrome/browser/android/vr_shell/vr_shell.h
@@ -12,6 +12,45 @@
#include "base/macros.h"
#include "third_party/gvr-android-sdk/src/ndk-beta/include/vr/gvr/capi/include/gvr.h"
#include "third_party/gvr-android-sdk/src/ndk-beta/include/vr/gvr/capi/include/gvr_types.h"
+#include "base/memory/weak_ptr.h"
+#include "cc/layers/layer_collections.h"
+#include "cc/resources/ui_resource_client.h"
+#include "content/public/browser/android/compositor_client.h"
+#include "content/public/browser/browser_child_process_observer.h"
+#include "third_party/skia/include/core/SkColor.h"
+
+class DecorationBackground;
+class DecorationCounter;
+class SkBitmap;
+class TabLayerContainer;
+
+namespace cc {
+class Layer;
+class SolidColorLayer;
+class TextureLayer;
+class UIResourceBitmap;
+}
+
+namespace content {
+class Compositor;
+class RenderWidgetHostViewAndroid;
+}
+
+namespace ui {
+class WindowAndroid;
+class ResourceManager;
+class UIResourceProvider;
+class ViewAndroid;
+}
+namespace chrome {
+namespace android {
+
+class LayerTitleCache;
+class SceneLayer;
+class TabContentManager;
+class ToolbarLayer;
+}
+}
namespace vr_shell {
@@ -27,9 +66,13 @@ class ContentRect {
int content_texture_handle;
};
-class VrShell {
+class VrShell : public content::CompositorClient,
+ public content::BrowserChildProcessObserver {
public:
- VrShell(JNIEnv* env, jobject obj);
+ VrShell(JNIEnv* env,
+ jobject obj,
+ jboolean low_mem_device,
+ ui::WindowAndroid* window_android);
void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
@@ -43,13 +86,44 @@ class VrShell {
void OnPause(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
void OnResume(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
+ // CompositorClient implementation:
+ void UpdateLayerTreeHost() override;
+ void OnSwapBuffersCompleted(int pending_swap_buffers) override;
+ ui::UIResourceProvider* GetUIResourceProvider();
+
+ void OnWebContentsReady(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& object,
+ const base::android::JavaParamRef<jobject>& jweb_contents);
+
+ void SurfaceCreated(JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& object);
+ void SurfaceDestroyed(JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& object);
+ void SurfaceChanged(JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& object,
+ jint format,
+ jint width,
+ jint height,
+ const base::android::JavaParamRef<jobject>& surface);
+ void SetNeedsComposite(JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& object);
+
private:
- ~VrShell();
+ ~VrShell() override;
void DrawEye(const gvr::Mat4f& view_matrix,
const gvr::BufferViewport& params);
void DrawContentRect();
+ void AddContentLayer();
+
+ // content::BrowserChildProcessObserver implementation:
+ void BrowserChildProcessHostDisconnected(
+ const content::ChildProcessData& data) override;
+ void BrowserChildProcessCrashed(const content::ChildProcessData& data,
+ int exit_code) override;
+
std::unique_ptr<ContentRect> content_rect_;
std::unique_ptr<gvr::GvrApi> gvr_api_;
std::unique_ptr<gvr::BufferViewportList> buffer_viewport_list_;
@@ -66,6 +140,15 @@ class VrShell {
std::unique_ptr<VrShellRenderer> vr_shell_renderer_;
base::android::ScopedJavaGlobalRef<jobject> j_vr_shell_;
+ std::unique_ptr<content::Compositor> compositor_;
+
+ scoped_refptr<cc::SolidColorLayer> root_layer_;
+
+ int current_surface_format_;
+ int content_width_;
+ int content_height_;
+
+ base::WeakPtrFactory<VrShell> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(VrShell);
};
« no previous file with comments | « chrome/android/java_sources.gni ('k') | chrome/browser/android/vr_shell/vr_shell.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698