Esempio n. 1
0
/**
 * LoadTexture
 */
void LoadTexture(const char* texName, const char* texFile)
{
	EsgiTexture *tex = esgiReadTGAFile(texFile);
	glGenTextures(1, &textureID);
	glBindTexture(GL_TEXTURE_2D, textureID);
	glTexImage2D(GL_TEXTURE_2D, 0, /* Lod */
		tex->internalFormat, tex->width, tex->height,
		0, tex->format, GL_UNSIGNED_BYTE, tex->texels);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

	textures.insert(std::pair<const char*,GLuint>(texName, textureID));
}
Esempio n. 2
0
bool TP1::Init(){
    if(shader.LoadVertexShader("../resources/simpleSprite.vert") && shader.LoadFragmentShader("../resources/simpleSprite.frag")){
	    shader.Create();
    }else{
        return false;
    }

	// camera a l'origine
	sprite.viewMatrix.Identity();

    logo = esgiReadTGAFile("../resources/logo-esgi.tga");
	if (logo == NULL) {
		return false;
	}
    //glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
    
    glGenTextures(1, &sprite.m_TextureId);
    glBindTexture(GL_TEXTURE_2D, sprite.m_TextureId);
    glTexImage2D(GL_TEXTURE_2D, 0, logo->internalFormat, logo->width, logo->height
                 , 0, logo->format, logo->datatype, logo->texels);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
    
    // la texture restera constamment en vram, on peut la supprimer entierement
    delete[] logo->texels;
    delete logo;
    
    sprite.m_Position = vec2(WINDOW_WIDTH/2, WINDOW_HEIGHT/2);
	sprite.m_Dimension = vec2(256.f, 256.f);
	sprite.m_RotationSpeed = 180.f;
	sprite.m_Orientation = 0.f;
	sprite.m_OrientationX = 0.f;
	sprite.m_Color.set(1.f, 0.5f, 0.5f, 1.f);

	return true;
}