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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? atidri.c

?? x.org上有關(guān)ati系列顯卡最新驅(qū)動(dòng)
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* $XFree86$ */ /* -*- mode: c; c-basic-offset: 3 -*- *//* * Copyright 2000 Gareth Hughes * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL * GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */#ifdef HAVE_CONFIG_H#include "config.h"#endif/* * Authors: *   Gareth Hughes <gareth@valinux.com> *   Leif Delgass <ldelgass@retinalburn.net> */#include <string.h>#include <stdio.h>#include <unistd.h>/* Driver data structures */#include "ati.h"#include "atibus.h"#include "atidri.h"#include "atiregs.h"#include "atistruct.h"#include "ativersion.h"#include "atimach64io.h"#include "mach64_dri.h"#include "mach64_common.h"#include "mach64_sarea.h"/* X and server generic header files */#include "xf86.h"#include "windowstr.h"/* GLX/DRI/DRM definitions */#define _XF86DRI_SERVER_#include "GL/glxtokens.h"#include "sarea.h"static char ATIKernelDriverName[] = "mach64";static char ATIClientDriverName[] = "mach64";/* Initialize the visual configs that are supported by the hardware. * These are combined with the visual configs that the indirect * rendering core supports, and the intersection is exported to the * client. */static Bool ATIInitVisualConfigs( ScreenPtr pScreen ){   ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];   ATIPtr pATI = ATIPTR(pScreenInfo);   int numConfigs = 0;   __GLXvisualConfig *pConfigs = NULL;   ATIConfigPrivPtr pATIConfigs = NULL;   ATIConfigPrivPtr *pATIConfigPtrs = NULL;   int i, accum, stencil, db;   switch ( pATI->bitsPerPixel ) {   case 8:  /* 8bpp mode is not support */   case 15: /* FIXME */   case 24: /* FIXME */      xf86DrvMsg(pScreen->myNum, X_ERROR,		 "[dri] ATIInitVisualConfigs failed (%d bpp not supported).  "		 "Disabling DRI.\n", pATI->bitsPerPixel);      return FALSE;#define ATI_USE_ACCUM   1#define ATI_USE_STENCIL 1   case 16:      if ( pATI->depth != 16) {	 xf86DrvMsg(pScreen->myNum, X_ERROR,		    "[dri] ATIInitVisualConfigs failed (depth %d at 16 bpp not supported).  "		     "Disabling DRI.\n", pATI->depth);	 return FALSE;      }      numConfigs = 1;      if ( ATI_USE_ACCUM )   numConfigs *= 2;      if ( ATI_USE_STENCIL ) numConfigs *= 2;      numConfigs *= 2; /* single- and double-buffered */      pConfigs = (__GLXvisualConfig*)	 xnfcalloc( sizeof(__GLXvisualConfig), numConfigs );      if ( !pConfigs ) {	 return FALSE;      }      pATIConfigs = (ATIConfigPrivPtr)	 xnfcalloc( sizeof(ATIConfigPrivRec), numConfigs );      if ( !pATIConfigs ) {	 xfree( pConfigs );	 return FALSE;      }      pATIConfigPtrs = (ATIConfigPrivPtr*)	 xnfcalloc( sizeof(ATIConfigPrivPtr), numConfigs );      if ( !pATIConfigPtrs ) {	 xfree( pConfigs );	 xfree( pATIConfigs );	 return FALSE;      }      i = 0;      for (db = 0; db <= 1; db++) {	 for ( accum = 0 ; accum <= ATI_USE_ACCUM ; accum++ ) {	    for ( stencil = 0 ; stencil <= ATI_USE_STENCIL ; stencil++ ) {	       pATIConfigPtrs[i] = &pATIConfigs[i];	       pConfigs[i].vid			= -1;	       pConfigs[i].class		= -1;	       pConfigs[i].rgba			= TRUE;	       pConfigs[i].redSize		= 5;	       pConfigs[i].greenSize		= 6;	       pConfigs[i].blueSize		= 5;	       pConfigs[i].alphaSize		= 0;	       pConfigs[i].redMask		= 0x0000F800;	       pConfigs[i].greenMask		= 0x000007E0;	       pConfigs[i].blueMask		= 0x0000001F;	       pConfigs[i].alphaMask		= 0x00000000;	       if ( accum ) {	/* Simulated in software */		  pConfigs[i].accumRedSize	= 16;		  pConfigs[i].accumGreenSize	= 16;		  pConfigs[i].accumBlueSize	= 16;		  pConfigs[i].accumAlphaSize	= 0;	       } else {		  pConfigs[i].accumRedSize	= 0;		  pConfigs[i].accumGreenSize	= 0;		  pConfigs[i].accumBlueSize	= 0;		  pConfigs[i].accumAlphaSize	= 0;	       }	       pConfigs[i].doubleBuffer		= db ? TRUE : FALSE;	       pConfigs[i].stereo		= FALSE;	       pConfigs[i].bufferSize		= 16;	       pConfigs[i].depthSize		= 16;	       if ( stencil ) {	/* Simulated in software */		  pConfigs[i].stencilSize	= 8;	       } else {		  pConfigs[i].stencilSize	= 0;	       }	       pConfigs[i].auxBuffers		= 0;	       pConfigs[i].level		= 0;	       if ( accum || stencil ) {		  pConfigs[i].visualRating	= GLX_SLOW_CONFIG;	       } else {		  pConfigs[i].visualRating	= GLX_NONE;	       }	       pConfigs[i].transparentPixel	= GLX_NONE;	       pConfigs[i].transparentRed	= 0;	       pConfigs[i].transparentGreen	= 0;	       pConfigs[i].transparentBlue	= 0;	       pConfigs[i].transparentAlpha	= 0;	       pConfigs[i].transparentIndex	= 0;	       i++;	    }	 }      }      break;   case 32:      numConfigs = 1;      if ( ATI_USE_ACCUM )   numConfigs *= 2;      if ( ATI_USE_STENCIL ) numConfigs *= 2;      numConfigs *= 2; /* single- and double-buffered */      pConfigs = (__GLXvisualConfig*)	 xnfcalloc( sizeof(__GLXvisualConfig), numConfigs );      if ( !pConfigs ) {	 return FALSE;      }      pATIConfigs = (ATIConfigPrivPtr)	 xnfcalloc( sizeof(ATIConfigPrivRec), numConfigs );      if ( !pATIConfigs ) {	 xfree( pConfigs );	 return FALSE;      }      pATIConfigPtrs = (ATIConfigPrivPtr*)	 xnfcalloc( sizeof(ATIConfigPrivPtr), numConfigs );      if ( !pATIConfigPtrs ) {	 xfree( pConfigs );	 xfree( pATIConfigs );	 return FALSE;      }      i = 0;      for (db = 0; db <= 1; db++) {	 for ( accum = 0 ; accum <= ATI_USE_ACCUM ; accum++ ) {	    for ( stencil = 0 ; stencil <= ATI_USE_STENCIL ; stencil++ ) {	       pATIConfigPtrs[i] = &pATIConfigs[i];	       pConfigs[i].vid			= -1;	       pConfigs[i].class		= -1;	       pConfigs[i].rgba			= TRUE;	       pConfigs[i].redSize		= 8;	       pConfigs[i].greenSize		= 8;	       pConfigs[i].blueSize		= 8;	       pConfigs[i].alphaSize		= 0;	       pConfigs[i].redMask		= 0x00FF0000;	       pConfigs[i].greenMask		= 0x0000FF00;	       pConfigs[i].blueMask		= 0x000000FF;	       pConfigs[i].alphaMask		= 0x00000000;	       if ( accum ) {	/* Simulated in software */		  pConfigs[i].accumRedSize	= 16;		  pConfigs[i].accumGreenSize	= 16;		  pConfigs[i].accumBlueSize	= 16;		  pConfigs[i].accumAlphaSize	= 0;	       } else {		  pConfigs[i].accumRedSize	= 0;		  pConfigs[i].accumGreenSize	= 0;		  pConfigs[i].accumBlueSize	= 0;		  pConfigs[i].accumAlphaSize	= 0;	       }	       pConfigs[i].doubleBuffer		= db ? TRUE : FALSE;	       pConfigs[i].stereo		= FALSE;	       pConfigs[i].bufferSize		= 24;	       if ( stencil ) {	/* Simulated in software */		  pConfigs[i].depthSize		= 16;		  pConfigs[i].stencilSize	= 8;	       } else {		  pConfigs[i].depthSize		= 16;		  pConfigs[i].stencilSize	= 0;	    }	       pConfigs[i].auxBuffers		= 0;	       pConfigs[i].level		= 0;	       if ( accum || stencil ) {		  pConfigs[i].visualRating	= GLX_SLOW_CONFIG;	       } else {		  pConfigs[i].visualRating	= GLX_NONE;	    }	       pConfigs[i].transparentPixel	= GLX_NONE;	       pConfigs[i].transparentRed	= 0;	       pConfigs[i].transparentGreen	= 0;	       pConfigs[i].transparentBlue	= 0;	       pConfigs[i].transparentAlpha	= 0;	       pConfigs[i].transparentIndex	= 0;	       i++;	    }	 }      }      break;   }   pATI->numVisualConfigs = numConfigs;   pATI->pVisualConfigs = pConfigs;   pATI->pVisualConfigsPriv = pATIConfigs;   GlxSetVisualConfigs( numConfigs, pConfigs, (void**)pATIConfigPtrs );   return TRUE;}/* Create the ATI-specific context information */static Bool ATICreateContext( ScreenPtr pScreen, VisualPtr visual,			      drm_context_t hwContext, void *pVisualConfigPriv,			      DRIContextType contextStore ){   /* Nothing yet */   return TRUE;}/* Destroy the ATI-specific context information */static void ATIDestroyContext( ScreenPtr pScreen, drm_context_t hwContext,			       DRIContextType contextStore ){   /* Nothing yet */}/* Called when the X server is woken up to allow the last client's * context to be saved and the X server's context to be loaded. * The client detects when it's context is not currently loaded and  * then loads it itself.  The X server's context is loaded in the * XAA Sync callback if NeedDRISync is set. */static void ATIEnterServer( ScreenPtr pScreen ){   ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];   ATIPtr pATI = ATIPTR(pScreenInfo);   if ( pATI->directRenderingEnabled ) {       ATIDRIMarkSyncInt(pScreenInfo);      ATIDRIMarkSyncExt(pScreenInfo);   }}/* Called when the X server goes to sleep to allow the X server's * context to be saved and the last client's context to be loaded. * The client detects when it's context is not currently loaded and  * then loads it itself.  The X server keeps track of it's own state. */static void ATILeaveServer( ScreenPtr pScreen ){   /* Nothing yet */}/* Contexts can be swapped by the X server if necessary.  This callback * is currently only used to perform any functions necessary when * entering or leaving the X server, and in the future might not be * necessary. */static void ATIDRISwapContext( ScreenPtr pScreen,			       DRISyncType syncType,			       DRIContextType oldContextType,			       void *oldContext,			       DRIContextType newContextType,			       void *newContext ){   if ( ( syncType == DRI_3D_SYNC ) && ( oldContextType == DRI_2D_CONTEXT ) &&	( newContextType == DRI_2D_CONTEXT ) ) {      /* Entering from Wakeup */      ATIEnterServer( pScreen );   }   if ( ( syncType == DRI_2D_SYNC ) && ( oldContextType == DRI_NO_CONTEXT ) &&	( newContextType == DRI_2D_CONTEXT ) ) {      /* Exiting from Block Handler */      ATILeaveServer( pScreen );   }}#ifdef USE_XAAstatic void ATIDRITransitionTo2d(ScreenPtr pScreen){   ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];   ATIPtr pATI = ATIPTR(pScreenInfo);   if (pATI->backArea) {      xf86FreeOffscreenArea(pATI->backArea);      pATI->backArea = NULL;   }   if (pATI->depthTexArea) {      xf86FreeOffscreenArea(pATI->depthTexArea);      pATI->depthTexArea = NULL;   }   pATI->have3DWindows = FALSE;}static void ATIDRITransitionTo3d(ScreenPtr pScreen){   ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];   ATIPtr pATI = ATIPTR(pScreenInfo);   FBAreaPtr fbArea;   int width, height;   xf86PurgeUnlockedOffscreenAreas(pScreen);   xf86QueryLargestOffscreenArea(pScreen, &width, &height, 0, 0, 0);   xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,	      "Largest offscreen area available: %d x %d\n",	      width, height);   fbArea = xf86AllocateOffscreenArea(pScreen, pScreenInfo->displayWidth,				      height - pATI->depthTexLines - 				      pATI->backLines,				      pScreenInfo->displayWidth, NULL, NULL, NULL);   if (!fbArea)      xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve placeholder "		 "offscreen area, you might experience screen corruption\n");   if (!pATI->backArea) {      pATI->backArea = 	 xf86AllocateOffscreenArea(pScreen, pScreenInfo->displayWidth,				   pATI->backLines,				   pScreenInfo->displayWidth,				   NULL, NULL, NULL);   }   if (!pATI->backArea)      xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve offscreen area "		 "for back buffer, you might experience screen corruption\n");   if (!pATI->depthTexArea) {      pATI->depthTexArea = 	 xf86AllocateOffscreenArea(pScreen, pScreenInfo->displayWidth,				   pATI->depthTexLines,				   pScreenInfo->displayWidth,				   NULL, NULL, NULL);   }   if (!pATI->depthTexArea)      xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve offscreen area "		 "for depth buffer and textures, you might experience screen corruption\n");   if (fbArea)      xf86FreeOffscreenArea(fbArea);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产老女人精品毛片久久| 亚洲乱码国产乱码精品精的特点 | 久久一二三国产| 黑人巨大精品欧美黑白配亚洲| 日韩欧美国产麻豆| 国产精品夜夜嗨| 国产精品丝袜黑色高跟| 91在线看国产| 视频一区中文字幕| 国产亚洲一区二区三区| 不卡av在线网| 日韩国产欧美三级| 中文字幕欧美日韩一区| 欧洲色大大久久| 精品一区二区三区欧美| 国产精品久久久久影院亚瑟 | 欧美日韩一卡二卡三卡| 免费观看一级欧美片| 国产欧美一区二区精品婷婷| 日本精品一区二区三区高清 | 国产精品99久久久| 亚洲三级小视频| 91精品国产91久久久久久一区二区 | 成人av在线资源网站| 亚洲午夜私人影院| 26uuuu精品一区二区| 色综合天天综合网天天狠天天| 日韩电影一区二区三区四区| 国产日韩欧美综合一区| 欧美日韩mp4| av电影在线观看一区| 日韩激情中文字幕| 国产精品福利一区二区| 欧美成人女星排名| 在线亚洲一区二区| 国产又黄又大久久| 亚洲电影中文字幕在线观看| 久久久精品日韩欧美| 欧美久久婷婷综合色| 粉嫩嫩av羞羞动漫久久久| 日韩精品高清不卡| 亚洲免费观看高清在线观看| 精品999在线播放| 欧美日韩午夜影院| 91视视频在线观看入口直接观看www | 成年人国产精品| 激情六月婷婷久久| 亚洲成a人片在线不卡一二三区 | 亚洲品质自拍视频网站| 久久久久久久久蜜桃| 欧美高清www午色夜在线视频| 99久久久无码国产精品| 国产麻豆午夜三级精品| 日本aⅴ免费视频一区二区三区| 亚洲色图制服诱惑| 国产日韩欧美电影| 精品国产一区二区精华| 4438x亚洲最大成人网| 欧美中文字幕一区| 91福利精品视频| 91久久免费观看| 99久久精品免费| 丁香六月综合激情| 国产精品一区在线| 国产精品中文字幕欧美| 韩国三级电影一区二区| 青草国产精品久久久久久| 午夜精品福利久久久| 午夜视频在线观看一区| 亚洲一区免费观看| 亚洲一区二区不卡免费| 香蕉乱码成人久久天堂爱免费| 一区二区三区国产| 洋洋成人永久网站入口| 亚洲女子a中天字幕| 中文字幕亚洲欧美在线不卡| 最新日韩在线视频| 亚洲免费大片在线观看| 亚洲美女一区二区三区| 亚洲在线一区二区三区| 亚洲成人av一区二区| 日韩激情中文字幕| 久久99国产精品尤物| 国产老肥熟一区二区三区| 高清不卡在线观看| av午夜精品一区二区三区| 91浏览器打开| 欧美肥胖老妇做爰| 精品国产一区二区三区忘忧草| 久久亚洲春色中文字幕久久久| 久久久精品蜜桃| 亚洲欧美日韩中文字幕一区二区三区| 亚洲欧美激情插| 日韩高清不卡一区二区三区| 美美哒免费高清在线观看视频一区二区 | 蜜臀久久久99精品久久久久久| 久久激五月天综合精品| 国产精品资源在线| 色国产综合视频| 欧美美女喷水视频| 久久伊99综合婷婷久久伊| 国产精品久久影院| 亚洲成人精品一区| 国产综合色产在线精品| 成人午夜av电影| 欧美亚洲国产一区二区三区va| 91精品国模一区二区三区| 精品盗摄一区二区三区| 最好看的中文字幕久久| 日韩av中文在线观看| 国产大陆精品国产| 欧美午夜在线观看| 国产亚洲婷婷免费| 亚洲v中文字幕| 懂色av一区二区三区免费观看 | 亚洲一线二线三线久久久| 久久成人羞羞网站| 在线视频一区二区三区| 26uuu国产电影一区二区| 一区二区在线观看免费| 精彩视频一区二区| 欧美少妇xxx| 国产精品女同一区二区三区| 婷婷六月综合网| 97se狠狠狠综合亚洲狠狠| 欧美大片拔萝卜| 亚洲人成7777| 国产精品一区二区视频| 欧美一区在线视频| 亚洲另类在线制服丝袜| 国产在线精品一区二区三区不卡| 欧美日韩中文字幕精品| 国产欧美日韩在线视频| 久久国产尿小便嘘嘘尿| 色狠狠一区二区三区香蕉| 国产亚洲成年网址在线观看| 天涯成人国产亚洲精品一区av| 成人av动漫网站| 国产亚洲欧美在线| 免费人成精品欧美精品| 欧美日韩大陆在线| 亚洲黄色录像片| 91在线视频免费91| 中文字幕高清一区| 国产精品小仙女| 久久久久久一二三区| 蜜桃视频免费观看一区| 欧美色大人视频| 亚洲一区电影777| 99久久精品国产麻豆演员表| 国产亚洲欧美一区在线观看| 久久精品72免费观看| 日韩亚洲欧美一区二区三区| 亚洲成人免费在线观看| 在线观看免费一区| 一区av在线播放| 欧美亚洲综合色| 亚洲国产精品人人做人人爽| 色综合视频在线观看| 中文字幕日本不卡| 91在线一区二区三区| 亚洲视频在线一区二区| 色哟哟欧美精品| 亚洲男女毛片无遮挡| 91成人看片片| 亚洲成a人片在线不卡一二三区| 在线观看一区二区精品视频| 一区二区三区高清| 欧美日韩极品在线观看一区| 午夜精品在线看| 日韩欧美色电影| 国产一区二区三区在线观看精品| 91精品国产福利在线观看| 日韩黄色在线观看| 欧美一区二区免费| 久久不见久久见免费视频1| 久久久久久电影| 成人高清视频免费观看| 亚洲欧美一区二区视频| 日本精品一区二区三区高清 | 色欧美片视频在线观看 | 亚洲人成电影网站色mp4| 91国内精品野花午夜精品| 午夜精品久久久久久| 日韩欧美在线一区二区三区| 狠狠色狠狠色综合日日91app| 久久精品一区四区| 色综合天天综合| 日本亚洲欧美天堂免费| 久久蜜桃av一区精品变态类天堂| 成人丝袜视频网| 亚洲午夜免费电影| 日韩一区二区三区视频在线观看| 国产麻豆视频一区二区| 日韩毛片在线免费观看| 欧美老女人第四色| 国产91丝袜在线播放九色| 曰韩精品一区二区| 日韩欧美国产一二三区| 成人开心网精品视频|