*/}}
Bläddra i källkod

Log print to stdout toggle

YimingWu 1 år sedan
förälder
incheckning
ba0d753c9b
5 ändrade filer med 20 tillägg och 2 borttagningar
  1. 3 0
      la_interface.h
  2. 8 2
      la_kernel.c
  3. 4 0
      resources/la_properties.c
  4. 3 0
      resources/la_templates.c
  5. 2 0
      resources/la_translations.c

+ 3 - 0
la_interface.h

@@ -295,6 +295,7 @@ STRUCTURE(laInitArguments){
     int HasTerminal;
     int HasAudio;
     int GLDebug;
+    int EnableLogStdOut;
 };
 
 NEED_STRUCTURE(laAnimation);
@@ -369,6 +370,8 @@ STRUCTURE(LA){
 
     int EnableColorManagement;
 
+    int EnableLogStdOut;
+
     int EnableGLDebug;
     int GLDebugSync;
     int GLDebugLevel;

+ 8 - 2
la_kernel.c

@@ -584,6 +584,7 @@ laLogEntry* logEnsure(int Create){
 void logPrintTV(int Continued, char* format, va_list v){
     if(!format || !format[0]) return;
     laLogEntry* le=logEnsure(Continued);
+    if(MAIN.EnableLogStdOut){ va_list v1; va_copy(v1,v); vprintf(format,v1); }
     strSafePrintV(&le->Content, format, v);
     laNotifyUsers("la.logs");
 }
@@ -798,7 +799,8 @@ void laProcessInitArguments(int argc, char* argv[],laInitArguments* ia) {
             }
             continue;
         }
-        if(strSame(argv[i], "--gl-debug")){ ia->GLDebug=1; }
+        if(strSame(argv[i], "--gl-debug")){ ia->GLDebug=1; printf("Enabled OpenGL Debug.\n"); }
+        if(strSame(argv[i], "--log")){ ia->EnableLogStdOut=1; printf("Enabled log output to stdout.\n"); }
     }
 }
 int laGetReadyWith(laInitArguments* ia){
@@ -1026,6 +1028,8 @@ int laGetReadyWith(laInitArguments* ia){
     MAIN.Animation=memAcquire(sizeof(laAnimation));
     MAIN.Audio=memAcquire(sizeof(laAudio));
 
+    XSynchronize(MAIN.dpy,1);
+
     //interactions:
     MAIN.TopFramerate = 60;
     MAIN.ValuatorThreshold = 8;
@@ -1181,6 +1185,8 @@ void laEnsureUserPreferences(){
     laExtractUDF(udf,0,LA_UDF_MODE_OVERWRITE,0);
     laCloseUDF(udf);
     laRefreshUDFRegistries();
+    //restore forced settings
+    if(MAIN.InitArgs.EnableLogStdOut){ MAIN.EnableLogStdOut=1; }
 }
 
 void laAddExtraExtension(int FileType, ...){
@@ -1352,7 +1358,7 @@ void la_MakeSpecialKeyBit(SYSWINDOW hwnd,laWindow*wnd,laEvent *e,int use_last_po
     laEvent* last_e=el->pLast;
     SYSWINDOW root_ret, win_ret; int rrx=0,rry=0,rx=e->x,ry=e->y,rmask=0;
 #ifdef __linux__
-    XQueryPointer(MAIN.dpy, wnd->win, &root_ret,&win_ret,&rrx,&rry,&rx,&ry,&rmask);
+    //XQueryPointer(MAIN.dpy, wnd->win, &root_ret,&win_ret,&rrx,&rry,&rx,&ry,&rmask);
     e->SpecialKeyBit = ((rmask&ShiftMask)?LA_KEY_SHIFT:0)|((rmask&ControlMask)?LA_KEY_CTRL:0)|((rmask&Mod1Mask)?LA_KEY_ALT:0);
 #endif
 #ifdef _WIN32

+ 4 - 0
resources/la_properties.c

@@ -1392,6 +1392,10 @@ void la_RegisterInternalProps(){
             laAddEnumItemAs(ep, "LOW", "Low", "Show low severity messages", 2, 0);
             laAddEnumItemAs(ep, "MEDIUM", "Medium", "Show low severity messages", 3, 0);
             laAddEnumItemAs(ep, "HIGH", "High", "Show high severity messages", 4, 0);
+
+            ep=laAddEnumProperty(p, "enable_log_stdout", "Enable Log StdOut", "Enable log printing to stdout", LA_WIDGET_ENUM_HIGHLIGHT,0,0,0,0,offsetof(LA, EnableLogStdOut),0,0,0,0,0,0,0,0,0,0);
+            laAddEnumItemAs(ep, "DISABLED", "Disabled", "StdOut log only outputs necessary stuff", 0, 0);
+            laAddEnumItemAs(ep, "ENABLED", "Enabled", "Will print all logs to stdout", 1, 0);
             
             ep=laAddEnumProperty(p, "enable_color_management", "Enable Color Management", "Whether to enable color management or not", LA_WIDGET_ENUM_HIGHLIGHT,0,0,0,0,offsetof(LA, EnableColorManagement),0,0,0,0,0,0,0,0,0,0);
             laAddEnumItemAs(ep, "NONE", "None", "Do not do color management on the window", 0, 0);

+ 3 - 0
resources/la_templates.c

@@ -1353,6 +1353,9 @@ void laui_UserPreference(laUiList *uil, laPropPack *Base, laPropPack *OperatorIn
                     laShowItem(muil,mcr,0,"la.user_preferences.gl_debug_level")->Flags|=LA_UI_FLAGS_EXPAND;
                 }laEndCondition(muil,b);
             }
+            laShowSeparator(muil,mc);
+            laShowLabel(muil,mcl,"Logs:",0,0);
+            laShowItem(muil,mcr,0,"la.user_preferences.enable_log_stdout");
         }
     }
 }

+ 2 - 0
resources/la_translations.c

@@ -19,6 +19,8 @@
 #include "la_5.h"
 
 static const char *entries[]={
+"Enable Log StdOut","调试信息至标准输出",
+"Logs:","信息:"
 "Merge","合并",
 "Separate","分离",
 "Subdiv","细分",