예제 #1
0
파일: main.cpp 프로젝트: Bumrang/Animation
int main()
{
	
	//OpenGL Setup
	if (!glfwInit())
	{
		std::cout << "GLFW failed to initialize!\n";
		return 1;
	}
	glfwOpenWindow(Width,Height,0,0,0,0,0,0,GLFW_WINDOW);
	if (glewInit() != GLEW_OK)
	{
		std::cout << "GLEW failed to initialize!\n";
		return 1;
	}
	glfwSetWindowTitle("it's done.");
	glViewport(0,0,Width, Height);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(0,0,0,0,0,100);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	glClearColor(1,0,0,1);
	//OpenGL Setup end
	
	Texture tex;

	while (true)
	{
		
		glClear (GL_COLOR_BUFFER_BIT);

		tex.Draw();
	
		glfwSwapBuffers();

		if (glfwGetKey (GLFW_KEY_ESC))
		{
			return 0;
		}
	}
}
예제 #2
0
	void Draw() const
	{
		if(t)
		{
			Texture::Enable();
			tex.Draw();
			glEnableClientState(GL_TEXTURE_COORD_ARRAY);
			
			glTexCoordPointer(2, GL_FLOAT, 0, t);
		}
		glVertexPointer(3, GL_FLOAT, 0, v);
		glNormalPointer(GL_FLOAT, 0, n);
		
		glDrawArrays(mode, 0, s);
		if(t)
		{
			Texture::Disable();
			glDisableClientState(GL_TEXTURE_COORD_ARRAY);
		}
	}
예제 #3
0
void Smoke::Draw()
{
	Texture* tx = TextureManager::GetInstance().GetTexture("smoke");
	tx->color = 0xffdddddd;
	tx->Draw(vPos, &vScale, 0, 0, fAlpha);
}
예제 #4
0
파일: main.cpp 프로젝트: Bumrang/Common
int main()
{
	
	//OpenGL Setup
	if (!glfwInit())
	{
		std::cout << "GLFW failed to initialize!\n";
		return 1;
	}
	glfwOpenWindow(Width,Height,0,0,0,0,0,0,GLFW_WINDOW);
	if (glewInit() != GLEW_OK)
	{
		std::cout << "GLEW failed to initialize!\n";
		return 1;
	}
	glfwSetWindowTitle("it's done.");
	glViewport(0,0,Width, Height);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(0,0,0,0,0,100);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	glClearColor(1,0,0,1);
	//OpenGL Setup end
	
	Texture tex;
	
	/*// If you had a class, this would be in the contructor.
	GLuint programID = LoadShaders ("tex.vert" , "tex.frag"); std::cout << programID << std::flush;
	
	GLuint img = SOIL_load_OGL_texture("runner_01.png", SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, SOIL_FLAG_MIPMAPS);

	std::vector <glm::vec2> Verts;
	Verts.push_back (glm::vec2 (-1.0f , -1.0f));
	Verts.push_back (glm::vec2 (-1.0f , 1.0f));
	Verts.push_back (glm::vec2 (1.0f , 1.0f));
	Verts.push_back (glm::vec2 (1.0f , -1.0f));

	std::vector <glm::vec2> UV;
	UV.push_back (glm::vec2 (0.0f , 1.0f));
	UV.push_back (glm::vec2 (0.0f , 0.0f));
	UV.push_back (glm::vec2 (1.0f , 0.0f));
	UV.push_back (glm::vec2 (1.0f , 1.0f));


	GLuint VertBuffer;
	glGenBuffers (1 , &VertBuffer);
	glBindBuffer (GL_ARRAY_BUFFER, VertBuffer);
	glBufferData (GL_ARRAY_BUFFER , Verts.size()*sizeof(glm::vec2) , &Verts[0] , GL_STATIC_DRAW);

	GLuint UVBuffer;
	glGenBuffers (1 , &UVBuffer);
	glBindBuffer (GL_ARRAY_BUFFER , UVBuffer);
	glBufferData (GL_ARRAY_BUFFER , UV.size()*sizeof(glm::vec2) , &UV[0] , GL_STATIC_DRAW);
	// Constructor end. */

	while (true)
	{
		
		glClear (GL_COLOR_BUFFER_BIT);

		tex.Draw();
	
		// This would be in the classes Draw() function.
		// Shader failure/success added.
		
		/*if (programID == NULL) // Was not able to compile, fallback.
		{
		glEnableClientState (GL_VERTEX_ARRAY);
		glBindBuffer (GL_ARRAY_BUFFER , VertBuffer);
		glVertexPointer (2 , GL_FLOAT , 0 , NULL);

		glEnableClientState (GL_TEXTURE_COORD_ARRAY);
		glBindBuffer (GL_ARRAY_BUFFER , UVBuffer);
		glTexCoordPointer (2 , GL_FLOAT , 0 , NULL);

		glEnable (GL_TEXTURE_2D);
		glBindTexture (GL_TEXTURE_2D , img);
		glEnable(GL_BLEND);
		glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

		glColor4f(1,1,1,1);
		glDrawArrays (GL_QUADS , 0 , Verts.size());

		glDisable (GL_TEXTURE_2D);
		glDisable(GL_BLEND);

		glDisableClientState (GL_VERTEX_ARRAY);
		glDisableClientState (GL_TEXTURE_COORD_ARRAY);
		}
		
		else // Is able to compile.
		{
			glUseProgram (ProgramID);
			
					   glActiveTexture (GL_TEXTURE0);
	   glBindTexture (GL_TEXTURE_2D , TextureID);
	   glUniform1i (TextureID , 0);

	   glEnableVertexAttribArray (0);
	   glBindBuffer (GL_ARRAY_BUFFER , VertBuffer);
	   glVertexAttribPointer ( 0 , 3 , GL_FLOAT , GL_FALSE , 0 , NULL);

	   glEnableVertexAttribArray (1);
	   glBindBuffer (GL_ARRAY_BUFFER , UVBuffer);
	   glVertexAttribPointer ( 1 , 2 , GL_FLOAT , GL_FALSE , 0 , NULL);


	   glEnable(GL_BLEND);
	   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
	   glEnable(GL_TEXTURE_2D);
		 glDrawArrays (GL_QUADS , 0 , Verts.size());
	   glDisable(GL_TEXTURE_2D);
	   glDisable(GL_BLEND);

	   glDisableVertexAttribArray (0);
	   glDisableVertexAttribArray (1);
		}	
		// Draw function end.*/

		glfwSwapBuffers();

		if (glfwGetKey (GLFW_KEY_ESC))
		{
			return 0;
		}
	}
}