mirror of
https://github.com/Raymo111/i3lock-color.git
synced 2024-11-11 13:50:52 -05:00
f06dc6cbc4
It relies on some SSE2 instructions, so performance gain is not that huge (about 1.4x). I experimented with 256-bit loads, but they turned out to be slower (at least on Sandy Bridge).
21 lines
890 B
C
21 lines
890 B
C
#ifndef _BLUR_H
|
|
#define _BLUR_H
|
|
|
|
#include <stdint.h>
|
|
#include <cairo.h>
|
|
|
|
void blur_image_surface (cairo_surface_t *surface, int radius);
|
|
void blur_impl_naive(uint32_t* src, uint32_t* dst, int width, int height, int src_stride, int dst_stride, int radius);
|
|
|
|
void blur_impl_sse2(uint32_t* src, uint32_t* dst, int width, int height, float sigma);
|
|
void blur_impl_horizontal_pass_sse2(uint32_t *src, uint32_t *dst, float *kernel, int width, int height)
|
|
__attribute__ ((__target__ ("no-avx")));
|
|
|
|
void blur_impl_avx(uint32_t* src, uint32_t* dst, int width, int height, float sigma);
|
|
void blur_impl_horizontal_pass_avx(uint32_t *src, uint32_t *dst, float *kernel, int width, int height);
|
|
|
|
void blur_impl_ssse3(uint32_t* src, uint32_t* dst, int width, int height, float sigma);
|
|
void blur_impl_horizontal_pass_ssse3(uint32_t *src, uint32_t *dst, int16_t *kernel, int width, int height);
|
|
|
|
#endif
|
|
|