/// @brief Initializing handler.
/// @return true if success
bool CEffectViewerApp::OnInit()
{
    char path[OG_MAX_PATH];
    GetResourcePathASCII(path, OG_MAX_PATH);
    std::string strPath = std::string(path) + std::string("/../assets/");
    StartOrangeGrass(strPath, false);
    StartGameCore();

    CEffectViewerFrame* pFrame = new CEffectViewerFrame(NULL);
	SetTopWindow(pFrame);
	pFrame->Centre();
	pFrame->Show();

	return true;
}
ShaderData::ShaderData( const char *vertShaderFilename, const char *fragShaderFilename )
{
	char buffer[2048];
	GetResourcePathASCII(buffer, 2048);
	
	CPVRTResourceFile::SetReadPath(buffer);
	
	/* Gets the Data Path */	
	if(ShaderLoadFromFile("blank",fragShaderFilename, GL_FRAGMENT_SHADER, 0, &uiFragShader) == 0)
		printf("Loading the fragment shader fails:%s", fragShaderFilename);
	if(ShaderLoadFromFile("blank", vertShaderFilename, GL_VERTEX_SHADER, 0, &uiVertShader) == 0)
		printf("Loading the vertex shader fails:%s", vertShaderFilename);
	
	CreateProgram(&uiProgramObject, uiVertShader, uiFragShader, pszAttribs, sizeof(pszAttribs)/sizeof(pszAttribs[0]) );	
	
	// First gets the location of that variable in the shader using its name
	PMVMatrixHandle = glGetUniformLocation(uiProgramObject, "u_ModelViewProjectionMatrix");
	MVMatrixHandle = glGetUniformLocation(uiProgramObject, "u_ModelViewMatrix");
	TIMMatrixHandle = glGetUniformLocation(uiProgramObject, "u_TrasposeInverseModelMatrix");
	ModelMatrixHandle = glGetUniformLocation(uiProgramObject, "u_ModelMatrix");
	ViewMatrixHandle = glGetUniformLocation(uiProgramObject, "u_ViewMatrix");
	
	EyePositionHandle = glGetUniformLocation(uiProgramObject, "myEye");
	LightDirectionHandle = glGetUniformLocation(uiProgramObject, "light_direction");
	LightPositionHandle = glGetUniformLocation(uiProgramObject, "light_position");
	
	AmbientICHandle = glGetUniformLocation(uiProgramObject, "ambient_ic");
	DiffuseICHandle = glGetUniformLocation(uiProgramObject, "diffuse_ic");
	SpecularICHandle = glGetUniformLocation(uiProgramObject, "specular_ic");
	
	MaterialShininessHandle = glGetUniformLocation(uiProgramObject, "material_shininess");
	
	ColorHandle = glGetUniformLocation(uiProgramObject, "u_Color");		
	TextureHandle = glGetUniformLocation(uiProgramObject, "s_texture");			
	NormalMapHandle = glGetUniformLocation(uiProgramObject, "s_normalmap");	
	
	NoiseOffsetHandle= glGetUniformLocation(uiProgramObject, "u_offset");
}