Chromium Code Reviews| Index: ui/ozone/platform/dri/gbm_surface.cc |
| diff --git a/ui/ozone/platform/dri/gbm_surface.cc b/ui/ozone/platform/dri/gbm_surface.cc |
| index 99f0ae7016f9cafc6b49c4fc2605b804337dd009..aae27507953e39fcba8d0f309928fa6bfad27e9e 100644 |
| --- a/ui/ozone/platform/dri/gbm_surface.cc |
| +++ b/ui/ozone/platform/dri/gbm_surface.cc |
| @@ -81,20 +81,13 @@ gfx::Size GbmSurface::Size() const { |
| return size_; |
| } |
| -void GbmSurface::SwapBuffers() { |
| - // If there was a frontbuffer, is no longer active. Release it back to GBM. |
| - if (buffers_[front_buffer_]) |
| - gbm_surface_release_buffer(native_surface_, buffers_[front_buffer_]); |
| - |
| - // Update the index to the frontbuffer. |
| - front_buffer_ ^= 1; |
| - // We've just released it. Since GBM doesn't guarantee we'll get the same |
| - // buffer back, we set it to NULL so we don't keep track of objects that may |
| - // have been destroyed. |
| - buffers_[front_buffer_ ^ 1] = NULL; |
| -} |
| - |
| -void GbmSurface::LockCurrentDrawable() { |
| +// Before scheduling the backbuffer to be scanned out we need to "lock" it. |
| +// When we lock it, GBM will give a pointer to a buffer representing the |
| +// backbuffer. It will also update its information on which buffers can not be |
| +// used for drawing. The buffer will be released when the page flip event |
| +// occurs (see SwapBuffers). This is called from HardwareDisplayController |
| +// before scheduling a page flip. |
| +void GbmSurface::PreSwapBuffers() { |
| CHECK(native_surface_); |
| // Lock the buffer we want to display. |
| buffers_[front_buffer_ ^ 1] = gbm_surface_lock_front_buffer(native_surface_); |
| @@ -109,4 +102,17 @@ void GbmSurface::LockCurrentDrawable() { |
| } |
| } |
| +void GbmSurface::SwapBuffers() { |
| + // If there was a frontbuffer, is no longer active. Release it back to GBM. |
|
alexst (slow to review)
2014/07/08 17:22:32
it is no longer...
|
| + if (buffers_[front_buffer_]) |
| + gbm_surface_release_buffer(native_surface_, buffers_[front_buffer_]); |
| + |
| + // Update the index to the frontbuffer. |
| + front_buffer_ ^= 1; |
| + // We've just released it. Since GBM doesn't guarantee we'll get the same |
| + // buffer back, we set it to NULL so we don't keep track of objects that may |
| + // have been destroyed. |
| + buffers_[front_buffer_ ^ 1] = NULL; |
| +} |
| + |
| } // namespace ui |