Index: cc/resources/texture_compressor.cc |
diff --git a/cc/resources/texture_compressor.cc b/cc/resources/texture_compressor.cc |
index 186a47d04b65a7d9539b033a61b5c8d35c1d01f9..a32615cb7a5b1930b43d8b3c8ae046a39c88b929 100644 |
--- a/cc/resources/texture_compressor.cc |
+++ b/cc/resources/texture_compressor.cc |
@@ -7,12 +7,24 @@ |
#include "base/logging.h" |
#include "cc/resources/texture_compressor_etc1.h" |
+#if defined(ARCH_CPU_X86_FAMILY) |
+#include "base/cpu.h" |
+#include "cc/resources/texture_compressor_etc1_sse.h" |
+#endif |
+ |
namespace cc { |
scoped_ptr<TextureCompressor> TextureCompressor::Create(Format format) { |
switch (format) { |
- case kFormatETC1: |
+ case kFormatETC1: { |
+#if defined(ARCH_CPU_X86_FAMILY) |
+ base::CPU cpu; |
+ if (cpu.has_sse2()) { |
+ return make_scoped_ptr(new TextureCompressorETC1SSE()); |
+ } |
+#endif |
return make_scoped_ptr(new TextureCompressorETC1()); |
+ } |
} |
NOTREACHED(); |