QColor QGLContext::overlayTransparentColor() const { //### make more efficient using the transpColor member if ( isValid() ) { if ( !trans_colors_init ) find_trans_colors(); VisualID myVisualId = ((XVisualInfo*)vi)->visualid; int myScreen = ((XVisualInfo*)vi)->screen; for ( int i = 0; i < (int)trans_colors.size(); i++ ) { if ( trans_colors[i].vis == myVisualId && trans_colors[i].screen == myScreen ) { XColor col; col.pixel = trans_colors[i].color; col.red = col.green = col.blue = 0; col.flags = 0; Display *dpy = d->paintDevice->x11Display(); if (col.pixel > (uint) ((XVisualInfo *)vi)->colormap_size - 1) col.pixel = ((XVisualInfo *)vi)->colormap_size - 1; XQueryColor(dpy, choose_cmap(dpy, (XVisualInfo *) vi), &col); uchar r = (uchar)((col.red / 65535.0) * 255.0 + 0.5); uchar g = (uchar)((col.green / 65535.0) * 255.0 + 0.5); uchar b = (uchar)((col.blue / 65535.0) * 255.0 + 0.5); return QColor(qRgb(r,g,b), trans_colors[i].color); } } } return QColor(); // Invalid color }
bool QGLFormat::hasOpenGLOverlays() { qt_resolve_gl_symbols(); if ( !trans_colors_init ) find_trans_colors(); return trans_colors.size() > 0; }
QColor QGLContext::overlayTransparentColor() const { //### make more efficient using the transpColor member if ( isValid() ) { if ( !trans_colors_init ) find_trans_colors(); VisualID myVisualId = ((XVisualInfo*)vi)->visualid; for ( int i = 0; i < (int)trans_colors.size(); i++ ) { if ( trans_colors[i].vis == myVisualId ) return QColor( qRgb( 1, 2, 3 ), trans_colors[i].color ); } } return QColor(); // Invalid color }
bool QGLFormat::hasOpenGLOverlays() { if (!trans_colors_init) find_trans_colors(); return trans_colors.size() > 0; }