fixed framebuffer bugs

This commit is contained in:
Christian Kroll 2011-05-23 22:55:25 +00:00
parent 9339fa01f6
commit 09d120b9a8
2 changed files with 8 additions and 7 deletions

View File

@ -45,9 +45,9 @@ static double dist(double x1, double y1, double x2, double y2)
* Draws an animated two dimensional graph for a given function f(x,y,t). * Draws an animated two dimensional graph for a given function f(x,y,t).
* @param t_start start value for the function's time variable * @param t_start start value for the function's time variable
* @param t_stop stop value for the function's time variable * @param t_stop stop value for the function's time variable
* @param t_delta value by which the functions timing variable gets incremented * @param t_delta value by which the function's timing variable gets incremented
* @param frame_delay frame delay in ms * @param frame_delay frame delay in ms
* @param fpPattern function which generates a pattern depending x, y, t * @param fpPattern function which generates a pattern depending on x, y, t
*/ */
static void fpmath_pattern(double const t_start, static void fpmath_pattern(double const t_start,
double const t_stop, double const t_stop,
@ -68,7 +68,7 @@ static void fpmath_pattern(double const t_start,
unsigned char color = fpPattern(x, y, t); unsigned char color = fpPattern(x, y, t);
for (uint8_t p = NUMPLANE; p--;) for (uint8_t p = NUMPLANE; p--;)
{ {
if (p == (color - 1)) if (p <= (color - 1))
{ {
BUFFER[p][y][x / 8] |= shl_table[x % 8U]; BUFFER[p][y][x / 8] |= shl_table[x % 8U];
} }

View File

@ -59,7 +59,7 @@
#define LOOP_DETECT_BUFFER_SIZE 8U #define LOOP_DETECT_BUFFER_SIZE 8U
#ifndef GOL_DELAY #ifndef GOL_DELAY
#define GOL_DELAY 1 /* milliseconds */ #define GOL_DELAY 100 /* milliseconds */
#endif #endif
#ifndef GOL_CYCLES #ifndef GOL_CYCLES
@ -170,8 +170,10 @@ void nextiteration(field_t dest, field_t src) {
/******************************************************************************/ /******************************************************************************/
#ifdef BITSTUFFED #ifdef BITSTUFFED
static void pfprint(field_t pf) { void pfprint(field_t pf) {
memcpy(pixmap[NUMPLANE - 1], pf, sizeof(field_t)); for (uint8_t i = NUMPLANE; i--;) {
memcpy(pixmap[i], pf, sizeof(field_t));
}
} }
#else #else
void pfprint(field_t pf) { void pfprint(field_t pf) {
@ -292,7 +294,6 @@ void gameoflife() {
/* the main part */ /* the main part */
pfprint(pf1); pfprint(pf1);
for (cycle = 1; cycle < GOL_CYCLES; ++cycle) { for (cycle = 1; cycle < GOL_CYCLES; ++cycle) {
wait(100);
DEBUG_BYTE(0, (uint8_t)(GOL_CYCLES-cycle) & 0xff); DEBUG_BYTE(1, SREG); DEBUG_BYTE(0, (uint8_t)(GOL_CYCLES-cycle) & 0xff); DEBUG_BYTE(1, SREG);
wait(GOL_DELAY); wait(GOL_DELAY);
pfcopy(pf2, pf1); pfcopy(pf2, pf1);