*/}}
1
0
YimingWu 2 лет назад
Родитель
Сommit
42912946c9
4 измененных файлов с 11 добавлено и 8 удалено
  1. 7 4
      la_data.c
  2. 0 2
      la_kernel.c
  3. 1 1
      resources/la_nodes_basic.c
  4. 3 1
      resources/la_widgets_viewers.c

+ 7 - 4
la_data.c

@@ -1818,7 +1818,8 @@ int laGetString(laPropPack *pp, char *result, char** direct_result){
         if (pp->LastPs->p->Offset>=0){
             if (p->IsSafeString){
                 laSafeString **add = ((laSafeString **)((BYTE *)pp->LastPs->UseInstance + pp->LastPs->p->Offset));
-                if (!*add) return 0;
+                //printf(" -- %s\n",p->Base.Identifier);
+                if ((!pp->LastPs->UseInstance) || (!*add)) return 0;
                 if((*add)->Ptr){ *direct_result = (*add)->Ptr; return 1;}
                 return 0;
             }else{
@@ -2309,6 +2310,7 @@ void la_WriteFloat(laUDF *udf, real Data){
     fwrite(&Data, sizeof(real), 1, udf->DiskFile);
 }
 void la_WriteSized(laUDF *udf, void* Data, int size){
+    printf("%x %d\n",Data,size);
     fwrite(Data, size, 1, udf->DiskFile);
 }
 short la_ReadShort(laUDF *udf){
@@ -2634,12 +2636,13 @@ void la_ReadRawProp(laUDF *udf, laPropPack *pp){
 }
 void la_WriteRawProp(laUDF *udf, laPropPack *pp){
     laProp *p = pp->LastPs->p;
-    void* data; int _size, IsCopy=0;
+    void* data; int _size=0, IsCopy=0;
     data=laGetRaw(pp, &_size, &IsCopy);
     la_WriteShort(udf, LA_UDF_RAW_MARK);
+    if(!data){ _size=0; }
     la_WriteInt(udf,_size);
-    la_WriteSized(udf,data,_size);
-    if(IsCopy){ free(data); }
+    if(_size){ la_WriteSized(udf,data,_size); }
+    if(IsCopy && data){ free(data); }
 }
 void la_WriteHyperData(laUDF *udf, void *HyperUserMem){
     int loc = 0, res = 0, i = 0;

+ 0 - 2
la_kernel.c

@@ -6100,8 +6100,6 @@ static void la_RecordWacomMotions(XIRawEvent *event)
     int IsStylus=event->deviceid==MAIN.WacomDeviceStylus;
     if(!IsStylus) MAIN.PointerIsEraser = 1; else MAIN.PointerIsEraser = 0;
 
-    printf("--- %d dev %d  s%d e%d\n",MAIN.PointerIsEraser,event->deviceid,MAIN.WacomDeviceStylus,MAIN.WacomDeviceEraser );
-
     //Window root_return, child_return;
     //int root_x_return, root_y_return;
     //int win_x_return, win_y_return;

+ 1 - 1
resources/la_nodes_basic.c

@@ -1074,7 +1074,7 @@ void la_RegisterInputMapperOperators(){
     LA_PC_IDN_COMBINE=pc; laPropContainerExtraFunctions(pc,0,0,0,0,laui_DefaultNodeOperationsPropUiDefine);
     laAddSubGroup(pc,"base","Base","Base node","la_base_node",0,0,0,0,0,0,0,0,0,0,0,LA_UDF_LOCAL);
     laAddSubGroup(pc,"out", "Out","Output value","la_out_socket",0,0,0,offsetof(laCombineNode, Out),0,0,0,0,0,0,0,LA_UDF_SINGLE);
-    laAddSubGroup(pc,"out_int", "Out Int","Output value in int format","la_out_socket",0,0,0,offsetof(laCombineNode, OutInt),lapost_Node,0,0,0,0,0,0,LA_UDF_SINGLE);
+    laAddSubGroup(pc,"out_int", "Out Int","Output value in int format","la_out_socket",0,0,0,offsetof(laCombineNode, OutInt),0,0,0,0,0,0,0,LA_UDF_SINGLE);
     laAddSubGroup(pc,"out_enum", "Out Enum","Output value in Enum format","la_out_socket",0,0,0,offsetof(laCombineNode, OutEnum),0,0,0,0,0,0,0,LA_UDF_SINGLE);
     laAddSubGroup(pc,"in0","In 0","Input 0","la_switch_node_in_socket",0,0,0,offsetof(laCombineNode, In[0]),0,0,0,0,0,0,0,LA_UDF_LOCAL);
     laAddSubGroup(pc,"in1","In 1","Input 1","la_switch_node_in_socket",0,0,0,offsetof(laCombineNode, In[1]),0,0,0,0,0,0,0,LA_UDF_LOCAL);

+ 3 - 1
resources/la_widgets_viewers.c

@@ -838,7 +838,7 @@ int OPMOD_CanvasZoom(laOperator *a, laEvent *e){
     laCanvasExtra *ex = a->This->EndInstance;
     laGeneralUiExtraData *uex = a->CustomData;
 
-    if (e->Type == LA_L_MOUSE_UP || e->Type == LA_R_MOUSE_DOWN){
+    if (e->Type == LA_L_MOUSE_UP || e->Type == LA_R_MOUSE_DOWN || e->Type==LA_M_MOUSE_UP){
         laSetWindowCursor(LA_ARROW);
         return LA_FINISHED;
     }
@@ -846,6 +846,8 @@ int OPMOD_CanvasZoom(laOperator *a, laEvent *e){
     if (e->Type == LA_MOUSEMOVE){
         if (strArgumentMatch(a->ExtraInstructionsP, "axis", "x")){
             ex->ZoomX *= (1.0 - (e->x - uex->LastX) * MAIN.ZoomSpeed2D);
+        }elif(strArgumentMatch(a->ExtraInstructionsP, "lock", "true")){
+            ex->ZoomX *= (1.0 - (e->y - uex->LastY) * MAIN.ZoomSpeed2D); ex->ZoomY = ex->ZoomX;
         }else{
             ex->ZoomX *= (1.0 - (e->x - uex->LastX) * MAIN.ZoomSpeed2D);
             ex->ZoomY *= (1.0 + (e->y - uex->LastY) * MAIN.ZoomSpeed2D);