*/}}
YimingWu 21 hodín pred
rodič
commit
753ecbf3dd

+ 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){
             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));
             strSafeDestroy(&additional);
             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);
     if(MAIN.EnableColorManagement){
+        la_UseWindowColorCorrection(w);
         tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
         tnsUniformShowColorOverflowStripes(T->immShader,w->OutputShowStripes);
         tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
-        la_UseWindowColorCorrection(w);
     }else{
         tnsUniformOutputColorSpace(T->immShader,0);
         tnsUniformShowColorOverflowStripes(T->immShader,0);
@@ -3173,9 +3173,9 @@ void la_BlockDefDrawSelf(laBlock *b, int CH){
     tnsUseImmShader(); tnsEnableShaderv(T->immShader);
     if(MAIN.EnableColorManagement){
         laWindow* w=MAIN.CurrentWindow;
+        la_UseWindowColorCorrection(w);
         tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
         tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
-        la_UseWindowColorCorrection(w);
     }else{
         tnsUniformOutputColorSpace(T->immShader,0);
         tnsUniformColorComposing(T->immShader,0,0,0,0);
@@ -3235,9 +3235,9 @@ void la_BlockDefDrawSelfEmpty(laBlock *b, int CH){
     tnsUseImmShader(); tnsEnableShaderv(T->immShader);
     if(MAIN.EnableColorManagement){
         laWindow* w=MAIN.CurrentWindow;
+        la_UseWindowColorCorrection(w);
         tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
         tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
-        la_UseWindowColorCorrection(w);
     }else{
         tnsUniformOutputColorSpace(T->immShader,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;
             tnsUseShader(T->immShader);tnsEnableShaderv(T->immShader);
             if(MAIN.EnableColorManagement){
+                la_UseWindowColorCorrection(w);
                 tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
                 tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
-                la_UseWindowColorCorrection(w);
             }else{
                 tnsUniformOutputColorSpace(T->immShader,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 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,"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);
             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);

+ 5 - 1
resources/la_templates.c

@@ -1360,6 +1360,7 @@ void laui_Screen(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *U
     laEndRow(uil,b);
     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;
+#ifdef LA_LINUX
         laShowSeparator(uil,c);
         laUiItem* b1=laOnConditionToggle(uil,cl,0,0,0,0,0);{ strSafeSet(&b1->ExtraInstructions,"icon=🖉;");
             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);{
             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,"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);
+#else
+        laShowLabel(uil,cr,"Support for EDID is only on Linux.",0,0)->Flags|=LA_TEXT_MONO;
+#endif
     laEndCondition(uil,b);
     
 }

+ 1 - 0
resources/la_translations_zh-hans.c

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