Index: tests/FloatingPointTextureTest.cpp |
diff --git a/tests/FloatingPointTextureTest.cpp b/tests/FloatingPointTextureTest.cpp |
index c5103c813fba95a28a153a42fc06d341382c6abc..04f73c7cd9558cba7befb874600564acbc43d778 100644 |
--- a/tests/FloatingPointTextureTest.cpp |
+++ b/tests/FloatingPointTextureTest.cpp |
@@ -14,19 +14,17 @@ |
#include <float.h> |
#include "Test.h" |
+ |
#if SK_SUPPORT_GPU |
#include "GrContext.h" |
#include "GrTexture.h" |
-#include "GrContextFactory.h" |
- |
-#include "SkGpuDevice.h" |
#include "SkHalf.h" |
static const int DEV_W = 100, DEV_H = 100; |
static const SkIRect DEV_RECT = SkIRect::MakeWH(DEV_W, DEV_H); |
template <typename T> |
-void runFPTest(skiatest::Reporter* reporter, GrContextFactory* factory, |
+void runFPTest(skiatest::Reporter* reporter, GrContext* context, |
T min, T max, T epsilon, T maxInt, int arraySize, GrPixelConfig config) { |
SkTDArray<T> controlPixelData, readBuffer; |
controlPixelData.setCount(arraySize); |
@@ -40,43 +38,30 @@ void runFPTest(skiatest::Reporter* reporter, GrContextFactory* factory, |
} |
for (int origin = 0; origin < 2; ++origin) { |
- for (int glCtxType = 0; glCtxType < GrContextFactory::kGLContextTypeCnt; ++glCtxType) { |
- GrSurfaceDesc desc; |
- desc.fFlags = kRenderTarget_GrSurfaceFlag; |
- desc.fWidth = DEV_W; |
- desc.fHeight = DEV_H; |
- desc.fConfig = config; |
- desc.fOrigin = 0 == origin ? |
+ GrSurfaceDesc desc; |
+ desc.fFlags = kRenderTarget_GrSurfaceFlag; |
+ desc.fWidth = DEV_W; |
+ desc.fHeight = DEV_H; |
+ desc.fConfig = config; |
+ desc.fOrigin = 0 == origin ? |
kTopLeft_GrSurfaceOrigin : kBottomLeft_GrSurfaceOrigin; |
- |
- GrContextFactory::GLContextType type = |
- static_cast<GrContextFactory::GLContextType>(glCtxType); |
- if (!GrContextFactory::IsRenderingGLContext(type)) { |
- continue; |
- } |
- GrContext* context = factory->get(type); |
- if (nullptr == context) { |
- continue; |
- } |
- |
- SkAutoTUnref<GrTexture> fpTexture(context->textureProvider()->createTexture( |
- desc, false, controlPixelData.begin(), 0)); |
- // Floating point textures are NOT supported everywhere |
- if (nullptr == fpTexture) { |
- continue; |
- } |
- fpTexture->readPixels(0, 0, DEV_W, DEV_H, desc.fConfig, readBuffer.begin(), 0); |
- REPORTER_ASSERT(reporter, |
- 0 == memcmp(readBuffer.begin(), controlPixelData.begin(), readBuffer.bytes())); |
+ SkAutoTUnref<GrTexture> fpTexture(context->textureProvider()->createTexture( |
+ desc, false, controlPixelData.begin(), 0)); |
+ // Floating point textures are NOT supported everywhere |
+ if (nullptr == fpTexture) { |
+ continue; |
} |
+ fpTexture->readPixels(0, 0, DEV_W, DEV_H, desc.fConfig, readBuffer.begin(), 0); |
+ REPORTER_ASSERT(reporter, |
+ 0 == memcmp(readBuffer.begin(), controlPixelData.begin(), readBuffer.bytes())); |
} |
} |
static const int FP_CONTROL_ARRAY_SIZE = DEV_W * DEV_H * 4/*RGBA*/; |
static const float kMaxIntegerRepresentableInSPFloatingPoint = 16777216; // 2 ^ 24 |
-DEF_GPUTEST(FloatingPointTextureTest, reporter, factory) { |
- runFPTest<float>(reporter, factory, FLT_MIN, FLT_MAX, FLT_EPSILON, |
+DEF_GPUTEST_FOR_RENDERING_CONTEXTS(FloatingPointTextureTest, reporter, context) { |
+ runFPTest<float>(reporter, context, FLT_MIN, FLT_MAX, FLT_EPSILON, |
kMaxIntegerRepresentableInSPFloatingPoint, |
FP_CONTROL_ARRAY_SIZE, kRGBA_float_GrPixelConfig); |
} |
@@ -84,16 +69,16 @@ DEF_GPUTEST(FloatingPointTextureTest, reporter, factory) { |
static const int HALF_ALPHA_CONTROL_ARRAY_SIZE = DEV_W * DEV_H * 1 /*alpha-only*/; |
static const SkHalf kMaxIntegerRepresentableInHalfFloatingPoint = 0x6800; // 2 ^ 11 |
-DEF_GPUTEST(HalfFloatAlphaTextureTest, reporter, factory) { |
- runFPTest<SkHalf>(reporter, factory, SK_HalfMin, SK_HalfMax, SK_HalfEpsilon, |
+DEF_GPUTEST_FOR_RENDERING_CONTEXTS(HalfFloatAlphaTextureTest, reporter, context) { |
+ runFPTest<SkHalf>(reporter, context, SK_HalfMin, SK_HalfMax, SK_HalfEpsilon, |
kMaxIntegerRepresentableInHalfFloatingPoint, |
HALF_ALPHA_CONTROL_ARRAY_SIZE, kAlpha_half_GrPixelConfig); |
} |
static const int HALF_RGBA_CONTROL_ARRAY_SIZE = DEV_W * DEV_H * 4 /*RGBA*/; |
-DEF_GPUTEST(HalfFloatRGBATextureTest, reporter, factory) { |
- runFPTest<SkHalf>(reporter, factory, SK_HalfMin, SK_HalfMax, SK_HalfEpsilon, |
+DEF_GPUTEST_FOR_RENDERING_CONTEXTS(HalfFloatRGBATextureTest, reporter, context) { |
+ runFPTest<SkHalf>(reporter, context, SK_HalfMin, SK_HalfMax, SK_HalfEpsilon, |
kMaxIntegerRepresentableInHalfFloatingPoint, |
HALF_RGBA_CONTROL_ARRAY_SIZE, kRGBA_half_GrPixelConfig); |
} |