Como posso criar um ponteiro para dados existentes usando o FFI LuaJIT?

Eu sei que existem exemplos de criação de ponteiros usando o FFI LuaJIT, mas a maioria deles não está apontada para dados existentes. Um exemplo disso está aqui:Como passar um ponteiro para LuaJIT ffi para ser usado como argumento de saída?

Uma coisa que não consegui fazer com sucesso é criar um ponteiro para um valor existente. Para ter um tipo de ponteiro, tanto quanto eu sei, eu tenho que saber que eu quero ter um ponteiro apontar para ele em algum momento no futuro, como em:

local vao = ffi.new("GLuint[1]")
gl.GenVertexArrays(1, vao)
gl.BindVertexArray(vao[0])

Aqui, eu sei que o glGenVertexArrays precisa de um ponteiro paravao, então eu o especifico como um GLuint [1]. Em C, eu faria algo como o seguinte:

GLuint vao;
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);

Aqui, eu não tenho idéia de que vou precisar de um ponteiro paravao, para que eu possa especificá-lo normalmente.

Em outras palavras, existe uma maneira de obter o endereço ou criar um ponteiro para um valor existente? Preciso prever o que farei com o valor antes de criá-lo?

Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion