¿Cómo puedo crear un puntero a datos existentes usando el LuaJIT FFI?
Sé que hay ejemplos de creación de punteros utilizando el LuaJIT FFI, pero la mayoría de estos no apuntan a datos existentes. Un ejemplo de esto está aquí:¿Cómo pasar un puntero a LuaJIT ffi para usarlo como argumento?
Una cosa que no he podido hacer con éxito es crear un puntero a un valor existente. Para tener un tipo de puntero hasta donde yo sé, debo saber que quiero tener un puntero apuntando a él en algún momento en el futuro, como en:
local vao = ffi.new("GLuint[1]")
gl.GenVertexArrays(1, vao)
gl.BindVertexArray(vao[0])
Aquí, sé que glGenVertexArrays necesita un puntero paravao
, así que lo especifico como un GLuint [1]. En C, estaría haciendo algo como lo siguiente:
GLuint vao;
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
Aquí, no tengo idea de que necesitaré un puntero paravao
, así que puedo especificarlo normalmente.
En otras palabras, ¿hay alguna manera de obtener la dirección o crear un puntero a un valor existente? ¿Tengo que prever qué haré con el valor antes de crearlo?
¡Gracias!