*/}}
Browse Source

EDID cleanup

YimingWu 20 hours ago
parent
commit
753ecbf3dd
4 changed files with 13 additions and 8 deletions
  1. 6 6
      la_kernel.c
  2. 1 1
      resources/la_properties.c
  3. 5 1
      resources/la_templates.c
  4. 1 0
      resources/la_translations_zh-hans.c

+ 6 - 6
la_kernel.c

@@ -873,7 +873,7 @@ void la_UseWindowColorCorrection(laWindow* w){
         if(!w->WhichScreen){ memAssignRef(w,&w->WhichScreen,laGetWindowScreen(w)); }
         if(!w->WhichScreen){ memAssignRef(w,&w->WhichScreen,laGetWindowScreen(w)); }
         if(w->WhichScreen){
         if(w->WhichScreen){
             tnsUniformOutputColorCorrection(T->immShader,w->WhichScreen->gamma, w->WhichScreen->xyz2rgb);
             tnsUniformOutputColorCorrection(T->immShader,w->WhichScreen->gamma, w->WhichScreen->xyz2rgb);
-        }
+        }else{ w->OutputColorSpace=0; }
     }
     }
 }
 }
 
 
@@ -927,7 +927,7 @@ void la_TryGettingEDIDColors(XRROutputInfo* output, laScreen* s){
             logPrint("Color calibration info:%s",SSTR(additional));
             logPrint("Color calibration info:%s",SSTR(additional));
             strSafeDestroy(&additional);
             strSafeDestroy(&additional);
             XFree(edid_data);
             XFree(edid_data);
-            la_EnsureScreenColorMatrix(s); if(!s->ColorSpace)s->ColorSpace=255;
+            la_EnsureScreenColorMatrix(s);
         }
         }
     }
     }
 }
 }
