small tweaks
parent
44066273ea
commit
88f77b709f
BIN
art/demo.ecotex
BIN
art/demo.ecotex
Binary file not shown.
1642
art/gen/demo.h
1642
art/gen/demo.h
File diff suppressed because it is too large
Load Diff
BIN
art/gen/demo.png
BIN
art/gen/demo.png
Binary file not shown.
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 4.2 KiB |
|
@ -68,6 +68,8 @@ typedef enum {
|
||||||
TOP_DRAW_TEXT,
|
TOP_DRAW_TEXT,
|
||||||
TOP_RESIZE_IMAGE,
|
TOP_RESIZE_IMAGE,
|
||||||
TOP_COLOR_TWEAKS,
|
TOP_COLOR_TWEAKS,
|
||||||
|
TOP_FLIP_IMAGE,
|
||||||
|
TOP_ROTATE_IMAGE,
|
||||||
|
|
||||||
TOP_FORCE_UINT8 = UINT8_MAX
|
TOP_FORCE_UINT8 = UINT8_MAX
|
||||||
} td_op_kind;
|
} td_op_kind;
|
||||||
|
|
|
@ -43,11 +43,25 @@ void texed_process_ops(void) {
|
||||||
int y = op->params[2].i32;
|
int y = op->params[2].i32;
|
||||||
int w = op->params[3].i32;
|
int w = op->params[3].i32;
|
||||||
int h = op->params[4].i32;
|
int h = op->params[4].i32;
|
||||||
|
int flip = op->params[5].i32;
|
||||||
|
int rotate = op->params[6].i32;
|
||||||
|
|
||||||
if (w != -1 || h != -1) {
|
if (w != -1 || h != -1) {
|
||||||
ImageResize(&img, w != -1 ? w : img.width, h != -1 ? h : img.height);
|
ImageResize(&img, w != -1 ? w : img.width, h != -1 ? h : img.height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (flip == 1) {
|
||||||
|
ImageFlipVertical(&img);
|
||||||
|
} else if (flip == 2) {
|
||||||
|
ImageFlipHorizontal(&img);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rotate == 1) {
|
||||||
|
ImageRotateCW(&img);
|
||||||
|
} else if (rotate == 2) {
|
||||||
|
ImageRotateCCW(&img);
|
||||||
|
}
|
||||||
|
|
||||||
ImageDraw(&ctx.img, img,
|
ImageDraw(&ctx.img, img,
|
||||||
(Rectangle){0.0f, 0.0f, img.width, img.height},
|
(Rectangle){0.0f, 0.0f, img.width, img.height},
|
||||||
(Rectangle){x, y, img.width, img.height},
|
(Rectangle){x, y, img.width, img.height},
|
||||||
|
@ -81,6 +95,13 @@ void texed_process_ops(void) {
|
||||||
ImageColorContrast(&ctx.img, texed_map_value(op->params[0].flt, -100.0f, 100.0f));
|
ImageColorContrast(&ctx.img, texed_map_value(op->params[0].flt, -100.0f, 100.0f));
|
||||||
ImageColorBrightness(&ctx.img, (int)texed_map_value(op->params[1].flt, -255.0f, 255.0f));
|
ImageColorBrightness(&ctx.img, (int)texed_map_value(op->params[1].flt, -255.0f, 255.0f));
|
||||||
ImageColorTint(&ctx.img, op->params[2].color);
|
ImageColorTint(&ctx.img, op->params[2].color);
|
||||||
|
|
||||||
|
if (op->params[3].i32) {
|
||||||
|
ImageColorInvert(&ctx.img);
|
||||||
|
}
|
||||||
|
if (op->params[4].i32) {
|
||||||
|
ImageColorGrayscale(&ctx.img);
|
||||||
|
}
|
||||||
}break;
|
}break;
|
||||||
default: {
|
default: {
|
||||||
zpl_printf("%s\n", "unsupported op!");
|
zpl_printf("%s\n", "unsupported op!");
|
||||||
|
@ -101,9 +122,7 @@ void texed_process_params(void) {
|
||||||
case TPARAM_FLOAT: {
|
case TPARAM_FLOAT: {
|
||||||
p->flt = (float)zpl_str_to_f64(p->str, NULL);
|
p->flt = (float)zpl_str_to_f64(p->str, NULL);
|
||||||
}break;
|
}break;
|
||||||
case TPARAM_INT: {
|
case TPARAM_INT:
|
||||||
p->u32 = (uint32_t)zpl_str_to_i64(p->str, NULL, 10);
|
|
||||||
}break;
|
|
||||||
case TPARAM_COORD: {
|
case TPARAM_COORD: {
|
||||||
p->i32 = (int32_t)zpl_str_to_i64(p->str, NULL, 10);
|
p->i32 = (int32_t)zpl_str_to_i64(p->str, NULL, 10);
|
||||||
}break;
|
}break;
|
||||||
|
|
|
@ -32,13 +32,15 @@ static td_op default_ops[] = {
|
||||||
}
|
}
|
||||||
},{
|
},{
|
||||||
OP(TOP_DRAW_IMAGE),
|
OP(TOP_DRAW_IMAGE),
|
||||||
PARAMS(6) {
|
PARAMS(8) {
|
||||||
PARAM(TPARAM_STRING, "src", "samples/test.png"),
|
PARAM(TPARAM_STRING, "src", "samples/test.png"),
|
||||||
PARAM(TPARAM_COORD, "x", "0"),
|
PARAM(TPARAM_COORD, "x", "0"),
|
||||||
PARAM(TPARAM_COORD, "y", "0"),
|
PARAM(TPARAM_COORD, "y", "0"),
|
||||||
PARAM(TPARAM_COORD, "w", "-1"),
|
PARAM(TPARAM_COORD, "w", "-1"),
|
||||||
PARAM(TPARAM_COORD, "h", "-1"),
|
PARAM(TPARAM_COORD, "h", "-1"),
|
||||||
PARAM(TPARAM_COLOR, "tint", "ffffffff"),
|
PARAM(TPARAM_COLOR, "tint", "ffffffff"),
|
||||||
|
PARAM(TPARAM_INT, "flip?", "0"),
|
||||||
|
PARAM(TPARAM_INT, "rotate?", "0"),
|
||||||
}
|
}
|
||||||
},{
|
},{
|
||||||
OP(TOP_DRAW_TEXT),
|
OP(TOP_DRAW_TEXT),
|
||||||
|
@ -66,10 +68,12 @@ static td_op default_ops[] = {
|
||||||
}
|
}
|
||||||
},{
|
},{
|
||||||
OP(TOP_COLOR_TWEAKS),
|
OP(TOP_COLOR_TWEAKS),
|
||||||
PARAMS(3) {
|
PARAMS(5) {
|
||||||
PARAM(TPARAM_SLIDER, "contrast", "0.5"),
|
PARAM(TPARAM_SLIDER, "contrast", "0.5"),
|
||||||
PARAM(TPARAM_SLIDER, "brightness", "0.5"),
|
PARAM(TPARAM_SLIDER, "brightness", "0.5"),
|
||||||
PARAM(TPARAM_COLOR, "tint", "FFFFFFFF"),
|
PARAM(TPARAM_COLOR, "tint", "FFFFFFFF"),
|
||||||
|
PARAM(TPARAM_INT, "invert?", "0"),
|
||||||
|
PARAM(TPARAM_INT, "grayscale?", "0"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -291,6 +291,7 @@ void texed_draw_props_pane(zpl_aabb2 r) {
|
||||||
texed_repaint_preview();
|
texed_repaint_preview();
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
|
case TPARAM_INT:
|
||||||
case TPARAM_COORD: {
|
case TPARAM_COORD: {
|
||||||
if (GuiValueBox(aabb2_ray(tbox_r), NULL, &p->i32, INT32_MIN, INT32_MAX, p->edit_mode)) {
|
if (GuiValueBox(aabb2_ray(tbox_r), NULL, &p->i32, INT32_MIN, INT32_MAX, p->edit_mode)) {
|
||||||
p->edit_mode = !p->edit_mode;
|
p->edit_mode = !p->edit_mode;
|
||||||
|
|
Loading…
Reference in New Issue