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

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

?? lcdl0mag.c

?? 這套代碼已經(jīng)成功一直到S3C44B0X開發(fā)板上
?? C
字號:
/*
*********************************************************************************************************
*                                                uC/GUI
*                        Universal graphic software for embedded applications
*
*                       (c) Copyright 2002, Micrium Inc., Weston, FL
*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
*              礐/GUI is protected by international copyright laws. Knowledge of the
*              source code may not be used to write a similar product. This file may
*              only be used in accordance with a license and should not be redistributed
*              in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File        : LCD.c
Purpose     : Link between GUI and LCD_L0
              Performs most of the clipping.
---------------------------END-OF-HEADER------------------------------
*/

#include <stddef.h>             /* needed for definition of NULL */
#include "GUI_Private.h"
#include "GUIDebug.h"
#include "LCD_Private.h"        /* private modul definitions & config */

#if LCD_XMAG > 2
  #error Not yet supported
#endif

#if LCD_XMAG == 2

/*********************************************************************
*
*       Static data
*
**********************************************************************
*/

static const U8 abData12[16] = {
  0x0, 0x3, 0xc, 0xf, 0x30, 0x33, 0x3c, 0x3f, 0xC0, 0xC3, 0xCc, 0xcf, 0xf0, 0xf3, 0xfc, 0xff
};

static const U8 abData22[16] = {
  0x0,   0x5, 0x5*2, 0x5*3,
  0x50*1+0x0, 0x50*1+0x5, 0x50*1+0x5*2, 0x50*1+0x5*3,
  0x50*2+0x0, 0x50*2+0x5, 0x50*2+0x5*2, 0x50*2+0x5*3,
  0x50*3+0x0, 0x50*3+0x5, 0x50*3+0x5*2, 0x50*3+0x5*3
};

static const U8 abData32[16] = {
  0x0, 0x11, 0x22, 0x33,
  0x44, 0x55, 0x66, 0x77,
  0x88, 0x99, 0xaa, 0xbb,
  0xcc, 0xdd, 0xee, 0xff
};

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
/*********************************************************************
*
*       _DrawBitline
*/
static void _DrawBitline(int x0, int y0, int xsize, int BPP, const U8*pData, int Diff, const LCD_PIXELINDEX* pTrans) {
  union {
    U8  ab[100];     /* Byte Buffer */
    U16 au16[50];    /* Word Buffer */
  } Buffer;
  int i;
  int NumPixels;
  int NumPixelsMax = sizeof(Buffer.ab)*8/BPP/LCD_XMAG;
  while (xsize >0) {
    int iOff =0;
    NumPixels = (xsize < NumPixelsMax) ? xsize : NumPixelsMax;
    switch (BPP) {
    case 1:
      for (i=0; i<NumPixels; i+=8) {
        /* load the byte */
        U16 Data;
        if (Diff) {
          Data = ((*pData) << 8) | (*(pData+1));
          Data >>= 8-Diff;
          Data &= 0xff;
        } else {
          Data = *pData;
        }
        pData++;
        Buffer.ab[iOff++] = abData12[Data>>4]; 
        Buffer.ab[iOff++] = abData12[Data&15]; 
      }
      break;
    case 2:
      for (i=0; i<NumPixels; i+=4) {
        /* load the byte */
        U16 Data;
        if (Diff) {
          Data = ((*pData) << 8) | (*(pData+1));
          Data >>= 8-(Diff<<1);
          Data &= 0xff;
        } else {
          Data = *pData;
        }
        pData++;
        Buffer.ab[iOff++] = abData22[Data>>4]; 
        Buffer.ab[iOff++] = abData22[Data&15]; 
      }
      break;
    case 4:
      for (i=0; i<NumPixels; i+=2) {
        /* load the byte */
        U16 Data;
        if (Diff) {
          Data = ((*pData) << 8) | (*(pData+1));
          Data >>= 8-(Diff<<2);
          Data &= 0xff;
        } else {
          Data = *pData;
        }
        pData++;
        Buffer.ab[iOff++] = abData32[Data>>4]; 
        Buffer.ab[iOff++] = abData32[Data&15]; 
      }
      break;
    case 8:
      for (i=0; i<NumPixels; i++) {
        #if LCD_XMAG > 2
          GUI_MEMSET (&Buffer.ab[i*LCD_XMAG], *(pData+i), LCD_XMAG);
        #else
          Buffer.ab[i*LCD_XMAG] = Buffer.ab[i*LCD_XMAG+1] = *pData++; 
        #endif
      }
      break;
    case 16:
      for (i=0; i<NumPixels; i++) {
        #if LCD_XMAG > 2
          GUI_MEMSET (&Buffer.ab[i*LCD_XMAG], *(pData+i), LCD_XMAG);
        #else
          Buffer.au16[i*LCD_XMAG] = Buffer.au16[i*LCD_XMAG+1] = *(U16*)pData;
          pData += 2; /* Move to next word */
        #endif
      }
      break;
    }
    LCD_L0_DrawBitmap(x0 + Diff * LCD_XMAG, y0, NumPixels * LCD_XMAG, LCD_YMAG, BPP, 0, Buffer.ab, 0, pTrans);
    x0 += NumPixels*LCD_XMAG;
    xsize -= NumPixels;
  }
}

