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

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

?? surf.java

?? Jake2是一個Java 3D游戲引擎.
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
			int smax, tmax;			if ( ( (surf.styles[map] & 0xFF) >= 32 || surf.styles[map] == 0 ) && ( surf.dlightframe != r_framecount ) )			{				smax = (surf.extents[0]>>4)+1;				tmax = (surf.extents[1]>>4)+1;				R_BuildLightMap( surf, temp, smax);				R_SetCacheState( surf );				GL_MBind( GL_TEXTURE1, gl_state.lightmap_textures + surf.lightmaptexturenum );				lmtex = surf.lightmaptexturenum;				gl.glTexSubImage2D( GL11.GL_TEXTURE_2D, 0,								  surf.light_s, surf.light_t, 								  smax, tmax, 								  GL_LIGHTMAP_FORMAT, 								  GL11.GL_UNSIGNED_BYTE, temp );			}			else			{				smax = (surf.extents[0]>>4)+1;				tmax = (surf.extents[1]>>4)+1;				R_BuildLightMap( surf, temp, smax);				GL_MBind( GL_TEXTURE1, gl_state.lightmap_textures + 0 );				lmtex = 0;				gl.glTexSubImage2D( GL11.GL_TEXTURE_2D, 0,								  surf.light_s, surf.light_t, 								  smax, tmax, 								  GL_LIGHTMAP_FORMAT, 								  GL11.GL_UNSIGNED_BYTE, temp );			}			c_brush_polys++;			GL_MBind( GL_TEXTURE0, image.texnum );			GL_MBind( GL_TEXTURE1, gl_state.lightmap_textures + lmtex );			// ==========			//	  PGM			if ((surf.texinfo.flags & Defines.SURF_FLOWING) != 0)			{				float scroll;						scroll = -64 * ( (r_newrefdef.time / 40.0f) - (int)(r_newrefdef.time / 40.0f) );				if(scroll == 0.0f)					scroll = -64.0f;				for ( p = surf.polys; p != null; p = p.chain )				{				    p.beginScrolling(scroll);					gl.glDrawArrays(GL11.GL_POLYGON, p.pos, p.numverts);				    p.endScrolling();				}			}			else			{				for ( p = surf.polys; p != null; p = p.chain )				{					gl.glDrawArrays(GL11.GL_POLYGON, p.pos, p.numverts);				}			}			// PGM			// ==========		}		else		{			c_brush_polys++;			GL_MBind( GL_TEXTURE0, image.texnum );			GL_MBind( GL_TEXTURE1, gl_state.lightmap_textures + lmtex);						// ==========			//	  PGM			if ((surf.texinfo.flags & Defines.SURF_FLOWING) != 0)			{				float scroll;						scroll = -64 * ( (r_newrefdef.time / 40.0f) - (int)(r_newrefdef.time / 40.0f) );				if(scroll == 0.0)					scroll = -64.0f;				for ( p = surf.polys; p != null; p = p.chain )				{				    p.beginScrolling(scroll);					gl.glDrawArrays(GL11.GL_POLYGON, p.pos, p.numverts);				    p.endScrolling();				}			}			else			{			// PGM			//  ==========				for ( p = surf.polys; p != null; p = p.chain )				{					gl.glDrawArrays(GL11.GL_POLYGON, p.pos, p.numverts);				}							// ==========			// PGM			}			// PGM			// ==========		}	}	/**	 * R_DrawInlineBModel	 */	void R_DrawInlineBModel()	{		// calculate dynamic lighting for bmodel		if ( gl_flashblend.value == 0 )		{			dlight_t	lt;			for (int k=0 ; k<r_newrefdef.num_dlights ; k++)			{				lt = r_newrefdef.dlights[k];				R_MarkLights(lt, 1<<k, currentmodel.nodes[currentmodel.firstnode]);			}		}		// psurf = &currentmodel->surfaces[currentmodel->firstmodelsurface];		int psurfp = currentmodel.firstmodelsurface;		msurface_t[] surfaces = currentmodel.surfaces;		//psurf = surfaces[psurfp];		if ( (currententity.flags & Defines.RF_TRANSLUCENT) != 0 )		{			gl.glEnable (GL11.GL_BLEND);			gl.glColor4f (1,1,1,0.25f);			GL_TexEnv( GL11.GL_MODULATE );		}		//		// draw texture		//		msurface_t psurf;		cplane_t pplane;		float dot;		for (int i=0 ; i<currentmodel.nummodelsurfaces ; i++)		{			psurf = surfaces[psurfp++];			// find which side of the node we are on			pplane = psurf.plane;			dot = Math3D.DotProduct(modelorg, pplane.normal) - pplane.dist;			// draw the polygon			if (((psurf.flags & Defines.SURF_PLANEBACK) != 0 && (dot < -BACKFACE_EPSILON)) ||				((psurf.flags & Defines.SURF_PLANEBACK) == 0 && (dot > BACKFACE_EPSILON)))			{				if ((psurf.texinfo.flags & (Defines.SURF_TRANS33 | Defines.SURF_TRANS66)) != 0 )				{	// add to the translucent chain					psurf.texturechain = r_alpha_surfaces;					r_alpha_surfaces = psurf;				}				else if ( (psurf.flags & Defines.SURF_DRAWTURB) == 0 )				{					GL_RenderLightmappedPoly( psurf );				}				else				{					GL_EnableMultitexture( false );					R_RenderBrushPoly( psurf );					GL_EnableMultitexture( true );				}			}		}				if ( (currententity.flags & Defines.RF_TRANSLUCENT) != 0 ) {			gl.glDisable (GL11.GL_BLEND);			gl.glColor4f (1,1,1,1);			GL_TexEnv( GL11.GL_REPLACE );		}	}	// stack variable	private final float[] mins = {0, 0, 0};	private final float[] maxs = {0, 0, 0};	private final float[] org = {0, 0, 0};	private final float[] forward = {0, 0, 0};	private final float[] right = {0, 0, 0};	private final float[] up = {0, 0, 0};	/**	 * R_DrawBrushModel	 */	void R_DrawBrushModel(entity_t e)	{		if (currentmodel.nummodelsurfaces == 0)			return;		currententity = e;		gl_state.currenttextures[0] = gl_state.currenttextures[1] = -1;		boolean rotated;		if (e.angles[0] != 0 || e.angles[1] != 0 || e.angles[2] != 0)		{			rotated = true;			for (int i=0 ; i<3 ; i++)			{				mins[i] = e.origin[i] - currentmodel.radius;				maxs[i] = e.origin[i] + currentmodel.radius;			}		}		else		{			rotated = false;			Math3D.VectorAdd(e.origin, currentmodel.mins, mins);			Math3D.VectorAdd(e.origin, currentmodel.maxs, maxs);		}		if (R_CullBox(mins, maxs)) return;		gl.glColor3f (1,1,1);				// memset (gl_lms.lightmap_surfaces, 0, sizeof(gl_lms.lightmap_surfaces));				// TODO wird beim multitexturing nicht gebraucht		//gl_lms.clearLightmapSurfaces();				Math3D.VectorSubtract (r_newrefdef.vieworg, e.origin, modelorg);		if (rotated)		{			Math3D.VectorCopy (modelorg, org);			Math3D.AngleVectors (e.angles, forward, right, up);			modelorg[0] = Math3D.DotProduct (org, forward);			modelorg[1] = -Math3D.DotProduct (org, right);			modelorg[2] = Math3D.DotProduct (org, up);		}		gl.glPushMatrix();				e.angles[0] = -e.angles[0];	// stupid quake bug		e.angles[2] = -e.angles[2];	// stupid quake bug		R_RotateForEntity(e);		e.angles[0] = -e.angles[0];	// stupid quake bug		e.angles[2] = -e.angles[2];	// stupid quake bug		GL_EnableMultitexture( true );		GL_SelectTexture(GL_TEXTURE0);		GL_TexEnv( GL11.GL_REPLACE );		gl.glInterleavedArrays(GL11.GL_T2F_V3F, Polygon.BYTE_STRIDE, globalPolygonInterleavedBuf);		GL_SelectTexture(GL_TEXTURE1);		GL_TexEnv( GL11.GL_MODULATE );		gl.glTexCoordPointer(2, Polygon.BYTE_STRIDE, globalPolygonTexCoord1Buf);		gl.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);		R_DrawInlineBModel();		gl.glClientActiveTextureARB(GL_TEXTURE1);		gl.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);		GL_EnableMultitexture( false );		gl.glPopMatrix();	}	/*	=============================================================		WORLD MODEL	=============================================================	*/	/**	 * R_RecursiveWorldNode	 */	void R_RecursiveWorldNode (mnode_t node)	{		if (node.contents == Defines.CONTENTS_SOLID)			return;		// solid				if (node.visframe != r_visframecount)			return;					if (R_CullBox(node.mins, node.maxs))			return;			int c;		msurface_t mark;		// if a leaf node, draw stuff		if (node.contents != -1)		{			mleaf_t pleaf = (mleaf_t)node;			// check for door connected areas			if (r_newrefdef.areabits != null)			{				if ( ((r_newrefdef.areabits[pleaf.area >> 3] & 0xFF) & (1 << (pleaf.area & 7)) ) == 0 )					return;		// not visible			}			int markp = 0;			mark = pleaf.getMarkSurface(markp); // first marked surface			c = pleaf.nummarksurfaces;			if (c != 0)			{				do				{					mark.visframe = r_framecount;					mark = pleaf.getMarkSurface(++markp); // next surface				} while (--c != 0);			}			return;		}		// node is just a decision point, so go down the apropriate sides		// find which side of the node we are on		cplane_t plane = node.plane;		float dot;		switch (plane.type)		{		case Defines.PLANE_X:			dot = modelorg[0] - plane.dist;			break;		case Defines.PLANE_Y:			dot = modelorg[1] - plane.dist;			break;		case Defines.PLANE_Z:			dot = modelorg[2] - plane.dist;			break;		default:			dot = Math3D.DotProduct(modelorg, plane.normal) - plane.dist;			break;		}		int side, sidebit;		if (dot >= 0.0f)		{			side = 0;			sidebit = 0;		}		else		{			side = 1;			sidebit = Defines.SURF_PLANEBACK;		}		// recurse down the children, front side first		R_RecursiveWorldNode(node.children[side]);		// draw stuff		msurface_t surf;		image_t image;		//for ( c = node.numsurfaces, surf = r_worldmodel.surfaces[node.firstsurface]; c != 0 ; c--, surf++)		for ( c = 0; c < node.numsurfaces; c++)		{			surf = r_worldmodel.surfaces[node.firstsurface + c];			if (surf.visframe != r_framecount)				continue;			if ( (surf.flags & Defines.SURF_PLANEBACK) != sidebit )				continue;		// wrong side			if ((surf.texinfo.flags & Defines.SURF_SKY) != 0)			{	// just adds to visible sky bounds				R_AddSkySurface(surf);			}			else if ((surf.texinfo.flags & (Defines.SURF_TRANS33 | Defines.SURF_TRANS66)) != 0)			{	// add to the translucent chain				surf.texturechain = r_alpha_surfaces;				r_alpha_surfaces = surf;			}			else			{				if (  ( surf.flags & Defines.SURF_DRAWTURB) == 0 )				{					GL_RenderLightmappedPoly( surf );				}				else				{					// the polygon is visible, so add it to the texture					// sorted chain					// FIXME: this is a hack for animation					image = R_TextureAnimation(surf.texinfo);					surf.texturechain = image.texturechain;					image.texturechain = surf;				}			}		}		// recurse down the back side		R_RecursiveWorldNode(node.children[1 - side]);	}	private final entity_t worldEntity = new entity_t();		/**	 * R_DrawWorld	 */	void R_DrawWorld()	{		if (r_drawworld.value == 0)			return;		if ( (r_newrefdef.rdflags & Defines.RDF_NOWORLDMODEL) != 0 )			return;		currentmodel = r_worldmodel;		Math3D.VectorCopy(r_newrefdef.vieworg, modelorg);		entity_t ent = worldEntity;		// auto cycle the world frame for texture animation		ent.clear();		ent.frame = (int)(r_newrefdef.time*2);		currententity = ent;		gl_state.currenttextures[0] = gl_state.currenttextures[1] = -1;		gl.glColor3f (1,1,1);		// memset (gl_lms.lightmap_surfaces, 0, sizeof(gl_lms.lightmap_surfaces));		// TODO wird bei multitexture nicht gebraucht		//gl_lms.clearLightmapSurfaces();				R_ClearSkyBox();		GL_EnableMultitexture( true );		GL_SelectTexture( GL_TEXTURE0);		GL_TexEnv( GL11.GL_REPLACE );		gl.glInterleavedArrays(GL11.GL_T2F_V3F, Polygon.BYTE_STRIDE, globalPolygonInterleavedBuf);		GL_SelectTexture( GL_TEXTURE1);		gl.glTexCoordPointer(2, Polygon.BYTE_STRIDE, globalPolygonTexCoord1Buf);		gl.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);		if ( gl_lightmap.value != 0)			GL_TexEnv( GL11.GL_REPLACE );		else 			GL_TexEnv( GL11.GL_MODULATE );						R_RecursiveWorldNode(r_worldmodel.nodes[0]); // root node						gl.glClientActiveTextureARB(GL_TEXTURE1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一级视频| 欧美四级电影网| 在线观看免费亚洲| 91丨九色丨尤物| 欧美日韩高清在线播放| 欧美日本一区二区| 久久精品在线观看| 亚洲午夜激情av| 精品一区二区三区不卡| av中文字幕不卡| 欧美一区二区三区四区五区| 国产三级三级三级精品8ⅰ区| 国产精品久久久久久福利一牛影视| 亚洲人123区| 国产成人综合亚洲网站| 欧美一区二视频| 亚洲欧美日韩在线| 福利一区福利二区| 久久久久国产精品麻豆ai换脸| 亚洲午夜免费福利视频| 成人激情午夜影院| 亚洲精品一区二区三区在线观看| 一区二区三区精密机械公司| 国产suv精品一区二区三区| 在线播放一区二区三区| 亚洲免费观看高清| 91亚洲国产成人精品一区二三| 国产亚洲欧美在线| 日本高清不卡视频| 亚洲素人一区二区| 91网站在线播放| 亚洲另类一区二区| 欧美综合色免费| 亚洲国产欧美一区二区三区丁香婷 | 国产丝袜在线精品| 色美美综合视频| 一区二区三区精品久久久| 91亚洲精华国产精华精华液| 亚洲色图欧美激情| 91一区二区在线| 亚洲永久免费av| 欧美日韩不卡视频| 久久精品72免费观看| 国产欧美日韩综合精品一区二区| 国产成人亚洲综合a∨婷婷| 国产欧美一区二区在线| 99久久精品国产一区二区三区| 国产精品久久综合| 欧美性xxxxxx少妇| 成人永久免费视频| 日韩成人一级大片| 国产午夜精品久久久久久久| 91亚洲精品久久久蜜桃网站| 性做久久久久久| 国产欧美日韩视频一区二区| 欧美性一级生活| 国产大片一区二区| 天涯成人国产亚洲精品一区av| 337p粉嫩大胆噜噜噜噜噜91av| 色综合天天性综合| 蜜臀av性久久久久蜜臀aⅴ| 国产精品白丝在线| 国产精品网曝门| 日韩午夜精品视频| 欧美剧情电影在线观看完整版免费励志电影| 久草精品在线观看| 日本最新不卡在线| 亚洲一区二区三区国产| 一区二区三区四区av| 精品精品国产高清一毛片一天堂| 色综合久久综合| 91在线porny国产在线看| 国产二区国产一区在线观看| 午夜精品久久久久久久久久| 日韩一区有码在线| 国产精品黄色在线观看| 亚洲综合视频在线| 午夜精品久久久久久久久久 | 狠狠色伊人亚洲综合成人| 亚洲国产wwwccc36天堂| 亚洲高清在线视频| 日本亚洲一区二区| 久久99九九99精品| 国产精品伊人色| heyzo一本久久综合| 99久久久国产精品免费蜜臀| 成人精品视频.| 99re成人精品视频| 欧美日韩电影在线播放| 欧美成人乱码一区二区三区| 精品国产乱码久久久久久久久| 日韩免费一区二区| 国产人妖乱国产精品人妖| 亚洲一区中文日韩| 黄色精品一二区| 色综合欧美在线| 67194成人在线观看| 久久精品亚洲麻豆av一区二区| 中文字幕一区二区三区精华液| 亚洲成人黄色影院| 狠狠色丁香九九婷婷综合五月| 成人动漫在线一区| 亚洲精品在线三区| 洋洋成人永久网站入口| 国产精品一区二区三区四区| 欧美午夜在线观看| 久久精品水蜜桃av综合天堂| 亚洲午夜羞羞片| 99久久精品国产导航| 日韩久久久久久| 日韩在线一区二区| 91网页版在线| 国产精品伦理在线| 久久99久国产精品黄毛片色诱| 色婷婷综合久久久中文一区二区| 国产精品水嫩水嫩| 国产成a人亚洲精| 久久久久久久久久美女| 日韩成人午夜精品| 欧美人与z0zoxxxx视频| 亚洲欧洲国产日韩| 99久久亚洲一区二区三区青草| 亚洲日本中文字幕区| av中文字幕一区| 久久精品99国产精品| 亚洲视频每日更新| 欧美日韩精品专区| 日韩精品午夜视频| 日韩一级在线观看| 极品少妇xxxx偷拍精品少妇| 欧美变态tickling挠脚心| 狂野欧美性猛交blacked| 精品国产乱码久久久久久久久| 蜜臀av一区二区| 久久综合久久综合九色| 国产高清久久久| 亚洲国产精品av| 92国产精品观看| 日本v片在线高清不卡在线观看| 日本成人在线电影网| 久久午夜色播影院免费高清| av动漫一区二区| 美女一区二区视频| 日韩理论在线观看| 日韩欧美一区在线| 欧美性三三影院| 成人av免费网站| 国产一本一道久久香蕉| 亚洲国产日韩一级| 日韩毛片视频在线看| 久久久久久麻豆| 日韩一区二区三区四区五区六区| 不卡视频一二三| 国产女同互慰高潮91漫画| 国产麻豆日韩欧美久久| 国产精品资源网| 色网站国产精品| 欧美一二三四区在线| 欧美日韩国产小视频| 欧美日韩视频专区在线播放| 精品视频资源站| 在线看日本不卡| 欧美性大战久久久久久久| 91在线高清观看| 欧日韩精品视频| 91精品国产综合久久蜜臀| 久久综合色天天久久综合图片| 日韩欧美激情在线| 久久久99精品免费观看| 亚洲欧洲精品一区二区三区| 一区二区免费看| 久久99精品久久久久久| 久久99这里只有精品| 成人免费视频caoporn| 欧美伊人精品成人久久综合97| 日韩女优毛片在线| 中文字幕一区二区三区蜜月 | 欧美午夜影院一区| 精品欧美一区二区三区精品久久| 精品国产乱码久久久久久久久 | 精品日韩99亚洲| 亚洲另类春色国产| 国产99精品国产| 日韩一区二区三区在线| 亚洲婷婷综合色高清在线| 国产一区二区免费看| 欧美一卡2卡3卡4卡| 天天做天天摸天天爽国产一区| 91美女在线观看| 最新国产精品久久精品| 国产91丝袜在线18| 日本精品一区二区三区高清| 制服丝袜亚洲网站| 国产精品二三区| 婷婷亚洲久悠悠色悠在线播放 | 国产偷国产偷亚洲高清人白洁| 亚洲人成人一区二区在线观看| 日本sm残虐另类| 欧美日韩成人在线一区| 亚洲欧洲日韩在线|