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

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

?? fire.cpp

?? 這是書上的代碼
?? CPP
字號:
#define NAME	"火焰仿真"
#define TITLE	"火焰仿真"
#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#include <windowsx.h>
#include <fstream.h>
#include <ddraw.h>
#include <string.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <io.h>
#include "gif89a.h"
#include "cfire.h"

#define TIMER_ID        1
#define TIMER_RATE      30

void showAFile();
DWORD WINAPI demo(LPVOID lpparm);

LPDIRECTDRAW            lpDD;           // DirectDraw object
LPDIRECTDRAWSURFACE     lpDDSPrimary;   // DirectDraw primary surface
LPDIRECTDRAWSURFACE     lpDDSBack;      // DirectDraw back surface
DWORD RBitMask,GBitMask,BBitMask;
BOOL                    bActive;        // is application active?
BOOL                    bQuit = false;
HANDLE					thandle;
HWND					hwnd;
CFire fire(640,480);

WORD (*RGBto16bit)(unsigned char r,unsigned char g,unsigned char b);

BOOL initWindow( HINSTANCE hInstance, int nCmdShow );
BOOL initDDraw(void);
BOOL initFire(void);
long FAR PASCAL WindowProc( HWND hWnd, UINT message, 
                            WPARAM wParam, LPARAM lParam );
void finiObjects( void );

time_t tt;
long frames,rate,k;

WORD RGBto16bit565(unsigned char r,unsigned char g,unsigned char b)
{	return (((WORD)r<<8)&0xf800)|(((WORD)g<<3)&0x07e0)|((WORD)b>>3);
}

WORD RGBto16bit555(unsigned char r,unsigned char g,unsigned char b)
{	return (((WORD)r<<7)&0x7c00)|(((WORD)g<<2)&0x03e0)|((WORD)b>>3);
}

int PASCAL WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        LPSTR lpCmdLine, int nCmdShow)
{   MSG         msg;
    lpCmdLine = lpCmdLine;
    hPrevInstance = hPrevInstance;
	DWORD tID;
    if( !initWindow( hInstance, nCmdShow ) )
    {   return FALSE;
    }
	if(!initDDraw())
	{	 goto error;
	}
	if(!initFire())
	{	 goto error;
	} 
	if((thandle = CreateThread(NULL,0,demo,NULL,0,&tID)) == NULL)
		goto error;
    while (GetMessage(&msg, NULL, 0, 0))
    {	
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
error:
	char buf[40];
	sprintf(buf, "初始化失??!");
    MessageBox( hwnd, buf, "ERROR", MB_OK );
	finiObjects();
    DestroyWindow( hwnd );
	return FALSE;
}

BOOL initWindow( HINSTANCE hInstance, int nCmdShow )
{   WNDCLASS            wc;
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WindowProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon( hInstance, IDI_APPLICATION );
    wc.hCursor = LoadCursor( NULL, IDC_ARROW );
    wc.hbrBackground = NULL;
    wc.lpszMenuName = NAME;
    wc.lpszClassName = NAME;
    RegisterClass( &wc );
    
    hwnd = CreateWindowEx(
        WS_EX_TOPMOST,
        NAME,
        TITLE,
        WS_POPUP,
        0, 0,
        GetSystemMetrics( SM_CXSCREEN ),
        GetSystemMetrics( SM_CYSCREEN ),
        NULL,
        NULL,
        hInstance,
        NULL );

    if( !hwnd )
    {
        return FALSE;
    }

    ShowWindow( hwnd, nCmdShow );
    UpdateWindow( hwnd );
	return TRUE;
}

BOOL initFire(void)
{	if(!fire)
		return FALSE;
	if(!fire.loadSeedMap("seed.gif"))
		return FALSE;
	if(!fire.loadCoolMap("cool.gif"))
		return FALSE;
	if(!fire.loadLightMap("light.gif"))
		return FALSE;
	return TRUE;
}

BOOL initDDraw(void)
{   
	DDSURFACEDESC       ddsd;
	DDSCAPS             ddscaps;
    HRESULT             ddrval;
    char                buf[256];
	ddrval = DirectDrawCreate( NULL, &lpDD, NULL );
    if( ddrval == DD_OK )
    {   // Get exclusive mode
        ddrval = lpDD->SetCooperativeLevel( hwnd,
                                DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
        if(ddrval == DD_OK )
        {   ddrval = lpDD->SetDisplayMode( 640,480, 16 );
            if( ddrval == DD_OK )
            {   // Create the primary surface with 1 back buffer
                ddsd.dwSize = sizeof( ddsd );
				ddsd.dwFlags = DDSD_CAPS | 
							   DDSD_BACKBUFFERCOUNT;
                ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE |
                                      DDSCAPS_FLIP | 
                                      DDSCAPS_COMPLEX;
                ddsd.dwBackBufferCount = 1;
                ddrval = lpDD->CreateSurface( &ddsd, &lpDDSPrimary, NULL );
                if( ddrval == DD_OK )
                {   ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
                    ddrval = lpDDSPrimary->GetAttachedSurface(&ddscaps, 
                                                          &lpDDSBack);
					if( ddrval == DD_OK )
					{	DDPIXELFORMAT pixelFormat;
						pixelFormat.dwSize = sizeof(DDPIXELFORMAT);
						lpDDSPrimary->GetPixelFormat(&pixelFormat);
						if((pixelFormat.dwFlags&DDPF_RGB)==0)
							goto error;
						RBitMask = pixelFormat.dwRBitMask;
						GBitMask = pixelFormat.dwGBitMask;
						BBitMask = pixelFormat.dwBBitMask;
						if(((WORD)GBitMask) == 0x07e0)
							RGBto16bit = RGBto16bit565;
						else
							RGBto16bit = RGBto16bit555;
						return TRUE;
					}
                }
			}
        }
    }
error:
    wsprintf(buf, "Direct Draw Init Failed (%08lx)\n", ddrval );
    MessageBox( hwnd, buf, "ERROR", MB_OK );
    return FALSE;
}

long FAR PASCAL WindowProc( HWND hWnd, UINT message, 
                            WPARAM wParam, LPARAM lParam )
{    switch( message )
    {
    case WM_ACTIVATEAPP:
        bActive = wParam;
        break;

    case WM_CREATE:
        break;

    case WM_SETCURSOR:
        SetCursor(NULL);
        return TRUE;
    case WM_KEYDOWN:
        switch( wParam )
        {
        case VK_ESCAPE:
			bQuit = true;
			while(WaitForSingleObject(thandle,200) != WAIT_OBJECT_0);
            PostMessage(hWnd, WM_CLOSE, 0, 0);
            break;
		}
        break;
    case WM_PAINT:
        break;

    case WM_DESTROY:
        finiObjects();
        PostQuitMessage( 0 );
        break;
    }
    return DefWindowProc(hWnd, message, wParam, lParam);
}

void finiObjects( void )
{
    if( lpDD != NULL )
    {
        if( lpDDSPrimary != NULL )
        {   lpDDSPrimary->Release();
            lpDDSPrimary = NULL;
        }
		lpDD->Release();
        lpDD = NULL;
    }
}

void showAFile()
{
	DDSURFACEDESC       ddsd;
	HRESULT             ddrval;
	ddsd.dwSize = sizeof(ddsd);

	DDBLTFX ddbltfx;
	ddbltfx.dwSize = sizeof(ddbltfx);
	ddbltfx.dwFillColor = 0x0000;
	lpDDSBack->Blt(NULL,NULL,NULL,DDBLT_COLORFILL|DDBLT_WAIT, &ddbltfx);
	while ((ddrval = lpDDSBack->Lock(NULL, &ddsd, 0, NULL)) == DDERR_WASSTILLDRAWING)
		;
	if( ddrval == DD_OK )
	{	fire.render((WORD*)ddsd.lpSurface);
		lpDDSBack->Unlock(NULL);
	}
	while( 1 )
	{
	    ddrval = lpDDSPrimary->Flip( NULL, 0 );
        if( ddrval == DD_OK )
	    {
		    break;
		}
		if( ddrval == DDERR_SURFACELOST )
		{
			ddrval = lpDDSPrimary->Restore();
			if( ddrval != DD_OK )
			{
				break;
			}
		}
		if( ddrval != DDERR_WASSTILLDRAWING )
		{
			break;
		}
	}
}

DWORD WINAPI demo(LPVOID lpparm)
{	static time_t time1 = 0,time2;
	while(1)
	{	if( bQuit )
			return -1;
		if( bActive )
		{	showAFile();
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu亚洲综合色欧美| 亚洲资源中文字幕| 香港成人在线视频| 国产成人综合网| 欧美日韩国产首页| 亚洲另类春色国产| 91精品福利视频| 精品999在线播放| 午夜精品久久久久久久蜜桃app| 激情伊人五月天久久综合| 在线观看不卡一区| 日韩一区欧美小说| 国产成人aaa| 26uuu久久综合| 日本一区中文字幕| 欧美日韩一区二区三区在线 | 成人在线一区二区三区| 日韩一区二区在线观看| 亚洲乱码日产精品bd| 波多野结衣精品在线| 久久久综合视频| 国内精品免费**视频| 日韩一区二区三区免费看 | 久久精品夜色噜噜亚洲a∨| 日韩高清不卡在线| 欧美电影一区二区| 亚洲不卡在线观看| 精品视频免费在线| 五月综合激情婷婷六月色窝| 91国偷自产一区二区三区观看 | 26uuu另类欧美| 韩国av一区二区三区| 日韩欧美aaaaaa| 国产在线一区观看| 久久久久国产成人精品亚洲午夜| 国产在线精品不卡| 国产精品嫩草影院com| 91丨porny丨首页| 亚洲已满18点击进入久久| 欧美日韩一级片在线观看| 五月婷婷激情综合| 日韩欧美激情一区| 国产一区二区电影| 国产精品短视频| 91官网在线观看| 日本vs亚洲vs韩国一区三区| 日韩一区二区精品在线观看| 国产一区亚洲一区| 国产精品国产三级国产普通话蜜臀 | 精品成人佐山爱一区二区| 男女激情视频一区| 国产欧美视频在线观看| 99re66热这里只有精品3直播 | 日本一区二区电影| 99久久精品免费| 午夜精品福利视频网站| 久久综合狠狠综合久久综合88| 国产成人啪午夜精品网站男同| 国产精品每日更新| 欧美日本一区二区三区| 国产精品资源在线看| 亚洲日本乱码在线观看| 91精品国产一区二区三区蜜臀| 国产成人aaaa| 亚洲国产中文字幕在线视频综合| 精品国产乱码久久久久久蜜臀| 成人av电影在线观看| 日本aⅴ免费视频一区二区三区 | 亚洲精品一区二区三区福利| 91丨九色丨蝌蚪丨老版| 麻豆专区一区二区三区四区五区| 亚洲国产精品99久久久久久久久| 欧美日韩在线播| 成人福利视频网站| 精品一区二区三区在线播放视频| 亚洲欧洲国产专区| 欧美精品一区二区三区蜜桃| 97成人超碰视| 国产一区二区三区av电影 | 国产精品麻豆99久久久久久| 91精品一区二区三区久久久久久| 丁香啪啪综合成人亚洲小说| 婷婷国产在线综合| 亚洲摸摸操操av| 国产三级精品视频| 日韩欧美中文字幕精品| 在线欧美小视频| av亚洲精华国产精华精华| 乱一区二区av| 婷婷国产在线综合| 亚洲午夜一区二区三区| 国产精品国产三级国产有无不卡| 久久综合九色综合欧美就去吻| 91精品国产综合久久久久久久| 色综合天天在线| a亚洲天堂av| 成人性生交大合| 国产成人av一区二区| 久久国产尿小便嘘嘘尿| 日韩av网站免费在线| 亚洲成人动漫av| 亚洲第四色夜色| 亚洲成av人片在线观看| 亚洲国产cao| 天天影视涩香欲综合网| 亚洲一线二线三线久久久| 亚洲激情成人在线| 亚洲黄网站在线观看| 亚洲免费电影在线| 亚洲欧美日韩一区二区| 亚洲老司机在线| 亚洲自拍偷拍网站| 亚洲第一综合色| 午夜成人免费电影| 乱一区二区av| 国产又粗又猛又爽又黄91精品| 精品在线播放午夜| 国产精品影视在线观看| 国产馆精品极品| 99精品国产一区二区三区不卡| 成人av资源下载| 色噜噜夜夜夜综合网| 欧美在线观看视频一区二区三区| 欧美午夜精品久久久久久超碰| 日本精品视频一区二区| 欧美日韩一区国产| 日韩精品一区二| 日本一区二区三区视频视频| 国产精品美女久久久久久久网站| 国产精品久久久久久久久晋中 | 制服视频三区第一页精品| 欧美一区二区在线播放| 精品久久国产老人久久综合| 国产日韩欧美高清在线| 18欧美亚洲精品| 午夜国产精品一区| 国产高清在线精品| 色av成人天堂桃色av| 制服丝袜在线91| 中文字幕欧美日本乱码一线二线| 中文字幕在线观看一区二区| 亚洲成年人影院| 国产高清视频一区| 欧美日韩中文一区| 久久久久久**毛片大全| 一区二区三区四区不卡在线| 青青草国产精品亚洲专区无| 成人午夜精品一区二区三区| 欧美日韩三级在线| 国产精品网友自拍| 视频精品一区二区| 成人国产一区二区三区精品| 欧美亚洲高清一区| 欧美韩日一区二区三区| 香蕉成人啪国产精品视频综合网 | 日韩电影一二三区| 岛国精品在线播放| 91精品国产综合久久精品性色 | 99久久精品费精品国产一区二区| 欧美精品免费视频| 国产精品卡一卡二| 日本三级亚洲精品| 91一区一区三区| 欧美mv日韩mv| 偷拍日韩校园综合在线| 99久久精品国产一区二区三区| 欧美电视剧在线观看完整版| 亚洲国产精品一区二区久久恐怖片| 国产精品99久久久久久宅男| 欧美高清精品3d| 亚洲人成网站精品片在线观看| 韩国欧美一区二区| 777奇米成人网| 亚洲一二三区在线观看| 福利电影一区二区三区| 精品久久国产97色综合| 午夜精品国产更新| 在线看国产一区| 国产精品美女一区二区| 国产麻豆视频一区| 精品久久久久久亚洲综合网| 婷婷综合五月天| 欧美日韩高清一区二区不卡| 亚洲黄色片在线观看| 91老师片黄在线观看| 国产精品天干天干在线综合| 国产精品资源网站| 久久女同精品一区二区| 狠狠色丁香久久婷婷综合_中| 日韩午夜电影在线观看| 亚洲一区二区黄色| 欧美色男人天堂| 天堂成人免费av电影一区| 欧美日韩中文另类| 日本在线不卡视频一二三区| 欧美一区二区成人6969| 亚洲动漫第一页| 日韩亚洲欧美一区| 国内精品伊人久久久久av一坑| 欧美成人三级在线|