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

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

?? dirscraccrenderer.cpp

?? symbian平臺上如何在屏幕上快速的顯示圖片
?? CPP
字號:
/*
* ============================================================================
*  Name     : CDirScrAccRenderer from DirScrAccRenderer.h
*  Part of  : DirScrAcc
*  Created  : 06/11/2003 by Forum Nokia
*  Description:
*     Renderer class creating a flying flag effect.
*  Version  :
*  Copyright: Nokia Corporation
* ============================================================================
*/

#include <fbs.h>                // for CFbsBitmap
#include "DirScrAccRenderer.h"
#include <eikenv.h>             // for CEikonEnv::InfoMsg

static const TUint8 sinTable[256] =
{8,  8,  8,  8,  8,  8,  9,  9,
 9,  9,  9, 10, 10, 10, 10, 10,
11, 11, 11, 11, 11, 11, 12, 12,
12, 12, 12, 12, 13, 13, 13, 13,
13, 13, 13, 14, 14, 14, 14, 14,
14, 14, 14, 14, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 14, 14, 14,
14, 14, 14, 14, 14, 14, 13, 13,
13, 13, 13, 13, 13, 12, 12, 12,
12, 12, 12, 11, 11, 11, 11, 11,
11, 10, 10, 10, 10, 10,  9,  9,
 9,  9,  9,  8,  8,  8,  8,  8,
 8,  8,  8,  8,  8,  8,  7,  7,
 7,  7,  7,  6,  6,  6,  6,  6,
 5,  5,  5,  5,  5,  5,  4,  4,
 4,  4,  4,  4,  3,  3,  3,  3,
 3,  3,  3,  2,  2,  2,  2,  2,
 2,  2,  2,  2,  1,  1,  1,  1,
 1,  1,  1,  1,  1,  1,  1,  1,
 1,  1,  1,  1,  1,  1,  1,  1,
 1,  1,  1,  1,  1,  1,  1,  1,
 1,  1,  1,  1,  1,  1,  1,  1,
 1,  1,  1,  1,  1,  2,  2,  2,
 2,  2,  2,  2,  2,  2,  3,  3,
 3,  3,  3,  3,  3,  4,  4,  4,
 4,  4,  4,  5,  5,  5,  5,  5,
 5,  6,  6,  6,  6,  6,  7,  7,
 7,  7,  7,  8,  8,  8,  8,  8};

#define MAX_OFFSET 15
 
_LIT(KBitmapFilename, "c:\\system\\apps\\DirScrAcc\\imagedata.mbm");
const TUint16 KMMCDriveLetter = 'e';
const TUint16 KROMDriveLetter = 'z';

//
// class CFlagRenderer
//
// ---------------------------------------------------------
// CFlagRenderer::CFlagRenderer()
// Contructor (private)
// --------------------------------------------------------- 
CFlagRenderer::CFlagRenderer(TInt aWidth, TInt aHeight)
: iWidth(aWidth),
  iHeight(aHeight),  
  iFrame(0)
 {
 iLength = aWidth * aHeight;
 iScanLineLen = aWidth * 2;
 }
 
// ---------------------------------------------------------
// CFlagRenderer::NewL()
// static method for instantiating a new CFlagRenderer
// ---------------------------------------------------------
CFlagRenderer* CFlagRenderer::NewL(TInt aWidth, TInt aHeight)
 {
 CFlagRenderer* self = new (ELeave) CFlagRenderer(aWidth, aHeight);
 CleanupStack::PushL(self); 
 self->ConstructL(); 
 CleanupStack::Pop(); 
 return self;
 }

// ---------------------------------------------------------
// CFlagRenderer::ConstructL()
// Symbian 2nd phase constructor (private)
// --------------------------------------------------------- 
void CFlagRenderer::ConstructL()
 {
 // decide if we need to load normal or fullscreen bitmap
 TInt useFullScreen = (iHeight == 208) ? 1 : 0;
 // create a bitmap and load an image into it
 // image color depth must be 12 bit
 iImageFlag = new (ELeave) CFbsBitmap();

 // try 3 locations - application directory in C,E (memory card), and Z drive
 TFileName imageLocation(KBitmapFilename);

 TInt loadErr = iImageFlag->Load(imageLocation,useFullScreen);
 
 // not found on C, try E & Z
 if(loadErr != KErrNone)
        {
        imageLocation[0] = KMMCDriveLetter;    
        loadErr = iImageFlag->Load(imageLocation,useFullScreen);
        if(loadErr != KErrNone)
            {
            imageLocation[0] = KROMDriveLetter; // in emulator, apps usually reside on z
            loadErr = iImageFlag->Load(imageLocation,useFullScreen);
            }
        }    

 // not found, display error message and leave
 if(loadErr != KErrNone)
    {
    // InfoMsg only has effect in emulator
    CEikonEnv::Static()->InfoMsg(_L("imagedata.mbm not found"));
    // wait a while for the msg to show, then leave
    User::After(1000000);
    User::Leave(loadErr); 
    }
 }

