 }@@
 
 @@{
+(RTCBufferType)RTC_INDEX_BUFFER
+=>
 RTC_INDEX_BUFFER
+}@@
+
+@@{
+RTC_INDEX_BUFFER
 =>
 RTC_BUFFER(RTC_BUFFER_TYPE_INDEX,0)
 }@@

}@@

@@{
RTC_VERTEX_BUFFER
=>
RTC_BUFFER(RTC_BUFFER_TYPE_VERTEX,0)
}@@

@@{

@@{
rtcMapBuffer(EXPR geom,EXPR bufty,EXPR slot,EXPR format)
=>
rtcSetNewGeometryBuffer(geom,bufty,slot,format,EMBREE_FIXME_COULD_NOT_INFER_SIZE)
}@@
@@{
rtcSetNewGeometryBuffer(EXPR geom,RTC_BUFFER_TYPE_INDEX,EXPR slot, EXPR format,EMBREE_FIXME_COULD_NOT_INFER_SIZE)
=>
rtcSetNewGeometryBuffer(geom,RTC_BUFFER_TYPE_INDEX,slot,RTC_FORMAT_UINT4,4*sizeof(uniform int),numPrimitives)
}@@
@@{
rtcSetSharedGeometryBuffer(EXPR geom,RTC_BUFFER_TYPE_INDEX,EXPR slot, EXPR format,EXPR ptr,EXPR offset,EXPR stride,EMBREE_FIXME_COULD_NOT_INFER_SIZE)
=>
rtcSetSharedGeometryBuffer(geom,RTC_BUFFER_TYPE_INDEX,slot,RTC_FORMAT_UINT4,ptr,offset,stride,numPrimitives)
}@@
@@{
rtcSetNewGeometryBuffer(EXPR geom,RTC_BUFFER_TYPE_VERTEX,EXPR slot, EXPR format,EMBREE_FIXME_COULD_NOT_INFER_SIZE)
=>
rtcSetNewGeometryBuffer(geom,RTC_BUFFER_TYPE_VERTEX,slot,RTC_FORMAT_FLOAT3,4*sizeof(uniform float),numVertices)
}@@
@@{
rtcSetSharedGeometryBuffer(EXPR geom,RTC_BUFFER_TYPE_VERTEX,EXPR slot, EXPR format,EXPR ptr,EXPR offset,EXPR stride,EMBREE_FIXME_COULD_NOT_INFER_SIZE)
=>
rtcSetSharedGeometryBuffer(geom,RTC_BUFFER_TYPE_VERTEX,slot,RTC_FORMAT_FLOAT3,ptr,offset,stride,numVertices)
}@@
@@{
rtcSetSharedGeometryBuffer(EXPR geom,RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE,EXPR slot, EXPR format,EXPR ptr,EXPR offset,EXPR stride,EMBREE_FIXME_COULD_NOT_INFER_SIZE)
=>
rtcSetSharedGeometryBuffer(geom,RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE,slot,format,ptr,offset,stride,numVertices)
}@@
