Index: neercs/trunk/src/wm.c
===================================================================
--- neercs/trunk/src/wm.c	(revision 3927)
+++ neercs/trunk/src/wm.c	(revision 3929)
@@ -28,13 +28,13 @@
 {
     caca_canvas_t *old, *new;
-
+    
     if(w==s->w && h==s->h) return;
     if(w <= 0 || h <= 0) return;
-
+    
     s->changed = 1;
-
+    
     s->w = w;
     s->h = h;
-
+    
     /* caca_set_canvas_boundaries() is bugged as hell,
      * so let's resize it by hands */
@@ -46,5 +46,5 @@
     caca_free_canvas(old);
     set_tty_size(s->fd, w, h);
-
+    
     s->orig_w = s->w;
     s->orig_h = s->h;
@@ -58,21 +58,21 @@
     
     if(!screen_list->count) return;
-
+    
     switch(screen_list->wm_type)
     {
-    case WM_CARD:
-        update_windows_props_cards(screen_list);
-        break;
-    case WM_HSPLIT:
-        update_windows_props_hsplit(screen_list);
-        break;
-    case WM_VSPLIT:
-        update_windows_props_vsplit(screen_list);
-        break;
-    case WM_FULL:
-    case WM_CUBE:
-    default:
-        update_windows_props_full(screen_list);
-        break;
+        case WM_CARD:
+            update_windows_props_cards(screen_list);
+            break;
+        case WM_HSPLIT:
+            update_windows_props_hsplit(screen_list);
+            break;
+        case WM_VSPLIT:
+            update_windows_props_vsplit(screen_list);
+            break;
+        case WM_FULL:
+        case WM_CUBE:
+        default:
+            update_windows_props_full(screen_list);
+            break;
     }
 }
@@ -83,5 +83,5 @@
     int w = (screen_list->width / screen_list->count) - 1;
     int h = screen_list->height - 2;
