edje: rename VIRTUAL into SPACER and also fix Edje_Edit and inspector.
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 13 Jun 2012 03:21:31 +0000 (03:21 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 13 Jun 2012 03:21:31 +0000 (03:21 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/edje@72058 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
NEWS
src/bin/edje_cc_handlers.c
src/bin/edje_inspector.c
src/lib/Edje.h
src/lib/edje_cache.c
src/lib/edje_calc.c
src/lib/edje_data.c
src/lib/edje_edit.c
src/lib/edje_load.c
src/lib/edje_private.h

index a391902..e92088c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
 2012-06-04  Cedric Bail
 
-       * Add VIRTUAL part to reduce the load on the canvas (lighter and faster theme).
+       * Add SPACER part to reduce the load on the canvas (lighter and faster theme).
diff --git a/NEWS b/NEWS
index 10dc918..9b5217e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -7,7 +7,7 @@ Additions:
     * Add edje_watch to monitore change on edje source.
     * Emit ['edje,change,file', 'edje'] when the file change on disk.
     * edje_player will automatically reload the file when it change on disk.
-    * Add VIRTUAL part. This part are not putting anything into the canvas. So lighter and faster to
+    * Add SPACER part. This part are not putting anything into the canvas. So lighter and faster to
     process (Use it to replace RECT part that are never visible and never catch any event).
 
 Improvements:
index 91ae24e..108d998 100644 (file)
@@ -875,7 +875,7 @@ _edje_part_description_alloc(unsigned char type, const char *collection, const c
 
    switch (type)
      {
-      case EDJE_PART_TYPE_VIRTUAL:
+      case EDJE_PART_TYPE_SPACER:
       case EDJE_PART_TYPE_RECTANGLE:
       case EDJE_PART_TYPE_SWALLOW:
       case EDJE_PART_TYPE_GROUP:
@@ -3024,7 +3024,7 @@ st_collections_group_parts_part_name(void)
             @li TABLE
             @li EXTERNAL
            @li PROXY
-           @li VIRTUAL
+           @li SPACER
     @endproperty
 */
 static void
@@ -3046,7 +3046,7 @@ st_collections_group_parts_part_type(void)
                      "TABLE", EDJE_PART_TYPE_TABLE,
                      "EXTERNAL", EDJE_PART_TYPE_EXTERNAL,
                      "PROXY", EDJE_PART_TYPE_PROXY,
-                    "VIRTUAL", EDJE_PART_TYPE_VIRTUAL,
+                    "SPACER", EDJE_PART_TYPE_SPACER,
                      NULL);
 
    /* handle type change of inherited part */
@@ -4382,7 +4382,7 @@ st_collections_group_parts_part_description_inherit(void)
    ed->color_class = STRDUP(ed->color_class);
    switch (ep->type)
      {
-      case EDJE_PART_TYPE_VIRTUAL:
+      case EDJE_PART_TYPE_SPACER:
       case EDJE_PART_TYPE_RECTANGLE:
       case EDJE_PART_TYPE_SWALLOW:
       case EDJE_PART_TYPE_GROUP:
@@ -4615,10 +4615,10 @@ st_collections_group_parts_part_description_visible(void)
 {
    check_arg_count(1);
 
-   if (current_part->type == EDJE_PART_TYPE_VIRTUAL)
+   if (current_part->type == EDJE_PART_TYPE_SPACER)
      {
        ERR("%s: Error. parse error %s:%i. "
-          "VIRTUAL part can't have a visibility defined",
+          "SPACER part can't have a visibility defined",
           progname, file_in, line - 1);
        exit(-1);
      }
@@ -4855,10 +4855,10 @@ st_collections_group_parts_part_description_color_class(void)
 {
    check_arg_count(1);
 
-   if (current_part->type == EDJE_PART_TYPE_VIRTUAL)
+   if (current_part->type == EDJE_PART_TYPE_SPACER)
      {
        ERR("%s: Error. parse error %s:%i. "
-          "VIRTUAL part can't have a color defined",
+          "SPACER part can't have a color defined",
           progname, file_in, line - 1);
        exit(-1);
      }
@@ -4881,10 +4881,10 @@ st_collections_group_parts_part_description_color(void)
 {
    check_arg_count(4);
 
-   if (current_part->type == EDJE_PART_TYPE_VIRTUAL)
+   if (current_part->type == EDJE_PART_TYPE_SPACER)
      {
        ERR("%s: Error. parse error %s:%i. "
-          "VIRTUAL part can't have a color defined",
+          "SPACER part can't have a color defined",
           progname, file_in, line - 1);
        exit(-1);
      }
@@ -4910,10 +4910,10 @@ st_collections_group_parts_part_description_color2(void)
 {
    check_arg_count(4);
 
-   if (current_part->type == EDJE_PART_TYPE_VIRTUAL)
+   if (current_part->type == EDJE_PART_TYPE_SPACER)
      {
        ERR("%s: Error. parse error %s:%i. "
-          "VIRTUAL part can't have a color defined",
+          "SPACER part can't have a color defined",
           progname, file_in, line - 1);
        exit(-1);
      }
index 676c829..9106f95 100644 (file)
@@ -204,6 +204,8 @@ part_type_name_get(Edje_Part_Type t)
          return "TABLE";
       case EDJE_PART_TYPE_EXTERNAL:
          return "EXTERNAL";
+      case EDJE_PART_TYPE_SPACER:
+         return "SPACER";
 
       case EDJE_PART_TYPE_NONE:
       case EDJE_PART_TYPE_LAST:
index c6d93d1..0c265e7 100644 (file)
@@ -382,7 +382,7 @@ typedef enum _Edje_Part_Type
    EDJE_PART_TYPE_TABLE     = 9,
    EDJE_PART_TYPE_EXTERNAL  = 10,
    EDJE_PART_TYPE_PROXY     = 11,
-   EDJE_PART_TYPE_VIRTUAL   = 12, /**< @since 1.3 */
+   EDJE_PART_TYPE_SPACER    = 12, /**< @since 1.3 */
    EDJE_PART_TYPE_LAST      = 13
 } Edje_Part_Type;
 
index 20738bd..77095e6 100644 (file)
@@ -63,7 +63,7 @@ _edje_file_coll_open(Edje_File *edf, const char *coll)
    INIT_EMP_BOTH(BOX, Edje_Part_Description_Box, ce);
    INIT_EMP_BOTH(TABLE, Edje_Part_Description_Table, ce);
    INIT_EMP_BOTH(EXTERNAL, Edje_Part_Description_External, ce);
-   INIT_EMP_BOTH(VIRTUAL, Edje_Part_Description_Common, ce);
+   INIT_EMP_BOTH(SPACER, Edje_Part_Description_Common, ce);
    INIT_EMP(part, Edje_Part, ce);
 
    snprintf(buf, sizeof(buf), "edje/collections/%i", id);
index 28771f6..2ee79ed 100644 (file)
@@ -232,10 +232,10 @@ _edje_get_description_by_orientation(Edje *ed, Edje_Part_Description_Common *src
         ce->count.GROUP++;
          memsize = sizeof(Edje_Part_Description_Common);
          break;
-     case EDJE_PART_TYPE_VIRTUAL:
-         desc_rtl = eina_mempool_malloc(ce->mp_rtl.VIRTUAL,
+     case EDJE_PART_TYPE_SPACER:
+         desc_rtl = eina_mempool_malloc(ce->mp_rtl.SPACER,
                sizeof (Edje_Part_Description_Common));
-         ce->count.VIRTUAL++;
+         ce->count.SPACER++;
          memsize = sizeof(Edje_Part_Description_Common);
          break;
         EDIT_ALLOC_POOL_RTL(TEXT, Text, text);
@@ -2021,7 +2021,7 @@ _edje_part_recalc_single(Edje *ed,
    else if (ep->part->type == EDJE_PART_TYPE_PROXY)
      _edje_part_recalc_single_fill(ep, &((Edje_Part_Description_Proxy *)desc)->proxy.fill, params);
 
-   if (ep->part->type != EDJE_PART_TYPE_VIRTUAL)
+   if (ep->part->type != EDJE_PART_TYPE_SPACER)
      {
         /* colors */
         if ((desc->color_class) && (*desc->color_class))
@@ -2096,7 +2096,7 @@ _edje_part_recalc_single(Edje *ed,
 
           break;
        }
-      case EDJE_PART_TYPE_VIRTUAL:
+      case EDJE_PART_TYPE_SPACER:
       case EDJE_PART_TYPE_RECTANGLE:
       case EDJE_PART_TYPE_BOX:
       case EDJE_PART_TYPE_TABLE:
@@ -2168,7 +2168,7 @@ _edje_proxy_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj
       case EDJE_PART_TYPE_EXTERNAL:
          evas_object_image_source_set(ep->object, pp->swallowed_object);
          break;
-      case EDJE_PART_TYPE_VIRTUAL:
+      case EDJE_PART_TYPE_SPACER:
          /* FIXME: detect that at compile time and prevent it */
          break;
      }
@@ -2798,8 +2798,8 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
              /* FIXME: definitivly remove this code when we switch to new format. */
              abort();
              break;
-           case EDJE_PART_TYPE_VIRTUAL:
-              /* We really should do nothing on VIRTUAL part */
+           case EDJE_PART_TYPE_SPACER:
+              /* We really should do nothing on SPACER part */
               break;
          }
 
@@ -2832,8 +2832,8 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
              /* FIXME: definitivly remove this code when we switch to new format. */
              abort();
              break;
-           case EDJE_PART_TYPE_VIRTUAL:
-              /* We really should do nothing on VIRTUAL part */
+           case EDJE_PART_TYPE_SPACER:
+              /* We really should do nothing on SPACER part */
               break;
          }
 
@@ -2858,7 +2858,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
              mo = ep->swallowed_object;
          }
         else mo = ep->object;
-        if (chosen_desc->map.on && ep->part->type != EDJE_PART_TYPE_VIRTUAL)
+        if (chosen_desc->map.on && ep->part->type != EDJE_PART_TYPE_SPACER)
           {
              static Evas_Map *map = NULL;
 
index 05cf38a..380fee4 100644 (file)
@@ -30,7 +30,7 @@ Eet_Data_Descriptor *_edje_edd_edje_part = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_pointer = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_description_variant = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_description_rectangle = NULL;
-Eet_Data_Descriptor *_edje_edd_edje_part_description_virtual = NULL;
+Eet_Data_Descriptor *_edje_edd_edje_part_description_spacer = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_description_swallow = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_description_group = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_description_image = NULL;
@@ -42,7 +42,7 @@ Eet_Data_Descriptor *_edje_edd_edje_part_description_table = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_description_external = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_description_variant_list = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_description_rectangle_pointer = NULL;
-Eet_Data_Descriptor *_edje_edd_edje_part_description_virtual_pointer = NULL;
+Eet_Data_Descriptor *_edje_edd_edje_part_description_spacer_pointer = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_description_swallow_pointer = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_description_group_pointer = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_part_description_image_pointer = NULL;
@@ -85,7 +85,7 @@ EMP(GROUP, group);
 EMP(BOX, box);
 EMP(TABLE, table);
 EMP(EXTERNAL, external);
-EMP(VIRTUAL, virtual);
+EMP(SPACER, spacer);
 EMP(part, part);
 
 #define FREED(eed) \
@@ -109,7 +109,7 @@ struct {
   { EDJE_PART_TYPE_TABLE,     "table" },
   { EDJE_PART_TYPE_EXTERNAL,  "external" },
   { EDJE_PART_TYPE_PROXY,     "proxy" },
-  { EDJE_PART_TYPE_VIRTUAL,   "virtual" }
+  { EDJE_PART_TYPE_SPACER,   "spacer" }
 };
 
 static const char *
@@ -191,7 +191,7 @@ _edje_edd_shutdown(void)
    FREED(_edje_edd_edje_part_pointer);
    FREED(_edje_edd_edje_part_description_variant);
    FREED(_edje_edd_edje_part_description_rectangle);
-   FREED(_edje_edd_edje_part_description_virtual);
+   FREED(_edje_edd_edje_part_description_spacer);
    FREED(_edje_edd_edje_part_description_swallow);
    FREED(_edje_edd_edje_part_description_group);
    FREED(_edje_edd_edje_part_description_image);
@@ -203,7 +203,7 @@ _edje_edd_shutdown(void)
    FREED(_edje_edd_edje_part_description_external);
    FREED(_edje_edd_edje_part_description_variant_list);
    FREED(_edje_edd_edje_part_description_rectangle_pointer);
-   FREED(_edje_edd_edje_part_description_virtual_pointer);
+   FREED(_edje_edd_edje_part_description_spacer_pointer);
    FREED(_edje_edd_edje_part_description_swallow_pointer);
    FREED(_edje_edd_edje_part_description_group_pointer);
    FREED(_edje_edd_edje_part_description_image_pointer);
@@ -335,7 +335,7 @@ _edje_edd_init(void)
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.BOX", count.BOX, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.TABLE", count.TABLE, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.EXTERNAL", count.EXTERNAL, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.VIRTUAL", count.VIRTUAL, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.SPACER", count.SPACER, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.part", count.part, EET_T_INT);
 
    EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Style_Tag);
@@ -570,11 +570,11 @@ _edje_edd_init(void)
    EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON(_edje_edd_edje_part_description_rectangle, Edje_Part_Description_Common);
 
    EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Description_Common);
-   eddc.func.mem_free = mem_free_virtual;
-   eddc.func.mem_alloc = mem_alloc_virtual;
-   _edje_edd_edje_part_description_virtual =
+   eddc.func.mem_free = mem_free_spacer;
+   eddc.func.mem_alloc = mem_alloc_spacer;
+   _edje_edd_edje_part_description_spacer =
      eet_data_descriptor_file_new(&eddc);
-   EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON(_edje_edd_edje_part_description_virtual, Edje_Part_Description_Common);
+   EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON(_edje_edd_edje_part_description_spacer, Edje_Part_Description_Common);
 
    EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Description_Common);
    eddc.func.mem_free = mem_free_swallow;
@@ -756,7 +756,7 @@ _edje_edd_init(void)
    eddc.func.type_set = _edje_description_variant_type_set;
    _edje_edd_edje_part_description_variant = eet_data_descriptor_file_new(&eddc);
 
-   EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "virtual",   _edje_edd_edje_part_description_virtual);
+   EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "spacer",    _edje_edd_edje_part_description_spacer);
    EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "rectangle", _edje_edd_edje_part_description_rectangle);
    EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "swallow",   _edje_edd_edje_part_description_swallow);
    EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, "group",     _edje_edd_edje_part_description_group);
