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

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

?? dalgco.c

?? 此代碼為WCE5.0下顯示器的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/****************************************************************************\
*
*  Module Name    dalgco.c
*  Project        ATI Display Abstraction Layer
*  Device         RageProPNP / Rage128 (Win95/98 & WinNT 4.0/5.0)
*
*  Description    source file for Display Abstraction Layer 0.84
*                 contains functions related to graphics controller objects
*
*  Copyright (c) 1998-2002 ATI Technologies Inc. (unpublished)
*
*  All rights reserved.  This notice is intended as a precaution against
*  inadvertent publication and does not imply publication or any waiver
*  of confidentiality.  The year included in the foregoing notice is the
*  year of creation of the work.
*
*  Refer to DAL Developers Guide & Programming Reference Rev 0.84 for usage
*
\****************************************************************************/

#include <stdlib.h>
#include "dal.h"
#include "daldef.h"
#include "dalddc.h"
#include "vpmv7.h"
#include "atimcode.h"

extern DAL_GDOGCO_ADJUSTMENT aGCO_Adjustment[];


BOOL bFindControllerAdjIdxFromDI(ULONG ulOverlayAdjust, LPULONG lpIndex)
{
  ULONG i =0, ulHookAdjust, ulHookIndex;
  
  switch(ulOverlayAdjust)
  {
    case CWDDEDI_CONTROLLER_OVERLAY_BRIGHTNESS:
    {
      ulHookAdjust = GCO_HOOK_OVERLAY_GAMMA_ADJUSTMENT;
      ulHookIndex =0;
      break;
    }

    case CWDDEDI_CONTROLLER_OVERLAY_GAMMA:
    {
      ulHookAdjust = GCO_HOOK_OVERLAY_COLOR_GAMMA_ADJUSTMENT;
      ulHookIndex =0;
      break;
    }

    case CWDDEDI_CONTROLLER_OVERLAY_CONTRAST:
    {
      ulHookAdjust = GCO_HOOK_OVERLAY_CONTRAST_ADJUSTMENT;
      ulHookIndex =0;
      break;
    }

    case CWDDEDI_CONTROLLER_OVERLAY_SATURATION:
    {
      ulHookAdjust = GCO_HOOK_OVERLAY_SATURATION_ADJUSTMENT;
      ulHookIndex =0;
      break;
    }

    case CWDDEDI_CONTROLLER_OVERLAY_HUE:
    {
      ulHookAdjust = GCO_HOOK_OVERLAY_HUE_ADJUSTMENT;
      ulHookIndex =0;
      break;
    }
    case CWDDEDI_CONTROLLER_OVERLAY_ALPHA:
    {
      ulHookAdjust = GCO_HOOK2_OVERLAY_ALPHA_ADJUSTMENT;
      ulHookIndex =1;
      break;
    }
    default:
    {
      ulHookAdjust = 0;
      return FALSE;
    }
 
  }

  for (i = 0; i < DAL_MAX_GCO_ADJUSTMENTS; i++)
  {
    if((aGCO_Adjustment[i].ulHook == ulHookAdjust)&&
      (aGCO_Adjustment[i].ulHookIndex == ulHookIndex))
    {
      *lpIndex = i;
      return TRUE;
    }
   
  }
  
  return FALSE;

}


/****************************Private*Routine*******************************\
*
* BOOL bEnableController
*
* Enables a graphics controller object (GCO) via the pfnEnable call to the
* object, and stores the appropriate state information in the DAL structures
* for the controller object
*
* Note: this function has side effects which modify the DAL global structure
*       including the following fields - pReservedFree
*                                        ulControllerCount
*
\**************************************************************************/

BOOL bEnableController(LPHW_DAL_EXTENSION lpHDE, PFNGCOENABLE pfnEnable)
{
  LPHW_CONTROLLER_ENABLEDATA lpHWED;
  LPDEVGCO                   lpController;
  HGCO                       hGCO;
  ULONG                      i;

  // ensure the GCO Handle memory is Zero initialized, since this handle may
  // have been used to attempt to enable a previous GCO and could contain
  // non-zero entries.
  ZEROMEMORY(lpHDE->lpReservedFree, sizeof(HW_CONTROLLER_ENABLEDATA));

  lpHWED = (LPHW_CONTROLLER_ENABLEDATA)(lpHDE->lpReservedFree);

  // HWED structure may be mismatched between DAL and the GCO.  DAL programs the 
  // ulSize field as an indicator of a structure mismatch, so the GCO can fail the
  // enable call, if the libraries were compiled with different versions of dal.h.

  lpHWED->ulSize = sizeof(HW_CONTROLLER_ENABLEDATA);

  hGCO = (HGCO)(lpHDE->sAdditionalMemSeg.aMemSeg[lpHDE->ulControllersCount+DAL_GCO_MEMSEG_MIN_INDEX].lpMem);
  ZEROMEMORY(hGCO, sizeof(HW_CONTROLLER_EXTENSION_SIZE));

  if (!(*pfnEnable)(lpHDE->hDDL, hGCO, (LPHW_ASIC_ID)&lpHDE->hwAsicID, lpHWED))
  {
    // this controller failed the pfnEnable call, so fail to enable it.
    return(FALSE);
  }

  // produce an assertion if only one of the Get/Set XYPos functions is hooked.
  // Both of them should be hooked or none of them should be hooked.
  DALASSERT((((!(GCO_HOOK2_GETDISPLAYXYPOS & lpHWED->ulFunctionHooks2)) ||
              (  GCO_HOOK2_SETDISPLAYXYPOS & lpHWED->ulFunctionHooks2 )   ) &&
             ((  GCO_HOOK2_GETDISPLAYXYPOS & lpHWED->ulFunctionHooks2 ) ||
              (!(GCO_HOOK2_SETDISPLAYXYPOS & lpHWED->ulFunctionHooks2))   )   ),
            "DAL - Can't hook one of the Get/SetXYMode without the other!");

  // the display was sucessfully enabled, so the structured need be updated
  // to indicate this display is present, and account for the resources
  // this graphics display object ha reserved or is using.

  lpHDE->lpReservedFree += sizeof(HW_CONTROLLER_ENABLEDATA);

  for (i = 0; i < lpHWED->ulNumberOfControllers; i++)
  {
    // since the DAL requires that all controllers be supported in
    // one graphics controller object, the DAL must independantly build
    // what appear to be independant GCO's for the controllers
    // in future the controllers could really be independant, but for now
    // what the heck so they are not.

    lpController = (LPDEVGCO)&lpHDE->aControllers[lpHDE->ulControllersCount];
    lpController->hGCO = hGCO;
    lpController->lpHWED = lpHWED;

    if (lpController->lpHWED->bEnabledAtBoot[i])
    {
      // controller is already active in a mode programmed by the BIOS at
      // boot time, so the DAL needs store this state to ensure the DAL
      // preserves the VGA display configuration during physical display
      // detection
      lpController->ulFlags |= GCO_ACTIVE;
    }

    // controller index is 0 based.
    lpController->ulController = lpHDE->ulControllersCount;

    // Increment the controller index before calling the set controller
    // adjustements.
    vInitializeControllerAdjustments(lpHDE, lpController);

    lpHDE->ulControllersCount += 1;
  }

  return(TRUE);
}

/****************************Private*Routine*******************************\
*
* VOID vGetAdapterPowerState
*
* The function retreives adapter power state capabilities from GCO and saves
* it the DAL extension structure.
*
* Note: 
\**************************************************************************/
VOID vGetAdapterPowerState(LPHW_DAL_EXTENSION lpHDE)
{
  LPDEVGCO  lpController;
  ULONG     ulSize;
  ULONG     ulTemp;

  lpController = (LPDEVGCO)&lpHDE->aControllers[0];  // sr - Changed to 1 from 0.  Need to verify this.

  // By default power play feature is not supported.
  lpHDE->bPowerPlaySupported = FALSE;

  // If dalrule to disable powerplay feature is set then disable the feature.
  // DAL RULES !!!
  if (!(lpHDE->ulDalRule2 & DALRULE2_DISABLEPOWERPLAYFEATURE))
  {
    // This GCO supports power play functionality. It means the optional
    // power play call function are supported and could be called to get
    // power play related information.
    if (lpController->lpHWED->ulFunctionHooks2 & GCO_HOOK2_POWERPLAY)
    {
      (*lpController->lpHWED->pfnGetPowerState)(lpController->hGCO,
                                                (LPULONG)&lpHDE->ulCurrentPowerState,
                                                (LPULONG)&lpHDE->ulNumberOfPowerStates,
                                                (LPDAL_ADAPTERPOWERSTATES)&lpHDE->sAdapterPowerStates);

      if(lpHDE->ulCurrentPowerState && lpHDE->ulNumberOfPowerStates)
      {
        // Returned Max number of power state and current power state is non-zero.
        // Flag power play feature as supported.
        lpHDE->bPowerPlaySupported = TRUE;
      
        // Get the options from the registry if it is there else apply the default.
        lpHDE->ulPowerStateOptions = 0;
        ulSize = sizeof(ULONG);

        if (!(DDLGetRegistryParameters(lpHDE->hDDL,
                                       (LPUCHAR) DALREGKEY_POWERPLAYOPTIONS,
                                       (LPVOID)  &ulTemp,
                                       (LPULONG) &ulSize)) && 
            (ulSize == (sizeof(ULONG))))
        {
          // Option is not in the registry get the default from the registry.
          if (lpHDE->ulDalRule2 & DALRULE2_POWERPLAYOPTIONENABLEDBYDEFAULT)
          {
            lpHDE->ulPowerStateOptions |= DAL_PWRSTATEOPTION_POWERPLAYFEATUREENABLE;
          }          

          // Save the value in the registry for next time.
          ulSize = sizeof(ULONG);

          DDLSetRegistryParameters(lpHDE->hDDL,
                                   (LPUCHAR) DALREGKEY_POWERPLAYOPTIONS,
                                   (LPVOID)  &lpHDE->ulPowerStateOptions,
                                   ulSize);

        }
        else
        {
          // use the saved option.
          lpHDE->ulPowerStateOptions = ulTemp;
        }


        // Initially the requested and current is the same until some one specifically sets
        // a different state via the CWDDE interface.
        lpHDE->ulRequestedPowerState = lpHDE->ulCurrentPowerState;
      }
    }
  }
}




/****************************Private*Routine*******************************\
*
* VOID vDisableController
*
* Disables a previously enabled graphics controller object
*
* Note: vDisableController does not return the memory reserved for this GCO
*       to the ReservedFree pool, and hence should only be called when the
*       DAL itself is being disabled.
*
*       As a side effect to this function, the following variables in the
*       in the lpHDE are modified - ulControllerCount
*
\**************************************************************************/

VOID vDisableController(LPHW_DAL_EXTENSION lpHDE, LPDEVGCO lpController)
{
  lpHDE->ulControllersCount -= lpController->lpHWED->ulNumberOfControllers;
  (*lpController->lpHWED->pfnDisable)(lpController->hGCO);
}



/******************************Public*Routine******************************\
*
* DEVPOWER_STATE DALGetDPMS(HDAL hDAL)
*
* returns the current display power management state for the adapter
*
\**************************************************************************/

ULONG DALGetDPMS(HDAL hDAL)
{
  LPHW_DAL_EXTENSION lpHDE;

  DALDEBUG((DALDBG_ENTRY_EXIT, "DALGetDPMS - Entry"));
  DALASSERT((hDAL != NULL), "DAL handle 'hDAL' is NULL!");

  lpHDE = (LPHW_DAL_EXTENSION)hDAL;

  DALDEBUG((DALDBG_ENTRY_EXIT, "DALGetDPMS - Exit"));
  return(lpHDE->ulPowerState);
}



/******************************Public*Routine******************************\
*
* VOID DALGetGammaCorrection()
*
* Copies the current gamma settings for the controller from the DAL's
* private structure into a caller specified array
*
\**************************************************************************/

VOID DALGetGammaCorrection(HDAL hDAL, ULONG ulDriverID, LPDEVCLUT lpaGamma)
{
  LPHW_DAL_EXTENSION lpHDE;

  DALDEBUG((DALDBG_ENTRY_EXIT, "DALGetGammaCorrection - Entry"));
  DALASSERT((hDAL != NULL), "DAL handle 'hDAL' is NULL!");

  // grab the structure for the DAL out of the DDL's handle to it
  lpHDE = (LPHW_DAL_EXTENSION)hDAL;

  if (lpHDE->aDriverData[ulDriverID].ulFlags & DRIVERDATA_USEGAMEGAMMA)
  {
    vConvert16To8Gamma((LPDEVCLUT16)lpHDE->aDriverData[ulDriverID].aGameGamma16,
                       lpaGamma);
  } else
  {
    vConvert16To8Gamma((LPDEVCLUT16)lpHDE->aDriverData[ulDriverID].aGamma16,
                       lpaGamma);
  }

  DALDEBUG((DALDBG_ENTRY_EXIT, "DALGetGammaCorrection - Exit"));
}



/******************************Public*Routine******************************\
*
* VOID DALGetGamma16Correction()
*
* Copies the current gamma settings for the controller from the DAL's
* private structure into a caller specified array
*
\**************************************************************************/

VOID DALGetGamma16Correction(
HDAL hDAL, 
ULONG ulDriverID, 
LPDEVCLUT16 lpaGamma16)
{
  LPHW_DAL_EXTENSION lpHDE;

  DALDEBUG((DALDBG_ENTRY_EXIT, "DALGetGamma16Correction - Entry"));
  DALASSERT((hDAL != NULL), "DAL handle 'hDAL' is NULL!");

  // grab the structure for the DAL out of the DDL's handle to it

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费看`日韩一区二区| 黑人巨大精品欧美黑白配亚洲| 91美女在线观看| 一区二区三区在线播放| 欧美日韩国产综合草草| 美女高潮久久久| 国产日韩视频一区二区三区| 成人h动漫精品一区二区| 亚洲天天做日日做天天谢日日欢| 在线免费av一区| 日韩不卡手机在线v区| 久久综合久久综合久久综合| 成人av电影观看| 亚洲国产精品人人做人人爽| 亚洲精品在线免费播放| 成人激情小说网站| 婷婷夜色潮精品综合在线| 日韩欧美精品在线视频| 成人app软件下载大全免费| 亚洲成av人影院在线观看网| 精品国产免费久久| 91福利社在线观看| 麻豆精品一二三| 中文字幕中文字幕一区| 91精品在线免费| 成人免费高清视频| 日韩黄色一级片| 国产精品私人自拍| 91精品综合久久久久久| av电影在线不卡| 另类调教123区| 亚洲国产一区在线观看| 国产人伦精品一区二区| 欧美放荡的少妇| 91女厕偷拍女厕偷拍高清| 青娱乐精品在线视频| 日韩伦理电影网| 久久久久高清精品| 69堂成人精品免费视频| 91网站最新网址| 国产成人综合在线播放| 日韩成人一级片| 亚洲制服丝袜一区| 国产精品国产三级国产普通话99| 欧美一区二区啪啪| 在线观看一区日韩| a级精品国产片在线观看| 另类小说一区二区三区| 亚洲国产毛片aaaaa无费看 | 色狠狠av一区二区三区| 国产酒店精品激情| 蜜臀av性久久久久蜜臀av麻豆| 综合自拍亚洲综合图不卡区| 久久综合五月天婷婷伊人| 欧美视频在线观看一区| 不卡的电影网站| 国产高清成人在线| 精品一区中文字幕| 奇米777欧美一区二区| 亚洲r级在线视频| 亚洲精品午夜久久久| 亚洲人成亚洲人成在线观看图片 | 成人免费一区二区三区在线观看| 日韩午夜在线播放| 666欧美在线视频| 制服丝袜激情欧洲亚洲| 欧美精品日韩综合在线| 欧美日韩精品福利| 欧美日韩国产免费一区二区 | 捆绑调教一区二区三区| 日韩制服丝袜先锋影音| 亚洲成人免费看| 一区二区三区四区不卡视频| 亚洲女人的天堂| 亚洲一区二区三区四区五区黄 | 欧美亚洲禁片免费| 在线观看不卡一区| 欧美三级电影在线看| 欧美日韩成人激情| 日韩欧美一区二区免费| 亚洲精品一区二区三区四区高清| 自拍偷拍国产亚洲| √…a在线天堂一区| 中文字幕亚洲精品在线观看 | 一卡二卡三卡日韩欧美| 亚洲精品成a人| 亚洲成人激情自拍| 日韩精品久久理论片| 美女免费视频一区| 国产一区二区三区精品视频| 国产成人鲁色资源国产91色综 | 波多野结衣视频一区| 99久久夜色精品国产网站| 色综合天天视频在线观看| 色噜噜狠狠色综合欧洲selulu| 欧美性猛交一区二区三区精品 | 欧美电影免费观看高清完整版在线| 欧美一卡2卡三卡4卡5免费| 欧美成人vps| 欧美激情在线看| 亚洲精品乱码久久久久久黑人| 午夜亚洲国产au精品一区二区| 美女国产一区二区三区| 成人激情黄色小说| 欧美午夜电影网| 欧美精品一区二区三区蜜臀| 亚洲日本在线a| 日韩黄色免费电影| 国产成人夜色高潮福利影视| 91在线精品一区二区三区| 欧美肥妇bbw| 日本一区二区成人在线| 午夜影院久久久| 国产精品一区三区| 在线观看网站黄不卡| 精品1区2区在线观看| 亚洲欧美偷拍三级| 韩国成人福利片在线播放| 在线观看一区二区精品视频| 精品播放一区二区| 亚洲一区二区精品久久av| 国产精品一品视频| 欧美精品粉嫩高潮一区二区| 中文字幕第一区| 美女视频免费一区| 欧美亚洲自拍偷拍| 国产精品入口麻豆九色| 日韩—二三区免费观看av| 成人爱爱电影网址| 精品久久久久99| 日韩在线观看一区二区| aaa欧美色吧激情视频| 26uuu另类欧美| 五月激情综合婷婷| 色狠狠一区二区| 1024国产精品| 国产福利不卡视频| 欧美videofree性高清杂交| 一区二区三区中文在线观看| 成人污污视频在线观看| 欧美tickling网站挠脚心| 亚洲国产精品自拍| 一本大道av一区二区在线播放| 国产亚洲精品精华液| 久久电影国产免费久久电影| 欧美日韩国产小视频| 亚洲综合色丁香婷婷六月图片| 99精品在线免费| 国产亚洲婷婷免费| 国产精品一区二区在线播放 | 亚洲天堂网中文字| 国产69精品久久久久毛片| 日韩免费一区二区| 天堂精品中文字幕在线| 欧美探花视频资源| 亚洲国产精品久久不卡毛片| 91香蕉视频黄| 自拍视频在线观看一区二区| 不卡电影免费在线播放一区| 欧美激情资源网| 成人av电影免费在线播放| 日本一区二区三区久久久久久久久不| 国产乱人伦精品一区二区在线观看| 日韩欧美国产综合一区 | 国产一区二区三区| 日韩午夜小视频| 老司机免费视频一区二区 | 欧美日韩精品系列| 又紧又大又爽精品一区二区| 91小宝寻花一区二区三区| 亚洲丝袜自拍清纯另类| 色婷婷精品大在线视频| 一个色妞综合视频在线观看| 91黄色小视频| 日韩主播视频在线| 精品伦理精品一区| 国产91精品精华液一区二区三区| 中文字幕欧美区| 欧美综合在线视频| 午夜国产精品影院在线观看| 欧美一区二区视频网站| 久久精品国产免费| 国产午夜精品一区二区三区四区| 成人a区在线观看| 一区二区三区高清| 7777精品伊人久久久大香线蕉的| 美国毛片一区二区| 欧美国产视频在线| 欧洲精品在线观看| 美女一区二区三区| 国产精品无遮挡| 欧美午夜精品久久久| 久久精品免费观看| 中文字幕精品在线不卡| 欧美怡红院视频| 国产精品一二二区| 一区二区三区产品免费精品久久75| 欧美日韩国产在线观看| 激情综合网最新| 成人免费视频在线观看|