Class JAWTFunctions
- java.lang.Object
-
- org.lwjgl.system.jawt.JAWTFunctions
-
public class JAWTFunctions extends java.lang.Object
Bindings to the AWT native interface (jawt.h).The AWT native interface allows a native C or C++ application a means by which to access native structures in AWT. This is to facilitate moving legacy C and C++ applications to Java and to target the needs of the community who, at present, wish to do their own native rendering to canvases for performance reasons. Standard extensions such as Java3D also require a means to access the underlying native data structures of AWT.
AWT Native Drawing Surface (JAWT_DrawingSurface)
For each platform, there is a native drawing surface structure. This platform-specific structure can be found in
jawt_md.h
. SeeJAWTX11DrawingSurfaceInfo
for the Linux platform,JAWTWin32DrawingSurfaceInfo
for the Windows platform andMACOSX_USE_CALAYER
for the OS X platform.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static class
JAWTFunctions.Functions
Contains the function pointers loaded from the jawtSharedLibrary
.
-
Field Summary
Fields Modifier and Type Field and Description static int
JAWT_LOCK_BOUNDS_CHANGED
JAWT_LOCK_CLIP_CHANGED
JAWT_LOCK_ERROR
JAWT_LOCK_SURFACE_CHANGEDBitmask values returned byLock()
.static int
JAWT_MACOSX_USE_CALAYER
static int
JAWT_VERSION_1_3
JAWT_VERSION_1_4
JAWT_VERSION_1_7JAWT versions.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static SharedLibrary
getLibrary()
Returns the jawtSharedLibrary
.static void
JAWT_DrawingSurface_FreeDrawingSurfaceInfo(long __functionAddress, JAWTDrawingSurfaceInfo dsi)
Frees the drawing surface info.static JAWTDrawingSurfaceInfo
JAWT_DrawingSurface_GetDrawingSurfaceInfo(long __functionAddress, JAWTDrawingSurface ds)
Returns the drawing surface info.static int
JAWT_DrawingSurface_Lock(long __functionAddress, JAWTDrawingSurface ds)
Locks the surface of the target component for native rendering.static void
JAWT_DrawingSurface_Unlock(long __functionAddress, JAWTDrawingSurface ds)
Unlocks the drawing surface of the target component for native rendering.static void
JAWT_FreeDrawingSurface(long __functionAddress, JAWTDrawingSurface ds)
Frees the drawing surface allocated inGetDrawingSurface
.static boolean
JAWT_GetAWT(JAWT awt)
Returns the AWT native structure.static java.lang.Object
JAWT_GetComponent(long __functionAddress, java.nio.ByteBuffer platformInfo)
Returns a reference to ajava.awt.Component Component
from a native platform handle.static JAWTDrawingSurface
JAWT_GetDrawingSurface(long __functionAddress, java.lang.Object target)
Returns a drawing surface from a targetjobject
.static void
JAWT_Lock(long __functionAddress)
Locks the entire AWT for synchronization purposes.static void
JAWT_Unlock(long __functionAddress)
Unlocks the entire AWT for synchronization purposes.
-
-
-
Field Detail
-
JAWT_VERSION_1_3
public static final int JAWT_VERSION_1_3
JAWT versions.- See Also:
- Constant Field Values
-
JAWT_VERSION_1_4
public static final int JAWT_VERSION_1_4
JAWT versions.- See Also:
- Constant Field Values
-
JAWT_VERSION_1_7
public static final int JAWT_VERSION_1_7
JAWT versions.- See Also:
- Constant Field Values
-
JAWT_MACOSX_USE_CALAYER
public static final int JAWT_MACOSX_USE_CALAYER
When callingGetAWT
with a JAWT version less than 1.7, you must pass this flag or you will not be able to get a valid drawing surface andGetAWT
will return false. This is to maintain compatibility with applications that used the interface with Java 6 which had multiple rendering models. This flag is not necessary when JAWT version 1.7 or greater is used as this is the only supported rendering mode.When the native Cocoa toolkit is in use, the pointer stored in
JAWT_DrawingSurfaceInfo->platformInfo
points to aNSObject
that conforms to theJAWT_SurfaceLayers
protocol. Setting the layer property of this object will cause the specified layer to be overlaid on the Component's rectangle. If the window the Component belongs to has aCALayer
attached to it, this layer will be accessible via thewindowLayer
property.@protocol JAWT_SurfaceLayers @property (readwrite, retain) CALayer *layer; @property (readonly) CALayer *windowLayer; @end
- See Also:
- Constant Field Values
-
JAWT_LOCK_ERROR
public static final int JAWT_LOCK_ERROR
Bitmask values returned byLock()
.- See Also:
- Constant Field Values
-
JAWT_LOCK_CLIP_CHANGED
public static final int JAWT_LOCK_CLIP_CHANGED
Bitmask values returned byLock()
.- See Also:
- Constant Field Values
-
JAWT_LOCK_BOUNDS_CHANGED
public static final int JAWT_LOCK_BOUNDS_CHANGED
Bitmask values returned byLock()
.- See Also:
- Constant Field Values
-
JAWT_LOCK_SURFACE_CHANGED
public static final int JAWT_LOCK_SURFACE_CHANGED
Bitmask values returned byLock()
.- See Also:
- Constant Field Values
-
-
Method Detail
-
getLibrary
public static SharedLibrary getLibrary()
Returns the jawtSharedLibrary
.
-
JAWT_GetAWT
public static boolean JAWT_GetAWT(JAWT awt)
Returns the AWT native structure.- Parameters:
awt
- the targetJAWT
struct- Returns:
JNI_FALSE
if an error occurs
-
JAWT_DrawingSurface_Lock
public static int JAWT_DrawingSurface_Lock(long __functionAddress, JAWTDrawingSurface ds)
Locks the surface of the target component for native rendering. When finished drawing, the surface must be unlocked withDrawingSurface_Unlock
.- Parameters:
__functionAddress
- the function addressds
- the surface to lock- Returns:
- a bitmask with one or more of the following values:
LOCK_ERROR
- When an error has occurred and the surface could not be locked.LOCK_CLIP_CHANGED
- When the clip region has changed.LOCK_BOUNDS_CHANGED
- When the bounds of the surface have changed.LOCK_SURFACE_CHANGED
- When the surface itself has changed
-
JAWT_DrawingSurface_GetDrawingSurfaceInfo
public static JAWTDrawingSurfaceInfo JAWT_DrawingSurface_GetDrawingSurfaceInfo(long __functionAddress, JAWTDrawingSurface ds)
Returns the drawing surface info.The value returned may be cached, but the values may change if additional calls to
DrawingSurface_Lock
orDrawingSurface_Unlock
are made.DrawingSurface_Lock
must be called before this can return a valid value.When finished with the returned value,
DrawingSurface_FreeDrawingSurfaceInfo
must be called.- Parameters:
__functionAddress
- the function addressds
- theJAWTDrawingSurface
to free- Returns:
NULL
if an error has occurred.
-
JAWT_DrawingSurface_FreeDrawingSurfaceInfo
public static void JAWT_DrawingSurface_FreeDrawingSurfaceInfo(long __functionAddress, JAWTDrawingSurfaceInfo dsi)
Frees the drawing surface info.- Parameters:
__functionAddress
- the function addressdsi
- theJAWTDrawingSurfaceInfo
to free
-
JAWT_DrawingSurface_Unlock
public static void JAWT_DrawingSurface_Unlock(long __functionAddress, JAWTDrawingSurface ds)
Unlocks the drawing surface of the target component for native rendering.- Parameters:
__functionAddress
- the function addressds
- the surface to unlock
-
JAWT_GetDrawingSurface
public static JAWTDrawingSurface JAWT_GetDrawingSurface(long __functionAddress, java.lang.Object target)
Returns a drawing surface from a targetjobject
. This value may be cached.FreeDrawingSurface
must be called when finished with the returnedJAWTDrawingSurface
.- Parameters:
__functionAddress
- the function addresstarget
- must be aComponent
(should be aCanvas
orWindow
for native rendering)- Returns:
NULL
if an error has occurred
-
JAWT_FreeDrawingSurface
public static void JAWT_FreeDrawingSurface(long __functionAddress, JAWTDrawingSurface ds)
Frees the drawing surface allocated inGetDrawingSurface
.- Parameters:
__functionAddress
- the function addressds
- theJAWTDrawingSurface
to free
-
JAWT_Lock
public static void JAWT_Lock(long __functionAddress)
Locks the entire AWT for synchronization purposes.- Parameters:
__functionAddress
- the function address
-
JAWT_Unlock
public static void JAWT_Unlock(long __functionAddress)
Unlocks the entire AWT for synchronization purposes.- Parameters:
__functionAddress
- the function address
-
JAWT_GetComponent
public static java.lang.Object JAWT_GetComponent(long __functionAddress, java.nio.ByteBuffer platformInfo)
Returns a reference to ajava.awt.Component Component
from a native platform handle. On Windows, this corresponds to anHWND
; on Solaris and Linux, this is aDrawable
. For other platforms, see the appropriate machine-dependent header file for a description. The reference returned by this function is a local reference that is only valid in this environment. This function returns aNULL
reference if no component could be found with matching platform information.- Parameters:
__functionAddress
- the function addressplatformInfo
- the native platform handle
-
-