Пример #1
0
int32_t loadUserDictionary()
 {
 FILE *f;

 // Open to read
 f=fopen("userDict.bin","rb");

 // Exit if not found
 if (!f) return 1;

 // Load data in one big chunk
 if (fread(&UDict,sizeof(UserDictionary),1,f)<1)
          {
	      // Restore to default
	      programInit();
	      return 2;
          }

 // Indicate that data was loaded
 MainFlags|=MFLAG_LOADED;

 // Close the file
 fclose(f);

 return 0;
 }
Пример #2
0
void TextureShader::render(RenderState* rstate,
        RenderData* render_data, Material* material) {

   std::vector<glm::mat4> model_matrix;
   model_matrix.push_back(rstate->uniforms.u_model);
   programInit(rstate,render_data,material,model_matrix,1,false);
   checkGlError("TextureShader::render");
}
Пример #3
0
void TextureShader::render_batch(const std::vector<glm::mat4>& model_matrix,
        RenderData* render_data,  RenderState& rstate, unsigned int indexCount, int drawcount)
{
    uniforms uniform_locations;
    programInit(&rstate,render_data,rstate.material_override,model_matrix,drawcount,true);
    GL(glDrawElements(render_data->draw_mode(), indexCount, GL_UNSIGNED_SHORT, 0));
    GL(glBindVertexArray(0));
    checkGlError(" TextureShader::render_batch");
}
Пример #4
0
int parseCommand(token *tok, char **s)
{
	int line;
	int r;

	if (matchNumber(tok, s))
	{
		line = tok->n;
		if (!matchWhiteSpace(tok, s)) // delete line
			return deleteLine(line);
		else	// add line
		{
			matchString(tok, s);
			return insertLine(line, tok->s);
		}
	}

	if (matchSize(tok, s))
	{
		puts(itos(programGetSize()));
		return 1;
	}

	if (matchFree(tok, s))
	{
		puts(itos(programGetFree()));
		return 1;
	}

  if (matchClear(tok, s))
	{
		programInit();
		return 1;
	}

	if (matchBye(tok, s))
	{
		exit(0);
	}

	if (parseRun(tok, s))
		return 1;
	else if (errorGet() != ERROR_OK) return 0;

	if (parseList(tok, s))
		return 1;
	else if (errorGet() != ERROR_OK) return 0;

	programSetMode(progModeImmediate);
	r = parseLine(tok, s);
	programSetMode(progModeStored);

	return r;
}
int _tmain(int argc, char** argv)
{
	glutInit(&argc, argv);
	viewInit();
	glutReshapeFunc(myReshape);
	glutDisplayFunc(display);
	glutMouseFunc(mouse);
	glutKeyboardFunc(keys);
	glutSpecialFunc(keyboard);
	lightInit();
	glEnable(GL_DEPTH_TEST); /* enable z buffer */
	programInit();
	glutMainLoop();
	return 0;
}
Пример #6
0
/*
 * Main program
 */
