summaryrefslogtreecommitdiff
path: root/chromium/cc/surfaces/surface.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/cc/surfaces/surface.h')
-rw-r--r--chromium/cc/surfaces/surface.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/chromium/cc/surfaces/surface.h b/chromium/cc/surfaces/surface.h
index 7b3fbc125b2..8e6d7a46cbf 100644
--- a/chromium/cc/surfaces/surface.h
+++ b/chromium/cc/surfaces/surface.h
@@ -16,6 +16,7 @@
#include "cc/base/scoped_ptr_vector.h"
#include "cc/output/copy_output_request.h"
#include "cc/quads/render_pass_id.h"
+#include "cc/surfaces/surface_factory.h"
#include "cc/surfaces/surface_id.h"
#include "cc/surfaces/surface_sequence.h"
#include "cc/surfaces/surfaces_export.h"
@@ -34,14 +35,15 @@ class SurfaceResourceHolder;
class CC_SURFACES_EXPORT Surface {
public:
- Surface(SurfaceId id, const gfx::Size& size, SurfaceFactory* factory);
+ using DrawCallback = SurfaceFactory::DrawCallback;
+
+ Surface(SurfaceId id, SurfaceFactory* factory);
~Surface();
- const gfx::Size& size() const { return size_; }
SurfaceId surface_id() const { return surface_id_; }
void QueueFrame(scoped_ptr<CompositorFrame> frame,
- const base::Closure& draw_callback);
+ const DrawCallback& draw_callback);
void RequestCopyOfOutput(scoped_ptr<CopyOutputRequest> copy_request);
// Adds each CopyOutputRequest in the current frame to copy_requests. The
// caller takes ownership of them.
@@ -54,7 +56,7 @@ class CC_SURFACES_EXPORT Surface {
int frame_index() const { return frame_index_; }
void TakeLatencyInfo(std::vector<ui::LatencyInfo>* latency_info);
- void RunDrawCallbacks();
+ void RunDrawCallbacks(SurfaceDrawStatus drawn);
base::WeakPtr<SurfaceFactory> factory() { return factory_; }
@@ -74,14 +76,13 @@ class CC_SURFACES_EXPORT Surface {
void ClearCopyRequests();
SurfaceId surface_id_;
- gfx::Size size_;
base::WeakPtr<SurfaceFactory> factory_;
// TODO(jamesr): Support multiple frames in flight.
scoped_ptr<CompositorFrame> current_frame_;
int frame_index_;
std::vector<SurfaceSequence> destruction_dependencies_;
- base::Closure draw_callback_;
+ DrawCallback draw_callback_;
DISALLOW_COPY_AND_ASSIGN(Surface);
};