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

Unified Diff: cc/output/renderer.h

Issue 1531403002: Revert "Delete CC." (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years 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 | « cc/output/render_surface_filters.cc ('k') | cc/output/renderer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/renderer.h
diff --git a/cc/output/renderer.h b/cc/output/renderer.h
new file mode 100644
index 0000000000000000000000000000000000000000..7d1097caaad4c47fb322605c35adbce4dc0d57a4
--- /dev/null
+++ b/cc/output/renderer.h
@@ -0,0 +1,99 @@
+// Copyright 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CC_OUTPUT_RENDERER_H_
+#define CC_OUTPUT_RENDERER_H_
+
+#include "base/basictypes.h"
+#include "cc/base/scoped_ptr_vector.h"
+#include "cc/output/renderer_capabilities.h"
+#include "cc/output/renderer_settings.h"
+#include "ui/gfx/geometry/rect.h"
+
+namespace cc {
+
+class CompositorFrameAck;
+class CompositorFrameMetadata;
+class RenderPass;
+class RenderPassId;
+class ScopedResource;
+class Task;
+
+typedef ScopedPtrVector<RenderPass> RenderPassList;
+
+struct RendererCapabilitiesImpl {
+ RendererCapabilitiesImpl();
+ ~RendererCapabilitiesImpl();
+
+ // Capabilities copied to main thread.
+ ResourceFormat best_texture_format;
+ bool allow_partial_texture_updates;
+ int max_texture_size;
+ bool using_shared_memory_resources;
+
+ // Capabilities used on compositor thread only.
+ bool using_partial_swap;
+ bool using_egl_image;
+ bool using_image;
+ bool using_discard_framebuffer;
+ bool allow_rasterize_on_demand;
+
+ RendererCapabilities MainThreadCapabilities() const;
+};
+
+class RendererClient {
+ public:
+ virtual void SetFullRootLayerDamage() = 0;
+};
+
+class Renderer {
+ public:
+ virtual ~Renderer() {}
+
+ virtual const RendererCapabilitiesImpl& Capabilities() const = 0;
+
+ virtual void DecideRenderPassAllocationsForFrame(
+ const RenderPassList& render_passes_in_draw_order) {}
+ virtual bool HasAllocatedResourcesForTesting(RenderPassId id) const;
+
+ // This passes ownership of the render passes to the renderer. It should
+ // consume them, and empty the list. The parameters here may change from frame
+ // to frame and should not be cached.
+ // The |device_viewport_rect| and |device_clip_rect| are in non-y-flipped
+ // window space.
+ virtual void DrawFrame(RenderPassList* render_passes_in_draw_order,
+ float device_scale_factor,
+ const gfx::Rect& device_viewport_rect,
+ const gfx::Rect& device_clip_rect,
+ bool disable_picture_quad_image_filtering) = 0;
+
+ // Waits for rendering to finish.
+ virtual void Finish() = 0;
+
+ virtual void DoNoOp() {}
+
+ // Puts backbuffer onscreen.
+ virtual void SwapBuffers(const CompositorFrameMetadata& metadata) = 0;
+ virtual void ReceiveSwapBuffersAck(const CompositorFrameAck& ack) {}
+
+ bool visible() const { return visible_; }
+ void SetVisible(bool visible);
+
+ protected:
+ Renderer(RendererClient* client, const RendererSettings* settings)
+ : client_(client), settings_(settings), visible_(true) {}
+
+ virtual void DidChangeVisibility() = 0;
+
+ RendererClient* client_;
+ const RendererSettings* settings_;
+ bool visible_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(Renderer);
+};
+
+} // namespace cc
+
+#endif // CC_OUTPUT_RENDERER_H_
« no previous file with comments | « cc/output/render_surface_filters.cc ('k') | cc/output/renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698