@@ -2770,10 +2770,10 @@ void la_PanelDrawToWindow(laPanel *p, laWindow *w){
 
 
     tnsUseImmShader(); tnsEnableShaderv(T->immShader);
     tnsUseImmShader(); tnsEnableShaderv(T->immShader);
     if(MAIN.EnableColorManagement){
     if(MAIN.EnableColorManagement){
+        la_UseWindowColorCorrection(w);
         tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
         tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
         tnsUniformShowColorOverflowStripes(T->immShader,w->OutputShowStripes);
         tnsUniformShowColorOverflowStripes(T->immShader,w->OutputShowStripes);
         tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
         tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
-        la_UseWindowColorCorrection(w);
     }else{
     }else{
         tnsUniformOutputColorSpace(T->immShader,0);
         tnsUniformOutputColorSpace(T->immShader,0);
         tnsUniformShowColorOverflowStripes(T->immShader,0);
         tnsUniformShowColorOverflowStripes(T->immShader,0);
@@ -3173,9 +3173,9 @@ void la_BlockDefDrawSelf(laBlock *b, int CH){
     tnsUseImmShader(); tnsEnableShaderv(T->immShader);
     tnsUseImmShader(); tnsEnableShaderv(T->immShader);
     if(MAIN.EnableColorManagement){
     if(MAIN.EnableColorManagement){
         laWindow* w=MAIN.CurrentWindow;
         laWindow* w=MAIN.CurrentWindow;
+        la_UseWindowColorCorrection(w);
         tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
         tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
         tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
         tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
-        la_UseWindowColorCorrection(w);
     }else{
     }else{
         tnsUniformOutputColorSpace(T->immShader,0);
         tnsUniformOutputColorSpace(T->immShader,0);
         tnsUniformColorComposing(T->immShader,0,0,0,0);
         tnsUniformColorComposing(T->immShader,0,0,0,0);
@@ -3235,9 +3235,9 @@ void la_BlockDefDrawSelfEmpty(laBlock *b, int CH){
     tnsUseImmShader(); tnsEnableShaderv(T->immShader);
     tnsUseImmShader(); tnsEnableShaderv(T->immShader);
     if(MAIN.EnableColorManagement){
     if(MAIN.EnableColorManagement){
         laWindow* w=MAIN.CurrentWindow;
         laWindow* w=MAIN.CurrentWindow;
+        la_UseWindowColorCorrection(w);
         tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
         tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
         tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
         tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
-        la_UseWindowColorCorrection(w);
     }else{
     }else{
         tnsUniformOutputColorSpace(T->immShader,0);
         tnsUniformOutputColorSpace(T->immShader,0);
         tnsUniformColorComposing(T->immShader,0,0,0,0);
         tnsUniformColorComposing(T->immShader,0,0,0,0);
@@ -3390,9 +3390,9 @@ void la_WindowDefDraw(laWindow *w, laBoxedTheme *bt){
             if (!p->BT) p->BT = &_LA_THEME_PANEL;
             if (!p->BT) p->BT = &_LA_THEME_PANEL;
             tnsUseShader(T->immShader);tnsEnableShaderv(T->immShader);
             tnsUseShader(T->immShader);tnsEnableShaderv(T->immShader);
             if(MAIN.EnableColorManagement){
             if(MAIN.EnableColorManagement){
+                la_UseWindowColorCorrection(w);
                 tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
                 tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
                 tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
                 tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
-                la_UseWindowColorCorrection(w);
             }else{
             }else{
                 tnsUniformOutputColorSpace(T->immShader,0);
                 tnsUniformOutputColorSpace(T->immShader,0);
                 tnsUniformColorComposing(T->immShader,0,0,0,0);
                 tnsUniformColorComposing(T->immShader,0,0,0,0);

+ 1 - 1
resources/la_properties.c

@@ -2065,7 +2065,7 @@ void la_RegisterInternalProps(){
             static const real d65[2]={0.3127, 0.3290};
             static const real d65[2]={0.3127, 0.3290};
             static const real primaries[6]={0.64, 0.34, 0.30, 0.60, 0.15, 0.06};
             static const real primaries[6]={0.64, 0.34, 0.30, 0.60, 0.15, 0.06};
             laAddFloatProperty(p,"white_point","White Point","White point",0,"Xw,Yw",0,0,0,0.001,0,d65,offsetof(laScreen,whitepoint),0,0,2,0,0,0,0,lasetarr_ScreenWhitePoint,0,0,0);
             laAddFloatProperty(p,"white_point","White Point","White point",0,"Xw,Yw",0,0,0,0.001,0,d65,offsetof(laScreen,whitepoint),0,0,2,0,0,0,0,lasetarr_ScreenWhitePoint,0,0,0);
-            laAddFloatProperty(p,"primaries","Primaries","Primaries",0,"Xr,Yr,Xg,Yg,Xb,yb",0,0,0,0.001,0,primaries,offsetof(laScreen,primaries),0,0,6,0,0,0,0,lasetarr_ScreenPrimaries,0,0,0);
+            laAddFloatProperty(p,"primaries","Primaries","Primaries",0,"Xr,Yr,Xg,Yg,Xb,Yb",0,0,0,0.001,0,primaries,offsetof(laScreen,primaries),0,0,6,0,0,0,0,lasetarr_ScreenPrimaries,0,0,0);
             laAddFloatProperty(p,"gamma","Gamma","Gamma",0,0,0,0,0,0.001,0,0,offsetof(laScreen,gamma),0,laset_ScreenGamma,0,0,0,0,0,0,0,0,0);
             laAddFloatProperty(p,"gamma","Gamma","Gamma",0,0,0,0,0,0.001,0,0,offsetof(laScreen,gamma),0,laset_ScreenGamma,0,0,0,0,0,0,0,0,0);
             ep = laAddEnumProperty(p, "color_space", "Output Color Space", "Hardware color space of this screen ", 0,0,0,0,0,offsetof(laScreen,ColorSpace), 0,laset_ScreenColorSpace, 0,0,0,0,0,0,0,0);{
             ep = laAddEnumProperty(p, "color_space", "Output Color Space", "Hardware color space of this screen ", 0,0,0,0,0,offsetof(laScreen,ColorSpace), 0,laset_ScreenColorSpace, 0,0,0,0,0,0,0,0);{
                 laAddEnumItemAs(ep, "SRGB", "sRGB", "Standard sRGB diplay", TNS_COLOR_SPACE_SRGB, 0);
                 laAddEnumItemAs(ep, "SRGB", "sRGB", "Standard sRGB diplay", TNS_COLOR_SPACE_SRGB, 0);

+ 5 - 1
resources/la_templates.c

@@ -1360,6 +1360,7 @@ void laui_Screen(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *U
     laEndRow(uil,b);
     laEndRow(uil,b);
     b=laOnConditionToggle(uil,cl,0,0,0,0,0);
     b=laOnConditionToggle(uil,cl,0,0,0,0,0);
     laShowItemFull(uil,cr,This,"description",LA_WIDGET_STRING_PLAIN,0,0,0)->Flags|=LA_TEXT_USE_NEWLINE;
     laShowItemFull(uil,cr,This,"description",LA_WIDGET_STRING_PLAIN,0,0,0)->Flags|=LA_TEXT_USE_NEWLINE;
+#ifdef LA_LINUX
         laShowSeparator(uil,c);
         laShowSeparator(uil,c);
         laUiItem* b1=laOnConditionToggle(uil,cl,0,0,0,0,0);{ strSafeSet(&b1->ExtraInstructions,"icon=🖉;");
         laUiItem* b1=laOnConditionToggle(uil,cl,0,0,0,0,0);{ strSafeSet(&b1->ExtraInstructions,"icon=🖉;");
             laShowItem(uil,crr,This,"primaries")->Flags|=LA_UI_FLAGS_TRANSPOSE;
             laShowItem(uil,crr,This,"primaries")->Flags|=LA_UI_FLAGS_TRANSPOSE;
@@ -1368,8 +1369,11 @@ void laui_Screen(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *U
         }laElse(uil,b1);{
         }laElse(uil,b1);{
             laShowItem(uil,crr,This,"primaries")->Flags|=LA_UI_FLAGS_DISABLED|LA_UI_FLAGS_NO_EVENT|LA_UI_FLAGS_TRANSPOSE;
             laShowItem(uil,crr,This,"primaries")->Flags|=LA_UI_FLAGS_DISABLED|LA_UI_FLAGS_NO_EVENT|LA_UI_FLAGS_TRANSPOSE;
             laShowItem(uil,crl,This,"gamma")->Flags|=LA_UI_FLAGS_DISABLED|LA_UI_FLAGS_NO_EVENT;
             laShowItem(uil,crl,This,"gamma")->Flags|=LA_UI_FLAGS_DISABLED|LA_UI_FLAGS_NO_EVENT;
-            laShowItem(uil,crl,This,"white_point")->Flags|=LA_UI_FLAGS_DISABLED|LA_UI_FLAGS_NO_EVENT;
+            laShowItem(uil,crl,This,"white_point")->Flags|=LA_UI_FLAGS_DISABLED|LA_UI_FLAGS_NO_EVENT|LA_UI_FLAGS_TRANSPOSE;
         }laEndCondition(uil,b1);
         }laEndCondition(uil,b1);
+#else
+        laShowLabel(uil,cr,"Support for EDID is only on Linux.",0,0)->Flags|=LA_TEXT_MONO;
+#endif
     laEndCondition(uil,b);
     laEndCondition(uil,b);
     
     
 }
 }

+ 1 - 0
resources/la_translations_zh-hans.c

@@ -19,6 +19,7 @@
 #include "la_5.h"
 #include "la_5.h"
 
 
 static const char *entries[]={
 static const char *entries[]={
+"Support for EDID is only on Linux.", "仅在Linux上支持EDID。"
 "No icc profiles for soft proofing has been loaded.", "未加载任何用于软打样的icc配置文件。",
 "No icc profiles for soft proofing has been loaded.", "未加载任何用于软打样的icc配置文件。",
 "Close Toolbox", "关闭工具箱",
 "Close Toolbox", "关闭工具箱",
 "Select a toolbox:", "选择一个工具箱:",
 "Select a toolbox:", "选择一个工具箱:",