.TH "MPSImageArithmetic" 3 "Mon Jul 9 2018" "Version MetalPerformanceShaders-119.3" "MetalPerformanceShaders.framework" \" -*- nroff -*- .ad l .nh .SH NAME MPSImageArithmetic .SH SYNOPSIS .br .PP .PP \fC#import \fP .PP Inherits \fBMPSBinaryImageKernel\fP\&. .PP Inherited by \fBMPSImageAdd\fP, \fBMPSImageDivide\fP, \fBMPSImageMultiply\fP, and \fBMPSImageSubtract\fP\&. .SS "Instance Methods" .in +1c .ti -1c .RI "(nonnull instancetype) \- \fBinitWithDevice:\fP" .br .in -1c .SS "Properties" .in +1c .ti -1c .RI "float \fBprimaryScale\fP" .br .ti -1c .RI "float \fBsecondaryScale\fP" .br .ti -1c .RI "float \fBbias\fP" .br .ti -1c .RI "MTLSize \fBprimaryStrideInPixels\fP" .br .ti -1c .RI "MTLSize \fBsecondaryStrideInPixels\fP" .br .ti -1c .RI "float \fBminimumValue\fP" .br .ti -1c .RI "float \fBmaximumValue\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP \fBMPSImageMath\&.h\fP MetalPerformanceShaders\&.framework .PP \fBCopyright:\fP .RS 4 Copyright (c) 2016 Apple Inc\&. All rights reserved\&. MetalPerformanceShaders math filters .RE .PP This depends on Metal\&.framework\&. This filter takes two source images, a primary source image and a secondary source image, and outputs a single destination image\&. It applies an element-wise arithmetic operator to each pixel in a primary source image and a corresponding pixel in a secondary source image over a specified region\&. .PP The supported arithmetic operators are the following: .IP "\(bu" 2 Addition .IP "\(bu" 2 Subtraction .IP "\(bu" 2 Multiplication .IP "\(bu" 2 Division .PP .PP This filter takes additional parameters: primaryScale, secondaryScale, and bias\&. The default value for primaryScale and secondaryScale is 1\&.0f\&. The default value for bias is 0\&.0f\&. This filter applies primaryScale, secondaryScale, and bias to the primary source pixel (x) and secondary source pixel (y) in the following way: .IP "\(bu" 2 Addition: result = ((primaryScale * x) + (secondaryScale * y)) + bias .IP "\(bu" 2 Subtraction: result = ((primaryScale * x) - (secondaryScale * y)) + bias .IP "\(bu" 2 Multiplicaton: result = ((primaryScale * x) * (secondaryScale * y)) + bias .IP "\(bu" 2 Division: result = ((primaryScale * x) / (secondaryScale * y)) + bias .PP .PP To clamp the result of an arithmetic operation, where result = clamp(result, minimumValue, maximumValue), set the minimumValue and maximumValue appropriately\&. The default value of minimumValue is -FLT_MAX\&. The default value of maximumValue is FLT_MAX\&. .PP This filter also takes the following additional parameters: .IP "\(bu" 2 primaryStrideInPixels .IP "\(bu" 2 secondaryStrideInPixels These parameters can be used to control broadcasting for the data stored in the primary and secondary source images\&. For example, setting all strides for the primary source image to 0 will result in the primarySource image being treated as a scalar value\&. The only supported values are 0 or 1\&. The default value of these parameters is 1\&. .PP .PP This filter accepts uint and int data in addition to unorm and floating-point data\&. .PP You must use one of the sub-classes of \fBMPSImageArithmetic\fP\&. .SH "Method Documentation" .PP .SS "\- (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >) device" Standard init with default properties per filter type .PP \fBParameters:\fP .RS 4 \fIdevice\fP The device that the filter will be used on\&. May not be NULL\&. .RE .PP \fBReturns:\fP .RS 4 a pointer to the newly initialized object\&. This will fail, returning nil if the device is not supported\&. Devices must be MTLFeatureSet_iOS_GPUFamily2_v1 or later\&. .RE .PP .PP Reimplemented from \fBMPSBinaryImageKernel\fP\&. .PP Reimplemented in \fBMPSImageAdd\fP, \fBMPSImageSubtract\fP, \fBMPSImageMultiply\fP, and \fBMPSImageDivide\fP\&. .SH "Property Documentation" .PP .SS "\- (float) bias\fC [read]\fP, \fC [write]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" .SS "\- maximumValue\fC [read]\fP, \fC [write]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" maximumValue is used to clamp the result of an arithmetic operation: result = clamp(result, minimumValue, maximumValue)\&. The default value of maximumValue is FLT_MAX\&. .SS "\- minimumValue\fC [read]\fP, \fC [write]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" minimumValue is to clamp the result of an arithmetic operation: result = clamp(result, minimumValue, maximumValue)\&. The default value of minimumValue is -FLT_MAX\&. .SS "\- (float) primaryScale\fC [read]\fP, \fC [write]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" .SS "\- primaryStrideInPixels\fC [read]\fP, \fC [write]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" The secondarySource stride in the x, y, and z dimensions\&. The only supported values are 0 or 1\&. The default value for each dimension is 1\&. .SS "\- (float) secondaryScale\fC [read]\fP, \fC [write]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" .SS "\- secondaryStrideInPixels\fC [read]\fP, \fC [write]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" The secondarySource stride in the x, y, and z dimensions\&. The only supported values are 0 or 1\&. The default value for each dimension is 1\&. .SH "Author" .PP Generated automatically by Doxygen for MetalPerformanceShaders\&.framework from the source code\&.