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

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

?? main.cpp

?? about the basic GA in the VC++ using GPU to
?? CPP
?? 第 1 頁 / 共 3 頁
字號(hào):

	LPD3DXBUFFER    pBuffer = NULL;
	BYTE            *pbyBits = NULL;

	int texElemCount = w*h*4;
	float *texData = new float[texElemCount];
	D3DLOCKED_RECT rfTextureLock;

	LPDIRECT3DSURFACE9 pSurf, pVectorTextureSurface;
	PDIRECT3DTEXTURE9  pTex;

	g_pD3DDevice->CreateTexture(h,w,0, NULL, D3DFMT_A32B32G32R32F, D3DPOOL_SYSTEMMEM, &pTex, NULL);
	pTex->GetSurfaceLevel(0,&pSurf);
	pColorMap->GetSurfaceLevel(0,&pVectorTextureSurface);	
	g_pD3DDevice->GetRenderTargetData(pVectorTextureSurface, pSurf);	
	pTex->LockRect(0, &rfTextureLock, NULL, D3DLOCK_READONLY);	// lock whole region in the vector texture
	float* pfTexture = (float*)rfTextureLock.pBits;
	memcpy(texData,pfTexture,texElemCount*sizeof(float));
	pTex->UnlockRect(0);	
	
	for(int i = 0 ; i < 4 ; i++ )	
		data[i] = texData[i]; 
		
	
	delete texData;

	SafeRelease(pSurf);
	SafeRelease(pTex);
	SafeRelease(pVectorTextureSurface);
	SafeRelease( pBuffer );

}


bool RenderResult(LPDIRECT3DSURFACE9 &pSurface,int i,LPDIRECT3DVERTEXBUFFER9 &pBuffer,char * strTechName)
{
		
	UINT            nPasses;
	if(g_pD3DDevice->SetRenderTarget(0,pSurface)!= D3D_OK )		
		MessageBox(NULL,"Failed!","Info",IDOK);
	g_pD3DDevice->Clear(0, 0, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 255, 255), 1.0f, 0);
	g_pD3DDevice->BeginScene(); 
	g_pD3DDevice->SetFVF(D3DFVF_CUSTOMVERTEX);
	g_pD3DDevice->SetStreamSource(0, pBuffer,0, sizeof(CUSTOMVERTEX));
	D3DXHANDLE hTechnique = g_pEffect->GetTechniqueByName( strTechName );
	g_pEffect->SetTechnique( hTechnique );
	g_pEffect->SetTexture("ColorMapBestGene", g_pBestGene[i]);
	g_pEffect->Begin( &nPasses, 0 );
	g_pEffect->BeginPass(0);
	g_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
	g_pEffect->EndPass();
	g_pEffect->End();
	g_pD3DDevice->EndScene(); 
	
	return true;

}


bool RenderResult()
{
	float resultData[DIM];
	float fit[4];
	for(int i = 0 ; i < DIM / 4 ; i++ )
	{
		RenderResult(g_pResultSurface[i],i,g_pBestBuffer,"TShader_ResultGene");
		SaveResultTexture(resultData + i * 4,1,1,g_pResultTexture[i]);
	}
	SaveResultTexture(fit,1,1,g_pResultBestFitTexture);

	FILE* flog = fopen("C:\\result.txt","a++");
	if(FUCTION == FUCTION_1)
		fprintf(flog,"測試函數(shù):函數(shù)(1)\n");
	else
		fprintf(flog,"測試函數(shù):函數(shù)(2)\n");
	fprintf(flog,"種群大小:	%d,		實(shí)際種群大小:%d,	維數(shù)%d\n",g_nPopSize, g_nHeight * g_nWidth,DIM);
	fprintf(flog,"迭代次數(shù):	%d		編碼長度:	%d\n",g_nGeneration,g_nLChrom);
	fprintf(flog,"交叉率:		%0.2f,		變異率:%0.2f\n\n",g_pCross,g_pMutation);
	
	for(i = 0 ; i < DIM ; i++)
	{
		fprintf(flog,"基因%d	:	%0.4f\n",i,resultData[i]);
	}
	fprintf(flog,"\n適應(yīng)值: %0.4f		運(yùn)行時(shí)間:%d\n\n\n",fit[0],t2 - t1);
	fclose(flog);

	return true;
}
bool Display()
{ 

	
	if( g_bRender)
    { 	
		t1 = GetTickCount();
		
		RenderFit();
		RenderBest();
		
		for(int j = 1 ; j < g_nGeneration ; j++ )
		{

			RenderSelect();	

			RenderCross();	

			RenderMutation();

			RenderFit();

			RenderBest();

			//RenderResult();
		}
		t2 = GetTickCount();
		RenderResult();
		g_pD3DDevice->Present(0, 0, 0, 0);
		char str[40];
		sprintf(str,"%d",t2 - t1);
		MessageBox(NULL,str,"Info",IDOK);
		g_bRender = false;
	}
	else
	{
		g_pD3DDevice->Clear(0, 0, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 255, 255), 1.0f, 0);
		g_pD3DDevice->BeginScene(); 
		g_pD3DDevice->EndScene();
		g_pD3DDevice->Present(0, 0, 0, 0);	
	}
    return true;
}


