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

Unified Diff: components/view_manager/surfaces/surfaces_context_provider.h

Issue 1245683004: Mandoline: Merge Surfaces and Views apps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed bot issues (I hope) Created 5 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
Index: components/view_manager/surfaces/surfaces_context_provider.h
diff --git a/components/view_manager/surfaces/surfaces_context_provider.h b/components/view_manager/surfaces/surfaces_context_provider.h
index b891c7b8b0785153403c56ffbb2b9a8e71006482..95b739f954c986b5f44453fa45b471bdfbfa110a 100644
--- a/components/view_manager/surfaces/surfaces_context_provider.h
+++ b/components/view_manager/surfaces/surfaces_context_provider.h
@@ -7,16 +7,34 @@
#include "base/macros.h"
#include "base/synchronization/lock.h"
+#include "base/threading/non_thread_safe.h"
#include "cc/output/context_provider.h"
+#include "components/view_manager/gles2/command_buffer_local.h"
+#include "components/view_manager/gles2/command_buffer_local_client.h"
+#include "components/view_manager/gles2/gpu_state.h"
+#include "gpu/command_buffer/client/gles2_cmd_helper.h"
+#include "gpu/command_buffer/client/gles2_implementation.h"
+#include "gpu/command_buffer/client/transfer_buffer.h"
#include "third_party/mojo/src/mojo/public/c/gles2/gles2.h"
#include "third_party/mojo/src/mojo/public/cpp/system/core.h"
+#include "ui/gfx/native_widget_types.h"
+
+namespace gles2 {
+class CommandBufferDriver;
+class CommandBufferImpl;
+}
namespace surfaces {
-class SurfacesContextProvider : public cc::ContextProvider {
+class SurfacesContextProviderDelegate;
+
+class SurfacesContextProvider : public cc::ContextProvider,
+ public gles2::CommandBufferLocalClient,
+ public base::NonThreadSafe {
public:
- explicit SurfacesContextProvider(
- mojo::ScopedMessagePipeHandle command_buffer_handle);
+ SurfacesContextProvider(SurfacesContextProviderDelegate* delegate,
+ gfx::AcceleratedWidget widget,
+ const scoped_refptr<gles2::GpuState>& state);
// cc::ContextProvider implementation.
bool BindToCurrentThread() override;
@@ -41,16 +59,24 @@ class SurfacesContextProvider : public cc::ContextProvider {
~SurfacesContextProvider() override;
private:
- static void ContextLostThunk(void* closure) {
- static_cast<SurfacesContextProvider*>(closure)->ContextLost();
- }
- void ContextLost();
+ // CommandBufferLocalClient:
+ void UpdateVSyncParameters(int64_t timebase, int64_t interval) override;
+ void DidLoseContext() override;
+
+ // From GLES2Context:
+ // Initialized in BindToCurrentThread.
+ scoped_ptr<gpu::gles2::GLES2CmdHelper> gles2_helper_;
+ scoped_ptr<gpu::TransferBuffer> transfer_buffer_;
+ scoped_ptr<gpu::gles2::GLES2Implementation> implementation_;
cc::ContextProvider::Capabilities capabilities_;
- mojo::ScopedMessagePipeHandle command_buffer_handle_;
- MojoGLES2Context context_;
LostContextCallback lost_context_callback_;
+ SurfacesContextProviderDelegate* delegate_;
+ scoped_refptr<gles2::GpuState> state_;
+ gfx::AcceleratedWidget widget_;
+ scoped_ptr<gles2::CommandBufferLocal> command_buffer_local_;
+
base::Lock context_lock_;
DISALLOW_COPY_AND_ASSIGN(SurfacesContextProvider);

Powered by Google App Engine
This is Rietveld 408576698