Author Topic: Transmission de données entre Python et Lua  (Read 5128 times)

0 Members and 1 Guest are viewing this topic.

JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1724
    • View Profile
    • Geeks3D.com
Transmission de données entre Python et Lua
« on: May 09, 2014, 03:53:29 PM »
GLSL Hacker peut etre scripté en Lua ou en Python. En fait, une demo peut même être scripté avec les deux languages en meme temps. Le seul problème c'est que ces deux languages sont isolés dans leur propre environnement (leur machine virtuelle) et n'ont aucun moyen pour communiquer entre eux (ce qui est normal). Mais le cas particulier de GLSL Hacker, on peut  très bien imaginer une demo qui va interroger le web en Python et faire le rendu en Lua. Il est donc important de pouvoir passer des valeurs entre les deux languages. Une solution existe dans GLSL Hacker au moyen des variables partagées  (les shared variables).

Voila comment creer une variable lua_counter en Lua:

script INIT
Code: [Select]
lua_counter = 0
gh_utils.shared_variable_create("lua_counter")
gh_utils.shared_variable_set_value_4i("lua_counter", 0, 0, 0, 0)

Dans le script FRAME, on incremente la variable:
Code: [Select]
lua_counter = lua_counter+1
gh_utils.shared_variable_set_value_4i("lua_counter", lua_counter, 0, 0, 0)


Dans le script Python, on peut lire la variable partagée:
Code: [Select]
x, y, z, w = gh_utils.shared_variable_get_value_4i("lua_counter")

Une demo est dispo dans le code sample pack: host_api/Lua_Python_SharedVar/

La partie superieure de la fenetre est gerée par le Lua tandis que Python gère le bas: