22 lines
		
	
	
		
			807 B
		
	
	
	
		
			GLSL
		
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			807 B
		
	
	
	
		
			GLSL
		
	
	
	
| 
 | |
| out vec4 sk_FragColor;
 | |
| uniform vec4 colorGreen;
 | |
| uniform vec4 colorRed;
 | |
| vec4 main() {
 | |
|     vec4 value = vec4(2.5, -2.5, 8.0, -0.125);
 | |
|     const vec4 expectedWhole = vec4(2.0, -2.0, 8.0, 0.0);
 | |
|     const vec4 expectedFraction = vec4(0.5, -0.5, 0.0, -0.125);
 | |
|     bvec4 ok = bvec4(false);
 | |
|     vec4 whole;
 | |
|     vec4 fraction;
 | |
|     fraction.x = modf(value.x, whole.x);
 | |
|     ok.x = whole.x == 2.0 && fraction.x == 0.5;
 | |
|     fraction.xy = modf(value.xy, whole.xy);
 | |
|     ok.y = whole.xy == vec2(2.0, -2.0) && fraction.xy == vec2(0.5, -0.5);
 | |
|     fraction.xyz = modf(value.xyz, whole.xyz);
 | |
|     ok.z = whole.xyz == vec3(2.0, -2.0, 8.0) && fraction.xyz == vec3(0.5, -0.5, 0.0);
 | |
|     fraction = modf(value, whole);
 | |
|     ok.w = whole == expectedWhole && fraction == expectedFraction;
 | |
|     return all(ok) ? colorGreen : colorRed;
 | |
| }
 |