void main() 
{
	unsigned long i=0, j=0, k=0;
	unsigned char pwmpos=0, pwmled=0;
	on_init();
	timer1_init();
	firstInit();
	programInit();
	
	while(1)
	{
		if (!wait)
		{
			for(pwmled=0; pwmled<23; pwmled++)
			{
				setLEDDiscrete(pwmled, PWM[pwmled] > pwmpos);
			}
			pwmpos++;
			if (pwmpos >= PWM_LENGTH) pwmpos = 0;
			
			if (k>20) {
				for(pwmled=0; pwmled<23; pwmled++)
				{
					if (framebuffer[pwmled] < PWM[pwmled]) PWM[pwmled]--;
					if (framebuffer[pwmled] > PWM[pwmled]) PWM[pwmled]++;
				}
				k=0;
			}
			
			if (i > (100*delay))
			{
				programRun();
				i=0;
			}
		}
		
		if (j>10)  {
			readInputs();
			j=0;
		}
		
		i++;
		j++;
		k++;
	}
}
Пример #7
0
UserManagerBackend::UserManagerBackend(QString dir) {
    chroot = dir;
    programInit();
}
Пример #8
0
int main()
{
	
	// SFML window that will host our OpenGL magic
	
    sf::Window window(sf::VideoMode(1920, 1080), "OpenGL", sf::Style::Default, sf::ContextSettings(32));
    window.setVerticalSyncEnabled(true);
	window.setMouseCursorVisible(false);
	sf::View view;
	
	sf::Mouse::setPosition(sf::Vector2i(window.getSize().x / 2, window.getSize().y / 2),  window);
	
	glewInit();
	
	Player	player;
	programInit(shaderMap, modelMap, textureMap, normalMap);
	initPresetSystem(shaderMap, modelMap, textureMap, normalMap, presetMap);
	Editor editor(modelMap, shaderMap, textureMap, normalMap, presetMap);

	GLInit();
	
	// ---------------------- MODELS -------------------------------
	Model		sphereModel, unitSquareModel;
	generateSphere(&sphereModel, 50);						sphereModel.upload();
	myLoadObj("Models/unitSquare.obj", &unitSquareModel);	unitSquareModel.upload();

	loadNoise();

	// Add terrain information to earth
	cv::Mat earthBumpMap = cv::imread("Textures/earthBumpMap.jpg");
	earthBumpMap.convertTo(earthBumpMap, CV_32F);
	int height = earthBumpMap.rows;
	int width = earthBumpMap.cols;
	std::cout << "Dims: " << height << ", " << width << std::endl;
	std::cout << "Dims: " << *earthBumpMap.row(height-1).col(5).ptr<float>() << std::endl;

	// ---------------------- OBJECTS -------------------------------
	// Initiation of all objects in the program
	// ShaderParameters = (ambientCoeff, diffuseCoeff, specularCoeff, specularExponent)
	cv::Vec4f standardShaderParameters(0.2f, 0.5f, 0.8f, 10);

	Object squareNormalMap, squareSpecularityMap;
	GLuint earthNormalMap, earthSpecularityMap, earthTextureDay, earthTextureNight;
	GLuint normalMapShader, specularityMapShader;

	shaderInit(&phongNoTex, "Shaders/phongNoTex.vert", "Shaders/phongNoTex.frag");
	shaderInit(&normalMapShader, "Shaders/normalMap.vert", "Shaders/normalMap.frag");
	shaderInit(&specularityMapShader, "Shaders/specularityMap.vert", "Shaders/specularityMap.frag");
	
	LoadTGATextureSimple("Textures/earthTextureDay.tga", &earthTextureDay);
	LoadTGATextureSimple("Textures/earthTextureNight.tga", &earthTextureNight);
	LoadTGATextureSimple("Textures/earthNormalMap.tga", &earthNormalMap);
	LoadTGATextureSimple("Textures/earthSpecularityMap.tga", &earthSpecularityMap);

	//squareNormalMap.init(&unitSquareModel, phongNoTex, standardShaderParameters, 0, 0, 0, earthNormalMap);
	squareNormalMap.init(&unitSquareModel, normalMapShader, standardShaderParameters, 0, 0, 0, earthNormalMap);
	squareSpecularityMap.init(&unitSquareModel, specularityMapShader, standardShaderParameters, earthTextureDay, earthTextureNight, earthSpecularityMap, earthNormalMap);
	squareNormalMap.set(cv::Vec3f(100,0,0),  cv::Vec3f(50,50,100), cv::Vec3f(0, pi/2, -pi/2), cv::Vec3f(0,0,0), 1);
	squareSpecularityMap.set(cv::Vec3f(100,0,0),  cv::Vec3f(50,50,100), cv::Vec3f(0, pi/2, -pi/2), cv::Vec3f(0,0,0), 1);
	

	// ---------------------- SKYSPHERE -------------------------------
	Object skysphere;
	GLuint skysphereTexture, skyboxShader;
	LoadTGATextureSimple("Textures/spaceBox6.tga", &skysphereTexture);


	shaderInit(&skyboxShader, "Shaders/skybox.vert", "Shaders/skybox.frag");

	skysphere.init(&sphereModel, skyboxShader, standardShaderParameters, skysphereTexture);
	skysphere.set(player.position,  cv::Vec3f(1,1,1), cv::Vec3f(0,0,0), cv::Vec3f(0,0,0), 1);

	


	int item;

	// SFML built-in clock
	sf::Clock clock;
	states[RUNNING] = true;
    states[EDITOR] = true;
	states[STARTUP] = true;
	/*
	bool running = true;
    bool runningEditor = true;
	bool startup = true;
	bool selectObject = false;
	bool cooldown = false;
	*/
	Object* currentObject = NULL;
	Object* playerObject = NULL;
	

	while (states[RUNNING])
    {
		dt = clock.getElapsedTime().asSeconds();
		if(states[EDITOR])
		{
			window.setVisible(false);
			if(states[SELECTOBJECT])
			{
				solsystem.getObjects(&allObjects);
				currentObject = getSelectedObject(&allObjects, &player);
				allObjects.clear();
			}
			editor.edit(solsystem, states, currentObject);
			states[STARTUP] = false;
			sf::Mouse::setPosition(sf::Vector2i(window.getSize().x / 2, window.getSize().y / 2),  window);
			clock.restart();
			window.setActive();

			states[SELECTOBJECT] = false;
			currentObject = NULL;
			
			states[EDITOR] = false;
			window.setVisible(true);
		}

		else
		{
			clock.restart();
			if (playerObject != NULL)
			{
				std::cout << player.position << std::endl;
			
				player.move(playerObject->position);
				//player.position = playerObject->position;

				std::cout << playerObject->position << std::endl;
			}
			
			handleEvents(&window, states, &item, playerObject, &player, dt);
			player.lookAtUpdate(dt);

			// Plocka ut all planeters positioner
			std::list<Object*> allObjects;
			solsystem.getObjects(&allObjects);
			std::vector<cv::Vec3f> positionVector;
			std::vector<cv::Vec3f> radiusVector;
			

			std::list<Object*>::iterator i = allObjects.begin();

			for (i++ ; i != allObjects.end(); ++i)
			{
				positionVector.push_back((*i)->position);
				radiusVector.push_back((*i)->scale);
				//std::cout << "Scale: " << (*i)->scale << std::endl;
			}

			int numberOfPlanets = positionVector.size();

			GLfloat* positions = makeArray(positionVector);
			GLfloat* radius = makeArray(radiusVector);
			

			/////////////////////////////////   SKYBOX   /////////////////////////////////////////
			window.setActive();
			//drawSkybox(&player, &skyboxModel, skyboxShader, skyboxTexture);

			glDisable(GL_DEPTH_TEST);
			//skybox.set(player.position,  cv::Vec3f(5,5,5), cv::Vec3f(0,0,0), cv::Vec3f(0,0,0), 1);
			//skybox.draw(&player);
			skysphere.set(player.position,  cv::Vec3f(5,5,5), cv::Vec3f(0,0,0), cv::Vec3f(0,0,0), 1);
			skysphere.draw(&player, 0, dt);
			glEnable(GL_DEPTH_TEST);

			/////////////////////////////////   ALX   /////////////////////////////////////////

			if (states[NORMALMAP])
			{
				squareNormalMap.draw(&player, dt, numberOfPlanets, positions, radius);
			}
			if (states[SPECULARITYMAP])
			{
				squareSpecularityMap.draw(&player, dt, numberOfPlanets, positions, radius);
			}

			/////////////////////////////////   ALX   /////////////////////////////////////////




		
			if(!states[COOLDOWN] && item == 1)
			{
				Object* newItem = presetMap["Earth"]->clone();
				newItem->set(player.position,  cv::Vec3f(0.25,0.25,0.25), cv::Vec3f(0,0,0), 10*player.getLookAtDirection(), 1);
				solsystem.addItem(newItem);
				std::cout << 10*normalize(player.position - player.lookAtVector) << std::endl;
				states[COOLDOWN] = true;
			}
			item = 0;
			if(states[ENABLEGRAVITY] && playerObject == NULL)
			{
				playerObject = presetMap["Earth"]->clone();
				playerObject->set(player.position,  cv::Vec3f(1.25,1.25,1.25), cv::Vec3f(0,0,0), cv::Vec3f(0,0,0), 1);
				solsystem.addPlayerItem(playerObject);
				states[ENABLEGRAVITY] = false;
			}
			if(states[DISABLEGRAVITY] && playerObject != NULL)
			{
				solsystem.removePlayerItem();
				playerObject = NULL;
				states[DISABLEGRAVITY] = false;
			}

			solsystem.update(physEngine, dt*0.5);
			solsystem.draw(&player, accTime);
			accTime += dt;

			window.display();
			glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
		}

		cv::waitKey(0);
	}
    // release resources...
	glDeleteVertexArrays(1, &sphereModel.VAO);
	//glDeleteVertexArrays(1, &skyboxModel.VAO);
	//glDeleteVertexArrays(1, &unitSquareModel.VAO);
	//glDeleteVertexArrays(1, &groundModel.VAO);
	
	return 0;
}
Пример #9
0
void readInputs()
{
	if (SW1 == 1 || SW2 == 1 || SW3 == 1 || SW4 == 1)
	{
		if (!wait)
		{
			if(program == 14)
			{
				if (SW1 == 1) {
					setColor(globalI,0,0);
					globalI = (globalI - 1) % 6;
					setColor(globalI,1,0);
				}
						
				if (SW4 == 1) {
					setColor(globalI,0,0);
					globalI = (globalI + 1) % 6;
					setColor(globalI,1,0);
					
				}
						
				if (SW2 == 1) {
					if (program <= 0) program = PROGRAM_COUNT-1;
					else program--;
					setAll(1);
					newProgram = 1;
				}
					
				if (SW3 == 1) {
					program++;
					if (program >= PROGRAM_COUNT) program = 0;
					setAll(1);
					newProgram = 1;
				}
				
				wait = 1;
			}
			else
			{
				if (SW1 == 1) {
					if (delay < 40) delay++;
				}
						
				if (SW4 == 1) {
					if (delay > 0) delay--;
				}
						
				if (SW2 == 1) {
					if (program <= 0) program = PROGRAM_COUNT-1;
					else program--;
					setAll(1);
					newProgram = 1;
				}
					
				if (SW3 == 1) {
					program++;
					if (program >= PROGRAM_COUNT) program = 0;
					setAll(1);
					newProgram = 1;
				}
				
				wait = 1;
			}
		}
	}
	else
	{
		if (wait)
		{
			if (newProgram) 
			{
				newProgram = 0;
				programInit();
				programRun();
			}
			wait = 0;
		}
	}
}