~ubuntu-branches/ubuntu/saucy/darktable/saucy

« back to all changes in this revision

Viewing changes to src/iop/colorzones.c

  • Committer: Bazaar Package Importer
  • Author(s): David Bremner
  • Date: 2011-07-12 09:36:46 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20110712093646-yp9dbxan44dmw15h
Tags: 0.9-1
* New upstream release.
* Remove all patches now upstream; only patch for
  -Wno-error=unused-but-set-variable remains.
* Bump Standards-Version to 3.9.2 (no changes)

Show diffs side-by-side

added added

removed removed

Lines of Context:
96
96
 
97
97
int flags()
98
98
{
99
 
  return IOP_FLAGS_INCLUDE_IN_STYLES;
 
99
  return IOP_FLAGS_INCLUDE_IN_STYLES | IOP_FLAGS_SUPPORTS_BLENDING;
100
100
}
101
101
 
102
102
int
121
121
  dt_iop_colorzones_data_t *d = (dt_iop_colorzones_data_t *)(piece->data);
122
122
  const int ch = piece->colors;
123
123
#ifdef _OPENMP
124
 
#pragma omp parallel for default(none) schedule(static) shared(roi_in, roi_out, d, i, o)
 
124
  #pragma omp parallel for default(none) schedule(static) shared(roi_in, roi_out, d, i, o)
125
125
#endif
126
126
  for(int k=0; k<roi_out->width*roi_out->height; k++)
127
127
  {
149
149
    const float Lm =       (blend*.5f + (1.0f-blend)*lookup(d->lut[0], select)) - .5f;
150
150
    const float hm =       (blend*.5f + (1.0f-blend)*lookup(d->lut[2], select)) - .5f;
151
151
    blend *= blend; // saturation isn't as prone to artifacts:
152
 
    const float Cm = 2.0 * (blend*.5f + (1.0f-blend)*lookup(d->lut[1], select));
 
152
    // const float Cm = 2.0 * (blend*.5f + (1.0f-blend)*lookup(d->lut[1], select));
 
153
    const float Cm = 2.0 * lookup(d->lut[1], select);
153
154
    const float L = in[0] * powf(2.0f, 4.0f*Lm);
154
155
    out[0] = L;
155
156
    out[1] = cosf(2.0*M_PI*(h + hm)) * Cm * C;
234
235
  module->params = malloc(sizeof(dt_iop_colorzones_params_t));
235
236
  module->default_params = malloc(sizeof(dt_iop_colorzones_params_t));
236
237
  module->default_enabled = 0; // we're a rather slow and rare op.
237
 
  module->priority = 525;
 
238
  module->priority = 488; // module order created by iop_dependencies.py, do not edit!
238
239
  module->params_size = sizeof(dt_iop_colorzones_params_t);
239
240
  module->gui_data = NULL;
240
241
  dt_iop_colorzones_params_t tmp;
602
603
    cairo_set_source_rgba(cr, .7, .7, .7, .6);
603
604
    cairo_move_to(cr, 0, - height*c->draw_min_ys[0]);
604
605
    for(int k=1; k<DT_IOP_COLORZONES_RES; k++)    cairo_line_to(cr, k*width/(float)(DT_IOP_COLORZONES_RES-1), - height*c->draw_min_ys[k]);
605
 
    for(int k=DT_IOP_COLORZONES_RES-2; k>=0; k--) cairo_line_to(cr, k*width/(float)(DT_IOP_COLORZONES_RES-1), - height*c->draw_max_ys[k]);
 
606
    for(int k=DT_IOP_COLORZONES_RES-1; k>=0; k--) cairo_line_to(cr, k*width/(float)(DT_IOP_COLORZONES_RES-1), - height*c->draw_max_ys[k]);
606
607
    cairo_close_path(cr);
607
608
    cairo_fill(cr);
608
609
    // draw mouse focus circle
794
795
  gtk_box_pack_start(GTK_BOX(hbox), c->select_by, TRUE, TRUE, 0);
795
796
  g_signal_connect (G_OBJECT (c->select_by), "changed", G_CALLBACK (select_by_changed), (gpointer)self);
796
797
 
797
 
  GtkWidget *tb = dtgtk_togglebutton_new(dtgtk_cairo_paint_colorpicker2, CPF_STYLE_FLAT);
798
 
  gtk_object_set(GTK_OBJECT(tb), "tooltip-text", _("pick gui color from image"), (char *)NULL);
 
798
  GtkWidget *tb = dtgtk_togglebutton_new(dtgtk_cairo_paint_colorpicker, CPF_STYLE_FLAT);
 
799
  g_object_set(G_OBJECT(tb), "tooltip-text", _("pick gui color from image"), (char *)NULL);
799
800
  g_signal_connect(G_OBJECT(tb), "toggled", G_CALLBACK(request_pick_toggled), self);
800
801
  gtk_box_pack_start(GTK_BOX(hbox), tb, FALSE, FALSE, 0);
801
802
 
813
814
  gtk_widget_show_all(GTK_WIDGET(gtk_notebook_get_nth_page(c->channel_tabs, c->channel)));
814
815
  gtk_notebook_set_current_page(GTK_NOTEBOOK(c->channel_tabs), c->channel);
815
816
 
816
 
  gtk_object_set(GTK_OBJECT(c->channel_tabs), "homogeneous", TRUE, (char *)NULL);
 
817
  g_object_set(G_OBJECT(c->channel_tabs), "homogeneous", TRUE, (char *)NULL);
817
818
 
818
819
  gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(c->channel_tabs), FALSE, FALSE, 0);
819
820