LWJGL / lwjgl3

LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan, bgfx), audio (OpenAL, Opus), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR, OpenXR) applications.
https://www.lwjgl.org
BSD 3-Clause "New" or "Revised" License
4.76k stars 636 forks source link

feat(core) add MemoryUtil.memByteBuffer(Struct) #744

Closed httpdigest closed 2 years ago

httpdigest commented 2 years ago

What already works: View a Struct.Buffer as a ByteBuffer:

uploadBuffer(
  memByteBuffer(
    // VkAccelerationStructureInstanceKHR.Buffer
    VkAccelerationStructureInstanceKHR
      .calloc(1, stack)
      .accelerationStructureReference(blasDeviceAddress)
      .mask(~0)
      .flags(...)
      .transform(...)
  )
);

What this PR is adding: View a single Struct as a ByteBuffer:

uploadBuffer(
  memByteBuffer(
    // VkAccelerationStructureInstanceKHR
    VkAccelerationStructureInstanceKHR
      .calloc(stack)
      .accelerationStructureReference(blasDeviceAddress)
      .mask(~0)
      .flags(...)
      .transform(...)
  )
);