float GetOutlineMask() { float ph = ceil(viewHeight / 1440.0) / viewHeight; float pw = ph / aspectRatio; int sampleCount = viewHeight >= 720.0 ? 12 : 4; #ifdef RETRO_FILTER ph = RETRO_FILTER_SIZE / viewHeight; pw = ph / aspectRatio; sampleCount = 4; #endif float mask = 0.0; for (int i = 0; i < sampleCount; i++) { vec2 offset = vec2(pw, ph) * outlineOffsets[i]; for (int j = 0; j < 2; j++){ mask += float(texture2D(depthtex0, texCoord + offset).r < texture2D(depthtex1, texCoord + offset).r); offset = -offset; } } return float(mask > 0.5); }