Index: cc/test/pixel_test.h |
diff --git a/cc/test/pixel_test.h b/cc/test/pixel_test.h |
index d65214b3b9bfe8893a178ee9ea8dce799562c0ef..c390c3b9396b4ff6827a8c180985fae6ad5c117e 100644 |
--- a/cc/test/pixel_test.h |
+++ b/cc/test/pixel_test.h |
@@ -12,7 +12,9 @@ |
#define CC_TEST_PIXEL_TEST_H_ |
namespace cc { |
+class DirectRenderer; |
class GLRenderer; |
+class SoftwareRenderer; |
class OutputSurface; |
class ResourceProvider; |
@@ -21,8 +23,6 @@ class PixelTest : public testing::Test { |
PixelTest(); |
virtual ~PixelTest(); |
- virtual void SetUp() OVERRIDE; |
- |
bool RunPixelTest(RenderPassList* pass_list, |
const base::FilePath& ref_file, |
const PixelComparator& comparator); |
@@ -32,9 +32,12 @@ class PixelTest : public testing::Test { |
scoped_ptr<ResourceProvider> resource_provider_; |
class PixelTestRendererClient; |
scoped_ptr<PixelTestRendererClient> fake_client_; |
- scoped_ptr<GLRenderer> renderer_; |
+ scoped_ptr<DirectRenderer> renderer_; |
scoped_ptr<SkBitmap> result_bitmap_; |
+ void SetUpGLRenderer(); |
+ void SetUpSoftwareRenderer(); |
+ |
private: |
void ReadbackResult(scoped_ptr<SkBitmap> bitmap); |
@@ -42,6 +45,30 @@ class PixelTest : public testing::Test { |
const PixelComparator& comparator); |
}; |
+template<typename RendererType> |
+class RendererPixelTest : public PixelTest { |
+ public: |
+ RendererType* renderer() { |
+ return static_cast<RendererType*>(renderer_.get()); |
+ } |
+ |
+ protected: |
+ virtual void SetUp() OVERRIDE; |
+}; |
+ |
+template<> |
+inline void RendererPixelTest<GLRenderer>::SetUp() { |
+ SetUpGLRenderer(); |
+} |
+ |
+template<> |
+inline void RendererPixelTest<SoftwareRenderer>::SetUp() { |
+ SetUpSoftwareRenderer(); |
+} |
+ |
+typedef RendererPixelTest<GLRenderer> GLRendererPixelTest; |
+typedef RendererPixelTest<SoftwareRenderer> SoftwareRendererPixelTest; |
+ |
} // namespace cc |
#endif // CC_TEST_PIXEL_TEST_H_ |