Index: cc/quads/largest_draw_quad.h |
diff --git a/cc/quads/largest_draw_quad.h b/cc/quads/largest_draw_quad.h |
index d14906afad80976b744777cbfa877d0754395720..b5ee8dd50393da8bcb41df524749d580c6276019 100644 |
--- a/cc/quads/largest_draw_quad.h |
+++ b/cc/quads/largest_draw_quad.h |
@@ -5,15 +5,27 @@ |
#ifndef CC_QUADS_LARGEST_DRAW_QUAD_H_ |
#define CC_QUADS_LARGEST_DRAW_QUAD_H_ |
+#include "cc/quads/render_pass_draw_quad.h" |
danakj
2014/11/03 18:14:21
including this includes GL headers which was break
weiliangc
2014/11/03 18:42:46
Have to include for sizeof(). I don't think it can
jbroman
2014/11/03 18:44:27
I'm curious how this broke the build before; do yo
danakj
2014/11/03 18:50:36
It was a matter of include files including include
danakj
2014/11/03 18:50:36
Ya, it would mean a function returning a size inst
|
+#include "cc/quads/stream_video_draw_quad.h" |
+ |
namespace cc { |
-class StreamVideoDrawQuad; |
-class RenderPassDrawQuad; |
-#if defined(ARCH_CPU_64_BITS) |
-typedef RenderPassDrawQuad kLargestDrawQuad; |
-#else |
-typedef StreamVideoDrawQuad kLargestDrawQuad; |
-#endif |
+// The largest quad is either a RenderPassDrawQuad or a StreamVideoDrawQuad |
+// depends on hardware structure, so use a template to determine which is |
+// larger. |
danakj
2014/11/03 18:14:21
TODO to use std::conditional when we can do that :
|
+template <bool RenderPassDrawQuadLarger> |
danakj
2014/11/03 18:14:21
render_pass_draw_quad_is_larger
|
+struct LargerQuadOfEitherRenderPassOrStreamVideo { |
+ typedef RenderPassDrawQuad Type; |
danakj
2014/11/03 18:14:21
using Type = RenderPassDrawQuad
jbroman
2014/11/03 18:28:25
If you don't mind drive-by...
Since you only ever
|
+}; |
+ |
+template <> |
+struct LargerQuadOfEitherRenderPassOrStreamVideo<false> { |
+ typedef StreamVideoDrawQuad Type; |
danakj
2014/11/03 18:14:21
using Type = StreamVideoDrawQuad
|
+}; |
+ |
+typedef LargerQuadOfEitherRenderPassOrStreamVideo<( |
danakj
2014/11/03 18:14:21
using kLargestDrawQuad = ...
|
+ sizeof(RenderPassDrawQuad) > sizeof(StreamVideoDrawQuad))>::Type |
+ kLargestDrawQuad; |
} // namespace cc |