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

Unified Diff: cc/quads/largest_draw_quad.cc

Issue 761903003: Update from https://crrev.com/306655 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 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/renderer_settings.cc ('k') | cc/resources/clip_display_item.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/quads/largest_draw_quad.cc
diff --git a/cc/quads/largest_draw_quad.cc b/cc/quads/largest_draw_quad.cc
index 55fcb22f43d50e619826c474d175f6c7e4c7453a..6445204bd192d6796f26d4eb6268fd8312892745 100644
--- a/cc/quads/largest_draw_quad.cc
+++ b/cc/quads/largest_draw_quad.cc
@@ -6,15 +6,62 @@
#include <algorithm>
+#include "cc/quads/checkerboard_draw_quad.h"
+#include "cc/quads/debug_border_draw_quad.h"
+#include "cc/quads/io_surface_draw_quad.h"
+#include "cc/quads/picture_draw_quad.h"
#include "cc/quads/render_pass_draw_quad.h"
+#include "cc/quads/solid_color_draw_quad.h"
#include "cc/quads/stream_video_draw_quad.h"
+#include "cc/quads/surface_draw_quad.h"
+#include "cc/quads/texture_draw_quad.h"
+#include "cc/quads/tile_draw_quad.h"
+#include "cc/quads/yuv_video_draw_quad.h"
+
+namespace {
+const size_t kLargestDrawQuadSize =
+ sizeof(cc::RenderPassDrawQuad) > sizeof(cc::StreamVideoDrawQuad)
+ ? sizeof(cc::RenderPassDrawQuad)
+ : sizeof(cc::StreamVideoDrawQuad);
+} // namespace
namespace cc {
size_t LargestDrawQuadSize() {
- // The largest quad is either a RenderPassDrawQuad or a StreamVideoDrawQuad
- // depends on hardware structure.
- return std::max(sizeof(RenderPassDrawQuad), sizeof(StreamVideoDrawQuad));
+ // Currently the largest quad is either a RenderPassDrawQuad or a
+ // StreamVideoDrawQuad depends on hardware structure.
+
+ // Use compile assert to make sure largest is actually larger than all other
+ // type of draw quads.
+ COMPILE_ASSERT(sizeof(CheckerboardDrawQuad) <= kLargestDrawQuadSize,
+ "Largest Draw Quad size needs update. CheckerboardDrawQuad is "
+ "currently largest.");
+ COMPILE_ASSERT(sizeof(DebugBorderDrawQuad) <= kLargestDrawQuadSize,
+ "Largest Draw Quad size needs update. DebugBorderDrawQuad is "
+ "currently largest.");
+ COMPILE_ASSERT(sizeof(IOSurfaceDrawQuad) <= kLargestDrawQuadSize,
+ "Largest Draw Quad size needs update. IOSurfaceDrawQuad is "
+ "currently largest.");
+ COMPILE_ASSERT(sizeof(PictureDrawQuad) <= kLargestDrawQuadSize,
+ "Largest Draw Quad size needs update. PictureDrawQuad is "
+ "currently largest.");
+ COMPILE_ASSERT(sizeof(TextureDrawQuad) <= kLargestDrawQuadSize,
+ "Largest Draw Quad size needs update. TextureDrawQuad is "
+ "currently largest.");
+ COMPILE_ASSERT(sizeof(SolidColorDrawQuad) <= kLargestDrawQuadSize,
+ "Largest Draw Quad size needs update. SolidColorDrawQuad is "
+ "currently largest.");
+ COMPILE_ASSERT(sizeof(SurfaceDrawQuad) <= kLargestDrawQuadSize,
+ "Largest Draw Quad size needs update. SurfaceDrawQuad is "
+ "currently largest.");
+ COMPILE_ASSERT(sizeof(TileDrawQuad) <= kLargestDrawQuadSize,
+ "Largest Draw Quad size needs update. TileDrawQuad is "
+ "currently largest.");
+ COMPILE_ASSERT(sizeof(YUVVideoDrawQuad) <= kLargestDrawQuadSize,
+ "Largest Draw Quad size needs update. YUVVideoDrawQuad is "
+ "currently largest.");
+
+ return kLargestDrawQuadSize;
}
} // namespace cc
« no previous file with comments | « cc/output/renderer_settings.cc ('k') | cc/resources/clip_display_item.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698