void CleanUp()
{
	
	SafeRelease(g_pD3D);
	SafeRelease(g_pD3DDevice);
	SafeRelease(g_pBuffer);	
	SafeRelease(g_pEffect);
	SafeRelease(g_pBackBuffer);	
	for(int i = 0 ; i < 20 ; i++)
	{
		SafeRelease(g_pSubBuffer[i]);
		SafeRelease(g_pSubTexture[i]);
		SafeRelease(g_pSubSurface[i]);
	}
	for(i = 0 ; i < DIM / 4 ; i++)
	{
		SafeRelease(g_pGeneTexture1[i]);
		SafeRelease(g_pGeneTexture2[i]);
		SafeRelease(g_pGeneSurface1[i]);
		SafeRelease(g_pGeneSurface2[i]);
		SafeRelease(g_pBestGeneTexture1[i]);
		SafeRelease(g_pBestGeneSurface1[i]);
		SafeRelease(g_pResultSurface[i]);
		SafeRelease(g_pResultTexture[i]);
	}
	SafeRelease(g_pFitTexture);
	SafeRelease(g_pFitSurface);
	SafeRelease(g_pBestFitTexture1);
	SafeRelease(g_pBestFitSurface1);
	SafeRelease(g_pBestFitSurface2);
	SafeRelease(g_pBestFitTexture2);
	SafeRelease(g_pBestBuffer);
	SafeRelease(g_pCrossCtrBuffer);

	SafeRelease(g_pSelCtrSurface);
	SafeRelease(g_pSelCtrTexture);
	SafeRelease(g_pRandTexture);
	SafeRelease(g_pCrsCtrSurface);
	SafeRelease(g_pCrsCtrTexture);
	SafeRelease(g_pPosTexture);
	
}

