void *ThreeDeeApp (void *param)
{
	queue *fifo;
	int msg, buff = 0;
	fifo = (queue *)param;
	
	float Yrotation = 0;
	assets = new Obj3d(true);
	
	EGLinit(eglDisplay, eglSurface);

	if (1==preRender())
	{
		EGLdeinit(eglDisplay);
		exit(1);
	}

	assets->start(g_hTXShaderProgram, "resources/models/tumbler/BatMobil.obj", *assets);

    if(!assets->getScene())
	{
		printf("scene could not be loaded\n");	
		exit(1);
	}

	printf("scene loaded\n");
	
	for (;;)
	{
		if(!fifo->empty)
		{
			pthread_mutex_lock(fifo->mut);
			queueDel(fifo, &msg);
			pthread_mutex_unlock(fifo->mut);
			pthread_cond_signal(fifo->notFull);
			//printf("3D app: received %i\n", msg);
		}
		if (msg != buff)
		{
			Yrotation = msg - buff;
			buff = msg;
			Render(assets, 0, Yrotation*3, 0, 0);
		} else 
		{
			Render(assets, 0, 0, 0, 0);	
		}
		Yrotation = 0;
		//msg=0;

		eglSwapBuffers(eglDisplay, eglSurface);
	}

	RenderCleanup(assets);
	
	// cleanup
	DestroyShaders();
	EGLdeinit(eglDisplay);

	return (NULL);
}
Beispiel #2
0
Lighting::~Lighting()
{
	DestroyShaders();
	sceneLights.SetCount(0);

	SAFE_RELEASE(m_Atten);
	SAFE_RELEASE(m_Spot);
	SAFE_RELEASE(m_CubeNormal);

}
/**
 * Shutdown the render manager
 */
bool RenderManager::Destroy()
{
	if(unitSphereMesh)	delete unitSphereMesh;
	if(unitConeMesh)	delete unitConeMesh;
	if(fullScreenVB)	gRenderAPI->DestroyVertexBuffer(fullScreenVB);
	if(fullScreenIB)	gRenderAPI->DestroyIndexBuffer(fullScreenIB);
	if(defaultTexture)	gRenderAPI->DestroyTexture(defaultTexture);

	cachedSamplers.clear();

	DestroyFonts();
	DestroyShaders();
	DestroyRenderTargets();
	gRenderAPI->Destroy();

	return true;
}
Beispiel #4
0
void dx103DFluidRenderer::Destroy()
{
	if (!m_bInited) return;

	//createJitterTexture();
	m_JitterTexture = 0;
	m_HHGGTexture = 0;

	//createScreenQuad();
	m_GeomQuadVertex = 0;
	_RELEASE(m_pQuadVertexBuffer);

	//createGridBox();
	m_GeomGridBox = 0;
	_RELEASE(m_pGridBoxVertexBuffer);
	_RELEASE(m_pGridBoxIndexBuffer);

	DestroyShaders();
}
void Cleanup(void)
{
  DestroyShaders();
  DestroyVBO();
}
//--------------------------------------------------------------------------
void DeferredShadingMSAA::ReloadShaders()
{
    DestroyShaders();
    BuildShaders();
}
Beispiel #7
0
bool Lighting::CreateShaders(bool FromResource)
{
	HRESULT Hr;
	TSTR	Str;
	int		i;
	TCHAR error[256];


	_stprintf(error,_T("%s"),GetString(IDS_ERROR));

	DestroyShaders();

	if(FromResource)
	{	
		for(i = 0; i < SHADER_LIGHT_MAX; i++)
		{
			if(FAILED(Hr = CreateVertexShaderResource(m_Device,m_VertexRes[i],&m_VertexDec,&m_VertexHandle[i])))
			{
				Str = TSTR(GetString(IDS_ERROR_VS)) + m_VertexFile[i];
				MessageBox(NULL,Str,error,MB_OK | MB_ICONERROR | MB_SETFOREGROUND | 
						   MB_APPLMODAL);

				return(false);
			}

			if(FAILED(Hr = CreatePixelShaderResource(m_Device,m_PixelRes[i],&m_PixelHandle[i])))
			{
				Str = TSTR(GetString(IDS_ERROR_PS)) + m_PixelFile[i];
				MessageBox(NULL,Str,error,MB_OK | MB_ICONERROR | MB_SETFOREGROUND | 
						   MB_APPLMODAL);

				return(false);
			}

		}
	}
/*	else
	{
		for(i = 0; i < SHADER_LIGHT_MAX; i++)
		{
			if(FAILED(Hr = CreateShader(m_Device,m_VertexFile[i],gVertexDecl,
										SHADER_VERTEXSHADER,&m_VertexHandle[i])))
			{
				Str = TSTR(GetString(IDS_ERROR_VS)) + m_VertexFile[i] + TSTR(GetString(IDS_CHECK_PATHS));
				MessageBox(NULL,Str,error,MB_OK | MB_ICONERROR | MB_SETFOREGROUND | 
						   MB_APPLMODAL);

				return(false);
			}

			if(FAILED(Hr = CreateShader(m_Device,m_PixelFile[i],gVertexDecl,
										SHADER_PIXELSHADER,&m_PixelHandle[i])))
			{
				Str = TSTR(GetString(IDS_ERROR_PS)) + m_PixelFile[i] + TSTR(GetString(IDS_CHECK_PATHS));
				MessageBox(NULL,Str,error,MB_OK | MB_ICONERROR | MB_SETFOREGROUND | 
						   MB_APPLMODAL);

				return(false);
			}

		}
	}

*/	return(true);
}
Beispiel #8
0
bool Lighting::Init(LPDIRECT3DDEVICE9 Device)
{

	if(!m_InitDone)
	{
		m_Device = Device;

		m_VertexFile[SHADER_DIR]				= _T("DL1.nvo");
		m_VertexRes[SHADER_DIR]					=  IDR_DL1_NVO;

		m_PixelFile[SHADER_DIR]					= _T("DL1.pso");
		m_PixelRes[SHADER_DIR]					=  IDR_DL1_PSO;

		m_VertexFile[SHADER_DIR_SPEC]			= _T("DL2.nvo");
		m_VertexRes[SHADER_DIR_SPEC]			=  IDR_DL2_NVO;

		m_PixelFile[SHADER_DIR_SPEC]			= _T("DL2.pso");
		m_PixelRes[SHADER_DIR_SPEC]				=  IDR_DL2_PSO;

		m_VertexFile[SHADER_DIR_NORMAL]			= _T("DL3.nvo");
		m_VertexRes[SHADER_DIR_NORMAL]			=  IDR_DL3_NVO;

		m_PixelFile[SHADER_DIR_NORMAL]			= _T("DL3.pso");
		m_PixelRes[SHADER_DIR_NORMAL]			=  IDR_DL3_PSO;

		m_VertexFile[SHADER_DIR_NORMAL_SPEC]	= _T("DL4.nvo");
		m_VertexRes[SHADER_DIR_NORMAL_SPEC]		=  IDR_DL4_NVO;

		m_PixelFile[SHADER_DIR_NORMAL_SPEC]		= _T("DL4.pso");
		m_PixelRes[SHADER_DIR_NORMAL_SPEC]		=  IDR_DL4_PSO;

		m_VertexFile[SHADER_OMNI]				= _T("OL1.nvo");
		m_VertexRes[SHADER_OMNI]				=  IDR_OL1_NVO;

		m_PixelFile[SHADER_OMNI]				= _T("OL1.pso");
		m_PixelRes[SHADER_OMNI]					=  IDR_OL1_PSO;

		m_VertexFile[SHADER_OMNI_SPEC]			= _T("OL2.nvo");
		m_VertexRes[SHADER_OMNI_SPEC]			=  IDR_OL2_NVO;

		m_PixelFile[SHADER_OMNI_SPEC]			= _T("OL2.pso");
		m_PixelRes[SHADER_OMNI_SPEC]			=  IDR_OL2_PSO;

		m_VertexFile[SHADER_OMNI_NORMAL]		= _T("OL3.nvo");
		m_VertexRes[SHADER_OMNI_NORMAL]			=  IDR_OL3_NVO;

		m_PixelFile[SHADER_OMNI_NORMAL]			= _T("OL3.pso");
		m_PixelRes[SHADER_OMNI_NORMAL]			=  IDR_OL3_PSO;

		m_VertexFile[SHADER_OMNI_NORMAL_SPEC]	= _T("OL4.nvo");
		m_VertexRes[SHADER_OMNI_NORMAL_SPEC]	=  IDR_OL4_NVO;

		m_PixelFile[SHADER_OMNI_NORMAL_SPEC]	= _T("OL4.pso");
		m_PixelRes[SHADER_OMNI_NORMAL_SPEC]		=  IDR_OL4_PSO;

		m_VertexFile[SHADER_SPOT]				= _T("SL1.nvo");
		m_VertexRes[SHADER_SPOT]				=  IDR_SL1_NVO;

		m_PixelFile[SHADER_SPOT]				= _T("SL1.pso");
		m_PixelRes[SHADER_SPOT]					=  IDR_SL1_PSO;

		m_VertexFile[SHADER_SPOT_SPEC]			= _T("SL2.nvo");
		m_VertexRes[SHADER_SPOT_SPEC]			=  IDR_SL2_NVO;

		m_PixelFile[SHADER_SPOT_SPEC]			= _T("SL2.pso");
		m_PixelRes[SHADER_SPOT_SPEC]			=  IDR_SL2_PSO;

		m_VertexFile[SHADER_SPOT_NORMAL]		= _T("SL3.nvo");
		m_VertexRes[SHADER_SPOT_NORMAL]			=  IDR_SL3_NVO;

		m_PixelFile[SHADER_SPOT_NORMAL]			= _T("SL3.pso");
		m_PixelRes[SHADER_SPOT_NORMAL]			=  IDR_SL3_PSO;

		m_VertexFile[SHADER_SPOT_NORMAL_SPEC]	= _T("SL4.nvo");
		m_VertexRes[SHADER_SPOT_NORMAL_SPEC]	=  IDR_SL4_NVO;

		m_PixelFile[SHADER_SPOT_NORMAL_SPEC]	= _T("SL4.pso");
		m_PixelRes[SHADER_SPOT_NORMAL_SPEC]		=  IDR_SL4_PSO;

		m_VertexFile[SHADER_SPEC]				= _T("SP.nvo");
		m_VertexRes[SHADER_SPEC]				=  IDR_SP_NVO;

		m_PixelFile[SHADER_SPEC]				= _T("SP.pso");
		m_PixelRes[SHADER_SPEC]					=  IDR_SP_PSO;

		m_VertexFile[SHADER_AMBIENT]			= _T("A.nvo");
		m_VertexRes[SHADER_AMBIENT]				=  IDR_A_NVO;

		m_PixelFile[SHADER_AMBIENT]				= _T("A.pso");
		m_PixelRes[SHADER_AMBIENT]				=  IDR_A_PSO;


		DestroyShaders();

		if(!CreateShaders(true))
		{
			return(false);
		}

		TSTR textureName = _T("GAM.tga");
		if(!LoadAttenTexture(textureName, Device))
		{
			return(false);
		}

		textureName = _T("GSPM.tga");
		if(!LoadSpotTexture(textureName, Device))
		{
			return(false);
		}

		if(!CreateNormalizationCubeMap(Device,256))
		{
			return(false);
		}

		// do it when we get going......Should only be one time
		m_InitDone = true;
		m_Ready    = true;

	}

	return(true);

}
ShaderManager::~ShaderManager()
{
    DestroyShaders();
}
Beispiel #10
0
void Chapter21App::Cleanup()
{
    DestroyShaders();
    DestroyVBO();
}
Beispiel #11
0
void Cleanup (void)
{
  DestroyShaders ();
  DestroyVBO ();
  free (TempString);
}