/** * @throws OSStatusException * @since Available in iOS 2.0 and later. */ public int getPropertySize(Struct<?> specifier) throws OSStatusException { IntPtr ptr = new IntPtr(); OSStatus status = getPropertyInfo0( this, specifier == null ? 0 : Struct.sizeOf(specifier), specifier == null ? null : specifier.as(VoidPtr.class), ptr); OSStatusException.throwIfNecessary(status); return ptr.get(); }
/** * @throws OSStatusException * @since Available in iOS 2.0 and later. */ public <T extends Struct<T>> T getProperty(Struct<?> specifier, Class<T> type) throws OSStatusException { T data = Struct.allocate(type); IntPtr dataSize = new IntPtr(Struct.sizeOf(data)); OSStatus status = getProperty0( this, specifier == null ? 0 : Struct.sizeOf(specifier), specifier == null ? null : specifier.as(VoidPtr.class), dataSize, data.as(VoidPtr.class)); OSStatusException.throwIfNecessary(status); return data; }
public CIVector(double[] values) { super((SkipInit) null); if (values == null) { throw new NullPointerException("values"); } MachineSizedFloatPtr p = Struct.allocate(MachineSizedFloatPtr.class, values.length); p.set(values); initObject(initWithValues$count$(p, values.length)); }
private static CGGradient create(CGColorSpace space, CGColor[] colors, Object locations) { if (colors == null) { throw new NullPointerException("colors"); } try (CFMutableArray colorsArray = CFMutableArray.createMutable(null, colors.length, CoreFoundation.TypeArrayCallBacks())) { for (CGColor c : colors) { colorsArray.appendValue(Struct.toStruct(VoidPtr.class, c.getHandle())); } return create( space, colorsArray, locations != null ? VM.getArrayValuesAddress(CoreGraphics.toMachineSizedFloatArray(locations)) : 0); } }
public static MKPolyline create(CLLocationCoordinate2D[] coords) { CLLocationCoordinate2D first = Struct.allocate(CLLocationCoordinate2D.class, coords.length); first.update(coords); return create(first, coords.length); }
/*</members>*/ public static MKPolyline create(MKMapPoint[] points) { MKMapPoint first = Struct.allocate(MKMapPoint.class, points.length); first.update(points); return create(first, points.length); }