|  | @@ -479,6 +479,11 @@ int la_CreateSystemWindow(laWindow *window, int SyncToVBlank){
 | 
	
		
			
				|  |  |      la_SetCurrentGLContextDebug();
 | 
	
		
			
				|  |  |      glGenVertexArrays(1,&window->vao); tnsBindVertexArray(window->vao);
 | 
	
		
			
				|  |  |      la_SetupWindowGLStates(window);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    window->OutputShowStripes=1; window->Redraw=1;
 | 
	
		
			
				|  |  | +    window->GLDebugNeedsUpdate=1;
 | 
	
		
			
				|  |  | +    window->UseComposing=0; window->ComposingGamma=1.0; window->ComposingBlackpoint=0.0;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      return 1;
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1835,9 +1840,19 @@ void la_PanelDrawToWindow(laPanel *p, laWindow *w){
 | 
	
		
			
				|  |  |      if(MAIN.EnableColorManagement){
 | 
	
		
			
				|  |  |          tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
 | 
	
		
			
				|  |  |          tnsUniformShowColorOverflowStripes(T->immShader,w->OutputShowStripes);
 | 
	
		
			
				|  |  | +        tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint);
 | 
	
		
			
				|  |  |      }else{
 | 
	
		
			
				|  |  |          tnsUniformOutputColorSpace(T->immShader,0);
 | 
	
		
			
				|  |  |          tnsUniformShowColorOverflowStripes(T->immShader,0);
 | 
	
		
			
				|  |  | +        tnsUniformColorComposing(T->immShader,0,0,0);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    if (p->Mode && (!p->AnimationMode || (p->AnimationMode && p->AnimationRatio > 0.99))){
 | 
	
		
			
				|  |  | +        tnsUseNoTexture();
 | 
	
		
			
				|  |  | +        if (!p->IsMenuPanel){
 | 
	
		
			
				|  |  | +            la_PanelDrawDescendBorder(p, (*p->BT), MAIN.SolidShadowLength, MAIN.FloatingAlpha);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        tnsFlush();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      switch (p->AnimationMode){
 | 
	
	
		
			
				|  | @@ -1933,6 +1948,7 @@ void la_PanelDrawToWindow(laPanel *p, laWindow *w){
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      tnsUniformOutputColorSpace(T->immShader,0);
 | 
	
		
			
				|  |  |      tnsUniformShowColorOverflowStripes(T->immShader,0);
 | 
	
		
			
				|  |  | +    tnsUniformColorComposing(T->immShader,0,0,0);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  void la_PanelDrawToOffsceen(laPanel *p, laUiList *uil){
 | 
	
		
			
				|  |  |      if (p->OffScr){ tnsEnsureOffscreenStatus(p->OffScr, p->W,p->H); }
 | 
	
	
		
			
				|  | @@ -2064,17 +2080,7 @@ void la_PanelDefDraw(laWindow *w, laPanel *p, laBoxedTheme *bt){
 | 
	
		
			
				|  |  |          tnsDrawToScreen();
 | 
	
		
			
				|  |  |          tnsViewportWithScissor(0, 0, w->CW, w->CH);
 | 
	
		
			
				|  |  |          tnsOrtho(0, w->CW, w->CH, 0, -100, 100);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        if (p->Mode && (!p->AnimationMode || (p->AnimationMode && p->AnimationRatio > 0.99))){
 | 
	
		
			
				|  |  | -            tnsUseNoTexture();
 | 
	
		
			
				|  |  | -            if (!p->IsMenuPanel){
 | 
	
		
			
				|  |  | -                la_PanelDrawDescendBorder(p, bt, MAIN.SolidShadowLength, MAIN.FloatingAlpha);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            tnsFlush();
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          la_PanelDrawToWindow(p, w);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      }elif (p->AnimationMode){
 | 
	
		
			
				|  |  |          la_PanelDrawToWindow(p, w);
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -2211,8 +2217,10 @@ void la_BlockDefDrawSelf(laBlock *b, int CH){
 | 
	
		
			
				|  |  |      tnsUseImmShader(); tnsEnableShaderv(T->immShader);
 | 
	
		
			
				|  |  |      if(MAIN.EnableColorManagement){
 | 
	
		
			
				|  |  |          tnsUniformOutputColorSpace(T->immShader,MAIN.CurrentWindow->OutputColorSpace);
 | 
	
		
			
				|  |  | +        tnsUniformColorComposing(T->immShader,MAIN.CurrentWindow->UseComposing,MAIN.CurrentWindow->ComposingGamma,MAIN.CurrentWindow->ComposingBlackpoint);
 | 
	
		
			
				|  |  |      }else{
 | 
	
		
			
				|  |  |          tnsUniformOutputColorSpace(T->immShader,0);
 | 
	
		
			
				|  |  | +        tnsUniformColorComposing(T->immShader,0,0,0);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      for (p = b->Panels.pFirst; p; p = p->Item.pNext){
 | 
	
	
		
			
				|  | @@ -2276,6 +2284,7 @@ void la_BlockDefDrawSelf(laBlock *b, int CH){
 | 
	
		
			
				|  |  |      tnsFlush();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      tnsUniformOutputColorSpace(T->immShader,0);
 | 
	
		
			
				|  |  | +    tnsUniformColorComposing(T->immShader,0,0,0);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  void la_BlockDefDrawSelfEmpty(laBlock *b, int CH){
 | 
	
		
			
				|  |  |      laBoxedTheme *bt = _LA_THEME_PANEL;
 | 
	
	
		
			
				|  | @@ -2284,8 +2293,10 @@ void la_BlockDefDrawSelfEmpty(laBlock *b, int CH){
 | 
	
		
			
				|  |  |      tnsUseImmShader(); tnsEnableShaderv(T->immShader);
 | 
	
		
			
				|  |  |      if(MAIN.EnableColorManagement){
 | 
	
		
			
				|  |  |          tnsUniformOutputColorSpace(T->immShader,MAIN.CurrentWindow->OutputColorSpace);
 | 
	
		
			
				|  |  | +        tnsUniformColorComposing(T->immShader,MAIN.CurrentWindow->UseComposing,MAIN.CurrentWindow->ComposingGamma,MAIN.CurrentWindow->ComposingBlackpoint);
 | 
	
		
			
				|  |  |      }else{
 | 
	
		
			
				|  |  |          tnsUniformOutputColorSpace(T->immShader,0);
 | 
	
		
			
				|  |  | +        tnsUniformColorComposing(T->immShader,0,0,0);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      tnsUseNoTexture();
 | 
	
	
		
			
				|  | @@ -2302,6 +2313,7 @@ void la_BlockDefDrawSelfEmpty(laBlock *b, int CH){
 | 
	
		
			
				|  |  |      tnsFlush();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      tnsUniformOutputColorSpace(T->immShader,0);
 | 
	
		
			
				|  |  | +    tnsUniformColorComposing(T->immShader,0,0,0);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  void la_BlockDefDrawRecursive(laWindow *w, laBoxedTheme *bt, laBlock *b){
 | 
	
		
			
				|  |  |      if (b->B1){
 | 
	
	
		
			
				|  | @@ -2405,9 +2417,11 @@ void la_WindowDefDraw(laWindow *w, laBoxedTheme *bt){
 | 
	
		
			
				|  |  |          if(p->Refresh){
 | 
	
		
			
				|  |  |              tnsUseShader(T->immShader);tnsEnableShaderv(T->immShader);
 | 
	
		
			
				|  |  |              if(MAIN.EnableColorManagement){
 | 
	
		
			
				|  |  | -                tnsUniformOutputColorSpace(T->immShader,MAIN.CurrentWindow->OutputColorSpace);
 | 
	
		
			
				|  |  | +                tnsUniformOutputColorSpace(T->immShader,w->OutputColorSpace);
 | 
	
		
			
				|  |  | +                tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint);
 | 
	
		
			
				|  |  |              }else{
 | 
	
		
			
				|  |  |                  tnsUniformOutputColorSpace(T->immShader,0);
 | 
	
		
			
				|  |  | +                tnsUniformColorComposing(T->immShader,0,0,0);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              if(p->Refresh&LA_TAG_RECALC){
 | 
	
		
			
				|  |  |                  laRecalcPanelImmediate(p);
 | 
	
	
		
			
				|  | @@ -2500,8 +2514,6 @@ laWindow *laDesignWindow(int X, int Y, int W, int H){
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      strSafeSet(&n->Title, "Empty SYSWINDOW");
 | 
	
		
			
				|  |  |      n->X = X; n->Y = Y; n->W = W; n->H = H;
 | 
	
		
			
				|  |  | -    n->OutputShowStripes=1; n->Redraw=1;
 | 
	
		
			
				|  |  | -    n->GLDebugNeedsUpdate=1;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      la_CreateSystemWindow(n, MAIN.Windows.pFirst!=0);
 | 
	
		
			
				|  |  |  
 |