diff --git a/examples/shaders/simple/main.go b/examples/shaders/simple/main.go deleted file mode 100644 index b10522d..0000000 --- a/examples/shaders/simple/main.go +++ /dev/null @@ -1,98 +0,0 @@ -package main - -import ( - "image" - "os" - "time" - - _ "image/png" - - "github.com/faiface/pixel" - "github.com/faiface/pixel/pixelgl" - "golang.org/x/image/colornames" -) - -func loadPicture(path string) (pixel.Picture, error) { - file, err := os.Open(path) - if err != nil { - return nil, err - } - defer file.Close() - img, _, err := image.Decode(file) - if err != nil { - return nil, err - } - return pixel.PictureDataFromImage(img), nil -} - -func run() { - cfg := pixelgl.WindowConfig{ - Title: "Pixel Rocks!", - Bounds: pixel.R(0, 0, 1024, 768), - VSync: true, - } - win, err := pixelgl.NewWindow(cfg) - if err != nil { - panic(err) - } - - pic, err := loadPicture("thegopherproject.png") - if err != nil { - panic(err) - } - - start := time.Now() - var utime float32 - - sprite := pixel.NewSprite(pic, pic.Bounds()) - sc := pixelgl.NewCanvas(win.Bounds()) - sc.SetFragmentShader(customFragShader) - sc.BindUniform("u_time", &utime) - sc.RecompileShader() - - sprite.Draw(sc, pixel.IM.Moved(win.Bounds().Center())) - win.Clear(colornames.Greenyellow) - - for !win.Closed() { - utime = float32(time.Since(start).Seconds()) - sprite.Draw(sc, pixel.IM.Moved(win.Bounds().Center())) - sc.Draw(win, pixel.IM.Moved(win.Bounds().Center())) - win.Update() - } -} - -func main() { - pixelgl.Run(run) -} - -var customFragShader = ` -#version 330 core - -in vec4 Color; -in vec2 TexCoords; -in float Intensity; - -out vec4 color; - -uniform vec4 colorMask; -uniform vec4 texBounds; -uniform sampler2D tex; -uniform float u_time; - -void main() { - if (Intensity == 0) { - color = colorMask * Color; - } else { - color = vec4(0, 0, 0, 0); - color += (1 - Intensity) * Color; - vec2 t = (TexCoords - texBounds.xy) / texBounds.zw; - color += Intensity * Color * texture(tex, t); - color *= colorMask; - } - color.rgb *= cos(u_time*5); -} -` - -// var umouse = mgl32.Vec2{} -// umouse[0] = float32(win.MousePosition().X) / 1024 -// umouse[1] = float32(win.MousePosition().Y) / 768 diff --git a/examples/shaders/simple/thegopherproject.png b/examples/shaders/simple/thegopherproject.png deleted file mode 100644 index 8cfbd11..0000000 Binary files a/examples/shaders/simple/thegopherproject.png and /dev/null differ diff --git a/examples/shaders/waterreflection/main.go b/examples/shaders/waterreflection/main.go deleted file mode 100644 index ff41a5a..0000000 --- a/examples/shaders/waterreflection/main.go +++ /dev/null @@ -1,134 +0,0 @@ -package main - -import ( - "image" - "math" - "os" - "time" - - "golang.org/x/image/colornames" - - _ "image/png" - - "github.com/faiface/pixel" - "github.com/faiface/pixel/pixelgl" -) - -func loadPicture(path string) (pixel.Picture, error) { - file, err := os.Open(path) - if err != nil { - return nil, err - } - defer file.Close() - img, _, err := image.Decode(file) - if err != nil { - return nil, err - } - return pixel.PictureDataFromImage(img), nil -} - -func run() { - - cfg := pixelgl.WindowConfig{ - Title: "Pixel Rocks!", - Bounds: pixel.R(0, 0, 1024, 768), - VSync: true, - } - pic, err := loadPicture("thegopherproject.png") - if err != nil { - panic(err) - } - win, err := pixelgl.NewWindow(cfg) - if err != nil { - panic(err) - } - - start := time.Now() - var utime float32 - - sprite := pixel.NewSprite(pic, pic.Bounds()) - - sc := pixelgl.NewCanvas(pic.Bounds()) - - wc := win.GetCanvas() - wc.SetFragmentShader(reflectionShader) - wc.BindUniform("u_time", &utime) - wc.UpdateShader() - - curpos := pixel.V(sc.Bounds().Center().X, -25) - tgtpos := pixel.V(sc.Bounds().Center().X, 316) - last := start - - for !win.Closed() { - dt := time.Since(last).Seconds() - last = time.Now() - curpos = pixel.Lerp(curpos, tgtpos, 1-math.Pow(1.0/16, dt*0.5)) - sc.Clear(colornames.Black) - - utime = float32(time.Since(start).Seconds()) - sprite.Draw(sc, pixel.IM.Moved(curpos)) - sc.Draw(wc, pixel.IM.Moved(wc.Bounds().Center())) - win.Update() - } -} - -func main() { - pixelgl.Run(run) -} - -var reflectionShader = ` -#version 330 core - -in vec4 Color; -in vec2 texcoords; -in float Intensity; - -out vec4 fragColor; - -uniform vec4 u_colormask; -uniform vec4 u_texbounds; -uniform sampler2D u_texture; -uniform float u_time; - -void main() { - if (Intensity == 0) { - fragColor = u_colormask * Color; - } else { - fragColor = vec4(0, 0, 0, 0); - fragColor += (1 - Intensity) * Color; - vec2 t = (texcoords - u_texbounds.xy) / u_texbounds.zw; - fragColor += Intensity * Color * texture(u_texture, t); - fragColor *= u_colormask; - vec2 uv = t; - vec3 overlayColor = vec3(0.1,0.1,1); - float sepoffset = 0.005*cos(u_time*3.0); - - if (t.y < 0.3 + sepoffset) - { - float xoffset = 0.005*cos(u_time*3.0+200.0*t.y); - float yoffset = ((0.3 - t.y)/0.3) * 0.05*(1.0+cos(u_time*3.0+50.0*t.y)); - fragColor = texture(u_texture, vec2(t.x+xoffset,t.y+yoffset)); - } - } -} -` - -// void main() { -// fragColor = vec4(0, 0, 0, 0); -// fragColor += (1 - Intensity) * incolor; -// vec2 t = (TexCoords) / texBounds.zw; -// fragColor += Intensity * incolor * texture(tex, t); -// fragColor *= colorMask; - -// vec2 uv = t; -// vec3 overlayColor = vec3(0.1,0.1,1); -// float sepoffset = 0.005*cos(u_time*3.0); - -// if (t.y < 0.3 + sepoffset) -// { -// float xoffset = 0.005*cos(u_time*3.0+200.0*t.y); -// float yoffset = ((0.3 - t.y)/0.3) * 0.05*(1.0+cos(u_time*3.0+50.0*t.y)); -// fragColor = texture(tex, vec2(t.x+xoffset,t.y+yoffset)); -// } -// } -// ` diff --git a/examples/shaders/waterreflection/thegopherproject.png b/examples/shaders/waterreflection/thegopherproject.png deleted file mode 100644 index 8cfbd11..0000000 Binary files a/examples/shaders/waterreflection/thegopherproject.png and /dev/null differ