I actually tried not to use shaders because I want to run the application on very slow computers... But I think, using a texture or something like this wouldn't be that less demanding, right?
Even very very veeeery slow GPUs can handle that kind of shader.
The only restriction is that the GPU/driver needs to implement OpenGL 2.0; or any previous OpenGL version and ARB_shader_objects.
Even the oldest and slowest of Intel's integrated GPUs can do that.
A texture would (probably) have a bigger performance impact due to memory access.
However, the biggest issue with textures I see is that they do not scale well with different sizes/resolutions.
A shader solution however always produces pixel-perfect results no matter how you scale/distort your circle.