Example #1
0
static VALUE
rb_gimp_rgb_clamp (VALUE self)
{
  GimpRGB result = rb2GimpRGB(self);
  gimp_rgb_clamp(&result);

  return GimpRGB2rb(&result);
}
Example #2
0
static VALUE
rb_gimp_rgb_gamma (VALUE self,
                   VALUE gamma)
{
  GimpRGB result = rb2GimpRGB(self);
  gimp_rgb_gamma(&result, (gdouble)NUM2DBL(gamma));

  return GimpRGB2rb(&result);
}
Example #3
0
static VALUE
rb_gimp_rgba_multiply (VALUE self,
                       VALUE factor)
{
  GimpRGB result = rb2GimpRGB(self);
  gimp_rgba_multiply(&result, (gdouble)NUM2DBL(factor));

  return GimpRGB2rb(&result);
}
Example #4
0
static VALUE
rb_gimp_rgba_subtract (VALUE self,
                       VALUE other)
{
  GimpRGB result = rb2GimpRGB(self);
  gimp_rgba_subtract(&result, rb2GimpRGBPtr(other));

  return GimpRGB2rb(&result);
}
Example #5
0
static VALUE
rb_gimp_rgb_composite (VALUE self,
                       VALUE other,
                       VALUE mode)
{
  GimpRGB color = rb2GimpRGB(self);
  gimp_rgb_composite(&color,
                     rb2GimpRGBPtr(other),
                     (GimpRGBCompositeMode)NUM2INT(mode));

  return GimpRGB2rb(&color);
}
Example #6
0
GimpParam
rb2GimpParam (VALUE rbparam)
{
  if (!rb_obj_is_kind_of(rbparam, sGimpParam))
    rb_raise(rb_eTypeError, "Parameter is not a Gimp::Param");

  int type = NUM2INT(rb_struct_aref(rbparam, ID2SYM(id_type)));
  VALUE rbdata = rb_struct_aref(rbparam, ID2SYM(id_data));

  GimpParam result;
  result.type = (GimpPDBArgType)type;

  switch (type)
    {
    case GIMP_PDB_INT32:
      result.data.d_int32 = (gint32)NUM2INT(rbdata);
      break;

    case GIMP_PDB_INT16:
      result.data.d_int16 = (gint16)NUM2INT(rbdata);
      break;

    case GIMP_PDB_INT8:
      result.data.d_int8 = (gint8)NUM2INT(rbdata);
      break;

    case GIMP_PDB_FLOAT:
      result.data.d_float = (gdouble)NUM2DBL(rbdata);
      break;

    case GIMP_PDB_STRING:
      result.data.d_string = g_strdup(StringValuePtr(rbdata));
      break;

    case GIMP_PDB_INT32ARRAY:
      result.data.d_int32array = rb2gimp_array(type, rbdata);
      break;

    case GIMP_PDB_INT16ARRAY:
      result.data.d_int16array = rb2gimp_array(type, rbdata);
      break;

    case GIMP_PDB_INT8ARRAY:
      result.data.d_int8array = str2gint8(rbdata);
      break;

    case GIMP_PDB_FLOATARRAY:
      result.data.d_floatarray = rb2gimp_array(type, rbdata);
      break;

    case GIMP_PDB_STRINGARRAY:
      result.data.d_stringarray = rb2gimp_array(type, rbdata);
      break;

    case GIMP_PDB_COLOR:
      result.data.d_color = rb2GimpRGB(rbdata);
      break;

    case GIMP_PDB_DISPLAY:
      result.data.d_display = (gint32)NUM2INT(rbdata);
      break;

    case GIMP_PDB_IMAGE:
      result.data.d_image = (gint32)NUM2INT(rbdata);
      break;

    case GIMP_PDB_LAYER:
      result.data.d_layer = (gint32)NUM2INT(rbdata);
      break;

/*   case GIMP_PDB_LAYER_MASK:
     result.data.d_layer_mask = (gint32)NUM2INT(rbdata);
     break;*/

    case GIMP_PDB_CHANNEL:
      result.data.d_channel = (gint32)NUM2INT(rbdata);
      break;

    case GIMP_PDB_DRAWABLE:
      result.data.d_drawable = (gint32)NUM2INT(rbdata);
      break;

    case GIMP_PDB_SELECTION:
      result.data.d_selection = (gint32)NUM2INT(rbdata);
      break;

    case GIMP_PDB_BOUNDARY:
      result.data.d_boundary = (gint32)NUM2INT(rbdata);
      break;

    case GIMP_PDB_VECTORS:
      result.data.d_vectors = (gint32)NUM2INT(rbdata);
      break;

/*   case GIMP_PDB_UNIT:
     result.data.d_unit = (gint32)NUM2INT(rbdata);
     break;*/

    case GIMP_PDB_PARASITE:
      result.data.d_parasite = rb2GimpParasite(rbdata);
      break;

/*   case GIMP_PDB_TATTOO:
     result.data.d_tattoo = (gint32)NUM2INT(rbdata);
     break;*/

    case GIMP_PDB_STATUS:
      result.data.d_status = (GimpPDBStatusType)NUM2INT(rbdata);
      break;
    }

  return result;
}