void  Reset()
{
	g_nHeight = 1;
	g_nWidth = 1;	
	Num = 0;	
	SafeRelease(g_pBuffer);	

	for(int i = 0 ; i < 20 ; i++)
	{
		SafeRelease(g_pSubBuffer[i]);
		SafeRelease(g_pSubTexture[i]);
		SafeRelease(g_pSubSurface[i]);
	}
	for(i = 0 ; i < DIM / 4 ; i++)
	{
		SafeRelease(g_pGeneTexture1[i]);
		SafeRelease(g_pGeneTexture2[i]);
		SafeRelease(g_pGeneSurface1[i]);
		SafeRelease(g_pGeneSurface2[i]);
		SafeRelease(g_pBestGeneTexture1[i]);
		SafeRelease(g_pBestGeneSurface1[i]);

		SafeRelease(g_pBestGeneTexture2[i]);
		SafeRelease(g_pBestGeneSurface2[i]);

		SafeRelease(g_pResultSurface[i]);
		SafeRelease(g_pResultTexture[i]);
	}
	SafeRelease(g_pFitTexture);
	SafeRelease(g_pFitSurface);
	SafeRelease(g_pBestFitTexture1);
	SafeRelease(g_pBestFitSurface1);
	SafeRelease(g_pBestFitSurface2);
	SafeRelease(g_pBestFitTexture2);
	SafeRelease(g_pBestBuffer);
	SafeRelease(g_pCrossCtrBuffer);

	SafeRelease(g_pSelCtrSurface);
	SafeRelease(g_pSelCtrTexture);
	SafeRelease(g_pRandTexture);
	SafeRelease(g_pCrsCtrSurface);
	SafeRelease(g_pCrsCtrTexture);
	SafeRelease(g_pPosTexture);
}
void GameLoop()
{
	//Enter the game loop
	MSG msg; 
	BOOL fMessage;

	PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE);

	while(msg.message != WM_QUIT)
	{
		fMessage = PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE);

		if(fMessage)
		{
			//Process message
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
		else
		{  

			Display();
			if(g_bStopRun == false)
				SendMessage(g_hWnd,WM_COMMAND,ID_RUN,NULL);
		}

	}
}
//The windows message handler
LRESULT WINAPI WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{

	
	switch(msg)
	{
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
		break;
	case WM_KEYUP: 
		switch (wParam)
		{ 
		case VK_ESCAPE:
			//User has pressed the escape key, so quit
			DestroyWindow(hWnd);
			return 0;
			break;
		}
	case WM_COMMAND:
		switch(LOWORD(wParam))
		{   
			
		case ID_EXIT:
			DestroyWindow(hWnd);
			return 0;
		case ID_RUN:
			//g_bRender = true;
			
			DialogBox(g_hInstance, (LPCTSTR)IDD_DIALOG  ,hWnd,  (DLGPROC)SetParamProc);			
			
			if(g_bRender == true)
			{	
				Reset();			
				InitGA();
				InitBuffer();
			}

			break;

		}
	}

	return DefWindowProc(hWnd, msg, wParam, lParam);
}



INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, INT)
{
	//Register the window class
	WNDCLASSEX wc = {sizeof(WNDCLASSEX), CS_CLASSDC, WinProc, 0L, 0L, 
		GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
		"SobleShader", NULL};
	RegisterClassEx(&wc);
	g_hInstance = hInst;
	//Create the application's window
	HWND hWnd = CreateWindow("SobleShader", "shader test program", 
		WS_OVERLAPPEDWINDOW, 300, 200, 400 , 300,
		GetDesktopWindow(), NULL, wc.hInstance, NULL);
	HMENU hMenu = LoadMenu(wc.hInstance,MAKEINTRESOURCE(IDR_MENU1));

	SetMenu(hWnd,hMenu);

	g_hWnd = hWnd;

	//Initialize Direct3D
	if(SUCCEEDED(InitialiseD3D(hWnd)))
	{ 
		//Show our window
		ShowWindow(hWnd, SW_SHOWDEFAULT);
		UpdateWindow(hWnd);
		
		
		GameLoop();

	}
	CleanUp();
	UnregisterClass("DX Project 3", wc.hInstance);
	return 0;
}
char  sPopsize[20], sGeneration[20],sPcross[20],sMutation[20];
int  recordFuction = IDC_FUCTION_1;
int  bFirst = true;

