# -*- coding: latin-1 -*-
#!/usr/bin/env python
from gimpfu import *
from gimpenums import *

import sys
import os

def agrandirOpenGl( inImage ):
	"""Agrandit l'image pour que ses côtés soient égal à 2^c1 et 2^c2 pixels"""
	gimp.pdb.gimp_message_set_handler( MESSAGE_BOX )#GIMP_MESSAGE_BOX (0), GIMP_CONSOLE (1), GIMP_ERROR_CONSOLE (2) }
	
	
	# Sauvegarde des couleurs
	save_fg = gimp.get_foreground()
	save_bg = gimp.get_background()
	
	# Récupération de la largeur et hauteur actuelle
	nLargeurSov = inImage.width
	nHauteurSov = inImage.height
	
	# Calcul des nouvelles largeur et hauteur
	nLargeur = 1
	while ( nLargeur < nLargeurSov ):
		nLargeur *= 2
	
	nHauteur = 1
	while ( nHauteur < nHauteurSov ):
		nHauteur *= 2
	
	# Redimensionnement de l'image initiale à un multiple de la taille de la texture
	if nLargeur > nLargeurSov or nHauteur > nHauteurSov:
		gimp.set_background( 50.0, 50.0, 50.0 )# gris
		gimp.pdb.gimp_image_resize ( inImage, nLargeur, nHauteur, 0, 0 )  
		for layerImg in inImage.layers:
			gimp.pdb.gimp_layer_resize_to_image_size( layerImg ) # redimensionnement des calques
		strM = "Fin du traitement, l'image a ete redimensionnee"
	else:
		strM = "Fin du traitement, l'image n'a pas ete redimensionnee"
	
	# Message final (sans d'accents !)
	gimp.pdb.gimp_message( strM )
	
	# Restauration des couleurs initiales
	gimp.set_foreground( save_fg )
	gimp.set_background( save_bg )
	


#-----------------------------------------
# Version 1.0 : 20/10/2008
#             : première version
#
#-----------------------------------------
register(
	"python_fu_creer_texture",# Nom de la fonction
	"Redimensionne l'image a une taille puissance de deux",# pas d'accents ici
	"Redimensionne l'image a une taille puissance de deux",# pas d'accents ici
	"Vincent Vansuyt",
	"LGPL License",
	"2008",
	"<Image>/Python-Fu/Creer texture OpenGl",# pas d'accents ici
	"",
	[
	(PF_IMAGE, "inImage", "Input image", None),
	],
	[],
	agrandirOpenGl,
	menu="<Image>/Python-Fu/Créer texture OpenGl...",
	)

main() 