/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       LCD_L0_MAG_DrawBitmap
*/
void LCD_L0_MAG_DrawBitmap(int x0, int y0, int xsize, int ysize,
                           int BPP, int BytesPerLine, const U8* pData, int Diff,
                           const LCD_PIXELINDEX* pTrans)
{
  int iLine;
  y0 *= LCD_YMAG;
  x0 *= LCD_XMAG;
  for (iLine = 0; iLine < ysize; iLine++) {
    #if LCD_XMAG == 1
      LCD_L0_DrawBitmap(x0, y0, xsize, LCD_YMAG, BPP, 0, pData, Diff, pTrans);
    #else
      _DrawBitline(x0, y0, xsize, BPP, pData, Diff, pTrans);
    #endif
    y0+= LCD_YMAG;
    pData += BytesPerLine;
  }
}

/*********************************************************************
*
*       LCD_L0_MAG_DrawHLine
*/
void LCD_L0_MAG_DrawHLine(int x0, int y0,  int x1) {
  x0 *= LCD_XMAG;
  x1 = x1*(LCD_XMAG) + LCD_XMAG-1;
  y0 *= LCD_YMAG;
  LCD_L0_FillRect(x0, y0, x1, y0 + LCD_YMAG-1);
}

/*********************************************************************
*
*       LCD_L0_MAG_DrawVLine
*/
void LCD_L0_MAG_DrawVLine(int x0 , int y0,  int y1) {
  y0 *= LCD_YMAG;
  y1 = y1*(LCD_YMAG) + LCD_YMAG-1;
  x0 *= LCD_XMAG;
  LCD_L0_FillRect(x0, y0, x0 + LCD_XMAG-1, y1);
}

/*********************************************************************
*
*       LCD_L0_MAG_FillRect
*/
void LCD_L0_MAG_FillRect(int x0, int y0, int x1, int y1) {
  y0 *= LCD_YMAG;
  y1 = y1*(LCD_YMAG) + LCD_YMAG-1;
  x0 *= LCD_XMAG;
  x1 = x1*(LCD_XMAG) + LCD_XMAG-1;
  LCD_L0_FillRect(x0, y0, x1, y1);
}

/*********************************************************************
*
*       LCD_L0_MAG_GetPixelIndex
*/
unsigned int LCD_L0_MAG_GetPixelIndex(int x, int y) {
  return LCD_L0_GetPixelIndex(x* LCD_XMAG, y* LCD_YMAG);
}

