Color picker: Eat motion events to avoid over-rendering
...when spamming the event queue with motion events over the value slider, while Tux Paint is busy re-rendering the rainbow palette at the new Value level. Also, convert a printf() in the new color picker crosshair sizing function to DEBUG_PRINTF().
This commit is contained in:
parent
1b9933b7c2
commit
b568bf86d2
1 changed files with 14 additions and 2 deletions
|
|
@ -22381,6 +22381,7 @@ static void render_color_picker_palette(void)
|
||||||
int x, y;
|
int x, y;
|
||||||
Uint8 r, g, b;
|
Uint8 r, g, b;
|
||||||
void (*putpixel) (SDL_Surface *, int, int, Uint32);
|
void (*putpixel) (SDL_Surface *, int, int, Uint32);
|
||||||
|
SDL_Event event;
|
||||||
|
|
||||||
putpixel = putpixels[img_color_picker->format->BytesPerPixel];
|
putpixel = putpixels[img_color_picker->format->BytesPerPixel];
|
||||||
for (y = 0; y < img_color_picker->h; y++)
|
for (y = 0; y < img_color_picker->h; y++)
|
||||||
|
|
@ -22395,6 +22396,17 @@ static void render_color_picker_palette(void)
|
||||||
SDL_MapRGBA(img_color_picker->format, r, g, b, 255));
|
SDL_MapRGBA(img_color_picker->format, r, g, b, 255));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while (SDL_PollEvent(&event) && event.type == SDL_MOUSEMOTION)
|
||||||
|
{
|
||||||
|
/* Eat further motion events that may've been generated while
|
||||||
|
we re-rendered the palette (so we don't spin tons of cycles
|
||||||
|
rendering it more than we really need) */
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_PushEvent(&event);
|
||||||
|
|
||||||
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -22424,8 +22436,8 @@ static void set_color_picker_crosshair_size(void) {
|
||||||
if (CROSSHAIR_BORDER < 1)
|
if (CROSSHAIR_BORDER < 1)
|
||||||
CROSSHAIR_BORDER = 1;
|
CROSSHAIR_BORDER = 1;
|
||||||
|
|
||||||
printf("Crosshair will be %d in size, with %d thickness, and a %d border\n",
|
DEBUG_PRINTF("Crosshair will be %d in size, with %d thickness, and a %d border\n",
|
||||||
CROSSHAIR_LENGTH, CROSSHAIR_THICKNESS, CROSSHAIR_BORDER);
|
CROSSHAIR_LENGTH, CROSSHAIR_THICKNESS, CROSSHAIR_BORDER);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void draw_color_picker_crosshairs(int color_picker_left, int color_picker_top, int color_picker_val_left, int color_picker_val_top)
|
static void draw_color_picker_crosshairs(int color_picker_left, int color_picker_top, int color_picker_val_left, int color_picker_val_top)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue