Index: cc/resources/texture_compressor.cc |
diff --git a/cc/resources/texture_compressor.cc b/cc/resources/texture_compressor.cc |
index 186a47d04b65a7d9539b033a61b5c8d35c1d01f9..bd84ac6b5cbe83823d2ad570f6a6979c7128de17 100644 |
--- a/cc/resources/texture_compressor.cc |
+++ b/cc/resources/texture_compressor.cc |
@@ -4,19 +4,31 @@ |
#include "cc/resources/texture_compressor.h" |
+#include <stdio.h> |
+ |
+#include "base/cpu.h" |
#include "base/logging.h" |
#include "cc/resources/texture_compressor_etc1.h" |
+#include "cc/resources/texture_compressor_etc1_sse.h" |
namespace cc { |
scoped_ptr<TextureCompressor> TextureCompressor::Create(Format format) { |
switch (format) { |
- case kFormatETC1: |
- return make_scoped_ptr(new TextureCompressorETC1()); |
+ case kFormatETC1: { |
+ scoped_ptr<TextureCompressor> compressor(new TextureCompressorETC1()); |
christiank
2015/04/29 12:25:45
Nit-pick, but we could avoid unnecessary allocatio
|
+#if defined(__i386__) || defined(__x86_x64__) |
+ base::CPU cpu; |
+ if (cpu.has_sse2()) { |
+ compressor.reset(new TextureCompressorETC1SSE()); |
+ } |
+#endif |
+ return compressor; |
+ } |
+ default: |
+ NOTREACHED(); |
+ return nullptr; |
} |
- |
- NOTREACHED(); |
- return nullptr; |
} |
} // namespace cc |