Index: ui/ozone/demo/surfaceless_gl_renderer.cc |
diff --git a/ui/ozone/demo/surfaceless_gl_renderer.cc b/ui/ozone/demo/surfaceless_gl_renderer.cc |
index ff50168b863d414f633905f354e21fa56556d75c..791615dcdbae8a7155999c3ad3f684d4d3699ac8 100644 |
--- a/ui/ozone/demo/surfaceless_gl_renderer.cc |
+++ b/ui/ozone/demo/surfaceless_gl_renderer.cc |
@@ -6,8 +6,10 @@ |
#include "base/bind.h" |
#include "ui/gl/gl_bindings.h" |
+#include "ui/gl/gl_context.h" |
#include "ui/gl/gl_image.h" |
#include "ui/gl/gl_surface.h" |
+#include "ui/ozone/gpu/gpu_memory_buffer_factory_ozone_native_buffer.h" |
namespace ui { |
@@ -77,15 +79,21 @@ void SurfacelessGlRenderer::BufferWrapper::SchedulePlane() { |
gfx::Rect(size_), gfx::RectF(0, 0, 1, 1)); |
} |
-SurfacelessGlRenderer::SurfacelessGlRenderer(gfx::AcceleratedWidget widget, |
- const gfx::Size& size) |
+SurfacelessGlRenderer::SurfacelessGlRenderer( |
+ gfx::AcceleratedWidget widget, |
+ const gfx::Size& size, |
+ GpuMemoryBufferFactoryOzoneNativeBuffer* buffer_factory) |
: GlRenderer(widget, size), |
+ buffer_factory_(buffer_factory), |
back_buffer_(0), |
is_swapping_buffers_(false), |
weak_ptr_factory_(this) { |
} |
SurfacelessGlRenderer::~SurfacelessGlRenderer() { |
+ // Need to make current when deleting the framebuffer resources allocated in |
+ // the buffers. |
+ context_->MakeCurrent(surface_.get()); |
} |
bool SurfacelessGlRenderer::Initialize() { |
@@ -93,7 +101,7 @@ bool SurfacelessGlRenderer::Initialize() { |
return false; |
for (size_t i = 0; i < arraysize(buffers_); ++i) |
- if (!buffers_[i].Initialize(&buffer_factory_, widget_, size_)) |
+ if (!buffers_[i].Initialize(buffer_factory_, widget_, size_)) |
return false; |
return true; |
@@ -105,6 +113,7 @@ void SurfacelessGlRenderer::RenderFrame() { |
float fraction = NextFraction(); |
+ context_->MakeCurrent(surface_.get()); |
buffers_[back_buffer_].BindFramebuffer(); |
glViewport(0, 0, size_.width(), size_.height()); |