|
@@ -914,6 +914,8 @@ void our_CanvasDrawCanvas(laBoxedTheme *bt, OurPaint *unused_c, laUiItem* ui){
|
|
|
|
|
|
//our_CANVAS_TEST(bt,ui);
|
|
|
//glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,GL_ONE,GL_ONE);
|
|
|
+ tnsUseImmShader(); tnsEnableShaderv(T->immShader); tnsUniformColorMode(T->immShader,0);
|
|
|
+ tnsUniformOutputColorSpace(T->immShader, 0); tnsUniformColorComposing(T->immShader,0,0,0,0);
|
|
|
|
|
|
tnsDrawToOffscreen(e->OffScr,1,0);
|
|
|
tnsViewportWithScissor(0, 0, W, H);
|
|
@@ -930,14 +932,18 @@ void our_CanvasDrawOverlay(laUiItem* ui,int h){
|
|
|
laBoxedTheme *bt = (*ui->Type->Theme);
|
|
|
|
|
|
tnsUseImmShader(); tnsEnableShaderv(T->immShader); tnsUniformColorMode(T->immShader,2);
|
|
|
- tnsUniformOutputColorSpace(T->immShader, 0);
|
|
|
+ tnsUniformOutputColorSpace(T->immShader, 0); tnsUniformColorComposing(T->immShader,0,0,0,0);
|
|
|
if(Our->ColorInterpretation==OUR_CANVAS_INTERPRETATION_SRGB){ tnsUniformInputColorSpace(T->immShader, 0); }
|
|
|
elif(Our->ColorInterpretation==OUR_CANVAS_INTERPRETATION_CLAY){ tnsUniformInputColorSpace(T->immShader, 1); }
|
|
|
+ elif(Our->ColorInterpretation==OUR_CANVAS_INTERPRETATION_D65_P3){ tnsUniformInputColorSpace(T->immShader, 2); }
|
|
|
|
|
|
tnsDraw2DTextureDirectly(e->OffScr->pColor[0], ui->L, ui->U, ui->R - ui->L, ui->B - ui->U);
|
|
|
tnsFlush();
|
|
|
|
|
|
- tnsUniformColorMode(T->immShader, 0); tnsUniformInputColorSpace(T->immShader, 0); tnsUniformOutputColorSpace(T->immShader, MAIN.CurrentWindow->OutputColorSpace);
|
|
|
+ tnsUniformColorMode(T->immShader, 0); tnsUniformInputColorSpace(T->immShader, 0);
|
|
|
+ laWindow* w=MAIN.CurrentWindow;
|
|
|
+ tnsUniformOutputColorSpace(T->immShader, w->OutputColorSpace);
|
|
|
+ tnsUniformColorComposing(T->immShader,w->UseComposing,w->ComposingGamma,w->ComposingBlackpoint,w->OutputProofing);
|
|
|
if(Our->EnableBrushCircle && (!ocd->HideBrushCircle)){ our_CanvasDrawBrushCircle(ocd); }
|
|
|
|
|
|
if(!(ui->Flags&LA_UI_FLAGS_NO_OVERLAY)){
|
|
@@ -2224,7 +2230,8 @@ int ourmod_ImportLayer(laOperator* a, laEvent* e){
|
|
|
if (a->ConfirmData->Mode==LA_CONFIRM_OK){
|
|
|
FILE* fp=fopen(ex->FilePath->Ptr,"rb"); if(!fp) return LA_FINISHED;
|
|
|
if(!ol) ol=our_NewLayer("Imported");
|
|
|
- int OutMode=ex->OutputMode?ex->OutputMode:((Our->ColorInterpretation==OUR_CANVAS_INTERPRETATION_SRGB)?OUR_PNG_READ_OUTPUT_LINEAR_SRGB:OUR_PNG_READ_OUTPUT_LINEAR_CLAY);
|
|
|
+ int OutMode=ex->OutputMode?ex->OutputMode:((Our->ColorInterpretation==OUR_CANVAS_INTERPRETATION_SRGB)?OUR_PNG_READ_OUTPUT_LINEAR_SRGB:
|
|
|
+ (Our->ColorInterpretation==OUR_CANVAS_INTERPRETATION_D65_P3?OUR_PNG_READ_INPUT_D65_P3:OUR_PNG_READ_OUTPUT_LINEAR_CLAY));
|
|
|
int UseOffsets = ex->Offsets[0] && ex->Offsets[1];
|
|
|
our_LayerImportPNG(ol, fp, 0, ex->InputMode, OutMode, UseOffsets, ex->Offsets[0], ex->Offsets[1],0);
|
|
|
laNotifyUsers("our.canvas"); laNotifyUsers("our.canvas.layers"); laMarkMemChanged(Our->CanvasSaverDummyList.pFirst);
|