亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qgfxlinuxfb_qws.cpp

?? qte2.3.2版本,但是里面沒有configure文件.需要重新添加
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		bbits=vinfo.blue.length;		if(rbits==0 && gbits==0 && bbits==0) {		    // cyber2000 driver bug hack		    rbits=3;		    gbits=3;		    bbits=2;		}		break;	  case 15:		rbits=5;		gbits=5;		bbits=5;		break;	  case 16:		rbits=5;		gbits=6;		bbits=5;		break;	  case 24: case 32:		rbits=gbits=bbits=8;		break;	}	cmap.len=1<<QMAX(rbits,QMAX(gbits,bbits));	cmap.red=(unsigned short int *)		 malloc(sizeof(unsigned short int)*256);	cmap.green=(unsigned short int *)		   malloc(sizeof(unsigned short int)*256);	cmap.blue=(unsigned short int *)		  malloc(sizeof(unsigned short int)*256);	cmap.transp=(unsigned short int *)		    malloc(sizeof(unsigned short int)*256);	for( unsigned int i = 0x0; i < cmap.len; i++ ) {	    cmap.red[i] = i*65535/((1<<rbits)-1);	    cmap.green[i] = i*65535/((1<<gbits)-1);	    cmap.blue[i] = i*65535/((1<<bbits)-1);	    cmap.transp[i] = 0;	}	ioctl(fd,FBIOPUTCMAP,&cmap);	free(cmap.red);	free(cmap.green);	free(cmap.blue);	free(cmap.transp);    }    canaccel=useOffscreen();    if(mapsize-size<16384) {	canaccel=false;    }    if(canaccel) {	// Figure out position of offscreen memory	// Set up pool entries pointer table and 64-bit align it	unsigned int pos=(unsigned int)data;	int psize;	psize=size;	psize+=4096;	psize+=8;	psize&=~0x7;	pos+=psize;	entryp=((int *)pos);	lowest=((unsigned int *)pos)+1;	// These keep track of accelerator state	optype=((int *)pos)+2;	lastop=((int *)pos)+3;	pos+=(sizeof(int))*4;	entries=(QPoolEntry *)pos;	*entryp=0;	*lowest=mapsize;    } else {	optype = &dummy_optype;	lastop = &dummy_lastop;    }    *optype=0;    *lastop=0;    initted=true;    return true;}/*  The offscreen memory manager's list of entries is stored at the bottom  of the offscreen memory area and consistes of a series of QPoolEntry's,  each of which keep track of a block of allocated memory. Unallocated memory  is implicitly indicated by the gap between blocks indicated by QPoolEntry's.  The memory manager looks through any unallocated memory before the end  of currently-allocated memory to see if a new block will fit in the gap;  if it doesn't it allocated it from the end of currently-allocated memory.  Memory is allocated from the top of the framebuffer downwards; if it hits  the list of entries then offscreen memory is full and further allocations  are made from main RAM (and hence unaccelerated). Allocated memory can  be seen as a sort of upside-down stack; lowest keeps track of the  bottom of the stack.*/void QLinuxFbScreen::delete_entry(int pos){    if(pos>*entryp || pos<0) {	qDebug("Attempt to delete odd pos! %d %d",pos,*entryp);	return;    }    QPoolEntry * qpe=&entries[pos];    if(qpe->start<=*lowest && pos>0) {	// Lowest goes up again	*lowest=(entries[pos-1].start);    }    (*entryp)--;    if(pos==*entryp) {	return;    }    int size=(*entryp)-pos;    size++;    memmove(&entries[pos],&entries[pos+1],size*sizeof(QPoolEntry));}void QLinuxFbScreen::insert_entry(int pos,int start,int end){    if(pos>*entryp) {	qDebug("Attempt to insert odd pos! %d %d",pos,*entryp);	return;    }    if(pos==*entryp) {	entries[pos].start=start;	entries[pos].end=end;	(*entryp)++;	return;    }    (*entryp)++;    int size=(*entryp)-pos;    size++;    memmove(&entries[pos+1],&entries[pos],size*sizeof(QPoolEntry));    entries[pos].start=start;    entries[pos].end=end;}/*!  Requests a block of offscreen graphics card memory from the memory  manager; it will be aligned at pixmapOffsetAlignment(). If no memory  is free 0 will be returned, otherwise a pointer to the data within  the framebuffer. QScreen::onCard can be used to retrieve a byte offset  from the start of graphics card memory from this pointer. The display  is locked while memory is allocated and unallocated in order to  preserve the memory pool's integrity, so cache and uncache should not  be called if the screen is locked.  \amount is the amount of memory to allocate, \a optim gives the optimization  level (same values as QPixmap::Optimization).*/uchar * QLinuxFbScreen::cache(int amount, int optim){    if(!canaccel || entryp==0 || optim == int(QPixmap::NoOptim) ) {	return 0;    }    qt_fbdpy->grab();    int align=pixmapOffsetAlignment();    int hold=(*entryp-1);    for(int loopc=0;loopc<hold;loopc++) {	int freestart=entries[loopc+1].end;	int freeend=entries[loopc].start;	if(freestart!=freeend) {	    while(freestart % align) {		freestart++;	    }	    int len=freeend-freestart;	    if(len>amount) {		insert_entry(loopc+1,freestart,freestart+amount);		if(freestart % align) {		    qDebug("Wah, freed-block return unaligned %x",freestart);		}		qt_fbdpy->ungrab();		return data+freestart;	    }	}    }    // No free blocks in already-taken memory; get some more    // if we can    int stackend=(*entryp)*sizeof(QPoolEntry);    int startp=size+(sizeof(int)*2)+stackend;    int newlowest=(*lowest)-amount;    if(newlowest % align) {       	newlowest-=align;	while(newlowest % align) {	    newlowest++;	}    }    if(startp>=newlowest) {	//qDebug("No more memory, %d %d %d %d",startp,stackend,	       //*lowest,amount);	//canaccel=false;	qt_fbdpy->ungrab();	return 0;    }    insert_entry(*entryp,newlowest,*lowest);    *lowest=newlowest;    if(newlowest % align) {	//qDebug("Wah, new return is unaligned %x",newlowest);    }    qt_fbdpy->ungrab();    return data+newlowest;}/*!\fn void QLinuxFbScreen::uncache(uchar * c)Delete a block of memory allocated from graphics card memory.*/void QLinuxFbScreen::uncache(uchar * c){    qt_fbdpy->grab();    unsigned long pos=(unsigned long)c;    pos-=((unsigned long)data);    unsigned int hold=(*entryp);    for(unsigned int loopc=0;loopc<hold;loopc++) {	if(entries[loopc].start==pos) {	    delete_entry(loopc);	    qt_fbdpy->ungrab();	    return;	}    }    qt_fbdpy->ungrab();    qDebug("Attempt to delete unknown offset %ld",pos);}/*!\fn void QLinuxFbScreen::shutdownDevice()This is called by the Qt/Embedded server when it shuts down, and shouldbe inherited if you need to do any card-specific shutting down.The default version hides the screen cursor and reenables the blinking cursorand screen blanking.*/void QLinuxFbScreen::shutdownDevice(){    // Set back the original mode#ifndef QT_NO_QWS_CURSOR    qt_screencursor->hide();#endif    // Causing crashes. Not needed.    //setMode(startupw,startuph,startupd);/*    if ( startupd == 8 ) {	ioctl(fd,FBIOPUTCMAP,startcmap);	free(startcmap->red);	free(startcmap->green);	free(startcmap->blue);	free(startcmap->transp);	delete startcmap;	startcmap = 0;    }*/    // Blankin' screen, blinkin' cursor!    const char termctl[] = "\033[9;15]\033[?33h\033[?25h\033[?0c";    writeTerm(termctl,sizeof(termctl));}/*!\fn void QLinuxFbScreen::set(unsigned int i,unsigned int r,unsigned int g,unsigned int b)In paletted graphics modes, this sets color index i to the specified RGBvalue.*/void QLinuxFbScreen::set(unsigned int i,unsigned int r,unsigned int g,unsigned int b){    fb_cmap cmap;    cmap.start=i;    cmap.len=1;    cmap.red=(unsigned short int *)	     malloc(sizeof(unsigned short int)*256);    cmap.green=(unsigned short int *)	       malloc(sizeof(unsigned short int)*256);    cmap.blue=(unsigned short int *)	      malloc(sizeof(unsigned short int)*256);    cmap.transp=(unsigned short int *)		malloc(sizeof(unsigned short int)*256);    cmap.red[0]=r << 8;    cmap.green[0]=g << 8;    cmap.blue[0]=b << 8;    cmap.transp[0]=0;    ioctl(fd,FBIOPUTCMAP,&cmap);    free(cmap.red);    free(cmap.green);    free(cmap.blue);    free(cmap.transp);    screenclut[i] = qRgb( r, g, b );}/*!\fn void QLinuxFbScreen::setMode(int nw,int nh,int nd)Sets the framebuffer to a new resolution and bit depth. After doing thisany currently-existing gfx's will be invalid and the screen should becompletely redrawn. In a multiple-process Embedded Qt situation you willneed to signal all other applications to also setMode() to the same modeand redraw.*/void QLinuxFbScreen::setMode(int nw,int nh,int nd){    fb_fix_screeninfo finfo;    fb_var_screeninfo vinfo;    if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)) {	perror("reading /dev/fb0");	qFatal("Error reading fixed information");    }    if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)) {	qFatal("Error reading variable information in mode change");    }    vinfo.xres=nw;    vinfo.yres=nh;    vinfo.bits_per_pixel=nd;    if (ioctl(fd, FBIOPUT_VSCREENINFO, &vinfo)) {	qFatal("Error writing variable information in mode change");    }    if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)) {	qFatal("Error reading changed variable information in mode change");    }    w=vinfo.xres;    h=vinfo.yres;    d=vinfo.bits_per_pixel;    lstep=finfo.line_length;    size=h*lstep;}// save the state of the graphics card// This is needed so that e.g. we can restore the palette when switching// between linux virtual consoles./*!\fn void QLinuxFbScreen::save()This doesn't do anything; accelerated drivers may wish to reimplementit to save graphics cards registers. It's called by the Qt/Embedded serverwhen the virtual console is switched.*/void QLinuxFbScreen::save(){    // nothing to do.}/*!\fn void QLinuxFbScreen::restore()This is called when the virtual console is switched back to Qt/Embeddedand restores the palette.*/// restore the state of the graphics card.void QLinuxFbScreen::restore(){    if (( d == 8 ) || ( d == 4 )) {	fb_cmap cmap;	cmap.start=0;	cmap.len=screencols;	cmap.red=(unsigned short int *)		 malloc(sizeof(unsigned short int)*256);	cmap.green=(unsigned short int *)		   malloc(sizeof(unsigned short int)*256);	cmap.blue=(unsigned short int *)		  malloc(sizeof(unsigned short int)*256);	cmap.transp=(unsigned short int *)		    malloc(sizeof(unsigned short int)*256);	for ( int loopc = 0; loopc < screencols; loopc++ ) {	    cmap.red[loopc] = qRed( screenclut[loopc] ) << 8;	    cmap.green[loopc] = qGreen( screenclut[loopc] ) << 8;	    cmap.blue[loopc] = qBlue( screenclut[loopc] ) << 8;	    cmap.transp[loopc] = 0;	}	ioctl(fd,FBIOPUTCMAP,&cmap);	free(cmap.red);	free(cmap.green);	free(cmap.blue);	free(cmap.transp);    }}void QLinuxFbScreen::blank(bool on){#if defined(QT_QWS_IPAQ)    if ( on )	system("apm -suspend");#else// Some old kernel versions don't have this.  These defines should go// away eventually#if defined(FBIOBLANK)#if defined(VESA_POWERDOWN) && defined(VESA_NO_BLANKING)    ioctl(fd, FBIOBLANK, on ? VESA_POWERDOWN : VESA_NO_BLANKING);#else    ioctl(fd, FBIOBLANK, on ? 1 : 0);#endif#endif#endif}extern "C" QScreen * qt_get_screen_linuxfb(int display_id){    return new QLinuxFbScreen( display_id );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区鲁丝不卡| 国产精品美女久久久久aⅴ国产馆| 国产一区二区精品久久| 亚洲资源在线观看| 中文字幕av一区二区三区免费看| 欧美日韩第一区日日骚| 北条麻妃国产九九精品视频| 蜜芽一区二区三区| 亚洲一二三四区| 国产精品女上位| 精品国产青草久久久久福利| 欧美色综合天天久久综合精品| 丁香亚洲综合激情啪啪综合| 久久se精品一区精品二区| 亚洲一卡二卡三卡四卡五卡| 国产精品久久一级| 久久久久久久久久久电影| 日韩欧美高清一区| 欧美剧在线免费观看网站| 91在线国产福利| 波多野结衣在线一区| 黄一区二区三区| 久久超碰97中文字幕| 美腿丝袜亚洲三区| 视频在线观看一区| 亚洲午夜免费电影| 伊人夜夜躁av伊人久久| 亚洲国产日韩综合久久精品| 国产精品传媒入口麻豆| 国产精品三级久久久久三级| 久久午夜免费电影| 亚洲精品一区二区三区在线观看| 日韩一级黄色大片| 69堂亚洲精品首页| 欧美一区二区视频在线观看| 欧美精品久久一区二区三区| 欧美精品免费视频| 91精品国产综合久久久久久漫画| 欧美日韩亚洲另类| 欧美精品一二三四| 欧美精品乱码久久久久久| 欧美精品在线一区二区| 欧美一级日韩一级| 精品国产污污免费网站入口| 久久毛片高清国产| 国产欧美日本一区视频| 国产精品成人在线观看| 亚洲情趣在线观看| 亚洲精品成人悠悠色影视| 亚洲五码中文字幕| 日本伊人色综合网| 韩国毛片一区二区三区| 粉嫩欧美一区二区三区高清影视| 成人三级在线视频| 91麻豆国产精品久久| 欧美色图免费看| 日韩午夜精品视频| 久久久久久久久久电影| 中文字幕一区二区三中文字幕| 有码一区二区三区| 美女视频第一区二区三区免费观看网站| 久久国产精品99久久人人澡| 国产成人av在线影院| 91麻豆.com| 欧美一二三四在线| 久久久99久久| 亚洲午夜久久久久| 国产一区二区三区四区在线观看| av资源站一区| 欧美日韩一区二区三区不卡| 精品99久久久久久| 亚洲美女屁股眼交| 久久99国产精品久久99 | 懂色av噜噜一区二区三区av| 97精品电影院| 日韩欧美黄色影院| 国产精品三级视频| 日韩和欧美一区二区三区| 国产很黄免费观看久久| 日本道色综合久久| 日韩欧美123| 综合激情网...| 久久精品国产亚洲a| 色吧成人激情小说| 久久久久久久综合狠狠综合| 亚洲6080在线| 丁香婷婷综合网| 91麻豆精品国产91久久久| 中文字幕av一区 二区| 亚洲成人av一区二区三区| 久久av老司机精品网站导航| 92国产精品观看| 久久色成人在线| 三级久久三级久久| 波多野结衣的一区二区三区| 欧美变态tickling挠脚心| 一区二区三区国产精品| 国产精品自拍三区| 日韩一区二区三区电影| 亚洲欧美日韩一区二区| 国产麻豆91精品| 欧美一区二区三区人| 亚洲精品高清在线| 成人午夜精品在线| 精品少妇一区二区三区在线播放 | 欧美一区二区大片| 亚洲人快播电影网| 国产精品18久久久久久vr| 欧美精品在线视频| 一区二区三区四区精品在线视频| 成人午夜免费av| 久久精品视频一区| 激情成人综合网| 日韩精品一区二区在线观看| 亚洲成av人综合在线观看| 成人久久视频在线观看| 久久伊人蜜桃av一区二区| 麻豆国产精品一区二区三区 | 国产suv精品一区二区883| 日韩美女在线视频| 日韩avvvv在线播放| 欧美在线一区二区| 一区二区三区久久| 欧美亚洲一区二区在线| 亚洲精品久久7777| 色狠狠色噜噜噜综合网| 日韩毛片精品高清免费| 91在线播放网址| 中文字幕中文字幕一区| 不卡高清视频专区| **欧美大码日韩| 99久久国产综合精品色伊 | 久久99国产精品免费网站| 日韩欧美中文字幕精品| 免费看日韩精品| 欧美一区二区三区不卡| 久久疯狂做爰流白浆xx| 精品福利av导航| 国产伦精品一区二区三区视频青涩 | 美脚の诱脚舐め脚责91| 日韩一级免费一区| 久久电影网站中文字幕| 欧美va亚洲va香蕉在线| 狠狠色丁香久久婷婷综| 久久香蕉国产线看观看99| 国产精品1区二区.| 国产精品国产三级国产aⅴ入口 | 国产一区欧美一区| 国产午夜精品久久久久久免费视| 国产成人综合视频| 国产精品乱码久久久久久| eeuss影院一区二区三区| 亚洲欧美日韩在线播放| 欧美猛男超大videosgay| 久久er精品视频| 国产精品色婷婷| 欧美亚洲日本国产| 五月天激情小说综合| 欧美电影免费观看高清完整版在 | 麻豆久久久久久| 久久精品水蜜桃av综合天堂| 91天堂素人约啪| 亚洲国产精品综合小说图片区| 欧美一区二区三区在线视频| 国产成人综合亚洲91猫咪| 亚洲蜜臀av乱码久久精品蜜桃| 91精品欧美一区二区三区综合在| 国产麻豆一精品一av一免费 | 欧美在线免费视屏| 久久成人av少妇免费| 中文字幕视频一区| 在线不卡a资源高清| 国产成人av影院| 肉肉av福利一精品导航| 欧美极品aⅴ影院| 精品视频一区二区三区免费| 国产一区欧美一区| 亚洲一区二区在线观看视频| 2024国产精品| 在线观看91精品国产入口| 精品在线观看视频| 亚洲精品免费播放| 久久新电视剧免费观看| 91国产精品成人| 国产一区二区三区最好精华液| 亚洲一二三四在线| 国产丝袜在线精品| 在线成人小视频| a级精品国产片在线观看| 美女脱光内衣内裤视频久久网站| 亚洲男人的天堂网| 国产亚洲综合av| 制服丝袜av成人在线看| 波多野结衣中文字幕一区 | 成人综合在线视频| 日韩成人一区二区| 伊人开心综合网| 国产精品久久久久久亚洲毛片 | 欧美片网站yy| 99国产精品一区|