/*********************************************************************
*
*       LCD_L0_MAG_SetPixelIndex
*/
void LCD_L0_MAG_SetPixelIndex(int x, int y, int ColorIndex) {
  int ix, iy;
  y *= LCD_YMAG;
  x *= LCD_XMAG;
  for (iy=0; iy< LCD_YMAG; iy++) {
    for (ix=0; ix< LCD_XMAG; ix++) {
      LCD_L0_SetPixelIndex(x+ix, y+iy, ColorIndex);
    }
  }
}

/*********************************************************************
*
*       LCD_L0_MAG_XorPixel
*/
void LCD_L0_MAG_XorPixel(int x, int y) {
  int ix, iy;
  y *= LCD_YMAG;
  x *= LCD_XMAG;
  for (iy=0; iy< LCD_YMAG; iy++) {
    for (ix=0; ix< LCD_XMAG; ix++) {
      LCD_L0_XorPixel(x+ix, y+iy);
    }
  }
}

#else

void LCDL0Mag_c(void);
void LCDL0Mag_c(void) { } /* avoid empty object files */

#endif

/*************************** End of file ****************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲理论在线观看| 美国欧美日韩国产在线播放| 一区二区三区欧美日韩| 成人激情电影免费在线观看| 国产精品亲子乱子伦xxxx裸| 美国欧美日韩国产在线播放| 精品精品欲导航| 高清不卡在线观看| 夜夜精品浪潮av一区二区三区| 波多野结衣中文一区| 国产三级欧美三级日产三级99| 国产a级毛片一区| 2022国产精品视频| 成人一级黄色片| 日韩精品乱码免费| 国产精品沙发午睡系列990531| 色域天天综合网| 国产.欧美.日韩| 午夜精品爽啪视频| 国产女人aaa级久久久级| 欧美午夜一区二区三区免费大片| 免费黄网站欧美| 一区二区三区精品在线| 国产日韩欧美在线一区| 欧美日韩国产色站一区二区三区| 琪琪一区二区三区| 亚洲一区二区视频在线观看| 欧美国产精品久久| 日韩一级片在线播放| 欧美日韩免费观看一区二区三区 | 欧美高清在线视频| 精品乱人伦一区二区三区| 欧美午夜精品一区| 色偷偷88欧美精品久久久| 国产精品一区二区在线看| 日韩国产欧美在线播放| 首页欧美精品中文字幕| 亚洲综合视频在线| 日韩高清不卡一区二区三区| 午夜久久电影网| 日韩av电影天堂| 国产一区二区三区免费| 国产乱国产乱300精品| 国模无码大尺度一区二区三区| 男人的j进女人的j一区| 狠狠色丁香久久婷婷综| 东方欧美亚洲色图在线| 在线国产亚洲欧美| 日韩欧美自拍偷拍| 亚洲欧洲另类国产综合| 国产精品久久久久影院老司| 一片黄亚洲嫩模| 蜜臀久久久99精品久久久久久| 麻豆中文一区二区| 成人sese在线| 欧美日本一区二区| 久久美女艺术照精彩视频福利播放| 国产精品丝袜在线| 免费日本视频一区| 色久优优欧美色久优优| 精品动漫一区二区三区在线观看| 欧美tickle裸体挠脚心vk| 成人欧美一区二区三区视频网页| 日本成人中文字幕| 色94色欧美sute亚洲线路二| 久久久久国产精品麻豆ai换脸| 亚洲午夜久久久久久久久久久 | 91精品国产乱| 性做久久久久久免费观看欧美| 不卡视频一二三| 国产午夜三级一区二区三| 日韩精品电影一区亚洲| 一本大道av一区二区在线播放| 久久免费偷拍视频| 精品一区二区国语对白| 欧美一级生活片| 五月天一区二区| 欧美午夜精品理论片a级按摩| 一区二区视频在线| 国产成人综合网| 亚洲色图欧洲色图婷婷| 97精品国产露脸对白| 国产亚洲欧美中文| 成人久久18免费网站麻豆| 久久精品一区二区三区不卡| 日本不卡一二三| 国产色产综合色产在线视频| 国产美女娇喘av呻吟久久| 久久久久久久久99精品| 成人激情图片网| 亚洲尤物视频在线| 久久久久久久久久看片| 成人听书哪个软件好| 国产精品国产三级国产普通话三级| 丁香婷婷综合色啪| 五月婷婷色综合| 精品国产乱码久久久久久1区2区| 国产福利一区二区三区视频| 亚洲已满18点击进入久久| 91精品国产色综合久久久蜜香臀| 黑人精品欧美一区二区蜜桃| 日韩美女视频一区二区| 91精品综合久久久久久| 国产成人av在线影院| 国产精品久久三| 精品国精品国产| 制服丝袜日韩国产| 99这里只有久久精品视频| 蜜桃av噜噜一区二区三区小说| 国产女主播一区| 精品国产伦一区二区三区观看体验 | 欧美日韩一区中文字幕| 狠狠色狠狠色综合日日91app| 青青国产91久久久久久| 裸体健美xxxx欧美裸体表演| 亚洲午夜激情av| 日韩avvvv在线播放| 极品少妇xxxx精品少妇| 国产精品亚洲午夜一区二区三区| 老司机精品视频导航| 国产精品香蕉一区二区三区| 成人精品视频网站| 在线观看日韩av先锋影音电影院| 欧美色涩在线第一页| 欧美一区二区三区视频在线观看| 欧美tk丨vk视频| ㊣最新国产の精品bt伙计久久| 亚洲福利电影网| 国产成人精品免费网站| 在线视频一区二区三区| 欧美成人一区二区三区片免费| 国产色产综合色产在线视频| 亚洲一区成人在线| 成人不卡免费av| 日韩欧美美女一区二区三区| 一区二区三区四区不卡视频| 亚洲成人三级小说| 91视频在线看| 日本一区二区成人| 青娱乐精品视频| 制服丝袜亚洲精品中文字幕| 久久精品日产第一区二区三区高清版| 亚洲国产激情av| 国产美女主播视频一区| 91一区二区三区在线播放| 久久久久97国产精华液好用吗| 亚洲视频小说图片| 波多野洁衣一区| 久久久高清一区二区三区| 天堂久久久久va久久久久| caoporn国产精品| 亚洲激情图片一区| 色香蕉成人二区免费| 亚洲欧洲精品一区二区精品久久久| 亚洲一线二线三线久久久| 91福利国产精品| 日韩黄色小视频| 欧美日韩国产高清一区二区三区| 国产精品免费视频网站| 国产精品1区二区.| 亚洲视频免费观看| 欧美专区日韩专区| 亚洲午夜精品17c| 26uuu成人网一区二区三区| 久久精品国产精品亚洲精品| 日本一区二区三区四区| 成人国产精品视频| 一区二区三区精品久久久| 欧美二区三区的天堂| 国产99久久久国产精品潘金网站| 亚洲日本丝袜连裤袜办公室| 欧美成人福利视频| 色成年激情久久综合| 蜜桃av一区二区| 综合欧美亚洲日本| 日韩欧美在线影院| 91亚洲大成网污www| 裸体歌舞表演一区二区| 亚洲一区二区三区影院| 欧美va在线播放| 欧美中文字幕一二三区视频| 韩国三级中文字幕hd久久精品| 久久久久久夜精品精品免费| 欧美探花视频资源| 成人免费视频视频| 国产伦理精品不卡| 精品一区二区日韩| 人人爽香蕉精品| 午夜欧美在线一二页| 性感美女极品91精品| 午夜精品爽啪视频| 日本一区中文字幕| 日韩主播视频在线| 午夜激情综合网| 天天操天天干天天综合网| 亚洲欧洲综合另类| 国产精品不卡视频| 亚洲三级小视频| 中文av字幕一区| 国产精品久久久久9999吃药|