*/}}
Parcourir la source

Multisample reconfigure fix

YimingWu il y a 1 jour
Parent
commit
7318264155
1 fichiers modifiés avec 20 ajouts et 3 suppressions
  1. 20 3
      la_tns_kernel.c

+ 20 - 3
la_tns_kernel.c

@@ -1807,9 +1807,8 @@ void tnsConfigure3DTexture(tnsTexture *t){
     tnsUnbindTexture();
 }
 
-void tnsReconfigureTextureParameters(int Multisample){
-    laListHandle* l = tKnlGetTextureList();
-    for(tnsOffscreen* o=T->Offscreens.pFirst;o;o=o->Item.pNext){ tnsTexture* t;
+void tnsReconfigureOffscreenMultisample(tnsOffscreen* o, int Multisample){
+     tnsTexture* t;
         for(int i=0;i<4;i++){
             t=o->pColor[i];
             if(t){
@@ -1843,6 +1842,24 @@ void tnsReconfigureTextureParameters(int Multisample){
             tnsConfigure2DTexture(t);
             tnsAttach2DOffscreenBuffer(o, GL_DEPTH_ATTACHMENT, t);
         }
+}
+void tnsReconfigureBlockMultisample(laBlock* b, int Multisample){
+    if(!b) return;
+    for(laPanel* p=b->Panels.pFirst;p;p=p->Item.pNext){
+        if(p->OffScr){ tnsReconfigureOffscreenMultisample(p->OffScr,Multisample); }
+    }
+    tnsReconfigureBlockMultisample(b->B1,Multisample);
+    tnsReconfigureBlockMultisample(b->B2,Multisample);
+}
+void tnsReconfigureTextureParameters(int Multisample){
+    laListHandle* l = tKnlGetTextureList();
+    for(laWindow* w=MAIN.Windows.pFirst;w;w=w->Item.pNext){
+        for(laPanel* p=w->Panels.pFirst;p;p=p->Item.pNext){
+            if(p->OffScr){ tnsReconfigureOffscreenMultisample(p->OffScr,Multisample); }
+        }
+        for(laLayout* l=w->Layouts.pFirst;l;l=l->Item.pNext){
+            tnsReconfigureBlockMultisample(l->FirstBlock,Multisample);
+        }
     }
 }