public class JAWTFunctions
extends java.lang.Object
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.
For each platform, there is a native drawing surface structure. This platform-specific structure can be found in jawt_md.h. See
JAWTX11DrawingSurfaceInfo for the Linux platform, JAWTWin32DrawingSurfaceInfo for the Windows platform and MACOSX_USE_CALAYER for the OS X
platform.
| Modifier and Type | Class and Description |
|---|---|
static class |
JAWTFunctions.Functions
Contains the function pointers loaded from the jawt
SharedLibrary. |
| Modifier and Type | Field and Description |
|---|---|
static int |
JAWT_LOCK_BOUNDS_CHANGED
Bitmask values returned by
Lock(). |
static int |
JAWT_LOCK_CLIP_CHANGED
Bitmask values returned by
Lock(). |
static int |
JAWT_LOCK_ERROR
Bitmask values returned by
Lock(). |
static int |
JAWT_LOCK_SURFACE_CHANGED
Bitmask values returned by
Lock(). |
static int |
JAWT_MACOSX_USE_CALAYER
|
static int |
JAWT_VERSION_1_3
JAWT versions.
|
static int |
JAWT_VERSION_1_4
JAWT versions.
|
static int |
JAWT_VERSION_1_7
JAWT versions.
|
static int |
JAWT_VERSION_9
JAWT versions.
|
| Modifier and Type | Method and Description |
|---|---|
static org.lwjgl.system.SharedLibrary |
getLibrary()
Returns the jawt
SharedLibrary. |
static java.awt.Frame |
JAWT_CreateEmbeddedFrame(long platformInfo,
long __functionAddress)
Creates a
Frame placed in a native container. |
static void |
JAWT_DrawingSurface_FreeDrawingSurfaceInfo(JAWTDrawingSurfaceInfo dsi,
long __functionAddress)
Frees the drawing surface info.
|
static JAWTDrawingSurfaceInfo |
JAWT_DrawingSurface_GetDrawingSurfaceInfo(JAWTDrawingSurface ds,
long __functionAddress)
Returns the drawing surface info.
|
static int |
JAWT_DrawingSurface_Lock(JAWTDrawingSurface ds,
long __functionAddress)
Locks the surface of the target component for native rendering.
|
static void |
JAWT_DrawingSurface_Unlock(JAWTDrawingSurface ds,
long __functionAddress)
Unlocks the drawing surface of the target component for native rendering.
|
static void |
JAWT_FreeDrawingSurface(JAWTDrawingSurface ds,
long __functionAddress)
Frees the drawing surface allocated in
GetDrawingSurface. |
static boolean |
JAWT_GetAWT(JAWT awt)
Returns the AWT native structure.
|
static java.awt.Component |
JAWT_GetComponent(long platformInfo,
long __functionAddress)
Returns a reference to a
Component from a native platform handle. |
static JAWTDrawingSurface |
JAWT_GetDrawingSurface(java.lang.Object target,
long __functionAddress)
Returns a drawing surface from a target
jobject. |
static void |
JAWT_Lock(long __functionAddress)
Locks the entire AWT for synchronization purposes.
|
static void |
JAWT_SetBounds(java.awt.Frame embeddedFrame,
int x,
int y,
int w,
int h,
long __functionAddress)
Moves and resizes the embedded frame.
|
static void |
JAWT_SynthesizeWindowActivation(java.awt.Frame embeddedFrame,
boolean doActivate,
long __functionAddress)
Synthesizes a native message to activate or deactivate an
EmbeddedFrame window depending on the value of parameter doActivate. |
static void |
JAWT_Unlock(long __functionAddress)
Unlocks the entire AWT for synchronization purposes.
|
static java.awt.Frame |
nJAWT_CreateEmbeddedFrame(long platformInfo,
long __functionAddress)
Unsafe version of:
CreateEmbeddedFrame |
static void |
nJAWT_DrawingSurface_FreeDrawingSurfaceInfo(long dsi,
long __functionAddress)
Unsafe version of:
DrawingSurface_FreeDrawingSurfaceInfo |
static long |
nJAWT_DrawingSurface_GetDrawingSurfaceInfo(long ds,
long __functionAddress)
Unsafe version of:
DrawingSurface_GetDrawingSurfaceInfo |
static int |
nJAWT_DrawingSurface_Lock(long ds,
long __functionAddress)
Unsafe version of:
DrawingSurface_Lock |
static void |
nJAWT_DrawingSurface_Unlock(long ds,
long __functionAddress)
Unsafe version of:
DrawingSurface_Unlock |
static void |
nJAWT_FreeDrawingSurface(long ds,
long __functionAddress)
Unsafe version of:
FreeDrawingSurface |
static boolean |
nJAWT_GetAWT(long awt)
Unsafe version of:
GetAWT |
static boolean |
nJAWT_GetAWT(long awt,
long __functionAddress)
Unsafe version of:
GetAWT |
static java.awt.Component |
nJAWT_GetComponent(long platformInfo,
long __functionAddress)
Unsafe version of:
GetComponent |
static long |
nJAWT_GetDrawingSurface(java.lang.Object target,
long __functionAddress)
Unsafe version of:
GetDrawingSurface |
static void |
nJAWT_Lock(long __functionAddress)
Unsafe version of:
Lock |
static void |
nJAWT_SetBounds(java.awt.Frame embeddedFrame,
int x,
int y,
int w,
int h,
long __functionAddress)
Unsafe version of:
SetBounds |
static void |
nJAWT_SynthesizeWindowActivation(java.awt.Frame embeddedFrame,
boolean doActivate,
long __functionAddress)
Unsafe version of:
SynthesizeWindowActivation |
static void |
nJAWT_Unlock(long __functionAddress)
Unsafe version of:
Unlock |
public static final int JAWT_VERSION_1_3
public static final int JAWT_VERSION_1_4
public static final int JAWT_VERSION_1_7
public static final int JAWT_VERSION_9
public static final int JAWT_MACOSX_USE_CALAYER
GetAWT 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 and GetAWT
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 a NSObject that conforms
to the JAWT_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 a CALayer attached to it, this layer will be accessible via the windowLayer
property.
@protocol JAWT_SurfaceLayers
@property (readwrite, retain) CALayer *layer;
@property (readonly) CALayer *windowLayer;
@endpublic static final int JAWT_LOCK_ERROR
Lock().public static final int JAWT_LOCK_CLIP_CHANGED
Lock().public static final int JAWT_LOCK_BOUNDS_CHANGED
Lock().public static final int JAWT_LOCK_SURFACE_CHANGED
Lock().public static org.lwjgl.system.SharedLibrary getLibrary()
SharedLibrary.public static boolean nJAWT_GetAWT(long awt,
long __functionAddress)
GetAWTpublic static boolean nJAWT_GetAWT(long awt)
GetAWTpublic static boolean JAWT_GetAWT(JAWT awt)
awt - the target JAWT structJNI_FALSE if an error occurspublic static int nJAWT_DrawingSurface_Lock(long ds,
long __functionAddress)
DrawingSurface_Lockpublic static int JAWT_DrawingSurface_Lock(JAWTDrawingSurface ds, long __functionAddress)
DrawingSurface_Unlock.ds - the surface to lock__functionAddress - the function addressLOCK_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 changedpublic static long nJAWT_DrawingSurface_GetDrawingSurfaceInfo(long ds,
long __functionAddress)
DrawingSurface_GetDrawingSurfaceInfo@Nullable public static JAWTDrawingSurfaceInfo JAWT_DrawingSurface_GetDrawingSurfaceInfo(JAWTDrawingSurface ds, long __functionAddress)
The value returned may be cached, but the values may change if additional calls to DrawingSurface_Lock or DrawingSurface_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.
ds - the JAWTDrawingSurface to free__functionAddress - the function addressNULL if an error has occurred.public static void nJAWT_DrawingSurface_FreeDrawingSurfaceInfo(long dsi,
long __functionAddress)
DrawingSurface_FreeDrawingSurfaceInfopublic static void JAWT_DrawingSurface_FreeDrawingSurfaceInfo(JAWTDrawingSurfaceInfo dsi, long __functionAddress)
dsi - the JAWTDrawingSurfaceInfo to free__functionAddress - the function addresspublic static void nJAWT_DrawingSurface_Unlock(long ds,
long __functionAddress)
DrawingSurface_Unlockpublic static void JAWT_DrawingSurface_Unlock(JAWTDrawingSurface ds, long __functionAddress)
ds - the surface to unlock__functionAddress - the function addresspublic static long nJAWT_GetDrawingSurface(java.lang.Object target,
long __functionAddress)
GetDrawingSurface@Nullable public static JAWTDrawingSurface JAWT_GetDrawingSurface(java.lang.Object target, long __functionAddress)
jobject. This value may be cached.
FreeDrawingSurface must be called when finished with the returned JAWTDrawingSurface.
target - must be a Component (should be a Canvas or Window for native rendering)__functionAddress - the function addressNULL if an error has occurredpublic static void nJAWT_FreeDrawingSurface(long ds,
long __functionAddress)
FreeDrawingSurfacepublic static void JAWT_FreeDrawingSurface(JAWTDrawingSurface ds, long __functionAddress)
GetDrawingSurface.ds - the JAWTDrawingSurface to free__functionAddress - the function addresspublic static void nJAWT_Lock(long __functionAddress)
Lockpublic static void JAWT_Lock(long __functionAddress)
__functionAddress - the function addresspublic static void nJAWT_Unlock(long __functionAddress)
Unlockpublic static void JAWT_Unlock(long __functionAddress)
__functionAddress - the function address@Nullable
public static java.awt.Component nJAWT_GetComponent(long platformInfo,
long __functionAddress)
GetComponent@Nullable
public static java.awt.Component JAWT_GetComponent(long platformInfo,
long __functionAddress)
Component from a native platform handle. On Windows, this corresponds to an HWND; on Solaris and Linux, this is a
Drawable. 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 a NULL reference if no component could be found with matching platform
information.platformInfo - the native platform handle__functionAddress - the function address@Nullable
public static java.awt.Frame nJAWT_CreateEmbeddedFrame(long platformInfo,
long __functionAddress)
CreateEmbeddedFrame@Nullable
public static java.awt.Frame JAWT_CreateEmbeddedFrame(long platformInfo,
long __functionAddress)
Frame placed in a native container. Container is referenced by the native platform handle. For example on Windows this corresponds to an
HWND. 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 a NULL reference if no frame could be created with matching platform
information.platformInfo - the native platform handle__functionAddress - the function addresspublic static void nJAWT_SetBounds(java.awt.Frame embeddedFrame,
int x,
int y,
int w,
int h,
long __functionAddress)
SetBoundspublic static void JAWT_SetBounds(java.awt.Frame embeddedFrame,
int x,
int y,
int w,
int h,
long __functionAddress)
The embedded frame should be created by CreateEmbeddedFrame method, or this function will not have any effect.
Component.setLocation(int, int) and Component.setBounds(int, int, int, int) for EmbeddedFrame really don't move it within the native parent. These methods always locate
the embedded frame at (0, 0) for backward compatibility. To allow moving embedded frames this method was introduced, and it works just the same way as
setLocation() and setBounds() for usual, non-embedded components.
Using usual get/setLocation() and get/setBounds() together with this new method is not recommended.
embeddedFrame - the embedded framex - the x coordinatey - the y coordinatew - the widthh - the height__functionAddress - the function addresspublic static void nJAWT_SynthesizeWindowActivation(java.awt.Frame embeddedFrame,
boolean doActivate,
long __functionAddress)
SynthesizeWindowActivationpublic static void JAWT_SynthesizeWindowActivation(java.awt.Frame embeddedFrame,
boolean doActivate,
long __functionAddress)
EmbeddedFrame window depending on the value of parameter doActivate.
The embedded frame should be created by CreateEmbeddedFrame method, or this function will not have any effect.
embeddedFrame - the embedded framedoActivate - if true activates the window; otherwise, deactivates the window__functionAddress - the function addressCopyright LWJGL. All Rights Reserved. License terms.