Nach Verwendung von glGetActiveUniform
Abstürze sowohl mit nVidia
und AMD
GPUs mit LWJGL 3.1.3:LWJGL glGetActiveUniform und glGetActiveAttrib stürzt
val strLen = glGetProgrami(program, GL_ACTIVE_UNIFORM_MAX_LENGTH)
val length = Array.ofDim[Int](1)
val size = Array.ofDim[Int](1)
val `type` = Array.ofDim[Int](1)
val name = Array.ofDim[Byte](strLen)
length(0) = 0
size(0) = 0
`type`(0) = 0
name(0) = 0
glGetActiveUniform(program, i, length, size, `type`, java.nio.ByteBuffer.wrap(name))
Etwas ausführlichere Version mit drei API-Aufrufe arbeitet gut zu mir:
val xName = glGetActiveUniformName(program, i)
val xSize = glGetActiveUniformsi(program, i, GL_UNIFORM_SIZE)
val xType = glGetActiveUniformsi(program, i, GL_UNIFORM_TYPE)
Vor kurzem traf ich das gleiche Problem mit glGetActiveAttrib
, für die ich keine Abhilfe API finden:
val strLen = glGetProgrami(program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH)
val length = Array.ofDim[Int](1)
val size = Array.ofDim[Int](1)
val `type` = Array.ofDim[Int](1)
val name = Array.ofDim[Byte](64)
glGetActiveAttrib(program, i, length, size, `type`, java.nio.ByteBuffer.wrap(name))
Ich habe keine Beispiele gefunden, wie diese API verwendet werden soll. Was mache ich falsch? Benötige ich vielleicht komplexere oder andere Puffermanipulationen? (Mein Quellcode ist Scala, ich hoffe, dass dies kein Problem für Java-Programmierer zu verstehen ist)