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

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

?? fog.cpp

?? s3c6410 官方測試代碼
?? CPP
字號:
/*******************************************************************************
 *
 *	ViP model for FIMGSE
 *		version 1.0
 *
 *	Fog.cpp
 *
 *	by cheolkyoo.kim
 *	Graphics IP Team in AP, Mobile Solution Development,
 *	System LSI Division, Semiconductor Business,
 *	Samsung Electronics
 *
 *	Copyright (c) 2005 FIMG team
 *
 *	All rights reserved. No part of this program may be reproduced, stored
 *	in a retrieval system, or tranmitted, in any form or by any means,
 *	electronic, mechanical, photocopying, recording, or otherwise, without
 *	the prior written permission of the author.
 *
 *	2006. 8. 24  by cheolkyoo.kim
 *
 *  Description
 *
 *
 ******************************************************************************/
/****************************************************************************
 *  INCLUDES
 ****************************************************************************/
#if TARGET_PLATFORM == FPGA_BOARD
#include "Fimg3DTest.h"
#endif

#include "stdio.h"
#include "library.h"
#include "Fog.vsa.h"
#include "Fog.psa.h"

//#include "Fog.h"
/****************************************************************************
 *  DEFINES
 ****************************************************************************/
#define FIMG_TEXTURE_MESH_EARTH    0x63000080
 
int Fog(void)

