WS: remove trailing WS.
TBR=stani@google.com Change-Id: I8d2b86697797977ed153cc65e2ca63941677c010 Reviewed-on: https://skia-review.googlesource.com/7826 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
This commit is contained in:
parent
987360687a
commit
99d4721171
@ -31,34 +31,34 @@ static const int kBlockMask = kBlockSize - 1;
|
||||
static const int kPerlinNoise = 4096;
|
||||
static const int kRandMaximum = SK_MaxS32; // 2**31 - 1
|
||||
|
||||
static uint8_t improved_noise_permutations[] = {
|
||||
151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103,
|
||||
30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26,
|
||||
197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174,
|
||||
20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231,
|
||||
83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143,
|
||||
54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196,
|
||||
135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124,
|
||||
123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17,
|
||||
182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101,
|
||||
155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185,
|
||||
112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81,
|
||||
51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176,
|
||||
115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243,
|
||||
static uint8_t improved_noise_permutations[] = {
|
||||
151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103,
|
||||
30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26,
|
||||
197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174,
|
||||
20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231,
|
||||
83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143,
|
||||
54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196,
|
||||
135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124,
|
||||
123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17,
|
||||
182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101,
|
||||
155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185,
|
||||
112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81,
|
||||
51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176,
|
||||
115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243,
|
||||
141, 128, 195, 78, 66, 215, 61, 156, 180,
|
||||
151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103,
|
||||
30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26,
|
||||
197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174,
|
||||
20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231,
|
||||
83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143,
|
||||
54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196,
|
||||
135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124,
|
||||
123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17,
|
||||
182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101,
|
||||
155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185,
|
||||
112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81,
|
||||
51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176,
|
||||
115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243,
|
||||
151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103,
|
||||
30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26,
|
||||
197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174,
|
||||
20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231,
|
||||
83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143,
|
||||
54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196,
|
||||
135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124,
|
||||
123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17,
|
||||
182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101,
|
||||
155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185,
|
||||
112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81,
|
||||
51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176,
|
||||
115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243,
|
||||
141, 128, 195, 78, 66, 215, 61, 156, 180
|
||||
};
|
||||
|
||||
@ -137,20 +137,20 @@ struct SkPerlinNoiseShader2::PaintingData {
|
||||
|
||||
fGradientBitmap.setInfo(SkImageInfo::MakeN32Premul(16, 1));
|
||||
static uint8_t gradients[] = { 2, 2, 1, 0,
|
||||
0, 2, 1, 0,
|
||||
2, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
2, 1, 2, 0,
|
||||
0, 1, 2, 0,
|
||||
2, 1, 0, 0,
|
||||
0, 1, 0, 0,
|
||||
1, 2, 2, 0,
|
||||
1, 0, 2, 0,
|
||||
1, 2, 0, 0,
|
||||
1, 0, 0, 0,
|
||||
2, 2, 1, 0,
|
||||
1, 0, 2, 0,
|
||||
0, 2, 1, 0,
|
||||
0, 2, 1, 0,
|
||||
2, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
2, 1, 2, 0,
|
||||
0, 1, 2, 0,
|
||||
2, 1, 0, 0,
|
||||
0, 1, 0, 0,
|
||||
1, 2, 2, 0,
|
||||
1, 0, 2, 0,
|
||||
1, 2, 0, 0,
|
||||
1, 0, 0, 0,
|
||||
2, 2, 1, 0,
|
||||
1, 0, 2, 0,
|
||||
0, 2, 1, 0,
|
||||
1, 0, 0, 0 };
|
||||
fGradientBitmap.setPixels(gradients);
|
||||
#endif
|
||||
@ -487,12 +487,12 @@ SkScalar SkPerlinNoiseShader2::PerlinNoiseShaderContext::calculateTurbulenceValu
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Improved Perlin Noise based on Java implementation found at http://mrl.nyu.edu/~perlin/noise/
|
||||
static SkScalar fade(SkScalar t) {
|
||||
return t * t * t * (t * (t * 6 - 15) + 10);
|
||||
static SkScalar fade(SkScalar t) {
|
||||
return t * t * t * (t * (t * 6 - 15) + 10);
|
||||
}
|
||||
|
||||
static SkScalar lerp(SkScalar t, SkScalar a, SkScalar b) {
|
||||
return a + t * (b - a);
|
||||
static SkScalar lerp(SkScalar t, SkScalar a, SkScalar b) {
|
||||
return a + t * (b - a);
|
||||
}
|
||||
|
||||
static SkScalar grad(int hash, SkScalar x, SkScalar y, SkScalar z) {
|
||||
@ -1161,8 +1161,8 @@ void GrGLImprovedPerlinNoise::emitCode(EmitArgs& args) {
|
||||
};
|
||||
SkString fadeFuncName;
|
||||
fsBuilder->emitFunction(kVec3f_GrSLType, "fade", SK_ARRAY_COUNT(fadeArgs),
|
||||
fadeArgs,
|
||||
"return t * t * t * (t * (t * 6.0 - 15.0) + 10.0);",
|
||||
fadeArgs,
|
||||
"return t * t * t * (t * (t * 6.0 - 15.0) + 10.0);",
|
||||
&fadeFuncName);
|
||||
|
||||
// perm function
|
||||
@ -1171,12 +1171,12 @@ void GrGLImprovedPerlinNoise::emitCode(EmitArgs& args) {
|
||||
};
|
||||
SkString permFuncName;
|
||||
SkString permCode("return ");
|
||||
// FIXME even though I'm creating these textures with kRepeat_TileMode, they're clamped. Not
|
||||
// FIXME even though I'm creating these textures with kRepeat_TileMode, they're clamped. Not
|
||||
// sure why. Using fract() (here and the next texture lookup) as a workaround.
|
||||
fsBuilder->appendTextureLookup(&permCode, args.fTexSamplers[0], "vec2(fract(x / 256.0), 0.0)",
|
||||
kVec2f_GrSLType);
|
||||
permCode.append(".r * 255.0;");
|
||||
fsBuilder->emitFunction(kFloat_GrSLType, "perm", SK_ARRAY_COUNT(permArgs), permArgs,
|
||||
fsBuilder->emitFunction(kFloat_GrSLType, "perm", SK_ARRAY_COUNT(permArgs), permArgs,
|
||||
permCode.c_str(), &permFuncName);
|
||||
|
||||
// grad function
|
||||
@ -1189,7 +1189,7 @@ void GrGLImprovedPerlinNoise::emitCode(EmitArgs& args) {
|
||||
fsBuilder->appendTextureLookup(&gradCode, args.fTexSamplers[1], "vec2(fract(x / 16.0), 0.0)",
|
||||
kVec2f_GrSLType);
|
||||
gradCode.append(".rgb * 255.0 - vec3(1.0), p);");
|
||||
fsBuilder->emitFunction(kFloat_GrSLType, "grad", SK_ARRAY_COUNT(gradArgs), gradArgs,
|
||||
fsBuilder->emitFunction(kFloat_GrSLType, "grad", SK_ARRAY_COUNT(gradArgs), gradArgs,
|
||||
gradCode.c_str(), &gradFuncName);
|
||||
|
||||
// lerp function
|
||||
@ -1199,7 +1199,7 @@ void GrGLImprovedPerlinNoise::emitCode(EmitArgs& args) {
|
||||
GrShaderVar("w", kFloat_GrSLType)
|
||||
};
|
||||
SkString lerpFuncName;
|
||||
fsBuilder->emitFunction(kFloat_GrSLType, "lerp", SK_ARRAY_COUNT(lerpArgs), lerpArgs,
|
||||
fsBuilder->emitFunction(kFloat_GrSLType, "lerp", SK_ARRAY_COUNT(lerpArgs), lerpArgs,
|
||||
"return a + w * (b - a);", &lerpFuncName);
|
||||
|
||||
// noise function
|
||||
@ -1218,27 +1218,27 @@ void GrGLImprovedPerlinNoise::emitCode(EmitArgs& args) {
|
||||
noiseCode.appendf("float BA = %s(B) + P.z;", permFuncName.c_str());
|
||||
noiseCode.appendf("float BB = %s(B + 1.0) + P.z;", permFuncName.c_str());
|
||||
noiseCode.appendf("float result = %s(", lerpFuncName.c_str());
|
||||
noiseCode.appendf("%s(%s(%s(%s(AA), p),", lerpFuncName.c_str(), lerpFuncName.c_str(),
|
||||
noiseCode.appendf("%s(%s(%s(%s(AA), p),", lerpFuncName.c_str(), lerpFuncName.c_str(),
|
||||
gradFuncName.c_str(), permFuncName.c_str());
|
||||
noiseCode.appendf("%s(%s(BA), p + vec3(-1.0, 0.0, 0.0)), f.x),", gradFuncName.c_str(),
|
||||
noiseCode.appendf("%s(%s(BA), p + vec3(-1.0, 0.0, 0.0)), f.x),", gradFuncName.c_str(),
|
||||
permFuncName.c_str());
|
||||
noiseCode.appendf("%s(%s(%s(AB), p + vec3(0.0, -1.0, 0.0)),", lerpFuncName.c_str(),
|
||||
noiseCode.appendf("%s(%s(%s(AB), p + vec3(0.0, -1.0, 0.0)),", lerpFuncName.c_str(),
|
||||
gradFuncName.c_str(), permFuncName.c_str());
|
||||
noiseCode.appendf("%s(%s(BB), p + vec3(-1.0, -1.0, 0.0)), f.x), f.y),",
|
||||
noiseCode.appendf("%s(%s(BB), p + vec3(-1.0, -1.0, 0.0)), f.x), f.y),",
|
||||
gradFuncName.c_str(), permFuncName.c_str());
|
||||
noiseCode.appendf("%s(%s(%s(%s(AA + 1.0), p + vec3(0.0, 0.0, -1.0)),",
|
||||
lerpFuncName.c_str(), lerpFuncName.c_str(), gradFuncName.c_str(),
|
||||
noiseCode.appendf("%s(%s(%s(%s(AA + 1.0), p + vec3(0.0, 0.0, -1.0)),",
|
||||
lerpFuncName.c_str(), lerpFuncName.c_str(), gradFuncName.c_str(),
|
||||
permFuncName.c_str());
|
||||
noiseCode.appendf("%s(%s(BA + 1.0), p + vec3(-1.0, 0.0, -1.0)), f.x),",
|
||||
noiseCode.appendf("%s(%s(BA + 1.0), p + vec3(-1.0, 0.0, -1.0)), f.x),",
|
||||
gradFuncName.c_str(), permFuncName.c_str());
|
||||
noiseCode.appendf("%s(%s(%s(AB + 1.0), p + vec3(0.0, -1.0, -1.0)),",
|
||||
lerpFuncName.c_str(), gradFuncName.c_str(), permFuncName.c_str());
|
||||
noiseCode.appendf("%s(%s(BB + 1.0), p + vec3(-1.0, -1.0, -1.0)), f.x), f.y), f.z);",
|
||||
noiseCode.appendf("%s(%s(BB + 1.0), p + vec3(-1.0, -1.0, -1.0)), f.x), f.y), f.z);",
|
||||
gradFuncName.c_str(), permFuncName.c_str());
|
||||
noiseCode.append("return result;");
|
||||
fsBuilder->emitFunction(kFloat_GrSLType, "noise", SK_ARRAY_COUNT(noiseArgs), noiseArgs,
|
||||
fsBuilder->emitFunction(kFloat_GrSLType, "noise", SK_ARRAY_COUNT(noiseArgs), noiseArgs,
|
||||
noiseCode.c_str(), &noiseFuncName);
|
||||
|
||||
|
||||
// noiseOctaves function
|
||||
static const GrShaderVar noiseOctavesArgs[] = {
|
||||
GrShaderVar("p", kVec3f_GrSLType),
|
||||
@ -1254,17 +1254,17 @@ void GrGLImprovedPerlinNoise::emitCode(EmitArgs& args) {
|
||||
noiseOctavesCode.append("ratio *= 2.0;");
|
||||
noiseOctavesCode.append("}");
|
||||
noiseOctavesCode.append("return (result + 1.0) / 2.0;");
|
||||
fsBuilder->emitFunction(kFloat_GrSLType, "noiseOctaves", SK_ARRAY_COUNT(noiseOctavesArgs),
|
||||
fsBuilder->emitFunction(kFloat_GrSLType, "noiseOctaves", SK_ARRAY_COUNT(noiseOctavesArgs),
|
||||
noiseOctavesArgs, noiseOctavesCode.c_str(), &noiseOctavesFuncName);
|
||||
|
||||
fsBuilder->codeAppendf("vec2 coords = %s * %s;", vCoords.c_str(), baseFrequencyUni);
|
||||
fsBuilder->codeAppendf("float r = %s(vec3(coords, %s), %s);", noiseOctavesFuncName.c_str(),
|
||||
fsBuilder->codeAppendf("float r = %s(vec3(coords, %s), %s);", noiseOctavesFuncName.c_str(),
|
||||
zUni, octavesUni);
|
||||
fsBuilder->codeAppendf("float g = %s(vec3(coords, %s + 0000.0), %s);",
|
||||
fsBuilder->codeAppendf("float g = %s(vec3(coords, %s + 0000.0), %s);",
|
||||
noiseOctavesFuncName.c_str(), zUni, octavesUni);
|
||||
fsBuilder->codeAppendf("float b = %s(vec3(coords, %s + 0000.0), %s);",
|
||||
fsBuilder->codeAppendf("float b = %s(vec3(coords, %s + 0000.0), %s);",
|
||||
noiseOctavesFuncName.c_str(), zUni, octavesUni);
|
||||
fsBuilder->codeAppendf("float a = %s(vec3(coords, %s + 0000.0), %s);",
|
||||
fsBuilder->codeAppendf("float a = %s(vec3(coords, %s + 0000.0), %s);",
|
||||
noiseOctavesFuncName.c_str(), zUni, octavesUni);
|
||||
fsBuilder->codeAppendf("%s = vec4(r, g, b, a);", args.fOutputColor);
|
||||
|
||||
|
@ -28,9 +28,9 @@ public:
|
||||
struct PaintingData;
|
||||
|
||||
/**
|
||||
* About the noise types : the difference between the first 2 is just minor tweaks to the
|
||||
* algorithm, they're not 2 entirely different noises. The output looks different, but once the
|
||||
* noise is generated in the [1, -1] range, the output is brought back in the [0, 1] range by
|
||||
* About the noise types : the difference between the first 2 is just minor tweaks to the
|
||||
* algorithm, they're not 2 entirely different noises. The output looks different, but once the
|
||||
* noise is generated in the [1, -1] range, the output is brought back in the [0, 1] range by
|
||||
* doing :
|
||||
* kFractalNoise_Type : noise * 0.5 + 0.5
|
||||
* kTurbulence_Type : abs(noise)
|
||||
|
Loading…
Reference in New Issue
Block a user