573
546
streamingBuffer->end ();
574
547
streamingBuffer->render (transform);
577
streamingBuffer->begin (GL_TRIANGLE_STRIP);
588
vertexData[0] = wx - off;
589
vertexData[1] = wy - off;
591
vertexData[3] = wx - off;
595
vertexData[7] = wy - off;
601
streamingBuffer->addTexCoords (0, 4, textureData);
602
streamingBuffer->addVertices (4, vertexData);
603
streamingBuffer->addColors (1, color);
605
streamingBuffer->end ();
606
streamingBuffer->render (transform);
609
streamingBuffer->begin (GL_TRIANGLE_STRIP);
620
vertexData[0] = wx + width;
621
vertexData[1] = wy - off;
623
vertexData[3] = wx + width;
626
vertexData[6] = wx + width + off;
627
vertexData[7] = wy - off;
629
vertexData[9] = wx + width + off;
633
streamingBuffer->addTexCoords (0, 4, textureData);
634
streamingBuffer->addVertices (4, vertexData);
635
streamingBuffer->addColors (1, color);
637
streamingBuffer->end ();
638
streamingBuffer->render (transform);
641
streamingBuffer->begin (GL_TRIANGLE_STRIP);
652
vertexData[0] = wx - off;
653
vertexData[1] = wy + height;
655
vertexData[3] = wx - off;
656
vertexData[4] = wy + height + off;
659
vertexData[7] = wy + height;
662
vertexData[10] = wy + height + off;
665
streamingBuffer->addTexCoords (0, 4, textureData);
666
streamingBuffer->addVertices (4, vertexData);
667
streamingBuffer->addColors (1, color);
669
streamingBuffer->end ();
670
streamingBuffer->render (transform);
673
streamingBuffer->begin (GL_TRIANGLE_STRIP);
684
vertexData[0] = wx + width;
685
vertexData[1] = wy + height;
687
vertexData[3] = wx + width;
688
vertexData[4] = wy + height + off;
690
vertexData[6] = wx + width + off;
691
vertexData[7] = wy + height;
693
vertexData[9] = wx + width + off;
694
vertexData[10] = wy + height + off;
697
streamingBuffer->addTexCoords (0, 4, textureData);
698
streamingBuffer->addVertices (4, vertexData);
699
streamingBuffer->addColors (1, color);
701
streamingBuffer->end ();
702
streamingBuffer->render (transform);
705
streamingBuffer->begin (GL_TRIANGLE_STRIP);
717
vertexData[1] = wy - off;
722
vertexData[6] = wx + width;
723
vertexData[7] = wy - off;
725
vertexData[9] = wx + width;
729
streamingBuffer->addTexCoords (0, 4, textureData);
730
streamingBuffer->addVertices (4, vertexData);
731
streamingBuffer->addColors (1, color);
733
streamingBuffer->end ();
734
streamingBuffer->render (transform);
737
streamingBuffer->begin (GL_TRIANGLE_STRIP);
749
vertexData[1] = wy + height;
752
vertexData[4] = wy + height + off;
754
vertexData[6] = wx + width;
755
vertexData[7] = wy + height;
757
vertexData[9] = wx + width;
758
vertexData[10] = wy + height + off;
761
streamingBuffer->addTexCoords (0, 4, textureData);
762
streamingBuffer->addVertices (4, vertexData);
763
streamingBuffer->addColors (1, color);
765
streamingBuffer->end ();
766
streamingBuffer->render (transform);
769
streamingBuffer->begin (GL_TRIANGLE_STRIP);
780
vertexData[0] = wx - off;
783
vertexData[3] = wx - off;
784
vertexData[4] = wy + height;
790
vertexData[10] = wy + height;
793
streamingBuffer->addTexCoords (0, 4, textureData);
794
streamingBuffer->addVertices (4, vertexData);
795
streamingBuffer->addColors (1, color);
797
streamingBuffer->end ();
798
streamingBuffer->render (transform);
801
streamingBuffer->begin (GL_TRIANGLE_STRIP);
812
vertexData[0] = wx + width;
815
vertexData[3] = wx + width;
816
vertexData[4] = wy + height;
818
vertexData[6] = wx + width + off;
821
vertexData[9] = wx + width + off;
822
vertexData[10] = wy + height;
549
streamingBuffer->begin (GL_TRIANGLE_STRIP);
560
vertexData[0] = wxMinusOff;
561
vertexData[1] = wyMinusOff;
563
vertexData[3] = wxMinusOff;
567
vertexData[7] = wyMinusOff;
573
streamingBuffer->addTexCoords (0, 4, textureData);
574
streamingBuffer->addVertices (4, vertexData);
575
streamingBuffer->addColors (1, color);
577
streamingBuffer->end ();
578
streamingBuffer->render (transform);
580
streamingBuffer->begin (GL_TRIANGLE_STRIP);
591
vertexData[0] = wxPlusWidth;
592
vertexData[1] = wyMinusOff;
594
vertexData[3] = wxPlusWidth;
597
vertexData[6] = wxPlusWPlusOff;
598
vertexData[7] = wyMinusOff;
600
vertexData[9] = wxPlusWPlusOff;
604
streamingBuffer->addTexCoords (0, 4, textureData);
605
streamingBuffer->addVertices (4, vertexData);
606
streamingBuffer->addColors (1, color);
608
streamingBuffer->end ();
609
streamingBuffer->render (transform);
611
streamingBuffer->begin (GL_TRIANGLE_STRIP);
622
vertexData[0] = wxMinusOff;
623
vertexData[1] = wyPlusHeight;
625
vertexData[3] = wxMinusOff;
626
vertexData[4] = wyPlusHPlusOff;
629
vertexData[7] = wyPlusHeight;
632
vertexData[10] = wyPlusHPlusOff;
635
streamingBuffer->addTexCoords (0, 4, textureData);
636
streamingBuffer->addVertices (4, vertexData);
637
streamingBuffer->addColors (1, color);
639
streamingBuffer->end ();
640
streamingBuffer->render (transform);
642
streamingBuffer->begin (GL_TRIANGLE_STRIP);
653
vertexData[0] = wxPlusWidth;
654
vertexData[1] = wyPlusHeight;
656
vertexData[3] = wxPlusWidth;
657
vertexData[4] = wyPlusHPlusOff;
659
vertexData[6] = wxPlusWPlusOff;
660
vertexData[7] = wyPlusHeight;
662
vertexData[9] = wxPlusWPlusOff;
663
vertexData[10] = wyPlusHPlusOff;
666
streamingBuffer->addTexCoords (0, 4, textureData);
667
streamingBuffer->addVertices (4, vertexData);
668
streamingBuffer->addColors (1, color);
670
streamingBuffer->end ();
671
streamingBuffer->render (transform);
673
streamingBuffer->begin (GL_TRIANGLE_STRIP);
685
vertexData[1] = wyMinusOff;
690
vertexData[6] = wxPlusWidth;
691
vertexData[7] = wyMinusOff;
693
vertexData[9] = wxPlusWidth;
697
streamingBuffer->addTexCoords (0, 4, textureData);
698
streamingBuffer->addVertices (4, vertexData);
699
streamingBuffer->addColors (1, color);
701
streamingBuffer->end ();
702
streamingBuffer->render (transform);
704
streamingBuffer->begin (GL_TRIANGLE_STRIP);
716
vertexData[1] = wyPlusHeight;
719
vertexData[4] = wyPlusHPlusOff;
721
vertexData[6] = wxPlusWidth;
722
vertexData[7] = wyPlusHeight;
724
vertexData[9] = wxPlusWidth;
725
vertexData[10] = wyPlusHPlusOff;
728
streamingBuffer->addTexCoords (0, 4, textureData);
729
streamingBuffer->addVertices (4, vertexData);
730
streamingBuffer->addColors (1, color);
732
streamingBuffer->end ();
733
streamingBuffer->render (transform);
735
streamingBuffer->begin (GL_TRIANGLE_STRIP);
746
vertexData[0] = wxMinusOff;
749
vertexData[3] = wxMinusOff;
750
vertexData[4] = wyPlusHeight;
756
vertexData[10] = wyPlusHeight;
759
streamingBuffer->addTexCoords (0, 4, textureData);
760
streamingBuffer->addVertices (4, vertexData);
761
streamingBuffer->addColors (1, color);
763
streamingBuffer->end ();
764
streamingBuffer->render (transform);
766
streamingBuffer->begin (GL_TRIANGLE_STRIP);
777
vertexData[0] = wxPlusWidth;
780
vertexData[3] = wxPlusWidth;
781
vertexData[4] = wyPlusHeight;
783
vertexData[6] = wxPlusWPlusOff;
786
vertexData[9] = wxPlusWPlusOff;
787
vertexData[10] = wyPlusHeight;
823
788
vertexData[11] = 0;
825
790
streamingBuffer->addTexCoords (0, 4, textureData);
1103
1077
ThumbWindow::glPaint (const GLWindowPaintAttrib &attrib,
1104
const GLMatrix &transform,
1078
const GLMatrix &transform,
1105
1079
const CompRegion ®ion,
1110
1082
THUMB_SCREEN (screen);
1112
status = gWindow->glPaint (attrib, transform, region, mask);
1084
bool status = gWindow->glPaint (attrib, transform, region, mask);
1114
if (!ts->optionGetAlwaysOnTop () && ts->x == screen->vp ().x () &&
1115
ts->y == screen->vp ().y ())
1086
if (!ts->optionGetAlwaysOnTop () &&
1087
ts->x == screen->vp ().x () &&
1088
ts->y == screen->vp ().y ())
1117
1090
GLMatrix sTransform = transform;
1118
if (ts->oldThumb.opacity > 0.0 && ts->oldThumb.win &&
1092
if (ts->oldThumb.opacity &&
1119
1094
ts->oldThumb.dock == window)
1121
1095
ts->thumbPaintThumb (&ts->oldThumb, &sTransform);
1124
if (ts->thumb.opacity > 0.0 && ts->thumb.win && ts->thumb.dock == window)
1097
if (ts->thumb.opacity &&
1099
ts->thumb.dock == window)
1126
1100
ts->thumbPaintThumb (&ts->thumb, &sTransform);
1134
ThumbWindow::damageRect (bool initial,
1135
const CompRect &rect)
1107
ThumbWindow::damageRect (bool initial,
1108
const CompRect &rect)
1137
1110
THUMB_SCREEN (screen);
1139
if (ts->thumb.win == window && ts->thumb.opacity > 0.0)
1112
if (ts->thumb.win == window && ts->thumb.opacity)
1140
1113
ts->damageThumbRegion (&ts->thumb);
1142
if (ts->oldThumb.win == window && ts->oldThumb.opacity > 0.0)
1115
if (ts->oldThumb.win == window && ts->oldThumb.opacity)
1143
1116
ts->damageThumbRegion (&ts->oldThumb);
1145
1118
return cWindow->damageRect (initial, rect);