# This .cfg file provides common options used among all Cg glue code
# generated for Jogl on all platforms.
Package net.java.games.cg
ImplPackage net.java.games.cg.impl
JavaClass CgGL
Style AllStatic
JavaOutputDir ../build/gensrc/classes
NativeOutputDir ../build/gensrc/native/jogl_cg
HierarchicalNativeOutput false

#
# Map const char* return values to Java strings for these functions
#
ReturnsString cgGetErrorString
ReturnsString cgGetLastListing
ReturnsString cgGetParameterName
ReturnsString cgGetParameterSemantic
ReturnsString cgGetProfileString
ReturnsString cgGetProgramString
ReturnsString cgGetResourceString
ReturnsString cgGetTypeString

ArgumentIsString cgCreateProgram 2 4 5
ArgumentIsString cgCreateProgramFromFile 2 4 5
ArgumentIsString cgGetNamedParameter 1
ArgumentIsString cgGetType 0
ArgumentIsString cgGetResource 0
ArgumentIsString cgGetProfile 0

# Opaque definitions
Opaque boolean CGbool

#
# FIXME!!!!  Ignore these functions for now because we can't
# automatically handle C callbacks
#
Ignore cgGetErrorCallback
Ignore cgSetErrorCallback

#
# FIXME!!!!  Ignore these functions for now because bugs in the
# emitter code can't handle them
#
Ignore cgGetParameterValues

#
# Need to import New IO for Buffer classes
#
Import java.nio.*

# Raise CgException instead of RuntimeException in glue code
RuntimeExceptionType CgException

#
# Make sure the right definitions and include files are added to the
# generated C code
#

CustomCCode #include <stdlib.h>
CustomCCode #include <Cg/cgGL.h>

ArgumentIsString fooString 0
ArgumentIsString fooString1 0
NioOnly fooFloat2
 
CustomJavaCode CgGL static { System.loadLibrary("jogl_cg");}