org.geotools.image.jai
Class Registry

Object
  extended by Registry

public final class Registry
extends Object

A set of static methods for managing JAI's operation registry.

Since:
2.2
Author:
Martin Desruisseaux (IRD)
Module:
modules/library/coverage (gt-coverage.jar)

Method Summary
static boolean registerGeotoolsServices(OperationRegistry registry)
          Unconditionnaly registers all JAI operations provided in the org.geotools.image.jai package.
static boolean registerRIF(JAI jai, OperationDescriptor descriptor, String name, ContextualRenderedImageFactory crif)
          Register the "SampleTranscode" image operation to the operation registry of the specified JAI instance.
static void setNativeAccelerationAllowed(String operation, boolean allowed)
          Allows or disallow native acceleration for the specified operation on the default JAI instance.
static void setNativeAccelerationAllowed(String operation, boolean allowed, JAI jai)
          Allows or disallow native acceleration for the specified operation on the given JAI instance.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

registerGeotoolsServices

public static boolean registerGeotoolsServices(OperationRegistry registry)
Unconditionnaly registers all JAI operations provided in the org.geotools.image.jai package. This method usually don't need to be invoked, since JAI should parse automatically the META-INF/registryFile.jai file at startup time. However, this default mechanism may fail when the geotools JAR file is unreachable from the JAI class loader, in which case the org.geotools.coverage.processing package will invoke this method as a fallback.

Note to module maintainer: if this method is updated, remember to update the META-INF/registryFile.jai file accordingly.

Parameters:
registry - The operation registry to register with.
Returns:
true if all registrations have been successful.

setNativeAccelerationAllowed

public static void setNativeAccelerationAllowed(String operation,
                                                boolean allowed,
                                                JAI jai)
Allows or disallow native acceleration for the specified operation on the given JAI instance. By default, JAI uses hardware accelerated methods when available. For example, it make use of MMX instructions on Intel processors. Unfortunatly, some native method crash the Java Virtual Machine under some circonstances. For example on JAI 1.1.2, the "Affine" operation on an image with float data type, bilinear interpolation and an ImageLayout rendering hint cause an exception in medialib native code. Disabling the native acceleration (i.e using the pure Java version) is a convenient workaround until Sun fix the bug.

Implementation note: the current implementation assumes that factories for native implementations are declared in the com.sun.media.jai.mlib package, while factories for pure java implementations are declared in the com.sun.media.jai.opimage package. It work for Sun's 1.1.2 implementation, but may change in future versions. If this method doesn't recognize the package, it does nothing.

Parameters:
operation - The operation name (e.g. "Affine").
allowed - false to disallow native acceleration.
jai - The instance of JAI we are going to work on. This argument can be omitted for the default JAI instance.
Since:
2.5
See Also:
JAI bug report 4906854

setNativeAccelerationAllowed

public static void setNativeAccelerationAllowed(String operation,
                                                boolean allowed)
Allows or disallow native acceleration for the specified operation on the default JAI instance. This method is a shortcut for setNativeAccelerationAllowed(operation, allowed, JAI.getDefaultInstance()).

See Also:
setNativeAccelerationAllowed(String, boolean, JAI)

registerRIF

public static boolean registerRIF(JAI jai,
                                  OperationDescriptor descriptor,
                                  String name,
                                  ContextualRenderedImageFactory crif)
Register the "SampleTranscode" image operation to the operation registry of the specified JAI instance. This method is invoked by the static initializer of GridSampleDimension.

Parameters:
jai - is he JAI instance in which we ant to register this operation.
descriptor - is the OperationDescriptor for the JAI operation to register.
name - is the name of the operation to register.
crif - is the rendered image facotry for this operation.
Returns:
true if everything goes well, false otherwise.


Copyright © 1996-2009 Geotools. All Rights Reserved.