Transmission de données entre Python et Lua

Started by JeGX, May 09, 2014, 03:53:29 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JeGX

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

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:

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:

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: