Я использую стороннюю DLL для загрузки некоторых необработанных данных изображения, и я хочу использовать эти необработанные данные изображения в качестве текстуры в openGL. Однако функция c возвращает void *, и мне нужно каким-то образом преобразовать это, чтобы она работала в качестве параметра «пикселей» в glTexImage2D. Прямо сейчас мой код выглядит примерно так:
data = c_void_p(vdll.vlImageGetData())
glTexImage2D(GL_TEXTURE_2D, 1, GL_RGB8, 1024, 1024, 0, GL_RGB, GL_UNSIGNED_BYTE, data )
Однако я получил сообщение об ошибке TypeError, в которой говорится, что данные «не могут быть преобразованы в указатель». Кто-нибудь знает, как заставить это работать?
Edit: понял это. В основном то, что я делаю, это:
data = create_string_buffer( BUFFER_SIZE )
data = dll.vlImageGetData()
glTexImage2D(GL_TEXTURE_2D, 1, GL_RGB8, 1024, 1024, 0, GL_RGB, GL_UNSIGNED_BYTE, data )