Package com.jogamp.oculusvr

# Specify output directories
HierarchicalNativeOutput false
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/oculusvr

# Raise OVRException instead of RuntimeException in glue code
RuntimeExceptionType OVRException

# We utilize OvrHmdContext as specified below as a 'typesafe' opaque instance,
# which is typedefed to ovrHmd - hence no type-unsafe opaque 'long' is required.
#   typedef struct ovrHmdStruct {
#   } OvrHmdContext;
#Opaque long ovrHmd

# Mappings for data types
Opaque boolean ovrBool

# Not native sized: CType['uintptr_t *', size [fixed false, lnx64 64], [array*1]]
Ignore ovrRenderAPIConfig.PlatformData
# Not native sized: CType['uintptr_t *', size [fixed false, lnx64 64], [array*1]]
Ignore ovrTexture.PlatformData

# FIXME: Add wrapper for native/java callbacks
Ignore ovrLogCallback
Ignore ovrInitParams.LogCallback

# We use the SDK in headless mode:
#    #define HEADLESS_APP 1
# implying: ovrHmdCap_ExtendDesktop
#
# SDK rendering disabled
Ignore ovr_InitializeRenderingShim
Ignore ovr_InitializeRenderingShimVersion
Ignore ovrHmd_ConfigureRendering
Ignore ovrHmd_AttachToWindow
Ignore ovrHmd_BeginFrame
Ignore ovrHmd_EndFrame
# misc
Ignore ovrHmd_RegisterPostDistortionCallback
# HSW = Health and Safety Warning
Ignore ovrHSWDisplayState
Ignore ovrHmd_GetHSWDisplayState
Ignore ovrHmd_DismissHSWDisplay

# These routines use or return strings
ReturnsString ovrHmd_GetLastError
ReturnsString ovrHmd_GetLatencyTestResult
ReturnsString ovrHmd_GetString

ReturnsString ovrHmdDesc.ProductName
ReturnsString ovrHmdDesc.Manufacturer
ReturnsString ovrHmdDesc.DisplayDeviceName
ReturnsString ovrHmdDesc.SerialNumber

ReturnedArrayLength ovrHmdDesc.Handle 1
ReturnedArrayLength ovrDistortionMesh.pVertexData getVertexCount()
ReturnedArrayLength ovrDistortionMesh.pIndexData getIndexCount()

ReturnValueCapacity ovrHmd_Create sizeof(ovrHmdDesc)
ReturnValueCapacity ovrHmd_CreateDebug sizeof(ovrHmdDesc)

JavaPrologue ovr_Initialize if( !isAvailable() ) { return false; }
JavaPrologue ovrHmd_Create if( !isAvailable() ) { return null; }
JavaPrologue ovrHmd_CreateDebug if( !isAvailable() ) { return null; }

ArgumentIsString ovrHmd_GetFloat 1
ArgumentIsString ovrHmd_SetFloat 1
ArgumentIsString ovrHmd_GetFloatArray 1
ArgumentIsString ovrHmd_SetFloatArray 1
ArgumentIsString ovrHmd_GetArraySize 1


