Abandoning color grabbing in color mixer
We'll end up with things like "132/245 red, 90/245 yellow, 23/245 blue". Getting it to work will likely require some massive brute-forcing. If people want to take an existing color and make subtle changes, they can just use the rainbow palette HSV color picker.
This commit is contained in:
parent
e913709362
commit
1bfa5f7a49
1 changed files with 6 additions and 87 deletions
|
|
@ -22,7 +22,7 @@
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
(See COPYING.txt)
|
(See COPYING.txt)
|
||||||
|
|
||||||
June 14, 2002 - March 6, 2023
|
June 14, 2002 - March 7, 2023
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
|
|
@ -2230,7 +2230,7 @@ static void draw_color_picker_palette_and_values(int color_picker_left,
|
||||||
int color_picker_val_top);
|
int color_picker_val_top);
|
||||||
static void render_color_picker_palette(void);
|
static void render_color_picker_palette(void);
|
||||||
static int do_color_sel(int temp_mode);
|
static int do_color_sel(int temp_mode);
|
||||||
static int do_color_mix(int prev_color);
|
static int do_color_mix(void);
|
||||||
static void draw_color_mixer_blank_example(void);
|
static void draw_color_mixer_blank_example(void);
|
||||||
static void calc_color_mixer_average(float *out_h, float *out_s,
|
static void calc_color_mixer_average(float *out_h, float *out_s,
|
||||||
float *out_v);
|
float *out_v);
|
||||||
|
|
@ -5305,7 +5305,7 @@ static void mainloop(void)
|
||||||
chose_color = do_color_sel(0);
|
chose_color = do_color_sel(0);
|
||||||
else if (cur_color == (unsigned) COLOR_MIXER)
|
else if (cur_color == (unsigned) COLOR_MIXER)
|
||||||
{
|
{
|
||||||
chose_color = do_color_mix(old_color);
|
chose_color = do_color_mix();
|
||||||
if (!chose_color)
|
if (!chose_color)
|
||||||
cur_color = old_color;
|
cur_color = old_color;
|
||||||
}
|
}
|
||||||
|
|
@ -16028,10 +16028,8 @@ static void do_shape(int sx, int sy, int nx, int ny, int rotn, int use_brush)
|
||||||
int side, rx, ry, rmax, x1, y1, x2, y2, xp, yp, xv, yv, old_brush, step;
|
int side, rx, ry, rmax, x1, y1, x2, y2, xp, yp, xv, yv, old_brush, step;
|
||||||
float a1, a2, rotn_rad, init_ang, angle_skip;
|
float a1, a2, rotn_rad, init_ang, angle_skip;
|
||||||
int xx, yy, offx, offy, max_x, max_y;
|
int xx, yy, offx, offy, max_x, max_y;
|
||||||
int upsidedown = 0;
|
|
||||||
|
|
||||||
if (ny < sy) {
|
if (ny < sy) {
|
||||||
upsidedown = 1;
|
|
||||||
rotn = (rotn + 180) % 360;
|
rotn = (rotn + 180) % 360;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -24159,7 +24157,7 @@ static int do_new_dialog(void)
|
||||||
}
|
}
|
||||||
else if (which == COLOR_MIXER)
|
else if (which == COLOR_MIXER)
|
||||||
{
|
{
|
||||||
if (do_color_mix(-1) == 0)
|
if (do_color_mix() == 0)
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -25320,7 +25318,7 @@ static int do_color_picker(int prev_color)
|
||||||
c = NUM_DEFAULT_COLORS + 2;
|
c = NUM_DEFAULT_COLORS + 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Conver the chosen color to HSV & reposition crosshairs */
|
/* Convert the chosen color to HSV & reposition crosshairs */
|
||||||
rgbtohsv(color_hexes[c][0], color_hexes[c][1], color_hexes[c][2],
|
rgbtohsv(color_hexes[c][0], color_hexes[c][1], color_hexes[c][2],
|
||||||
&h, &s, &v);
|
&h, &s, &v);
|
||||||
|
|
||||||
|
|
@ -25803,11 +25801,6 @@ enum
|
||||||
COLOR_MIXER_BTN_CLEAR,
|
COLOR_MIXER_BTN_CLEAR,
|
||||||
COLOR_MIXER_BTN_USE,
|
COLOR_MIXER_BTN_USE,
|
||||||
COLOR_MIXER_BTN_BACK,
|
COLOR_MIXER_BTN_BACK,
|
||||||
#if 0
|
|
||||||
COLOR_MIXER_BTN_PREV_COLOR,
|
|
||||||
COLOR_MIXER_BTN_PIPETTE,
|
|
||||||
COLOR_MIXER_BTN_RAINBOW,
|
|
||||||
#endif
|
|
||||||
NUM_COLOR_MIXER_BTNS
|
NUM_COLOR_MIXER_BTNS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -25860,10 +25853,9 @@ int mixer_undo_buf[NUM_COLOR_MIX_UNDO_BUFS];
|
||||||
* Display a large prompt, allowing the user to mix
|
* Display a large prompt, allowing the user to mix
|
||||||
* colors together from hues and black/grey/white.
|
* colors together from hues and black/grey/white.
|
||||||
*/
|
*/
|
||||||
static int do_color_mix(int prev_color)
|
static int do_color_mix(void)
|
||||||
{
|
{
|
||||||
int i, btn_clicked;
|
int i, btn_clicked;
|
||||||
SDL_Surface * img_color_picker_btn;
|
|
||||||
#ifndef NO_PROMPT_SHADOWS
|
#ifndef NO_PROMPT_SHADOWS
|
||||||
SDL_Surface *alpha_surf;
|
SDL_Surface *alpha_surf;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -26075,66 +26067,6 @@ static int do_color_mix(int prev_color)
|
||||||
SDL_BlitSurface(img_mixerlabel_clear, NULL, screen, &dest);
|
SDL_BlitSurface(img_mixerlabel_clear, NULL, screen, &dest);
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* Draw buttons to pull colors from other sources: */
|
|
||||||
|
|
||||||
/* (Color buckets) */
|
|
||||||
|
|
||||||
color_mix_btn_lefts[COLOR_MIXER_BTN_PREV_COLOR] = r_final.x + (cell_w * 0) + 2;
|
|
||||||
color_mix_btn_tops[COLOR_MIXER_BTN_PREV_COLOR] = r_final.y + (cell_h * 2) + 2;
|
|
||||||
|
|
||||||
if (prev_color != -1 && prev_color < NUM_DEFAULT_COLORS) {
|
|
||||||
dest.x = color_mix_btn_lefts[COLOR_MIXER_BTN_PREV_COLOR];
|
|
||||||
dest.y = color_mix_btn_tops[COLOR_MIXER_BTN_PREV_COLOR];
|
|
||||||
dest.w = cell_w - 2;
|
|
||||||
dest.h = cell_h - 2;
|
|
||||||
|
|
||||||
draw_color_grab_btn(dest, prev_color);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (Pipette) */
|
|
||||||
|
|
||||||
color_mix_btn_lefts[COLOR_MIXER_BTN_PIPETTE] = r_final.x + (cell_w * 1) + 2;
|
|
||||||
color_mix_btn_tops[COLOR_MIXER_BTN_PIPETTE] = r_final.y + (cell_h * 2) + 2;
|
|
||||||
|
|
||||||
dest.x = color_mix_btn_lefts[COLOR_MIXER_BTN_PIPETTE];
|
|
||||||
dest.y = color_mix_btn_tops[COLOR_MIXER_BTN_PIPETTE];
|
|
||||||
dest.w = cell_w - 2;
|
|
||||||
dest.h = cell_h - 2;
|
|
||||||
|
|
||||||
draw_color_grab_btn(dest, NUM_DEFAULT_COLORS);
|
|
||||||
|
|
||||||
dest.x = color_mix_btn_lefts[COLOR_MIXER_BTN_PIPETTE] + (cell_w - img_color_sel->w) / 2;
|
|
||||||
dest.y = color_mix_btn_tops[COLOR_MIXER_BTN_PIPETTE] + (cell_h - img_color_sel->h) / 2;
|
|
||||||
|
|
||||||
SDL_BlitSurface(img_color_sel, NULL, screen, &dest);
|
|
||||||
|
|
||||||
/* (Rainbow) */
|
|
||||||
|
|
||||||
color_mix_btn_lefts[COLOR_MIXER_BTN_RAINBOW] = r_final.x + (cell_w * 2) + 2;
|
|
||||||
color_mix_btn_tops[COLOR_MIXER_BTN_RAINBOW] = r_final.y + (cell_h * 2) + 2;
|
|
||||||
|
|
||||||
img_color_picker_btn = thumbnail(img_color_picker, cell_w - 2, cell_h - 2, 0);
|
|
||||||
if (img_color_picker_btn != NULL) {
|
|
||||||
dest.x = color_mix_btn_lefts[COLOR_MIXER_BTN_RAINBOW];
|
|
||||||
dest.y = color_mix_btn_tops[COLOR_MIXER_BTN_RAINBOW];
|
|
||||||
SDL_BlitSurface(img_color_picker_btn, NULL, screen, &dest);
|
|
||||||
SDL_FreeSurface(img_color_picker_btn);
|
|
||||||
}
|
|
||||||
|
|
||||||
dest.x = color_mix_btn_lefts[COLOR_MIXER_BTN_RAINBOW] + 4;
|
|
||||||
dest.y = color_mix_btn_tops[COLOR_MIXER_BTN_RAINBOW] + 4;
|
|
||||||
dest.w = cell_w - 10;
|
|
||||||
dest.h = cell_h - 10;
|
|
||||||
|
|
||||||
SDL_FillRect(screen, &dest,
|
|
||||||
SDL_MapRGB(screen->format,
|
|
||||||
color_hexes[NUM_DEFAULT_COLORS + 2][0],
|
|
||||||
color_hexes[NUM_DEFAULT_COLORS + 2][1],
|
|
||||||
color_hexes[NUM_DEFAULT_COLORS + 2][2]));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Show "Back" button */
|
/* Show "Back" button */
|
||||||
|
|
||||||
color_mix_btn_lefts[COLOR_MIXER_BTN_BACK] = r_final.x + (cell_w * 4) + 2;
|
color_mix_btn_lefts[COLOR_MIXER_BTN_BACK] = r_final.x + (cell_w * 4) + 2;
|
||||||
|
|
@ -26243,11 +26175,6 @@ static int do_color_mix(int prev_color)
|
||||||
&& color_mix_cur_undo != color_mix_oldest_undo)
|
&& color_mix_cur_undo != color_mix_oldest_undo)
|
||||||
|| (btn_clicked == COLOR_MIXER_BTN_REDO
|
|| (btn_clicked == COLOR_MIXER_BTN_REDO
|
||||||
&& color_mix_cur_undo != color_mix_newest_undo)
|
&& color_mix_cur_undo != color_mix_newest_undo)
|
||||||
#if 0
|
|
||||||
|| (btn_clicked == COLOR_MIXER_BTN_PREV_COLOR && prev_color != -1 && prev_color < NUM_DEFAULT_COLORS)
|
|
||||||
|| btn_clicked == COLOR_MIXER_BTN_PIPETTE
|
|
||||||
|| btn_clicked == COLOR_MIXER_BTN_RAINBOW
|
|
||||||
#endif
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
do_setcursor(cursor_hand);
|
do_setcursor(cursor_hand);
|
||||||
|
|
@ -26334,14 +26261,6 @@ static int do_color_mix(int prev_color)
|
||||||
|
|
||||||
playsound(screen, 1, SND_BUBBLE, 1, SNDPOS_CENTER, SNDDIST_NEAR);
|
playsound(screen, 1, SND_BUBBLE, 1, SNDPOS_CENTER, SNDDIST_NEAR);
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
else if ((btn_clicked == COLOR_MIXER_BTN_PREV_COLOR && prev_color != -1 && prev_color < NUM_DEFAULT_COLORS)
|
|
||||||
|| btn_clicked == COLOR_MIXER_BTN_PIPETTE
|
|
||||||
|| btn_clicked == COLOR_MIXER_BTN_RAINBOW)
|
|
||||||
{
|
|
||||||
printf("clicked %d\n", btn_clicked);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
else if (btn_clicked == COLOR_MIXER_BTN_BACK)
|
else if (btn_clicked == COLOR_MIXER_BTN_BACK)
|
||||||
{
|
{
|
||||||
/* Decided to go Back */
|
/* Decided to go Back */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue