Skip to content

Instantly share code, notes, and snippets.

@inclement
Created May 30, 2015 16:21
Show Gist options
  • Select an option

  • Save inclement/76cf7cd2be227c92e465 to your computer and use it in GitHub Desktop.

Select an option

Save inclement/76cf7cd2be227c92e465 to your computer and use it in GitHub Desktop.
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.effectwidget import EffectWidget, EffectBase
Builder.load_string('''
<Root>:
Widget:
canvas:
Color:
rgba: 1, 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
''')
effect_broken = '''
vec3 hsv2rgb(vec3 c)
{
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
float rand(vec2 co){
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
}
vec4 effect( vec4 color, sampler2D buf0, vec2 texCoords, vec2 coords )
{
float number = rand(texCoords + vec2(time, 0.));
return vec4(hsv2rgb( vec3(number, 1.0, 1.0)), 1.0);
}
'''
class BrokenEffect(EffectBase):
def __init__(self):
super(BrokenEffect, self).__init__()
self.glsl = effect_broken
class Root(EffectWidget):
def __init__(self):
super(Root, self).__init__()
self.effects = [BrokenEffect()]
class BrokenApp(App):
def build(self):
return Root()
BrokenApp().run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment