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

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

?? hal_lut.c

?? epson 13506 driver code
?? C
字號:
/*
**===========================================================================
** HAL_LUT.C - This module contains the LUT routines for the 13506 HAL.
**---------------------------------------------------------------------------
** Copyright (c) 1997, 2001 Epson Research and Development, Inc.
** All Rights Reserved.
**===========================================================================
*/

#include "hal.h"
#include "assert.h"
#include "nonsefns.h"

/*-------------------------------------------------------------------------*/

static const char Revision[] = "HAL_LUT.C=$Revision: 12 $";

/*-------------------------------------------------------------------------*/

/*
** _WriteLut()
**
** This function sets either all or a portion of the 256 color LUT.
**
*/
void _WriteLut(int DisplayMode, BYTE *pLUT, int count)
{
   int idx, rgb;

   ASSERT( count <= 256 );

   if (DisplayMode == LCD)
      seWriteRegByte(REG_LUT_MODE, 0x01); /* write to LCD LUT */
   else if ((DisplayMode == CRT) || (DisplayMode == TV))
      seWriteRegByte(REG_LUT_MODE, 0x02); /* write to CRT/TV LUT */
   else
      seWriteRegByte(REG_LUT_MODE, 0x00); /* write to LCD and CRT/TV LUT */


   seWriteRegByte( REG_LUT_ADDR, 0 );

   for (idx = 0; idx < count; idx++)
      {
      for (rgb = 0; rgb < 3; rgb++)
         seWriteRegByte( REG_LUT_DATA, *pLUT++ );
      }
}

/*-------------------------------------------------------------------------*/

/*
** seWriteLut()
**
** This function sets either all or a portion of the 256 color LUT.
**
*/
void seWriteLut(BYTE *pLUT, int count)
{
   _WriteLut(_ActiveImageSurface->DisplayMode, pLUT, count);
}

/*-------------------------------------------------------------------------*/

void seWriteLcdLut(BYTE *pLUT, int count)
{
   _WriteLut(LCD, pLUT, count);
}

/*-------------------------------------------------------------------------*/

void seWriteCrtLut(BYTE *pLUT, int count)
{
   _WriteLut(CRT, pLUT, count);
}

/*-------------------------------------------------------------------------*/

void seWriteTvLut(BYTE *pLUT, int count)
{
   _WriteLut(TV, pLUT, count);
}

/*-------------------------------------------------------------------------*/

/*
** seReadLut()
**
** This routine reads the entire LUT and puts the results in
** the array pointed to by pLut.
*/
void seReadLut(BYTE *pLUT, int count)
{
   int idx, rgb;

   ASSERT( count <= 256 );

   if ( (_ActiveImageSurface->DisplayMode & (CRT | TV)) &&
       !(_ActiveImageSurface->DisplayMode & LCD))
      seWriteRegByte(REG_LUT_MODE, 0x02); /* read from CRT/TV LUT */
   else
      seWriteRegByte(REG_LUT_MODE, 0x01); /* read from LCD LUT */


   seWriteRegByte( REG_LUT_ADDR, 0 );

   for (idx = 0; idx < count; ++idx)
      {
      for (rgb = 0; rgb < 3; ++rgb)
         *pLUT++ = (BYTE) seReadRegByte( REG_LUT_DATA );
      }
}

/*-------------------------------------------------------------------------*/

void seReadLcdLut(BYTE *pLUT, int count)
{
   int idx, rgb;

   ASSERT( count <= 256 );

   seWriteRegByte(REG_LUT_MODE, 0x01); /* read from LCD LUT */
   seWriteRegByte(REG_LUT_ADDR, 0);

   for (idx = 0; idx < count; ++idx)
      {
      for (rgb = 0; rgb < 3; ++rgb)
         *pLUT++ = (BYTE) seReadRegByte( REG_LUT_DATA );
      }
}

/*-------------------------------------------------------------------------*/

void seReadCrtLut(BYTE *pLUT, int count)
{
   int idx, rgb;

   ASSERT( count <= 256 );

   seWriteRegByte(REG_LUT_MODE, 0x02); /* read from CRT/TV LUT */
   seWriteRegByte( REG_LUT_ADDR, 0 );

   for (idx = 0; idx < count; ++idx)
      {
      for (rgb = 0; rgb < 3; ++rgb)
         *pLUT++ = (BYTE) seReadRegByte( REG_LUT_DATA );
      }
}

/*-------------------------------------------------------------------------*/

void seReadTvLut(BYTE *pLUT, int count)
{
   seReadCrtLut(pLUT, count);
}

/*-------------------------------------------------------------------------*/

/*
** _WriteLutEntry()
**
** This function writes just one LUT entry.
** This function does not use the display surface.
**
** NOTE:
**
** - pLUT must point to a valid LUT data entry (BYTE color[3])
**
*/
void _WriteLutEntry(int DisplayMode, int index, BYTE *pColor)
{
   ASSERT( index <= 256 );

   if (DisplayMode == LCD)
      seWriteRegByte(REG_LUT_MODE, 0x01); /* write to LCD LUT */
   else if (DisplayMode & (CRT | TV))
      seWriteRegByte(REG_LUT_MODE, 0x02); /* write to CRT/TV LUT */
   else
      seWriteRegByte(REG_LUT_MODE, 0x00); /* write to LCD and CRT/TV LUT */


   seWriteRegByte( REG_LUT_ADDR, (BYTE) index );

   seWriteRegByte( REG_LUT_DATA, *pColor++ );
   seWriteRegByte( REG_LUT_DATA, *pColor++ );
   seWriteRegByte( REG_LUT_DATA, *pColor );
}

/*-------------------------------------------------------------------------*/

/*
** seWriteLutEntry()
**
** This function writes just one LUT entry.
**
** NOTE:
**
** - pLUT must point to a valid LUT data entry (BYTE lut[3])
**
*/
void seWriteLutEntry(int index, BYTE *pColor)
{
   _WriteLutEntry(_ActiveImageSurface->DisplayMode, index, pColor);
}

/*-------------------------------------------------------------------------*/

void seWriteLcdLutEntry(int index, BYTE *pColor)
{
   _WriteLutEntry(LCD, index, pColor);
}

/*-------------------------------------------------------------------------*/

void seWriteCrtLutEntry(int index, BYTE *pColor)
{
   _WriteLutEntry(CRT, index, pColor);
}

/*-------------------------------------------------------------------------*/

void seWriteTvLutEntry(int index, BYTE *pColor)
{
   _WriteLutEntry(TV, index, pColor);
}

/*-------------------------------------------------------------------------*/

/*
** _ReadLcdLutEntry()
**
** This function reads just one LUT entry.
**
** NOTE:
**
** - pColor must point to a valid LUT data entry (BYTE color[3])
*/
void seReadLcdLutEntry(int index, BYTE *pColor)
{
   ASSERT( index < 256);

   seWriteRegByte(REG_LUT_MODE, 0x01); /* read from LCD LUT */
   seWriteRegByte( REG_LUT_ADDR, (BYTE) index );

   *pColor++ = (BYTE) seReadRegByte( REG_LUT_DATA );
   *pColor++ = (BYTE) seReadRegByte( REG_LUT_DATA );
   *pColor   = (BYTE) seReadRegByte( REG_LUT_DATA );
}

/*-------------------------------------------------------------------------*/

/*
** seReadCrtLutEntry()
**
** This function reads just one LUT entry.
**
** NOTE:
**
** - pColor must point to a valid LUT data entry (BYTE color[3])
*/
void seReadCrtLutEntry(int index, BYTE *pColor)
{
   ASSERT( index < 256);

   seWriteRegByte(REG_LUT_MODE, 0x02); /* read from CRT/TV LUT */
   seWriteRegByte( REG_LUT_ADDR, (BYTE) index );

   *pColor++ = (BYTE) seReadRegByte( REG_LUT_DATA );
   *pColor++ = (BYTE) seReadRegByte( REG_LUT_DATA );
   *pColor   = (BYTE) seReadRegByte( REG_LUT_DATA );
}

/*-------------------------------------------------------------------------*/

void seReadTvLutEntry(int index, BYTE *pColor)
{
   seReadCrtLutEntry(index, pColor);
}

/*-------------------------------------------------------------------------*/

/*
** seReadLutEntry()
**
** This function reads just one LUT entry.
**
** NOTE:
**
** - pLUT must point to a valid LUT data entry (BYTE lut[3])
*/
void seReadLutEntry(int index, BYTE *pColor)
{
   ASSERT( index < 256);

   if ( (_ActiveImageSurface->DisplayMode & (CRT | TV)) &&
       !(_ActiveImageSurface->DisplayMode & LCD))
      seReadCrtLutEntry(index, pColor);
   else
      seReadLcdLutEntry(index, pColor);
}

/*-------------------------------------------------------------------------*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区综合| 久久精品国产一区二区三| 国产在线视频精品一区| 欧美系列日韩一区| 国产精品亲子伦对白| 久久9热精品视频| 欧美三片在线视频观看| 亚洲欧洲国产专区| 国产激情一区二区三区桃花岛亚洲| 欧美精品国产精品| 一区二区成人在线视频| 波多野结衣欧美| 久久久久久久久久久久久久久99| 日韩激情中文字幕| 欧美喷水一区二区| 亚洲一级电影视频| av一区二区三区| 国产日本欧美一区二区| 极品瑜伽女神91| 日韩亚洲电影在线| 日韩中文字幕区一区有砖一区| 色激情天天射综合网| 18涩涩午夜精品.www| 国产成人精品一区二区三区四区 | 国产精品一区二区在线看| 欧美日韩精品专区| 亚洲国产日韩在线一区模特 | 蜜臀99久久精品久久久久久软件| 欧美艳星brazzers| 一区二区成人在线观看| 91蜜桃在线免费视频| 国产精品久久久久久久午夜片| 国产麻豆欧美日韩一区| 欧美精品一区二区三区蜜桃| 精品中文字幕一区二区| 精品国产乱码久久久久久久久 | 日本少妇一区二区| 91精品国模一区二区三区| 日韩精品电影在线观看| 91精品国产色综合久久ai换脸| 亚洲va国产va欧美va观看| 欧美午夜电影一区| 婷婷夜色潮精品综合在线| 欧美精品 国产精品| 天使萌一区二区三区免费观看| 欧美日韩国产一级| 日韩精品免费专区| 日韩一区二区三区电影| 久久99久久久欧美国产| 久久久一区二区三区捆绑**| 国产成人免费在线观看不卡| 国产精品不卡在线观看| 色婷婷久久久亚洲一区二区三区| 亚洲欧美日韩系列| 欧美在线小视频| 日韩成人精品视频| 精品成a人在线观看| 国产不卡免费视频| 亚洲精品视频一区| 欧美日韩国产成人在线91| 日本色综合中文字幕| 久久久综合激的五月天| av欧美精品.com| 亚洲资源在线观看| 日韩欧美一区二区久久婷婷| 国产老女人精品毛片久久| 国产精品国产a级| 欧美日韩一区二区三区四区| 久久国产免费看| 国产精品亲子伦对白| 欧美日韩一区二区三区高清| 青青草97国产精品免费观看无弹窗版 | 奇米色777欧美一区二区| 久久亚洲影视婷婷| 97精品久久久午夜一区二区三区| 亚洲一区二区三区四区五区黄| 欧美电影一区二区| 国产乱人伦偷精品视频免下载| 国产精品动漫网站| 91精品中文字幕一区二区三区| 国产一区三区三区| 亚洲免费av网站| 精品美女一区二区三区| 97久久精品人人澡人人爽| 日产国产欧美视频一区精品| 欧美激情一区二区在线| 欧美三级一区二区| 国产精品亚洲人在线观看| 一区二区日韩电影| 欧美不卡一区二区三区| 91丨九色porny丨蝌蚪| 麻豆精品一区二区av白丝在线| 中文字幕乱码久久午夜不卡| 欧美日韩视频一区二区| 国产福利视频一区二区三区| 亚洲成av人片一区二区| 久久久久97国产精华液好用吗| 欧美丝袜丝交足nylons图片| 国产综合久久久久影院| 一区二区三区成人| 国产清纯白嫩初高生在线观看91| 欧美午夜寂寞影院| 岛国精品在线观看| 蜜桃在线一区二区三区| 亚洲精品视频一区| 国产丝袜在线精品| 在线播放中文一区| 99国产精品久久| 国产精品亚洲专一区二区三区| 亚洲午夜久久久久久久久久久 | 欧美午夜电影网| 成人18精品视频| 激情久久五月天| 亚洲18色成人| 亚洲蜜臀av乱码久久精品蜜桃| 精品国产凹凸成av人网站| 欧美色倩网站大全免费| 94-欧美-setu| 国产传媒欧美日韩成人| 狂野欧美性猛交blacked| 亚洲亚洲精品在线观看| 成人欧美一区二区三区在线播放| 2017欧美狠狠色| 日韩一级完整毛片| 精品视频1区2区3区| 91网站在线播放| 国产成人精品影视| 国产在线国偷精品免费看| 日本成人在线电影网| 亚洲一区二区视频在线| 日韩美女视频19| 国产精品素人视频| 久久精品亚洲一区二区三区浴池| 精品少妇一区二区三区在线播放| 欧美蜜桃一区二区三区| 在线观看av一区二区| 色综合久久综合中文综合网| 99久久久国产精品| 成人app网站| 成人精品国产一区二区4080 | 亚洲综合成人在线视频| 亚洲男人的天堂在线aⅴ视频 | 制服丝袜亚洲色图| 欧美日韩成人激情| 欧美色视频在线观看| 91久久精品一区二区三区| 一本色道久久综合精品竹菊| 91亚洲男人天堂| 91在线视频网址| 99久久精品免费精品国产| 成人天堂资源www在线| 国产盗摄视频一区二区三区| 韩国女主播成人在线| 黄色小说综合网站| 紧缚捆绑精品一区二区| 国产曰批免费观看久久久| 国产在线国偷精品产拍免费yy| 国产一区二区三区美女| 国产精品自拍网站| 国产成人一区在线| 不卡在线观看av| 99精品欧美一区二区三区小说 | 一本色道久久综合狠狠躁的推荐| 色综合天天综合狠狠| 在线欧美日韩国产| 欧美日韩视频一区二区| 3d动漫精品啪啪1区2区免费| 欧美一二三区精品| 久久日一线二线三线suv| 亚洲国产成人午夜在线一区| 中文字幕中文字幕在线一区 | 免费成人在线播放| 精品制服美女丁香| 国产精品原创巨作av| 成人av在线电影| www.久久久久久久久| 色嗨嗨av一区二区三区| 欧美精品丝袜久久久中文字幕| 欧美一区日韩一区| 久久久天堂av| 国产精品久久久久婷婷| 亚洲精品免费在线播放| 天天操天天干天天综合网| 精品亚洲国内自在自线福利| 国产99精品在线观看| 色综合中文字幕国产| 一本色道久久综合亚洲精品按摩| 欧美日韩日日摸| 久久先锋影音av鲁色资源| 综合在线观看色| 日本亚洲一区二区| 成人一区二区三区在线观看 | 高清在线成人网| 在线观看日韩一区| 欧美成人猛片aaaaaaa| 中文字幕av不卡| 五月天一区二区| 懂色av中文一区二区三区| 欧美三级电影精品| 久久久国产一区二区三区四区小说|