FloatImg/Fonderie/glitches.c

52 lines
1.0 KiB
C

/*
* glitches.c
*/
#include <stdio.h>
#include <stdlib.h>
#include "../floatimg.h"
extern int verbosity;
/* -------------------------------------------------------------- */
int kill_a_random_line(FloatImg *pvictime, float fval, int notused)
{
int line, xpos, offset;
#if DEBUG_LEVEL
fprintf(stderr, ">>> %s ( %p %d )\n", __func__, pvictime, notused);
#endif
line = rand() % pvictime->height;
if (verbosity > 1) {
fprintf(stderr, "%s: try to kill line %d\n", __func__, line);
}
offset = pvictime->width * line;
for (xpos=0; xpos<pvictime->width; xpos++) {
pvictime->R[offset+xpos] = fval;
pvictime->G[offset+xpos] = 0.0;
pvictime->B[offset+xpos] = fval;
}
return 0;
}
/* -------------------------------------------------------------- */
int kill_a_few_lines(FloatImg *who, float fval, int number)
{
int idx, foo;
/* Frag the pixels */
for (idx=0; idx<number; idx++) {
foo = kill_a_random_line(who, fval, 0);
if (foo) abort();
}
return foo;
}
/* -------------------------------------------------------------- */