Пример #1
0
/*
 * Main loop.
 */
void MainLoop() {
  LoopEventT event = LOOP_CONTINUE;

  SetVBlankCounter(0);

  do {
    int frameNumber = GetVBlankCounter();

    RenderEffect(frameNumber);
    RenderFrameNumber(frameNumber);
    RenderFramesPerSecond(frameNumber);

    DisplaySwap();
  } while ((event = ReadLoopEvent()) != LOOP_EXIT);
}
Пример #2
0
void CGControlSys::Render( dword dwOption)
{
//	CanDrawTerrain(false);
	
	if( !m_bReadyForRender ) return;
	
//	DLogWriteSystem( "in GControl::Render()" );

	static time_t timePrev = timeGetTime();
	time_t timeProgress = timeGetTime()-timePrev;
	float fRatio = (float)((timeProgress)%1000)/1000.0f;
	float fFrameMorphing = (float)(timeGetTime()%1000)/1000.0f*30.0f;
	static time_t timePrevSky = timePrev;
	static time_t timeNowSky = timePrev;
	timeNowSky+=timeProgress;

	// ::
	// Sky and Environment
	// ::
	DRenderUtil().UpdateRenderState( DRenderUtility::SblkEnvironment, DRenderBatch::s_bForceWireFrame, 0x01 );

//	m_NeoEnvironment.Render( m_Timer.fProgressRatio );
	m_Environment.Render();

	DLightActor::s_bDay = m_NeoEnvironment.IsDay();

	// Light Off
	Scud::ClearLightList();
	
	// Apply Environmental Global Light (single)
	//m_Environment.ApplyLightState( m_Environment.GetLightState( true ) );
	Scud::PushLight( m_NeoEnvironment.GlobalLightInstance() );
	Scud::UpdateLightOnDevice();

	Scud::SetAmbientLight( m_NeoEnvironment.Ambient() );

	m_aVisibleDynamicActorList.Initialize();

	DRenderUtil().UpdateRenderState( DRenderUtility::SblkNormal, false, m_NeoEnvironment.AlphaRef() ); //B4=180
	GSmallActor::s_dwAlphaRef = 0x96;
	
	// ::
	// Render All Visible Actor
	// ::
	BuildVisibleList();
	
	// 2004/03/23 by impurity
	DRenderUtil().UpdateRenderState( DRenderUtility::SblkNormal, false, m_NeoEnvironment.AlphaRef() ); //B4=180
	
	RenderMapObject();

	if( 1 ) //m_bRenderEnable ) // added by findfun. [Full]
		RenderCharacter();

	RenderMapAlpha();

	RenderEffect();
	
	// ::
	// Character Extra
	// ::
	GDynamicActor::GrpRenderExtra();
	
	// 2004/02/24 by impurity
	m_mngTransition.Render();
}