reduced the maximum shadow blur size to avoid running into some gpu limitations for now

This commit is contained in:
Thomas Friedel 2018-10-31 12:39:14 +01:00
parent 6f74599567
commit a01a6799f1
5 changed files with 767 additions and 767 deletions

View file

@ -220,7 +220,7 @@ var (
ir *imageShader
gauss15r *gaussianShader
gauss63r *gaussianShader
gauss255r *gaussianShader
gauss127r *gaussianShader
offscr1 offscreenBuffer
offscr2 offscreenBuffer
glChan = make(chan func())
@ -354,7 +354,7 @@ func LoadGL(glimpl GL) (err error) {
}
gauss63r = (*gaussianShader)(gauss63s)
gauss255s, err := loadGaussian255Shader()
gauss127s, err := loadGaussian127Shader()
if err != nil {
return
}
@ -362,7 +362,7 @@ func LoadGL(glimpl GL) (err error) {
if err != nil {
return
}
gauss255r = (*gaussianShader)(gauss255s)
gauss127r = (*gaussianShader)(gauss127s)
gli.GenBuffers(1, &buf)
err = glError()

File diff suppressed because it is too large Load diff

View file

@ -327,7 +327,7 @@ _SUM_
gl_FragColor = color;
}`
var gaussian255VS = `
var gaussian127VS = `
attribute vec2 vertex, texCoord;
uniform vec2 canvasSize;
varying vec2 v_texCoord;
@ -336,14 +336,14 @@ void main() {
vec2 glp = vertex * 2.0 / canvasSize - 1.0;
gl_Position = vec4(glp.x, -glp.y, 0.0, 1.0);
}`
var gaussian255FS = `
var gaussian127FS = `
#ifdef GL_ES
precision mediump float;
#endif
varying vec2 v_texCoord;
uniform vec2 kernelScale;
uniform sampler2D image;
uniform float kernel[255];
uniform float kernel[127];
void main() {
vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
_SUM_
@ -353,11 +353,11 @@ _SUM_
func init() {
fstr := "\tcolor += texture2D(image, v_texCoord + vec2(%.1f * kernelScale.x, %.1f * kernelScale.y)) * kernel[%d];\n"
bb := bytes.Buffer{}
for i := 0; i < 255; i++ {
off := float64(i) - 127
for i := 0; i < 127; i++ {
off := float64(i) - 63
fmt.Fprintf(&bb, fstr, off, off, i)
}
gaussian255FS = strings.Replace(gaussian255FS, "_SUM_", bb.String(), -1)
gaussian127FS = strings.Replace(gaussian127FS, "_SUM_", bb.String(), -1)
bb.Reset()
for i := 0; i < 63; i++ {
off := float64(i) - 31

View file

@ -128,8 +128,8 @@ func (cv *Canvas) drawBlurredShadow() {
gs = gauss63r
kernel = kernelBuf[:63]
} else {
gs = gauss255r
kernel = kernelBuf[:255]
gs = gauss127r
kernel = kernelBuf[:127]
}
gaussianKernel(cv.state.shadowBlur, kernel)