@@ -782,7 +782,7 @@ _edje_edd_init(void)
    _edje_edd_edje_part_description_variant_list = eet_data_descriptor_file_new(&eddc);
 
    EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "rectangle", rectangle);
-   EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "virtual",   virtual);
+   EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "spacer",    spacer);
    EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "swallow",   swallow);
    EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "group",     group);
    EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, "image",     image);
index eec5e04..7175ada 100644 (file)
@@ -1032,6 +1032,7 @@ edje_edit_group_add(Evas_Object *obj, const char *name)
    EDIT_EMN(BOX, Edje_Part_Description_Box, de);
    EDIT_EMN(TABLE, Edje_Part_Description_Table, de);
    EDIT_EMN(EXTERNAL, Edje_Part_Description_External, de);
+   EDIT_EMN(SPACER, Edje_Part_Description_Common, de);
    EDIT_EMN(part, Edje_Part, de);
 
    ed->file->collection_cache = eina_list_prepend(ed->file->collection_cache, pc);
@@ -2118,7 +2119,7 @@ _edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type
      }
    else if (ep->type == EDJE_PART_TYPE_TEXTBLOCK)
      rp->object = evas_object_textblock_add(ed->base.evas);
-   else
+   else if (ep->type != EDJE_PART_TYPE_SPACER)
      ERR("wrong part type %i!", ep->type);
    if (rp->object)
      {
@@ -2969,6 +2970,10 @@ _edje_edit_state_alloc(int type, Edje *ed)
         pd = eina_mempool_malloc(ce->mp.RECTANGLE, sizeof (Edje_Part_Description_Common));
         ce->count.RECTANGLE++;
         break;
+      case EDJE_PART_TYPE_SPACER:
+        pd = eina_mempool_malloc(ce->mp.SPACER, sizeof (Edje_Part_Description_Common));
+        ce->count.SPACER++;
+        break;
       case EDJE_PART_TYPE_SWALLOW:
         pd = eina_mempool_malloc(ce->mp.SWALLOW, sizeof (Edje_Part_Description_Common));
         ce->count.SWALLOW++;
@@ -6572,7 +6577,7 @@ edje_edit_script_error_list_get(Evas_Object *obj)
 #define BUF_APPENDF(FMT, ...) \
    ret &= eina_strbuf_append_printf(buf, FMT, ##__VA_ARGS__)
 
-static const char *types[] = {"NONE", "RECT", "TEXT", "IMAGE", "SWALLOW", "TEXTBLOCK", "GRADIENT", "GROUP", "BOX", "TABLE", "EXTERNAL"};
+static const char *types[] = {"NONE", "RECT", "TEXT", "IMAGE", "SWALLOW", "TEXTBLOCK", "GRADIENT", "GROUP", "BOX", "TABLE", "EXTERNAL", "SPACER"};
 static const char *effects[] = {"NONE", "PLAIN", "OUTLINE", "SOFT_OUTLINE", "SHADOW", "SOFT_SHADOW", "OUTLINE_SHADOW", "OUTLINE_SOFT_SHADOW ", "FAR_SHADOW ", "FAR_SOFT_SHADOW", "GLOW"};
 static const char *prefers[] = {"NONE", "VERTICAL", "HORIZONTAL", "BOTH"};
 
index e9e7a1f..4daef47 100644 (file)
@@ -489,7 +489,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
                        ERR("SPANK ! SPANK ! SPANK ! YOU ARE USING GRADIENT IN PART %s FROM GROUP %s INSIDE FILE %s !! THEY ARE NOW REMOVED !",
                            ep->name, group, file);
                        break;
-                    case EDJE_PART_TYPE_VIRTUAL:
+                    case EDJE_PART_TYPE_SPACER:
                         rp->object = NULL;
                         break;
                     default:
@@ -1453,7 +1453,7 @@ _edje_collection_free(Edje_File *edf, Edje_Part_Collection *ec, Edje_Part_Collec
    eina_mempool_del(ce->mp.BOX);
    eina_mempool_del(ce->mp.TABLE);
    eina_mempool_del(ce->mp.EXTERNAL);
-   eina_mempool_del(ce->mp.VIRTUAL);
+   eina_mempool_del(ce->mp.SPACER);
    eina_mempool_del(ce->mp.part);
    memset(&ce->mp, 0, sizeof (ce->mp));
 
@@ -1467,7 +1467,7 @@ _edje_collection_free(Edje_File *edf, Edje_Part_Collection *ec, Edje_Part_Collec
    eina_mempool_del(ce->mp_rtl.BOX);
    eina_mempool_del(ce->mp_rtl.TABLE);
    eina_mempool_del(ce->mp_rtl.EXTERNAL);
-   eina_mempool_del(ce->mp_rtl.VIRTUAL);
+   eina_mempool_del(ce->mp_rtl.SPACER);
    memset(&ce->mp_rtl, 0, sizeof (ce->mp_rtl));
    free(ec);
    ce->ref = NULL;
index 6ef78d4..2742382 100644 (file)
@@ -675,7 +675,7 @@ struct _Edje_Limit
       TYPE      GROUP;            \
       TYPE      BOX;              \
       TYPE      TABLE;            \
-      TYPE      VIRTUAL;         \
+      TYPE      SPACER;          \
       TYPE      EXTERNAL;
 
 struct _Edje_Part_Collection_Directory_Entry
@@ -1668,7 +1668,7 @@ extern Eina_Mempool *_emp_GROUP;
 extern Eina_Mempool *_emp_BOX;
 extern Eina_Mempool *_emp_TABLE;
 extern Eina_Mempool *_emp_EXTERNAL;
-extern Eina_Mempool *_emp_VIRTUAL;
+extern Eina_Mempool *_emp_SPACER;
 extern Eina_Mempool *_emp_part;
 
 void  _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T pos, FLOAT_T v1, FLOAT_T v2);