text: #include <jni.h>
  #include <stdlib.h>
  #include <string.h>
  #include <vulkan/vulkan.h>
  
  jlong jniPointerToLong(const void* p);
  void* jniLongToPointer(jlong l);
  jlong jniFunctionPointerToLong(PFN_vkVoidFunction p);
  PFN_vkVoidFunction jniLongToFunctionPointer(jlong l);
  void jniThrowException(JNIEnv* env, const char* message);
  
  jlong Java_cz_mg_vulkan_VkPhysicalDeviceFeatures2_sizeof(JNIEnv* env, jclass jc)
  {
      (void)env;
      (void)jc;
      return sizeof(VkPhysicalDeviceFeatures2);
  }
  
  void Java_cz_mg_vulkan_VkPhysicalDeviceFeatures2_setNative(JNIEnv* env, jclass jc, jlong o1, jlong o2)
  {
      (void)env;
      (void)jc;
      memcpy(jniLongToPointer(o1), jniLongToPointer(o2), sizeof(VkPhysicalDeviceFeatures2));
  }
  
  jlong Java_cz_mg_vulkan_VkPhysicalDeviceFeatures2_getSTypeNative(JNIEnv* env, jclass jc, jlong address)
  {
      (void)env;
      (void)jc;
      VkPhysicalDeviceFeatures2* o = (VkPhysicalDeviceFeatures2*)jniLongToPointer(address);
      return jniPointerToLong(&o->sType);
  }
  
  void Java_cz_mg_vulkan_VkPhysicalDeviceFeatures2_setSTypeNative(JNIEnv* env, jclass jc, jlong address, jlong valueAddress)
  {
      (void)env;
      (void)jc;
      VkPhysicalDeviceFeatures2* o = (VkPhysicalDeviceFeatures2*)jniLongToPointer(address);
      void* valuePointer = jniLongToPointer(valueAddress);
      memcpy(&o->sType, valuePointer, sizeof(o->sType));
  }
  
  jlong Java_cz_mg_vulkan_VkPhysicalDeviceFeatures2_getPNextNative(JNIEnv* env, jclass jc, jlong address)
  {
      (void)env;
      (void)jc;
      VkPhysicalDeviceFeatures2* o = (VkPhysicalDeviceFeatures2*)jniLongToPointer(address);
      return jniPointerToLong(o->pNext);
  }
  
  void Java_cz_mg_vulkan_VkPhysicalDeviceFeatures2_setPNextNative(JNIEnv* env, jclass jc, jlong address, jlong valueAddress)
  {
      (void)env;
      (void)jc;
      VkPhysicalDeviceFeatures2* o = (VkPhysicalDeviceFeatures2*)jniLongToPointer(address);
      void* valuePointer = jniLongToPointer(valueAddress);
      memcpy(&o->pNext, &valuePointer, sizeof(o->pNext));
  }
  
  jlong Java_cz_mg_vulkan_VkPhysicalDeviceFeatures2_getFeaturesNative(JNIEnv* env, jclass jc, jlong address)
  {
      (void)env;
      (void)jc;
      VkPhysicalDeviceFeatures2* o = (VkPhysicalDeviceFeatures2*)jniLongToPointer(address);
      return jniPointerToLong(&o->features);
  }
  
  void Java_cz_mg_vulkan_VkPhysicalDeviceFeatures2_setFeaturesNative(JNIEnv* env, jclass jc, jlong address, jlong valueAddress)
  {
      (void)env;
      (void)jc;
      VkPhysicalDeviceFeatures2* o = (VkPhysicalDeviceFeatures2*)jniLongToPointer(address);
      void* valuePointer = jniLongToPointer(valueAddress);
      memcpy(&o->features, valuePointer, sizeof(o->features));
  }
  
  
  