|
@@ -2759,10 +2759,14 @@ void ourset_LayerImage(OurLayer* l, void* pdata, uint32_t size){
|
|
|
OurThreadImportPNGDataMain emain={0};
|
|
|
emain.data=edata;emain.max=taskcount;emain.next=0; laSpinInit(&emain.lock);
|
|
|
|
|
|
+ LA_ACQUIRE_GLES_CONTEXT;
|
|
|
+
|
|
|
int StartY=Our->TempLoadY; uint64_t offset=0;
|
|
|
our_EnsureImageBufferOnRead(l,seg->Width,seg->Height,1,Our->TempLoadX,Our->TempLoadY);
|
|
|
int LoadY=Our->ImageH;
|
|
|
|
|
|
+ LA_LEAVE_GLES_CONTEXT;
|
|
|
+
|
|
|
for(int i=0;i<taskcount;i++){
|
|
|
LoadY-=l->ReadSegmented.H[i];
|
|
|
edata[i].main=&emain; edata[i].starty=LoadY; edata[i].data=&data[offset]; edata[i].l=l;
|
|
@@ -2774,11 +2778,17 @@ void ourset_LayerImage(OurLayer* l, void* pdata, uint32_t size){
|
|
|
laSpinDestroy(&emain.lock);
|
|
|
free(th); free(edata);
|
|
|
|
|
|
+ LA_ACQUIRE_GLES_CONTEXT;
|
|
|
+
|
|
|
our_ImageBufferToNative();
|
|
|
our_LayerToTexture(l); if(Our->ImageBuffer){ free(Our->ImageBuffer); Our->ImageBuffer=0; }
|
|
|
+
|
|
|
+ LA_LEAVE_GLES_CONTEXT;
|
|
|
return;
|
|
|
}
|
|
|
+ LA_ACQUIRE_GLES_CONTEXT;
|
|
|
our_LayerImportPNG(l, 0, data, 0, 0, 1, Our->TempLoadX, Our->TempLoadY,0);
|
|
|
+ LA_LEAVE_GLES_CONTEXT;
|
|
|
}
|
|
|
int ourget_LayerImageShouldSegment(OurLayer* unused){
|
|
|
return Our->SegmentedWrite;
|
|
@@ -2807,6 +2817,8 @@ void ourget_LayerImageSegmented(OurLayer* l, int* r_chunks, uint32_t* r_sizes, v
|
|
|
|
|
|
logPrintNew("\n Writing segmented layer...");
|
|
|
|
|
|
+ LA_LEAVE_GLES_CONTEXT;
|
|
|
+
|
|
|
int segy=0; int anyfailed=0;
|
|
|
thrd_t* th=calloc(threads,sizeof(thrd_t));
|
|
|
OurThreadExportPNGData* edata=calloc(threads,sizeof(OurThreadExportPNGData));
|
|
@@ -2819,6 +2831,8 @@ void ourget_LayerImageSegmented(OurLayer* l, int* r_chunks, uint32_t* r_sizes, v
|
|
|
for(int i=0;i<threads;i++){ seg->Sizes[i]=r_sizes[i+1]; anyfailed+=edata[i].fail; }
|
|
|
free(th); free(edata);
|
|
|
|
|
|
+ LA_ACQUIRE_GLES_CONTEXT;
|
|
|
+
|
|
|
if(Our->ImageBuffer){ free(Our->ImageBuffer); Our->ImageBuffer=0; }
|
|
|
if(anyfailed){ *r_chunks=0;
|
|
|
for(int i=0;i<threads;i++){ if(pointers[i]){ free(pointers[i]); pointers[i]=0; } }
|
|
@@ -2985,6 +2999,7 @@ int ourget_CanvasVersion(void* unused){
|
|
|
}
|
|
|
void ourpost_Canvas(void* unused){
|
|
|
if(Our->CanvasVersion<20){ Our->BackgroundFactor=0; Our->BackgroundType=0; }
|
|
|
+ LA_ACQUIRE_GLES_CONTEXT;
|
|
|
}
|
|
|
|
|
|
#define OUR_ADD_PRESSURE_SWITCH(p) \
|
|
@@ -3746,10 +3761,10 @@ int ourInit(){
|
|
|
Our->BorderAlpha=0.6;
|
|
|
|
|
|
#ifdef LA_USE_GLES
|
|
|
- Our->DefaultScale=0.5;
|
|
|
+ Our->DefaultScale=1.0;
|
|
|
Our->SpectralMode=0;
|
|
|
#else
|
|
|
- Our->DefaultScale=1.0;
|
|
|
+ Our->DefaultScale=0.5;
|
|
|
Our->SpectralMode=1;
|
|
|
#endif
|
|
|
|