LRESULT CALLBACK SetParamProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
	case WM_INITDIALOG:	
		if(bFirst)
		{
			strcpy(sPopsize,"200");
			strcpy(sGeneration,"100");
			strcpy(sPcross,"0.4");
			strcpy(sMutation,"0.05");
			bFirst = false;
		}
		SetWindowText(GetDlgItem(hDlg,IDC_DIM),"8");
		SetWindowText(GetDlgItem(hDlg,IDC_LCHROM),"24");
		SetWindowText(GetDlgItem(hDlg,IDC_POPSIZE),sPopsize);
		SetWindowText(GetDlgItem(hDlg,IDC_GENERATION),sGeneration);
		SetWindowText(GetDlgItem(hDlg,IDC_PCROSS),sPcross);
		SetWindowText(GetDlgItem(hDlg,IDC_PMUTATION),sMutation);
			
		CheckRadioButton (hDlg, IDC_FUCTION_1, IDC_FUCTION_2,   recordFuction) ;
		
		return TRUE;

	case WM_COMMAND:
		switch (LOWORD(wParam))
		{
		case IDOK:
			GetWindowText(GetDlgItem(hDlg,IDC_POPSIZE),sPopsize,20);
			GetWindowText(GetDlgItem(hDlg,IDC_GENERATION),sGeneration,20);
			GetWindowText(GetDlgItem(hDlg,IDC_PCROSS),sPcross,20);
			GetWindowText(GetDlgItem(hDlg,IDC_PMUTATION),sMutation,20);			
			
			g_nPopSize = StrToInt(sPopsize);
			g_nGeneration = StrToInt(sGeneration);
			g_pCross = (float)atof(sPcross);
			g_pMutation = (float)atof(sMutation);

			EndDialog(hDlg, LOWORD(wParam));
			g_bStopRun = false;
			g_bRender = true;
			return TRUE;
		case IDCANCEL:
			EndDialog(hDlg, LOWORD(wParam));
			g_bStopRun = true;
			g_bRender = false;
			return TRUE;
		case IDC_FUCTION_1:
			FUCTION = FUCTION_1;
			recordFuction = IDC_FUCTION_1;
			CheckRadioButton (hDlg, IDC_FUCTION_1, IDC_FUCTION_2,   IDC_FUCTION_1) ;
			break;
		case IDC_FUCTION_2:
			FUCTION = FUCTION_2;
			recordFuction = IDC_FUCTION_2;
			CheckRadioButton (hDlg, IDC_FUCTION_1, IDC_FUCTION_2,   IDC_FUCTION_2) ;
			break;
			
		};		
		break;
	}
	return FALSE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区欧美精品| 色国产综合视频| 成人免费黄色在线| 色婷婷综合激情| 91精品久久久久久久99蜜桃| 久久久久久久久岛国免费| 亚洲三级在线免费| 免费av网站大全久久| 丰满白嫩尤物一区二区| 欧美久久久久免费| 日本一区二区成人在线| 午夜精品爽啪视频| 国产**成人网毛片九色| 欧美日韩在线免费视频| 久久精品欧美一区二区三区不卡 | 国产成人综合亚洲91猫咪| 日本高清免费不卡视频| 精品日韩在线一区| 一区二区在线电影| 国产精品一区二区你懂的| 欧美日韩国产高清一区二区三区| 久久久久综合网| 亚洲va欧美va人人爽| 成人精品视频网站| 欧美大黄免费观看| 一区二区三区欧美久久| 国产福利电影一区二区三区| 欧美肥胖老妇做爰| 亚洲情趣在线观看| 国产老肥熟一区二区三区| 在线不卡一区二区| 一区二区三区免费看视频| 精品欧美久久久| 天天影视网天天综合色在线播放| 懂色一区二区三区免费观看| 欧美一区二区三区在线看| 亚洲免费观看高清完整版在线观看| 国产精品中文字幕一区二区三区| 欧美人xxxx| 一区二区三区免费在线观看| 成人av一区二区三区| 久久久久久综合| 捆绑调教美女网站视频一区| 欧美系列在线观看| 亚洲乱码国产乱码精品精可以看| 国产一区二区中文字幕| 欧美一区二区美女| 亚洲va国产va欧美va观看| 91国产免费看| 亚洲精品免费在线播放| 不卡av在线网| 亚洲国产精品精华液2区45| 国产麻豆精品theporn| 日韩免费电影一区| 男男成人高潮片免费网站| 欧美肥胖老妇做爰| 天堂午夜影视日韩欧美一区二区| 在线观看日韩国产| 尤物av一区二区| 91蝌蚪porny| 亚洲视频电影在线| 99久久精品免费看| 亚洲视频综合在线| 91同城在线观看| 亚洲欧美一区二区三区极速播放| 成人av集中营| 国产精品高潮呻吟| av午夜精品一区二区三区| 中文字幕一区二区三区精华液 | 亚洲欧洲色图综合| 菠萝蜜视频在线观看一区| 国产精品视频一区二区三区不卡| 国产高清在线精品| 国产精品久久久久aaaa樱花 | 一区二区三区91| 色呦呦网站一区| 亚洲国产日韩综合久久精品| 欧美日韩国产首页| 日韩成人免费电影| 日韩欧美第一区| 国产麻豆成人精品| 国产精品人成在线观看免费| 91在线视频网址| 亚洲成人av一区| 91精品久久久久久久99蜜桃| 精品一区二区三区的国产在线播放| 精品美女被调教视频大全网站| 国产一区二区三区免费在线观看| 欧美激情一区二区| 91在线精品一区二区| 亚洲国产一区二区三区| 日韩一区二区三区在线观看| 国模少妇一区二区三区| 中文字幕欧美激情一区| 色综合久久66| 日本不卡的三区四区五区| 久久蜜桃一区二区| 色综合视频在线观看| 五月婷婷久久丁香| 久久尤物电影视频在线观看| 99精品视频在线免费观看| 午夜精品久久久久久久久| 精品国产伦一区二区三区免费| 国产99一区视频免费| 亚洲在线视频一区| 久久众筹精品私拍模特| 99久久精品免费看国产| 日本aⅴ免费视频一区二区三区| 国产日产欧美一区二区视频| 色94色欧美sute亚洲线路一ni| 美女视频黄频大全不卡视频在线播放| 久久精品视频在线看| 色94色欧美sute亚洲线路一久| 老司机午夜精品| 亚洲日韩欧美一区二区在线| 日韩欧美国产综合| 91免费精品国自产拍在线不卡| 肉丝袜脚交视频一区二区| 国产精品网站在线观看| 9191久久久久久久久久久| 成人综合婷婷国产精品久久蜜臀| 亚洲一区二区在线免费观看视频| 精品国产伦一区二区三区免费| 91在线免费视频观看| 蜜桃传媒麻豆第一区在线观看| 中文字幕中文字幕一区二区| 555www色欧美视频| 9l国产精品久久久久麻豆| 免费在线一区观看| 怡红院av一区二区三区| 久久久久久免费| 欧美一级高清片| 91一区二区三区在线播放| 国产在线不卡一卡二卡三卡四卡| 亚洲综合色噜噜狠狠| 欧美国产欧美综合| 日韩一区二区视频| 在线观看一区二区视频| 成人免费视频一区二区| 六月婷婷色综合| 亚洲午夜视频在线观看| 中文字幕免费不卡| 精品少妇一区二区三区| 欧美精品久久久久久久多人混战 | 亚洲国产精品久久久久婷婷884| 久久精品视频在线免费观看| 在线不卡的av| 欧美日韩在线播放三区| 91视视频在线观看入口直接观看www| 国产一区二区三区视频在线播放| 丝袜国产日韩另类美女| 亚洲一二三四久久| 中文字幕在线视频一区| 国产亚洲美州欧州综合国 | 国产91丝袜在线播放| 玖玖九九国产精品| 日产精品久久久久久久性色| 亚洲精品一二三| 亚洲色图欧洲色图婷婷| 国产清纯白嫩初高生在线观看91| 日韩美女一区二区三区四区| 777xxx欧美| 7777精品伊人久久久大香线蕉的| 91福利社在线观看| 91免费视频大全| 色婷婷综合久久久久中文| 色综合久久综合网97色综合| 成人激情开心网| 成人激情综合网站| 波波电影院一区二区三区| 高清av一区二区| 成人性生交大片免费看中文网站| 国产在线观看免费一区| 国产精品系列在线播放| 国产精品亚洲成人| 国产91清纯白嫩初高中在线观看| 国产福利视频一区二区三区| 国产一区二区三区在线观看免费视频 | 成人不卡免费av| 成人免费视频国产在线观看| 国产福利一区在线观看| 国产成人免费视频网站| 成人免费视频一区二区| 99久久伊人网影院| 91免费看`日韩一区二区| 91黄色激情网站| 欧美日韩亚洲综合一区| 欧美精品久久99| 精品久久一区二区三区| 国产婷婷一区二区| 成人免费视频在线观看| 亚洲美女视频一区| 亚洲一二三四在线| 蜜臀av一区二区在线免费观看| 九一久久久久久| 成人综合在线观看| 日本韩国欧美一区二区三区| 制服丝袜日韩国产| 欧美精品一区男女天堂| 欧美韩国日本综合|