removed ambiguous (wannabe) multi-platform lib
This commit is contained in:
parent
c3bd8e0913
commit
1403faf737
|
@ -4,6 +4,7 @@
|
||||||
#include "../pixel.h"
|
#include "../pixel.h"
|
||||||
#include "../util.h"
|
#include "../util.h"
|
||||||
#include "fpmath_patterns.h"
|
#include "fpmath_patterns.h"
|
||||||
|
#include <inttypes.h>
|
||||||
|
|
||||||
#define DOUBLE_BUFFERING
|
#define DOUBLE_BUFFERING
|
||||||
#ifdef DOUBLE_BUFFERING
|
#ifdef DOUBLE_BUFFERING
|
||||||
|
@ -91,6 +92,63 @@ static void fpmath_pattern(double const t_start,
|
||||||
#ifdef ANIMATION_PLASMA
|
#ifdef ANIMATION_PLASMA
|
||||||
#define PLASMA_X (1.0 / (NUM_COLS / (2.0 * M_PI)))
|
#define PLASMA_X (1.0 / (NUM_COLS / (2.0 * M_PI)))
|
||||||
|
|
||||||
|
#define INTEGERFUN 1
|
||||||
|
#ifdef INTEGERFUN
|
||||||
|
|
||||||
|
//XXX this is inefficient, as we could as this is a 2*PI sine and we'd really need only half of it - hansi
|
||||||
|
const uint8_t sine_table[32] =
|
||||||
|
{
|
||||||
|
128,152,176,198,218,234,245,253,255,253,245,234,218,198,176,152,
|
||||||
|
128,103,79,57,37,21,10,2,0,2,10,21,37,57,79,103
|
||||||
|
};
|
||||||
|
|
||||||
|
uint8_t sin_i(uint8_t phase)
|
||||||
|
{
|
||||||
|
return sine_table[phase >> 3];
|
||||||
|
}
|
||||||
|
|
||||||
|
#define SQRT0x8000 181
|
||||||
|
#define SQRT25x3 0x45483
|
||||||
|
void plasma(void)
|
||||||
|
{
|
||||||
|
uint8_t sqx, x, y, scale = 3, off = 0;
|
||||||
|
|
||||||
|
#ifdef DOUBLE_BUFFERING
|
||||||
|
// double buffering to reduce half painted pictures
|
||||||
|
unsigned char pixmap_buffer[NUMPLANE][NUM_ROWS][LINEBYTES];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
while (off < 200)
|
||||||
|
{
|
||||||
|
for(x = 0; x < NUM_COLS; x++)
|
||||||
|
{
|
||||||
|
sqx = x*x;
|
||||||
|
for(y = 0; y < NUM_ROWS; y++)
|
||||||
|
{
|
||||||
|
unsigned char const mask = shl_table[y % 8U];
|
||||||
|
unsigned char const color = (uint16_t)sin_i(sqrt((uint16_t)sqx + ((uint16_t)y*(uint16_t)y)) * (255*255 / ((scale * NUM_COLS) / 2)) + off) * (NUMPLANE - 1) / 255 ;
|
||||||
|
unsigned char const x_8 = x / 8u;
|
||||||
|
for (unsigned char p = 0; p < NUMPLANE; ++p)
|
||||||
|
{
|
||||||
|
if (p <= (color - 1))
|
||||||
|
{
|
||||||
|
BUFFER[p][y][x_8] |= mask;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BUFFER[p][y][x_8] &= ~mask;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef DOUBLE_BUFFERING
|
||||||
|
memcpy(pixmap, pixmap_buffer, sizeof(pixmap));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
/**
|
/**
|
||||||
* Draws a simple plasma like pattern.
|
* Draws a simple plasma like pattern.
|
||||||
*/
|
*/
|
||||||
|
@ -123,6 +181,8 @@ void plasma(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif /* INTEGERFUN */
|
||||||
|
|
||||||
|
|
||||||
#ifdef ANIMATION_PSYCHEDELIC
|
#ifdef ANIMATION_PSYCHEDELIC
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue