You’re right, but it’s not an issue.

You need to set up a FB that’s larger than the required area (for example twice as large in both width and height).

In the FS, you’ll do

```
// uniform width and uniform height required on top
if (gl_FragCoord.x > width / 2 || gl_FragCoord.y > height / 2)
// We don't care about the result here
return;
float realWidth = 1 / (width * 2), realHeight = 1 / (height * 2);
vec2 topLeft = vec2(gl_FragCoord.x - 0.5 * realWidth, gl_FragCoord.y - 0.5 * realHeight);
vec2 topRight = vec2(gl_FragCoord.x + 0.5 * realWidth, gl_FragCoord.y - 0.5 * realHeight);
vec2 bottomLeft = vec2(gl_FragCoord.x - 0.5 * realWidth, gl_FragCoord.y + 0.5 * realHeight);
vec2 bottomRight = vec2(gl_FragCoord.x + 0.5 * realWidth, gl_FragCoord.y + 0.5 * realHeight);
glFrag_Color = texture2D(tex,topLeft) * 0.25 + texture2D(tex, topRight) * 0.25 + texture2D(tex, bottomLeft) * 0.25 + texture2D(tex, bottomRight) * 0.25;
```