// ---------------------------------------------------------
// CFlagRenderer::~CFlagRenderer()
// Destructor
// ---------------------------------------------------------  
CFlagRenderer::~CFlagRenderer()
 { 
 delete iImageFlag;
 iImageFlag = 0;
 }

// ---------------------------------------------------------
// CFlagRenderer::RenderNextFrameL()
// Renders the next frame of the waving flag to a buffer
// specified by aBitmapAddr parameter
//
// Return value: TInt - index of the last rendered frame
// ---------------------------------------------------------
TInt CFlagRenderer::RenderNextFrameL(TUint8* aBitmapAddr)
 {
 // fetch an address for our flag image data
 iFlagDataAddr = (TUint8*)iImageFlag->DataAddress();

 // clear the target buffer
 Mem::FillZ(aBitmapAddr, iLength << 1);
  
 TInt angle = iFrame;

 // horizontal scan: move scanlines to new locations according to sinTable
 // MAX_OFFSET number of bottom scanlines are reserved for vertical shift, skip these
 for(TInt s = 0; s < iHeight-MAX_OFFSET-1; s++)
  {
  Mem::Copy(aBitmapAddr + (s * iScanLineLen) + sinTable[angle % 256] * 2,
            iFlagDataAddr + (s * iScanLineLen), iScanLineLen);
            
  // store the offset for each scanline (to 4 bits not used for RGB data)  
  *(aBitmapAddr + (s * iScanLineLen) + 1) = static_cast<TUint8>((sinTable[angle % 256]) << 4);

  // calculate a new speed for scanning through sinTable
  angle += WaveSpeed(iFrame + s);
  }

  // vertical scan: move each pixel to new location according to sinTable
  // and adjust pixel brightness 
  for(TInt i = 1; i < iWidth-1; i++)
    {    
    for(TInt j = iHeight-MAX_OFFSET-2; j ; j--)
        {
        TUint16* orgLocation = (TUint16*)aBitmapAddr + j*iWidth + i;
        TUint16* movLocation = orgLocation + (sinTable[angle % 256] * iWidth);

        // get the offset stored in horizontal scan phase and calculate an average of hz/vt offsets        
        TUint8 hzOffset = static_cast<TUint8>(*(aBitmapAddr + ((j * iScanLineLen) + 1)) >> 4);        
        TInt avgOffset = ((sinTable[angle % 256] + hzOffset) >> 2);

        if(orgLocation != movLocation)
            {            
            // use the avg. offset to dim the pixels                        
            TInt8 r = static_cast<TInt8>((*orgLocation  & 0x00f) - avgOffset);
            TInt8 g = static_cast<TInt8>(((*orgLocation & 0x0f0) >> 4) - avgOffset);
            TInt8 b = static_cast<TInt8>(((*orgLocation & 0xf00) >> 8) - avgOffset);

            // copy the pixel data to a new location
            (r < 0) ? *movLocation  = 0     : *movLocation  = r;
            (g < 0) ? *movLocation &= 0xf0f : *movLocation |= g << 4;
            (b < 0) ? *movLocation &= 0x0ff : *movLocation |= b << 8;
        
            // zero the original pixel
            *orgLocation = 0;
            }
        }

    // calculate a new speed for scanning through sinTable
    angle += WaveSpeed(iFrame + i + 70);
    }
 
 return iFrame++;
 }

inline TInt CFlagRenderer::WaveSpeed(TInt aIndex)
    {    
    TInt waveSpeed = (aIndex & 0xe0) >> 5;
    return (waveSpeed > 4) ? 9 - waveSpeed : waveSpeed + 1;        
    }
    
    
        

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨porny丨在线| 成人午夜视频在线观看| 91精品国产福利| 人禽交欧美网站| 2020日本不卡一区二区视频| 国产成人夜色高潮福利影视| 国产精品欧美一区二区三区| 91免费版在线看| 天天综合色天天综合色h| 精品久久久久久久人人人人传媒| 国产精品一区二区在线观看网站| 国产精品女人毛片| 欧美日韩精品一区二区三区蜜桃| 精品一区在线看| 综合亚洲深深色噜噜狠狠网站| 91国产成人在线| 久草这里只有精品视频| 国产精品灌醉下药二区| 欧美区在线观看| 国产精品亚洲视频| 亚洲乱码日产精品bd| 日韩欧美国产一区二区在线播放| 国产suv一区二区三区88区| 亚洲国产日韩a在线播放| 26uuu欧美日本| 欧美色图激情小说| 国产999精品久久| 婷婷中文字幕综合| 中日韩免费视频中文字幕| 8x福利精品第一导航| 成人高清视频免费观看| 欧美96一区二区免费视频| 国产精品第一页第二页第三页| 在线成人av网站| www.日韩av| 久久国产免费看| 亚洲国产视频一区| 国产精品国产三级国产aⅴ中文| 日韩三级伦理片妻子的秘密按摩| 99久久综合精品| 国产一区视频导航| 日本伊人色综合网| 亚洲一区二区精品视频| 中文字幕一区免费在线观看| 亚洲精品一区二区三区影院| 欧美午夜一区二区三区免费大片| 国产**成人网毛片九色| 久久成人久久爱| 五月天欧美精品| 亚洲精品视频在线| 欧美激情一区二区三区蜜桃视频 | 日韩一级大片在线观看| 99在线精品一区二区三区| 国产老肥熟一区二区三区| 人人爽香蕉精品| 午夜精品久久久久久久99水蜜桃 | 久久99国产乱子伦精品免费| 亚洲男帅同性gay1069| 欧美极品少妇xxxxⅹ高跟鞋| 日韩精品最新网址| 91精品国产全国免费观看| 欧美三级资源在线| 欧美在线影院一区二区| 色综合视频在线观看| 成人精品一区二区三区四区| 国产美女娇喘av呻吟久久| 蜜桃视频一区二区三区在线观看| 天天做天天摸天天爽国产一区| 亚洲与欧洲av电影| 亚洲成人在线免费| 亚洲国产成人av好男人在线观看| 亚洲国产视频一区| 视频一区二区欧美| 亚欧色一区w666天堂| 亚洲图片欧美视频| 天天综合色天天综合| 日本网站在线观看一区二区三区| 天堂蜜桃一区二区三区| 日本vs亚洲vs韩国一区三区二区 | 欧美视频第二页| 欧美日韩一区不卡| 欧美一区二区成人| 精品国产一区二区三区久久久蜜月 | 久久五月婷婷丁香社区| 久久看人人爽人人| 国产清纯在线一区二区www| 久久久久久久久久久久久久久99| 久久久久久99精品| 国产精品乱码人人做人人爱| 国产精品久久久久久户外露出| 亚洲人成亚洲人成在线观看图片| 一区二区免费看| 亚洲成人av资源| 精品一区中文字幕| 成年人国产精品| 欧美日韩中文国产| 日韩免费观看2025年上映的电影| 精品国产一区二区三区久久久蜜月| 国产欧美精品一区二区色综合朱莉| 亚洲三级电影网站| 午夜精品aaa| 国产精品白丝av| 色综合视频在线观看| 91精品午夜视频| 久久久久成人黄色影片| 亚洲人成精品久久久久久| 亚洲大片在线观看| 国产激情一区二区三区四区 | 亚洲一级二级在线| 久久国产精品99久久人人澡| 豆国产96在线|亚洲| 91国模大尺度私拍在线视频| 精品国产欧美一区二区| 亚洲欧美自拍偷拍色图| 日本亚洲欧美天堂免费| 成人理论电影网| 欧美一区二区三区在线观看| 国产精品情趣视频| 麻豆一区二区在线| 色欲综合视频天天天| www国产成人免费观看视频 深夜成人网| 国产精品久久久久精k8| 久久精品国产亚洲一区二区三区| 成人av资源在线观看| 欧美一级午夜免费电影| 成人免费视频在线观看| 麻豆国产精品视频| 在线免费精品视频| 国产午夜精品一区二区三区视频| 亚洲高清免费一级二级三级| 成人一区二区视频| 精品国产三级电影在线观看| 一区二区不卡在线播放 | 久久精品国产精品亚洲精品| 91久久香蕉国产日韩欧美9色| 久久精品网站免费观看| 天堂成人国产精品一区| 色婷婷久久久亚洲一区二区三区| 久久天堂av综合合色蜜桃网| 性欧美大战久久久久久久久| 91婷婷韩国欧美一区二区| 久久午夜色播影院免费高清 | 久草这里只有精品视频| 欧美精品日韩精品| 亚洲一卡二卡三卡四卡无卡久久| 成人av高清在线| 欧美国产一区二区在线观看| 黄色成人免费在线| 欧美一级在线观看| 五月婷婷久久综合| 欧美亚洲综合另类| 一区二区免费视频| 色婷婷综合在线| 亚洲天堂av一区| 不卡电影一区二区三区| 国产色产综合产在线视频| 国产综合色在线| 久久麻豆一区二区| 国产成人在线免费观看| 国产性做久久久久久| 国产一区在线观看视频| 久久蜜臀中文字幕| 国产在线播精品第三| 亚洲精品在线网站| 国产一区二区导航在线播放| 久久久久久久久久久黄色| 国产精选一区二区三区| 国产亚洲美州欧州综合国| 国产91丝袜在线观看| 国产精品国产馆在线真实露脸 | 色综合中文字幕国产 | 视频一区二区中文字幕| 91精品国产高清一区二区三区 | 久久国产精品72免费观看| 日韩欧美你懂的| 国产一区二区在线影院| 久久一日本道色综合| 国产东北露脸精品视频| 国产精品久久久久久久第一福利| 成人av网站免费观看| 亚洲精品国产视频| 欧美三级电影一区| 蜜臀久久久久久久| 精品国产123| 国产suv一区二区三区88区| 亚洲日本在线天堂| 欧美男生操女生| 国产一区视频在线看| 日韩一区中文字幕| 欧美卡1卡2卡| 国产精品资源网| 亚洲欧洲制服丝袜| 制服丝袜中文字幕一区| 国内不卡的二区三区中文字幕| 国产精品看片你懂得| 在线观看成人免费视频| 久久成人久久爱| 国产精品毛片a∨一区二区三区| 色菇凉天天综合网| 韩日欧美一区二区三区|