-
+    
     for(i = 0; i < screen_list->count; i++)
     {
@@ -106,5 +106,5 @@
     int w = screen_list->width - 2;
     int h = (screen_list->height) / screen_list->count;
-
+    
     for(i = 0; i < screen_list->count; i++)
     {
@@ -130,5 +130,5 @@
     int w = screen_list->width - 2;
     int h = screen_list->height - 2;
-
+    
     for(i = 0; i < screen_list->count; i++)
     {
@@ -136,5 +136,5 @@
         screen_list->screen[i]->x = 1;
         screen_list->screen[i]->y = 1;
-
+        
         resize_screen(screen_list->screen[i],
                       w, h);
@@ -151,5 +151,5 @@
     int x = 1;
     int y = screen_list->count;
-
+    
     for(i = 0; i < screen_list->count; i++)
     {
@@ -157,5 +157,5 @@
         screen_list->screen[i]->x = x;
         screen_list->screen[i]->y = y;
-
+        
         resize_screen(screen_list->screen[i],
                       w, h);
@@ -442,5 +442,5 @@
 {
     int i;
-        
+    
     if(!screen_list->cube.in_switch) {
         wm_refresh_full(screen_list);
@@ -449,5 +449,5 @@
     	
 #define CUBE_TIME 1000000
-
+        
         
     	
@@ -485,7 +485,6 @@
             	angle = -angle;
             
-           
             for(i = 0; i < 12; i++) {
-            
+                
                 cube_transformed[i][2] = cube[i][2]*cos(angle) - cube[i][0]*sin(angle);
                 cube_transformed[i][0] = cube[i][2]*sin(angle) + cube[i][0]*cos(angle);
@@ -503,33 +502,42 @@
                 cube_projected[i][1] *= screen_list->height;
                 
-
+                
             }
+            caca_set_color_ansi(screen_list->cv, CACA_WHITE, CACA_BLACK);
             caca_clear_canvas(screen_list->cv);
             
 #if defined HAVE_CACA_TRIANGLE_TEXTURING
+
             caca_canvas_t *first =  screen_list->screen[screen_list->prevpty]->cv;
             caca_canvas_t *second = screen_list->screen[screen_list->pty]->cv;
-
+            
+            int coords[6];
+            float uv[6];
+            
+            
             if(get_direction(cube_projected[0][0], cube_projected[0][1], 
                              cube_projected[1][0], cube_projected[1][1], 
                              cube_projected[2][0], cube_projected[2][1]) >=0) {
+                coords[0] = cube_projected[0][0];  coords[1] = cube_projected[0][1];
+                coords[2] = cube_projected[1][0];  coords[3] = cube_projected[1][1], 
+                coords[4] = cube_projected[2][0];  coords[5] = cube_projected[2][1],
+                uv[0] = 1;  uv[1] = 1;
+                uv[2] = 0;  uv[3] = 1;
+                uv[4] = 0;  uv[5] = 0;
                 caca_fill_triangle_textured(screen_list->cv, 
-                                            cube_projected[0][0], cube_projected[0][1], 
-                                            cube_projected[1][0], cube_projected[1][1], 
-                                            cube_projected[2][0], cube_projected[2][1], 
-                                            1, 1,
-                                            0, 1,
-                                            0, 0,
-                                            first);
+                                            coords,
+                                            first,
+                                            uv);
+                
+                coords[0] = cube_projected[0][0];  coords[1] = cube_projected[0][1];
+                coords[2] = cube_projected[2][0];  coords[3] = cube_projected[2][1], 
+                coords[4] = cube_projected[3][0];  coords[5] = cube_projected[3][1],
+                uv[0] = 1;  uv[1] = 1;
+                uv[2] = 0;  uv[3] = 0;
+                uv[4] = 1;  uv[5] = 0;      
                 caca_fill_triangle_textured(screen_list->cv, 
-                                            cube_projected[0][0], cube_projected[0][1], 
-                                            cube_projected[2][0], cube_projected[2][1], 
-                                            cube_projected[3][0], cube_projected[3][1], 
-                                            1, 1,
-                                            0, 0,
-                                            1, 0,
-                                            first);
-                
-                
+                                            coords, 
+                                            first,
+                                            uv);
                 caca_set_color_ansi(screen_list->cv, CACA_LIGHTGREEN, CACA_BLACK);
                 caca_draw_thin_line(screen_list->cv, 
@@ -554,34 +562,40 @@
                                  cube_projected[5][0], cube_projected[5][1], 
                                  cube_projected[6][0], cube_projected[6][1]) >=0) {
-                caca_fill_triangle_textured(screen_list->cv, 
-                                            cube_projected[4][0], cube_projected[4][1], 
-                                            cube_projected[5][0], cube_projected[5][1], 
-                                            cube_projected[6][0], cube_projected[6][1], 
-                                            1, 1,
-                                            0, 1,
-                                            0, 0,
-                                            second);
-                caca_fill_triangle_textured(screen_list->cv, 
-                                            cube_projected[4][0], cube_projected[4][1], 
-                                            cube_projected[6][0], cube_projected[6][1], 
-                                            cube_projected[7][0], cube_projected[7][1], 
-                                            1, 1,
-                                            0, 0,
-                                            1, 0,
-                                            second);
-                caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK);
-
-                caca_draw_thin_line(screen_list->cv, 
-                                    cube_projected[4][0], cube_projected[4][1], 
-                                    cube_projected[5][0], cube_projected[5][1]);
-                caca_draw_thin_line(screen_list->cv, 
-                                    cube_projected[5][0], cube_projected[5][1], 
-                                    cube_projected[6][0], cube_projected[6][1]);
-                caca_draw_thin_line(screen_list->cv, 
-                                    cube_projected[6][0], cube_projected[6][1], 
-                                    cube_projected[7][0], cube_projected[7][1]);
-                caca_draw_thin_line(screen_list->cv, 
-                                    cube_projected[7][0], cube_projected[7][1], 
-                                    cube_projected[4][0], cube_projected[4][1]);
+                    coords[0] = cube_projected[4][0];  coords[1] = cube_projected[4][1];
+                    coords[2] = cube_projected[5][0];  coords[3] = cube_projected[5][1], 
+                    coords[4] = cube_projected[6][0];  coords[5] = cube_projected[6][1],
+                    uv[0] = 1;  uv[1] = 1;
+                    uv[2] = 0;  uv[3] = 1;
+                    uv[4] = 0;  uv[5] = 0;
+                    
+                    
+                	caca_fill_triangle_textured(screen_list->cv, 
+                                                coords,
+                                                second,
+                                                uv);
+                    coords[0] = cube_projected[4][0];  coords[1] = cube_projected[4][1];
+                    coords[2] = cube_projected[6][0];  coords[3] = cube_projected[6][1], 
+                    coords[4] = cube_projected[7][0];  coords[5] = cube_projected[7][1],
+                    uv[0] = 1;  uv[1] = 1;
+                    uv[2] = 0;  uv[3] = 0;
+                    uv[4] = 1;  uv[5] = 0;      
+                	caca_fill_triangle_textured(screen_list->cv, 
+                                                coords,
+                                                second,
+                                                uv);
+                    caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK);
+                    
+                    caca_draw_thin_line(screen_list->cv, 
+                                        cube_projected[4][0], cube_projected[4][1], 
+                                        cube_projected[5][0], cube_projected[5][1]);
+                    caca_draw_thin_line(screen_list->cv, 
+                                        cube_projected[5][0], cube_projected[5][1], 
+                                        cube_projected[6][0], cube_projected[6][1]);
+                    caca_draw_thin_line(screen_list->cv, 
+                                        cube_projected[6][0], cube_projected[6][1], 
+                                        cube_projected[7][0], cube_projected[7][1]);
+                    caca_draw_thin_line(screen_list->cv, 
+                                        cube_projected[7][0], cube_projected[7][1], 
+                                        cube_projected[4][0], cube_projected[4][1]);
                 }
                 
@@ -591,36 +605,45 @@
                 if(get_direction(cube_projected[9][0], cube_projected[9][1], 
                                  cube_projected[8][0], cube_projected[8][1], 
-                                 cube_projected[10][0], cube_projected[10][1])) {
-                caca_fill_triangle_textured(screen_list->cv, 
-                                            cube_projected[9][0], cube_projected[9][1], 
-                                            cube_projected[8][0], cube_projected[8][1], 
-                                            cube_projected[10][0], cube_projected[10][1], 
-                                            1, 1,
-                                            0, 1,
-                                            1, 0,
-                                            second);
-                caca_fill_triangle_textured(screen_list->cv, 
-                                            cube_projected[8][0], cube_projected[8][1], 
-                                            cube_projected[10][0], cube_projected[10][1], 
-                                            cube_projected[11][0], cube_projected[11][1], 
-                                            0, 1,
-                                            1, 0,
-                                            0, 0,
-                                            second);
-                caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK);
-                caca_draw_thin_line(screen_list->cv, 
-                                    cube_projected[8][0], cube_projected[8][1], 
-                                    cube_projected[9][0], cube_projected[9][1]);
-                caca_draw_thin_line(screen_list->cv, 
-                                    cube_projected[9][0], cube_projected[9][1], 
-                                    cube_projected[10][0], cube_projected[10][1]);
-                caca_draw_thin_line(screen_list->cv, 
-                                    cube_projected[10][0], cube_projected[10][1], 
-                                    cube_projected[11][0], cube_projected[11][1]);
-                caca_draw_thin_line(screen_list->cv, 
-                                    cube_projected[11][0], cube_projected[11][1], 
-                                    cube_projected[8][0], cube_projected[8][1]);
+                                 cube_projected[10][0], cube_projected[10][1]) > 0.0f) {
+                    coords[0] = cube_projected[9][0];  coords[1] = cube_projected[9][1];
+                    coords[2] = cube_projected[8][0];  coords[3] = cube_projected[8][1], 
+                    coords[4] = cube_projected[10][0];  coords[5] = cube_projected[10][1],
+                    uv[0] = 1;  uv[1] = 1;
+                    uv[2] = 0;  uv[3] = 1;
+                    uv[4] = 1;  uv[5] = 0;
+                    
+                    caca_fill_triangle_textured(screen_list->cv, 
+                                                coords,
+                                                second,
+                                                uv);
+                    
+                    coords[0] = cube_projected[8][0];  coords[1] = cube_projected[8][1];
+                    coords[2] = cube_projected[10][0];  coords[3] = cube_projected[10][1], 
+                    coords[4] = cube_projected[11][0];  coords[5] = cube_projected[11][1],
+                    uv[0] = 0;  uv[1] = 1;
+                    uv[2] = 1;  uv[3] = 0;
+                    uv[4] = 0;  uv[5] = 0;
+                    
+                    caca_fill_triangle_textured(screen_list->cv, 
+                                                coords,
+                                                second,
+                                                uv);
+                    caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK);
+                    caca_draw_thin_line(screen_list->cv, 
+                                        cube_projected[8][0], cube_projected[8][1], 
+                                        cube_projected[9][0], cube_projected[9][1]);
+                    caca_draw_thin_line(screen_list->cv, 
+                                        cube_projected[9][0], cube_projected[9][1], 
+                                        cube_projected[10][0], cube_projected[10][1]);
+                    caca_draw_thin_line(screen_list->cv, 
+                                        cube_projected[10][0], cube_projected[10][1], 
+                                        cube_projected[11][0], cube_projected[11][1]);
+                    caca_draw_thin_line(screen_list->cv, 
+                                        cube_projected[11][0], cube_projected[11][1], 
+                                        cube_projected[8][0], cube_projected[8][1]);
                 }
             }
+#else
+#   warning temporary : HAVE_CACA_TRIANGLE_TEXTURING is not defined
 #endif
             
