#importation des modules
import Blender
from Blender.Draw import *
from Blender.BGL import *
 

#cre'ation de l'objet bouton qui servira de support au menu de'roulant
menu= Create(2)
 

#de'finition de la fonction draw dans laquel sont effectue'es les ope'rations de dessins et d'affichage
def draw():

    #globalisation de la variable
    global menu
     

    #choix de la couleur du fond de la fene^tre
    glClearColor(1.0,1.0,0.5, 0.0)
    #mise en couleur du fond de la fene^tre
    glClear(GL_COLOR_BUFFER_BIT)

    #re'serve un espace me'moire pour afficher un graphisme
    bitmap= Buffer(GL_BYTE, (64, 64, 4))
    #remplissage du graphisme avec des couleurs
    for y in range(0, 64):
       for x in range(0, 64):
    
           #test conditionnel sur la valeur du bouton de menu
           if (menu.val==1):
              bitmap[y][x][0]= x*4
              bitmap[y][x][1]= y*4
              bitmap[y][x][2]= (x+y)/4

           elif (menu.val==2): 
              bitmap[y][x][0]= x*4
              bitmap[y][x][1]= y*4
              bitmap[y][x][2]= (128-x+y)/4

           elif (menu.val==3): 
              bitmap[y][x][0]= (64-x)*4
              bitmap[y][x][1]= (64-y)*4
              bitmap[y][x][2]= (x+y)/4

           elif (menu.val==4): 
              bitmap[y][x][0]= x*2
              bitmap[y][x][1]= (64-y)*4
              bitmap[y][x][2]= (x+y)/4
    
    #positionnement du curseur 2D
    glRasterPos2i(210, 200)
    
    #affichage du sprite
    glDrawPixels(64, 64, GL_RGBA, GL_UNSIGNED_BYTE, bitmap)
    
    #definition du menu 
    menu=Menu("Menu%t| Option 1%x1| Option 2%x2| Option 3%x3| Option 4%x4", 2, 170, 180, 100, 18, menu.val)
    
    #bouton de sortie
    Button("Exit", 1, 100, 10, 80, 19)
     

def event(evt, val): 

     if (evt== QKEY and not val): Exit()


def bevent(evt):

     if   (evt== 1): Exit()

     #c'est ici que se joue
     elif (evt== 2): Draw()

     elif (evt== 3):
      for ob in Blender.Object.GetSelected():

           ob.dRotX= rotation[0].val
           ob.dRotY= rotation[1].val
           ob.dRotZ= rotation[2].val

      Blender.Redraw()


Register(draw, event, bevent) 