То, что вы хотите, это
(PAD + (WIDTH * BPP)) % 4 == 0
правильно? (Конечно 0 <= PAD < 4
)
Тогда вы можете определить PAD
следующим образом:
#define PAD (3 - ((WIDTH * BPP + 3) % 4))
Пример сеанса Python:
>>> def f(x): return 3 - (x+3)%4
...
>>> [ (x, f(x), x + f(x)) for x in xrange(100,108) ]
[(100, 0, 100), (101, 3, 104), (102, 2, 104), (103, 1, 104), (104, 0, 104), (105, 3, 108), (106, 2, 108), (107, 1, 108)]
В общем
#define PAD ((N-1) - (X + (N-1)) % N))
делает PAD + X
кратным N
с ограничением 0 <= PAD < N
(хотя я не проверял отрицательные случаи ...)