import { BaseFilter } from './BaseFilter';
import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
import { fragmentSource } from './shaders/convolute';
export type ConvoluteOwnProps = {
opaque: boolean;
matrix: number[];
};
export declare const convoluteDefaultValues: ConvoluteOwnProps;
/**
* Adapted from html5rocks article
* @example
Sharpen filter
* const filter = new Convolute({
* matrix: [ 0, -1, 0,
* -1, 5, -1,
* 0, -1, 0 ]
* });
* object.filters.push(filter);
* object.applyFilters();
* canvas.renderAll();
* @example Blur filter
* const filter = new Convolute({
* matrix: [ 1/9, 1/9, 1/9,
* 1/9, 1/9, 1/9,
* 1/9, 1/9, 1/9 ]
* });
* object.filters.push(filter);
* object.applyFilters();
* canvas.renderAll();
* @example Emboss filter
* const filter = new Convolute({
* matrix: [ 1, 1, 1,
* 1, 0.7, -1,
* -1, -1, -1 ]
* });
* object.filters.push(filter);
* object.applyFilters();
* canvas.renderAll();
* @example Emboss filter with opaqueness
* const filter = new Convolute({
* opaque: true,
* matrix: [ 1, 1, 1,
* 1, 0.7, -1,
* -1, -1, -1 ]
* });
* object.filters.push(filter);
* object.applyFilters();
* canvas.renderAll();
*/
export declare class Convolute extends BaseFilter<'Convolute', ConvoluteOwnProps> {
opaque: ConvoluteOwnProps['opaque'];
matrix: ConvoluteOwnProps['matrix'];
static type: string;
static defaults: ConvoluteOwnProps;
static uniformLocations: string[];
getCacheKey(): keyof typeof fragmentSource;
getFragmentSource(): string;
/**
* Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.
*
* @param {Object} options
* @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
*/
applyTo2d(options: T2DPipelineState): void;
/**
* Send data from this filter to its shader program's uniforms.
*
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
*/
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
/**
* Returns object representation of an instance
* @return {Object} Object representation of an instance
*/
toObject(): {
opaque: boolean;
matrix: number[];
type: "Convolute";
};
}
//# sourceMappingURL=Convolute.d.ts.map