{
	unsigned int nNumOfVertices;
	unsigned int nNumofData;
	//unsigned int *pMat;
	//unsigned int pVtxShaderParam;

	//bool SwapBackBuffer = FALSE;

    if (fglLoadVShader(Fog_vsa) != FGL_ERR_NO_ERROR) {
		return ERROR;
    }

    if (fglLoadPShader(Fog_psa) != FGL_ERR_NO_ERROR) {
		return ERROR;
    }

	//drvsys_clear_buf((unsigned int*)FIMG_DEPTH_BUFFER, 0x4B000, 0xFFFFFFFF);
	drvsys_clear_buf((unsigned int*)FIMG_DEPTH_BUFFER, CLEAR_SCREEN_SIZE, 0xFFFFFFFF);
	drvsys_clear_buf((unsigned int*)(FIMG_COLOR_BUFFER), CLEAR_SCREEN_SIZE, 0xFFFFFFFF);


	fglFlush(FGL_PIPESTATE_ALL);	// Pipeline status

/*
	// Vertex Shader SFR set
	WRITEREG(FGVS_ATTRIB_NUM, 0x00040003); // Attribute counter of VS output & input
	WRITEREG(FGVS_CONFIG, 0x00000001); // Configuration register

	// Pixel Shader SFR set
	WRITEREG(FGPS_EXE_MODE, 0x0); // Pixel shader execution mode control register
	WRITEREG(FGPS_PC_COPY, 0x1); // Copy PSPCS_ADDR value to program counter
	WRITEREG(FGPS_ATTRIB_NUM, 0x3); // Number of attribute of current context
	fglSysPollingMask(FGPS_INBUF_STATUS, 0x0, 0x1); // Status signal of pixel shader input buffer
	WRITEREG(FGPS_EXE_MODE, 0x1); // Pixel shader execution mode control register
*/
    fglSetVShaderAttribTable(FGL_OUTPUT_ATTRIB_IDX0, 0x03020100);
    fglSetVShaderAttribTable(FGL_OUTPUT_ATTRIB_IDX1, 0x07060504);
    fglSetVShaderAttribTable(FGL_OUTPUT_ATTRIB_IDX2, 0x0B0A0908);

    fglVSSetAttribNum(3);
    fglPSSetAttributeNum(3);

	// Per-fragment Unit SFR set
	// Depth/Stencil buffer base address
	fglSetZBufBaseAddr(FIMG_DEPTH_BUFFER);
	fglSetDepthParams(FGL_COMP_LESS);
	fglEnablePerFragUnit(FGL_PF_DEPTH, FGL_TRUE);

	FGL_TexUnitParams tuParams;
	
#ifdef _FIMG3DSE_VER_1_2
	// Texture Unit SFR Setting
	tuParams.eType = FGL_TEX_2D;
	tuParams.eColorkey = FGL_CKEY_DISABLE;
	tuParams.bUseExpansion = FGL_FALSE;
	tuParams.ePaletteFormat = FGL_PALETTE_ARGB8888;
	tuParams.eFormat = FGL_TEXEL_RGB565;
	tuParams.eUMode = FGL_TEX_WRAP_CLAMP;
	tuParams.eVMode = FGL_TEX_WRAP_CLAMP;
	tuParams.bIsNonparametric = FGL_FALSE;
	tuParams.bUseMagFilter = FGL_TRUE;
	tuParams.bUseMinFilter = FGL_TRUE;
	tuParams.eMipMapFilter = FGL_FILTER_DISABLE;
	tuParams.uUSize = 256;
	tuParams.uVSize = 256;
	tuParams.uPSize = 1;
	
	fglSetTexUnitParams(0, &tuParams);
	fglSetTexBaseAddr(0, FIMG_TEXTURE_MESH_EARTH);
#else
	WRITEREG(FGTU_TEX0_CTRL, 0x08141A88); 	            // FIMG_TUSFR_TEX0_STATUS
	WRITEREG(FGTU_TEX0_BASE_LEVEL, 0x00000000);         // FIMG_TUSFR_TEX0_BASE_LEVEL
	WRITEREG(FGTU_TEX0_MAX_LEVEL, 0x00000000); 	        // FIMG_TUSFR_TEX0_MAX_LEVEL
    WRITEREG(FGTU_TEX0_BASE_ADDR, FIMG_TEXTURE_MESH_EARTH);
#endif

    /* Build projection matrix once. */
	Matrix4 matProj, matV, matM, matMVP;
	matProj.SetAsPerspectiveMatrix(45.0, 0.75, 1.0, 100.0);
	matV.LookAtMatrix(0.0f, 0.0f, -10.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, 0.0f);
	matM.Rotate(0, 1, 0, 180);
	matM.Rotate(1, 0, 0, -40);
	matMVP = matProj * matV * matM;
	
    //pVtxShaderParam = FGVS_CFLOAT_SADDR;
    //pVtxShaderParam = matMVP.WriteMatrix4(pVtxShaderParam);
	//float FogFactor[4] = { 1.25f, -0.125f, 0.0f, 0.0f};
	//float FogFactor[4] = { 1.25f, -0.075f, 0.0f, 0.0f};
	float FogFactor[4] = { 1.25f, -0.095f, 0.0f, 0.0f};
/*
	pMat = (unsigned int *)&FogFactor[0];
	pVtxShaderParam += 8;
	
	WRITEREG(pVtxShaderParam++, *pMat++);
	WRITEREG(pVtxShaderParam++, *pMat++);
	WRITEREG(pVtxShaderParam++, *pMat++);
	WRITEREG(pVtxShaderParam++, *pMat++);
*/
    unsigned int Offset = fglWriteVertexShaderConstFloat(0, 16, matMVP.m[0]);
    Offset += 8;
    Offset = fglWriteVertexShaderConstFloat(Offset, 4, FogFactor);

	
	// Fog test main
	//while(1)
	{
		// Primitive Engine SRF Set
		FGL_Vertex Vtx;
		Vtx.prim = FGL_PRIM_TRIANGLES;
		Vtx.enablePointSize = FGL_FALSE;
		Vtx.numVSOut = 3;
		Vtx.shadeModel = FGL_SHADING_SMOOTH;
		Vtx.colorAttribIdx = 0;
		
		fglSetVertex(&Vtx); // Vertex context register

		// Host Interface SFR Set
		FGL_HInterface HInterface;
		HInterface.enableAutoInc = FGL_TRUE;
		HInterface.enableVtxBuffer = FGL_FALSE;
		HInterface.enableVtxCache = FGL_FALSE;	
		HInterface.idxType = FGL_INDEX_DATA_UINT;
		HInterface.numVSOut = 4;
		fglSetHInterface(&HInterface);
		
		FGL_Attribute HIAttr;
		HIAttr.bEndFlag = FGL_FALSE;
		HIAttr.type = FGL_ATTRIB_DATA_FLOAT;
		HIAttr.numComp = 3;
		HIAttr.srcW = FGL_ATTRIB_ORDER_4TH;
		HIAttr.srcZ = FGL_ATTRIB_ORDER_3RD;
		HIAttr.srcY = FGL_ATTRIB_ORDER_2ND;
		HIAttr.srcX = FGL_ATTRIB_ORDER_1ST;	
		fglSetAttribute(0, &HIAttr);
		fglSetAttribute(1, &HIAttr);
		HIAttr.bEndFlag = FGL_TRUE;
		HIAttr.numComp = 2;
		fglSetAttribute(2, &HIAttr);
		
		//const int nNumTrisMeshEarth = 9672;
        //const int nNumAttributesMeshEarth = 8;
		//nNumOfVertices = nNumTrisMeshEarth;
		//nNumofData = nNumAttributesMeshEarth * nNumOfVertices;
		nNumOfVertices = 9672;
		nNumofData = 8 * nNumOfVertices;

		unsigned int uiDummy = 0xFFFFFFFF;
		fglSendToFIFO(4, &nNumOfVertices);
		fglSendToFIFO(4, &uiDummy);

		fglSysTransferToPort(
								/*(unsigned int *)MeshEarth_Data,*/
								(unsigned int *)FIMG_GEOMETRY_MEMORY,
								/*(volatile unsigned int *)(FGHI_FIFO_ENTRY),*/
								nNumofData
							 );


		fglFlush(FGL_PIPESTATE_ALL);	// Pipeline status

		// Cache flush
		//fglSysCacheFlush();
		fglClearCache(FGL_CACHECTL_INIT_ALL);
		fglSysDelay(50);
 	}
 	
        drvsys_clear_buf((unsigned int*)FIMG_DEPTH_BUFFER, CLEAR_SCREEN_SIZE, 0x0);
		//drvsys_clear_buf((unsigned int*)(FIMG_COLOR_BUFFER), CLEAR_SCREEN_SIZE, 0x0);


    //WRITEREG(FGPF_DEPTH, 0x0);
	if(fglEnablePerFragUnit(FGL_PF_DEPTH, FGL_FALSE) != FGL_ERR_NO_ERROR) {
		UART_Printf("\nDepth buffer test: The fglEnablePerFragUnit fial");
	}
    
    return NO_ERROR;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av一区二区三区在线观看| 免费视频最近日韩| 久久久精品国产99久久精品芒果| 欧美日韩国产片| 欧美乱妇20p| 91麻豆精品91久久久久同性| 欧美日韩第一区日日骚| 欧美日韩精品一区二区天天拍小说 | 蓝色福利精品导航| 美腿丝袜亚洲综合| 狠狠色狠狠色综合日日91app| 精品一区二区在线播放| 国产精品自在在线| av一区二区三区黑人| 91免费在线视频观看| 色婷婷亚洲综合| 91亚洲精品乱码久久久久久蜜桃| 91高清视频在线| 欧美精品一卡二卡| 精品美女被调教视频大全网站| xvideos.蜜桃一区二区| 国产日产亚洲精品系列| 成人免费在线播放视频| 亚洲国产视频直播| 久久国产乱子精品免费女| 国产精品夜夜嗨| 日本道精品一区二区三区| 欧美三级韩国三级日本一级| 日韩精品一区二| 国产精品入口麻豆九色| 亚洲成人在线免费| 成人免费视频视频在线观看免费| 97超碰欧美中文字幕| 717成人午夜免费福利电影| 久久色在线观看| 国产精品久久久久久久岛一牛影视| 亚洲精品国产无套在线观| 麻豆91免费看| 91日韩精品一区| 欧美成人bangbros| 亚洲区小说区图片区qvod| 美女在线观看视频一区二区| 粉嫩aⅴ一区二区三区四区五区 | 欧美嫩在线观看| 国产精品网站在线播放| 日韩精品乱码av一区二区| 成人做爰69片免费看网站| 欧美喷潮久久久xxxxx| 国产精品日产欧美久久久久| 日韩中文字幕一区二区三区| 粉嫩aⅴ一区二区三区四区五区| 欧美蜜桃一区二区三区| 综合分类小说区另类春色亚洲小说欧美| 五月天亚洲精品| www.欧美色图| 久久网这里都是精品| 免费高清在线一区| 欧美人与禽zozo性伦| 一区二区三区四区在线免费观看| 国产乱码字幕精品高清av| 欧美久久久影院| 亚洲国产日韩av| 91国产免费观看| 成人免费一区二区三区视频| 国产精品自产自拍| 亚洲精品一区二区三区99| 日韩精品91亚洲二区在线观看| 色婷婷精品久久二区二区蜜臂av| 国产精品久久久久一区二区三区共| 国产精品99久久久久久久女警 | 中日韩av电影| 国产宾馆实践打屁股91| 久久久久久久综合色一本| 激情六月婷婷久久| 精品精品国产高清a毛片牛牛| 日韩黄色在线观看| 欧美精品三级在线观看| 亚洲电影第三页| 69av一区二区三区| 美国三级日本三级久久99| 欧美videos中文字幕| 韩国成人福利片在线播放| xfplay精品久久| 国产成人免费9x9x人网站视频| 精品国产91乱码一区二区三区| 激情久久久久久久久久久久久久久久| 日韩视频免费观看高清完整版 | 欧美国产禁国产网站cc| 成人精品电影在线观看| 综合久久给合久久狠狠狠97色| 色狠狠av一区二区三区| 亚洲一区在线观看网站| 欧美顶级少妇做爰| 韩国精品主播一区二区在线观看 | 99久久精品免费精品国产| 伊人一区二区三区| 欧美日韩在线电影| 精品亚洲成av人在线观看| 欧美激情资源网| 欧美性猛交xxxx黑人交| 蜜臀av性久久久久蜜臀aⅴ| 国产视频一区在线观看| 日本二三区不卡| 久久99国产精品尤物| 中文字幕日韩一区| 欧美日韩视频一区二区| 韩国v欧美v亚洲v日本v| 亚洲日本青草视频在线怡红院 | 精品对白一区国产伦| 成人a区在线观看| 婷婷综合在线观看| 久久精品亚洲麻豆av一区二区 | 久久精品国产久精国产| 国产欧美日韩激情| 欧美一二三在线| 91亚洲永久精品| 另类调教123区| 亚洲色欲色欲www在线观看| 日韩精品在线一区| 91原创在线视频| 国产综合久久久久久久久久久久| 亚洲欧洲精品一区二区精品久久久 | 午夜伦理一区二区| 日本一区二区三区在线不卡| 欧美福利一区二区| 91亚洲精品一区二区乱码| 国产精品资源网站| 欧美aaaaaa午夜精品| 亚洲精品乱码久久久久久日本蜜臀| 精品国产免费人成在线观看| 欧美羞羞免费网站| 不卡一区二区在线| 国产乱人伦精品一区二区在线观看 | 激情深爱一区二区| 日韩精品一级二级| 亚洲国产视频网站| 一二三四区精品视频| 中文一区二区完整视频在线观看| 日韩欧美色综合| 777欧美精品| 欧美日韩精品二区第二页| www.爱久久.com| 国产**成人网毛片九色 | 日韩精品视频网| 亚洲va在线va天堂| 亚洲最大的成人av| 一区二区三区四区激情| 亚洲天堂av老司机| 国产精品毛片高清在线完整版| 久久精品夜色噜噜亚洲a∨| 久久综合色之久久综合| 精品久久久久久久一区二区蜜臀| 91精品国产综合久久蜜臀 | 强制捆绑调教一区二区| 日日夜夜精品视频免费| 亚洲国产美女搞黄色| 亚洲成av人**亚洲成av**| 午夜电影网亚洲视频| 日韩中文字幕av电影| 蜜臀av亚洲一区中文字幕| 久久精品国产精品青草| 麻豆精品久久久| 国产一区二区三区观看| 国产精一区二区三区| 成人不卡免费av| 在线亚洲高清视频| 欧美猛男超大videosgay| 日韩欧美电影一区| 国产偷国产偷精品高清尤物| 国产日韩av一区| 亚洲综合成人在线| 男人的j进女人的j一区| 国产美女av一区二区三区| 高清av一区二区| 91麻豆国产福利在线观看| 欧美日本一区二区在线观看| 精品久久国产老人久久综合| 中文幕一区二区三区久久蜜桃| 亚洲精品一卡二卡| 六月丁香综合在线视频| eeuss鲁一区二区三区| 欧美三级日韩三级| 精品国产乱码久久久久久影片| 国产欧美日韩另类一区| 午夜在线电影亚洲一区| 捆绑调教美女网站视频一区| 播五月开心婷婷综合| 8x8x8国产精品| 国产精品久久久久久一区二区三区| 亚洲尤物在线视频观看| 久久66热re国产| 欧美亚洲另类激情小说| 精品国产乱码久久| 一区二区三区国产精华| 久久99精品国产.久久久久| 在线欧美日韩国产| 国产视频在线观看一区二区三区| 亚洲成av人综合在线观看| 粉嫩av亚洲一区二区图片| 日韩一区二区免费视频|