| 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());
|
| +#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
|
|
|