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

Unified Diff: cc/output/native_layer_renderer.h

Issue 1406643002: Stash: Alternate prototype for NativeLayer renderer with GL fallback Base URL: https://chromium.googlesource.com/chromium/src.git@solid
Patch Set: Created 5 years, 2 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
« no previous file with comments | « cc/cc.gyp ('k') | cc/output/native_layer_renderer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/native_layer_renderer.h
diff --git a/cc/output/native_layer_renderer.h b/cc/output/native_layer_renderer.h
new file mode 100644
index 0000000000000000000000000000000000000000..0198f873c32acba998194a16b50cfb730dbb073b
--- /dev/null
+++ b/cc/output/native_layer_renderer.h
@@ -0,0 +1,92 @@
+// Copyright 2015 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_NATIVE_LAYER_RENDERER_H_
+#define CC_OUTPUT_NATIVE_LAYER_RENDERER_H_
+
+#include "cc/output/direct_renderer.h"
+
+namespace cc {
+
+class GLRenderer;
+class SolidColorDrawQuad;
+class TextureMailboxDeleter;
+class TileDrawQuad;
+
+class CC_EXPORT NativeLayerRenderer : public DirectRenderer {
+ public:
+ static scoped_ptr<NativeLayerRenderer> Create(
+ RendererClient* client,
+ const RendererSettings* settings,
+ OutputSurface* output_surface,
+ ResourceProvider* resource_provider,
+ TextureMailboxDeleter* texture_mailbox_deleter,
+ int highp_threshold_min);
+
+ ~NativeLayerRenderer() override;
+
+ // Renderer overrides.
+ const RendererCapabilitiesImpl& Capabilities() const override;
+ void DecideRenderPassAllocationsForFrame(
+ const RenderPassList& render_passes) override;
+ void DrawFrame(RenderPassList* render_passes_,
+ float scale_factor,
+ const gfx::Rect& viewport_rect,
+ const gfx::Rect& clip_rect,
+ bool disable_picture_quad_image_filtering) override;
+ void SwapBuffers(const CompositorFrameMetadata& metadata) override;
+ void Finish() override;
+
+ protected:
+ NativeLayerRenderer(RendererClient* client,
+ const RendererSettings* settings,
+ OutputSurface* output_surface,
+ ResourceProvider* resource_provider,
+ TextureMailboxDeleter* texture_mailbox_deleter,
+ int highp_threshold_min);
+
+ // Renderer overrides.
+ void DidChangeVisibility() override;
+
+ // DirectRenderer overrides.
+ bool FlippedFramebuffer(const DrawingFrame* frame) const override;
+ bool BindFramebufferToTexture(DrawingFrame* frame,
+ const ScopedResource* resource,
+ const gfx::Rect& target_rect) override;
+ void BeginDrawingFrame(DrawingFrame* frame) override;
+ void DoDrawQuad(DrawingFrame* frame,
+ const class DrawQuad*,
+ const gfx::QuadF* draw_region) override;
+ void BindFramebufferToOutputSurface(DrawingFrame* frame) override {}
+ void SetScissorTestRect(const gfx::Rect& scissor_rect) override {}
+ void PrepareSurfaceForPass(DrawingFrame* frame,
+ SurfaceInitializationMode initialization_mode,
+ const gfx::Rect& render_pass_scissor) override {}
+ void FinishDrawingFrame(DrawingFrame* frame) override {}
+ void EnsureScissorTestEnabled() override {}
+ void EnsureScissorTestDisabled() override {}
+ void CopyCurrentRenderPassToBitmap(
+ DrawingFrame* frame,
+ scoped_ptr<CopyOutputRequest> request) override {}
+
+ private:
+ void DrawSolidColorQuad(const SolidColorDrawQuad* quad);
+ void DrawTileQuad(const TileDrawQuad* quad);
+
+ bool using_gl_;
+ scoped_ptr<GLRenderer> gl_renderer_;
+ gpu::ContextSupport* context_support_;
+
+ typedef ScopedPtrVector<ResourceProvider::ScopedReadLockGL>
+ OverlayResourceLockList;
+ OverlayResourceLockList pending_overlay_resources_;
+ OverlayResourceLockList in_use_overlay_resources_;
+ OverlayResourceLockList previous_swap_overlay_resources_;
+
+ DISALLOW_COPY_AND_ASSIGN(NativeLayerRenderer);
+};
+
+} // namespace cc
+
+#endif // CC_OUTPUT_NATIVE_LAYER_RENDERER_H_
« no previous file with comments | « cc/cc.gyp ('k') | cc/output/native_layer_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698