Exemplo n.º 1
0
/*  Initialize depth buffer, fog, light source, 
 *  material property, and lighting model.
 */
static void init(void)
{
   GLfloat position[] = { 0.5, 0.5, 3.0, 0.0 };

   glEnable(GL_DEPTH_TEST);

   glLightfv(GL_LIGHT0, GL_POSITION, position);
   glEnable(GL_LIGHTING);
   glEnable(GL_LIGHT0);
   {
      GLfloat mat[3] = {0.1745, 0.01175, 0.01175};	
      glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT, mat);
      mat[0] = 0.61424; mat[1] = 0.04136; mat[2] = 0.04136;	
      glMaterialfv (GL_FRONT_AND_BACK, GL_DIFFUSE, mat);
      mat[0] = 0.727811; mat[1] = 0.626959; mat[2] = 0.626959;
      glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, mat);
      glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, 0.6*128.0);
   }

   glEnable(GL_FOG);
   {
      GLfloat fogColor[4] = {0.5, 0.5, 0.5, 1.0};

      fogMode = GL_EXP;
      glFogx (GL_FOG_MODE, fogMode);
      glFogfv (GL_FOG_COLOR, fogColor);
      glFogf (GL_FOG_DENSITY, 0.35);
      glHint (GL_FOG_HINT, GL_DONT_CARE);
      glFogf (GL_FOG_START, 1.0);
      glFogf (GL_FOG_END, 5.0);
   }
   glClearColor(0.5, 0.5, 0.5, 1.0);  /* fog color */
}
Exemplo n.º 2
0
static void keyboard(UGWindow uwin, int key, int x, int y)
{
   switch (key) {
      case 'f':
      case 'F':
         if (fogMode == GL_EXP) {
	    fogMode = GL_EXP2;
	    printf ("Fog mode is GL_EXP2\n");
         }
         else if (fogMode == GL_EXP2) {
            fogMode = GL_LINEAR;
            printf ("Fog mode is GL_LINEAR\n");
         }
         else if (fogMode == GL_LINEAR) {
            fogMode = GL_EXP;
            printf ("Fog mode is GL_EXP\n");
         }
         glFogx(GL_FOG_MODE, fogMode);
         ugPostRedisplay(uwin);
         break;
      case 27:
         exit(0);
         break;
      default:
         break;
   }
}
Exemplo n.º 3
0
//=============================================================================
//Setup GL
//@returns TRUE on success, FALSE otherwise
//=============================================================================
boolean GLApp::SetupGL()
{
	//smooth shading & depth test
	glShadeModel(GL_SMOOTH);
	glEnable(GL_DEPTH_TEST);
	
	//enable lighting operations
	GLfixed diffuse[] = { FTOX(1.0f), FTOX(1.0f), FTOX(1.0f), FTOX(1.0f) };
	GLfixed lightPos[] = { FTOX(0.0f), FTOX(5.0f), FTOX(-5.0f) };
	glEnable(GL_LIGHT0);
	glEnable(GL_COLOR_MATERIAL);
	glLightxv(GL_LIGHT0, GL_DIFFUSE, diffuse);
	glLightxv(GL_LIGHT0, GL_POSITION, lightPos);
	
	//enable blending operations
	glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

	//enable fog operations
	GLfixed fogColor[] = { 0, 0, 0, ITOX(1) };
	glFogxv(GL_FOG_COLOR, fogColor);
	glFogx(GL_FOG_MODE, GL_LINEAR);
	glFogx(GL_FOG_START, ITOX(10));
	glFogx(GL_FOG_END, ITOX(70));	

	//perspective Correction
	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
	
	//GL Initialization
	glViewport(0, 0, m_DBitmapInfo.cx, m_DBitmapInfo.cy);
	
	//init Projection matrix
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glFrustumx(ITOX(-5), ITOX(5), ITOX(-5), ITOX(5), ITOX(10), ITOX(100));
	
	//init Model-View matrix
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	
	if(glGetError() != GL_NO_ERROR) 
		return FALSE;
	
	return TRUE;
}
void
init_gles(Evas_Object *obj)
{
	ELEMENTARY_GLVIEW_USE(obj);
	appdata_s *ad = (appdata_s *)evas_object_data_get(obj, APPDATA_KEY);

	int width;
	int height;

	elm_glview_size_get(obj, &width, &height);

	ad->current_tex_index = 0;

	{
		glGenTextures(2, ad->tex_ids);

		glBindTexture(GL_TEXTURE_2D, ad->tex_ids[0]);
		glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 128, 128, 0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, IMAGE_4444_128_128_1);
		glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
		glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
		glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
		glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

		glBindTexture(GL_TEXTURE_2D, ad->tex_ids[1]);
		glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 128, 128, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, IMAGE_565_128_128_1);
		glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
		glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
		glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
		glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
	}

	glShadeModel(GL_SMOOTH);

	glViewport(0, 0, width, height);

	glEnable(GL_CULL_FACE);
	glCullFace(GL_BACK);

	glEnable(GL_DEPTH_TEST);
	glDepthFunc(GL_LESS);

	{
		glEnable(GL_FOG);
		glFogx(GL_FOG_MODE,     GL_LINEAR);
		glFog(GL_FOG_DENSITY, GetGlUnit(0.25f));
		glFog(GL_FOG_START,   GetGlUnit(4.0f));
		glFog(GL_FOG_END,     GetGlUnit(6.5f));
		glHint(GL_FOG_HINT,     GL_DONT_CARE);
	}

	SetPerspective(obj, 60.0f, 1.0f * width / height, 1.0f, 400.0f);

	glClearColorEx(0, 0, 0, 1);
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
}
Exemplo n.º 5
0
void render_init(void) {
#if TARGET_OS_IPHONE
    glFogx(GL_FOG_MODE, GL_LINEAR);    
#else
    glFogi(GL_FOG_MODE, GL_LINEAR);
#endif
    GLfloat fog_color[]={1,1,1,1};
    glFogfv(GL_FOG_COLOR,fog_color);
    
    
    bocina_deadline=-1.0;
}
void glFogxLogged(GLenum pname, GLfixed param) {
	printf("glFogx(%s, %i)\n", GLEnumName(pname), param);
	glFogx(pname, param);
}
Exemplo n.º 7
0
void RenderEntitiesF(void)
{
	
	
	
	
	int i;
	entity_t* entity;
	enemy_t* enemy;
	
	//printf("Starting rendering frame, t=%d.\n",simulationTime);


	
	
	glMatrixMode(GL_PROJECTION);
	gluPerspective(camera.fov, camera.aspect,camera.zNear, camera.zFar, projectionMatrix);
	glLoadMatrixf(projectionMatrix);
	
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();

	
	SetupCameraF();
		
	if (light.enabled)
		SetupLightingF();

	
	glDisable(GL_CULL_FACE);
	glDisable(GL_FOG);
	
	//traceRenderEntity = 0;
	glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
	
	for(i=0; i < numBackgroundEntities; i++)
	{
		entity = &map[i];
		
		if (entity->numIndices == 0)
			continue;
		
		RenderEntityF(entity);
	}
	
	if (engine.fogEnabled && (renderer.props & PROP_FOG) == PROP_FOG )
	{
		glEnable(GL_FOG);
		glFogx(GL_FOG_MODE, GL_LINEAR);						// Fog Mode
		glFogfv(GL_FOG_COLOR,renderer.fogColor);			// Set Fog Color
		glFogf(GL_FOG_DENSITY, renderer.fogDensity);		// How Dense Will The Fog Be (not used if GL_FOG_MODE == GL_LINEAR )
		glHint(GL_FOG_HINT, GL_FASTEST);					// Fog Hint Value
		glFogf(GL_FOG_START, renderer.fogStartAt);			// Fog Start Depth
		glFogf(GL_FOG_END, renderer.fogStopAt);				// Fog End Depth
	}
	
	
	
	for(i=numBackgroundEntities; i < num_map_entities; i++)
	{
		entity = &map[i];
		
		if (entity->numIndices == 0)
			continue;
		
		RenderEntityF(entity);
	}
	glEnable(GL_CULL_FACE);
	
	
	
	
	glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
	for (i=0 ; i < numPlayers; i++) 
	{
		//printf("player[%d].shouldDraw=%d\n",i,players[i].shouldDraw);
		if (players[i].shouldDraw)
			RenderEntityF(&players[i].entity);
	}
	
	glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
	
	//glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
	//traceRenderEntity=1;
	enemy = ENE_GetFirstEnemy();
	while (enemy != NULL) 
	{
		entity = &enemy->entity;
		
		
		
		if (enemy->shouldFlicker)
		{
			glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
			glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD);
			RenderEntityF(entity);
			enemy->shouldFlicker = 0;
			glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
		}
		else 
		{
			glColor4f(entity->color[R], entity->color[G], entity->color[B], entity->color[A]);
			RenderEntityF(entity);
		}

		
		enemy = enemy->next;
	} 
	glColor4f(1, 1, 1, 1);
}