Class 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. See JAWTX11DrawingSurfaceInfo for the Linux platform, JAWTWin32DrawingSurfaceInfo for the Windows platform and MACOSX_USE_CALAYER for the OS X platform.

    • 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 calling 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;
        @end
        See Also:
        Constant Field Values
      • JAWT_LOCK_ERROR

        public static final int JAWT_LOCK_ERROR
        Bitmask values returned by Lock().
        See Also:
        Constant Field Values
      • JAWT_LOCK_CLIP_CHANGED

        public static final int JAWT_LOCK_CLIP_CHANGED
        Bitmask values returned by Lock().
        See Also:
        Constant Field Values
      • JAWT_LOCK_BOUNDS_CHANGED

        public static final int JAWT_LOCK_BOUNDS_CHANGED
        Bitmask values returned by Lock().
        See Also:
        Constant Field Values
      • JAWT_LOCK_SURFACE_CHANGED

        public static final int JAWT_LOCK_SURFACE_CHANGED
        Bitmask values returned by Lock().
        See Also:
        Constant Field Values
    • Method Detail

      • JAWT_GetAWT

        public static boolean JAWT_GetAWT(JAWT awt)
        Returns the AWT native structure.
        Parameters:
        awt - the target JAWT 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 with DrawingSurface_Unlock.
        Parameters:
        __functionAddress - the function address
        ds - the surface to lock
        Returns:
        a bitmask with one or more of the following values:
      • JAWT_DrawingSurface_FreeDrawingSurfaceInfo

        public static void JAWT_DrawingSurface_FreeDrawingSurfaceInfo(long __functionAddress,
                                                                      JAWTDrawingSurfaceInfo dsi)
        Frees the drawing surface info.
        Parameters:
        __functionAddress - the function address
        dsi - the JAWTDrawingSurfaceInfo 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 address
        ds - the surface to unlock
      • JAWT_GetDrawingSurface

        public static JAWTDrawingSurface JAWT_GetDrawingSurface(long __functionAddress,
                                                                java.lang.Object target)
        Returns a drawing surface from a target jobject. This value may be cached.

        FreeDrawingSurface must be called when finished with the returned JAWTDrawingSurface.

        Parameters:
        __functionAddress - the function address
        target - must be a Component (should be a Canvas or Window 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 in GetDrawingSurface.
        Parameters:
        __functionAddress - the function address
        ds - the JAWTDrawingSurface 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 a java.awt.Component 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.
        Parameters:
        __functionAddress - the function address
        platformInfo - the native platform handle