35 lines
		
	
	
		
			761 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			761 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| 
 | |
| /* Keep these in sync with GPU_shader.h */
 | |
| #define INTERLACE_ROW                      0
 | |
| #define INTERLACE_COLUMN                   1
 | |
| #define INTERLACE_CHECKERBOARD             2
 | |
| 
 | |
| in vec2 texCoord_interp;
 | |
| out vec4 fragColor;
 | |
| 
 | |
| uniform int interlace_id;
 | |
| uniform sampler2D image_a;
 | |
| uniform sampler2D image_b;
 | |
| 
 | |
| bool interlace()
 | |
| {
 | |
| 	if (interlace_id == INTERLACE_CHECKERBOARD) {
 | |
| 		return (int(gl_FragCoord.x + gl_FragCoord.y) & 1) != 0;
 | |
| 	}
 | |
| 	else if (interlace_id == INTERLACE_ROW) {
 | |
| 		return (int(gl_FragCoord.y) & 1) != 0;
 | |
| 	}
 | |
| 	else if (interlace_id == INTERLACE_COLUMN) {
 | |
| 		return (int(gl_FragCoord.x) & 1) != 0;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void main()
 | |
| {
 | |
| 	if (interlace()) {
 | |
| 		fragColor = texture(image_a, texCoord_interp);
 | |
| 	} else {
 | |
| 		fragColor = texture(image_b, texCoord_interp);
 | |
| 	}
 | |
| }
 |