First off, that looks like someone is writing object-oriented code in C. And it calls tons and tons of other functions from all over Clutter (me having never seen most of it's source code doesn't help here and means I'm pretty much unable to describe what this does without using the words "that thing there what does something").
Basically it defines a blur GLSL shader around line 60. Then follows a whole load of code that seems reasonably generic, then around line 130 it fetches a specific texture from somewhere, gets it's width and height, then does something with it. Then around line 162, it does something different which kind of looks like it's applying the blur effect.
Methods and functions related to our class/struct: clutter_blur_effect_pre_paint() equal to calling pre_paint() inside our class (struct) clutter_blur_effect_paint_target() equal to calling paint_target() inside our class (struct) clutter_blur_effect_get_paint_volume() equal to calling get_paint_volume() inside our class (struct) Initializer: clutter_blur_effect_class_init() Constructor: clutter_blur_effect_new() Destructor: clutter_blur_effect_dispose() equal to calling dispose() inside our class (struct)
I'm pretty sure that wasn't super useful, but it's all of the sense I can extract out of it right now. Also, C code doesn't usually look like this (as in, it's not usually object-oriented so if you look at something like the Quake II engine source code you'd find you can make a lot more sense of it - Quake II, by the way, also uses OpenGL and might have a blur shader somewhere in there so it might be worth a look).