Rivulet: More WIP
This commit is contained in:
parent
1f8de8af83
commit
2c03bdd8a4
3 changed files with 6 additions and 6 deletions
Binary file not shown.
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 5.2 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 7.6 KiB |
|
|
@ -136,7 +136,7 @@ char *rivulet_get_description(magic_api * api ATTRIBUTE_UNUSED,
|
||||||
int which ATTRIBUTE_UNUSED,
|
int which ATTRIBUTE_UNUSED,
|
||||||
int mode ATTRIBUTE_UNUSED)
|
int mode ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
return(gettext("Click and drag to add water rivulets to your drawing"));
|
return(gettext("Click and drag downward to add water rivulets to your drawing"));
|
||||||
}
|
}
|
||||||
|
|
||||||
int rivulet_requires_colors(magic_api * api ATTRIBUTE_UNUSED,
|
int rivulet_requires_colors(magic_api * api ATTRIBUTE_UNUSED,
|
||||||
|
|
@ -259,13 +259,13 @@ rivulet_release(magic_api * api, int which ATTRIBUTE_UNUSED,
|
||||||
/* FIXME: Simplify this :-P */
|
/* FIXME: Simplify this :-P */
|
||||||
angle_deg = ((((double) riv_angles[(y * canvas->w) + x]) / 256.0) * 360.0);
|
angle_deg = ((((double) riv_angles[(y * canvas->w) + x]) / 256.0) * 360.0);
|
||||||
|
|
||||||
angle_deg = angle_deg + 90.0;
|
// angle_deg = angle_deg + 90.0;
|
||||||
|
|
||||||
angle_rad = (angle_deg * M_PI) / 180.0;
|
angle_rad = (angle_deg * M_PI) / 180.0;
|
||||||
|
|
||||||
/* FIXME */
|
/* FIXME */
|
||||||
src_x = x - cos(angle_rad) * radius;
|
src_x = x - cos(angle_rad) * radius;
|
||||||
src_y = y + sin(angle_rad) * radius;
|
src_y = y - sin(angle_rad) * radius;
|
||||||
|
|
||||||
pix = api->getpixel(rivulet_snapshot, src_x, src_y);
|
pix = api->getpixel(rivulet_snapshot, src_x, src_y);
|
||||||
api->putpixel(canvas, x, y, pix);
|
api->putpixel(canvas, x, y, pix);
|
||||||
|
|
@ -324,11 +324,11 @@ void rivulet_line_callback_drag(void *ptr, int which ATTRIBUTE_UNUSED,
|
||||||
for (src_x = 0; src_x < w; src_x++) {
|
for (src_x = 0; src_x < w; src_x++) {
|
||||||
dest_x = (x - half_w) + src_x;
|
dest_x = (x - half_w) + src_x;
|
||||||
if (dest_x >= 0 && dest_x < canvas->w) {
|
if (dest_x >= 0 && dest_x < canvas->w) {
|
||||||
/* Apply radius */
|
/* Apply radius brush to radius displacement map */
|
||||||
pix = api->getpixel(rivulet_img_brush_add, src_x, src_y);
|
pix = api->getpixel(rivulet_img_brush_add, src_x, src_y);
|
||||||
SDL_GetRGB(pix, rivulet_img_brush_add->format, &r, &g, &b);
|
SDL_GetRGB(pix, rivulet_img_brush_add->format, &r, &g, &b);
|
||||||
|
|
||||||
new_rad = ((int) riv_radii[(dest_y * canvas->w) + dest_x] + (int) r - 128);
|
new_rad = ((int) riv_radii[(dest_y * canvas->w) + dest_x] + (int) r - 64) / 2;
|
||||||
if (new_rad < 0)
|
if (new_rad < 0)
|
||||||
new_rad = 0;
|
new_rad = 0;
|
||||||
if (new_rad > 255)
|
if (new_rad > 255)
|
||||||
|
|
@ -337,7 +337,7 @@ void rivulet_line_callback_drag(void *ptr, int which ATTRIBUTE_UNUSED,
|
||||||
riv_radii[(dest_y * canvas->w) + dest_x] = (Uint8) new_rad;
|
riv_radii[(dest_y * canvas->w) + dest_x] = (Uint8) new_rad;
|
||||||
|
|
||||||
|
|
||||||
/* Apply angle */
|
/* Apply angle brush to angle displacement map */
|
||||||
pix = api->getpixel(rivulet_img_angles, src_x, src_y);
|
pix = api->getpixel(rivulet_img_angles, src_x, src_y);
|
||||||
SDL_GetRGB(pix, rivulet_img_angles->format, &r, &g, &b);
|
SDL_GetRGB(pix, rivulet_img_angles->format, &r, &g, &b);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue