no longer using TEXTURE_1D since it is not available on GL ES
This commit is contained in:
parent
06267645f6
commit
54e97761de
6 changed files with 714 additions and 764 deletions
|
@ -81,17 +81,27 @@ func (_ GLImpl) GetAttribLocation(program uint32, name string) int32 {
|
|||
func (_ GLImpl) GetError() uint32 {
|
||||
return gl.GetError()
|
||||
}
|
||||
func (_ GLImpl) GetProgramInfoLog(program uint32, bufSize int32) string {
|
||||
log := strings.Repeat("\x00", int(bufSize+1))
|
||||
gl.GetProgramInfoLog(program, bufSize, nil, gl.Str(log))
|
||||
func (_ GLImpl) GetProgramInfoLog(program uint32) string {
|
||||
var length int32
|
||||
gl.GetProgramiv(program, gl.INFO_LOG_LENGTH, &length)
|
||||
if length == 0 {
|
||||
return ""
|
||||
}
|
||||
log := strings.Repeat("\x00", int(length+1))
|
||||
gl.GetProgramInfoLog(program, length, nil, gl.Str(log))
|
||||
return log
|
||||
}
|
||||
func (_ GLImpl) GetProgramiv(program uint32, pname uint32, params *int32) {
|
||||
gl.GetProgramiv(program, pname, params)
|
||||
}
|
||||
func (_ GLImpl) GetShaderInfoLog(program uint32, bufSize int32) string {
|
||||
log := strings.Repeat("\x00", int(bufSize+1))
|
||||
gl.GetShaderInfoLog(program, bufSize, nil, gl.Str(log))
|
||||
func (_ GLImpl) GetShaderInfoLog(program uint32) string {
|
||||
var length int32
|
||||
gl.GetShaderiv(program, gl.INFO_LOG_LENGTH, &length)
|
||||
if length == 0 {
|
||||
return ""
|
||||
}
|
||||
log := strings.Repeat("\x00", int(length+1))
|
||||
gl.GetShaderInfoLog(program, length, nil, gl.Str(log))
|
||||
return log
|
||||
}
|
||||
func (_ GLImpl) GetShaderiv(shader uint32, pname uint32, params *int32) {
|
||||
|
@ -123,9 +133,6 @@ func (_ GLImpl) StencilMask(mask uint32) {
|
|||
func (_ GLImpl) StencilOp(fail uint32, zfail uint32, zpass uint32) {
|
||||
gl.StencilOp(fail, zfail, zpass)
|
||||
}
|
||||
func (_ GLImpl) TexImage1D(target uint32, level int32, internalformat int32, width int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
|
||||
gl.TexImage1D(target, level, internalformat, width, border, format, xtype, pixels)
|
||||
}
|
||||
func (_ GLImpl) TexImage2D(target uint32, level int32, internalformat int32, width int32, height int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
|
||||
gl.TexImage2D(target, level, internalformat, width, height, border, format, xtype, pixels)
|
||||
}
|
||||
|
|
22
gradients.go
22
gradients.go
|
@ -42,10 +42,11 @@ func NewLinearGradient(x0, y0, x1, y1 float64) *LinearGradient {
|
|||
lg := &LinearGradient{gradient: gradient{from: vec{x0, y0}, to: vec{x1, y1}}}
|
||||
gli.GenTextures(1, &lg.tex)
|
||||
gli.ActiveTexture(gl_TEXTURE0)
|
||||
gli.BindTexture(gl_TEXTURE_1D, lg.tex)
|
||||
gli.TexParameteri(gl_TEXTURE_1D, gl_TEXTURE_MIN_FILTER, gl_LINEAR)
|
||||
gli.TexParameteri(gl_TEXTURE_1D, gl_TEXTURE_MAG_FILTER, gl_LINEAR)
|
||||
gli.TexParameteri(gl_TEXTURE_1D, gl_TEXTURE_WRAP_S, gl_CLAMP_TO_EDGE)
|
||||
gli.BindTexture(gl_TEXTURE_2D, lg.tex)
|
||||
gli.TexParameteri(gl_TEXTURE_2D, gl_TEXTURE_MIN_FILTER, gl_LINEAR)
|
||||
gli.TexParameteri(gl_TEXTURE_2D, gl_TEXTURE_MAG_FILTER, gl_LINEAR)
|
||||
gli.TexParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_S, gl_CLAMP_TO_EDGE)
|
||||
gli.TexParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_T, gl_CLAMP_TO_EDGE)
|
||||
runtime.SetFinalizer(lg, func(lg *LinearGradient) {
|
||||
glChan <- func() {
|
||||
gli.DeleteTextures(1, &lg.tex)
|
||||
|
@ -62,10 +63,11 @@ func NewRadialGradient(x0, y0, r0, x1, y1, r1 float64) *RadialGradient {
|
|||
rg := &RadialGradient{gradient: gradient{from: vec{x0, y0}, to: vec{x1, y1}}, radFrom: r0, radTo: r1}
|
||||
gli.GenTextures(1, &rg.tex)
|
||||
gli.ActiveTexture(gl_TEXTURE0)
|
||||
gli.BindTexture(gl_TEXTURE_1D, rg.tex)
|
||||
gli.TexParameteri(gl_TEXTURE_1D, gl_TEXTURE_MIN_FILTER, gl_LINEAR)
|
||||
gli.TexParameteri(gl_TEXTURE_1D, gl_TEXTURE_MAG_FILTER, gl_LINEAR)
|
||||
gli.TexParameteri(gl_TEXTURE_1D, gl_TEXTURE_WRAP_S, gl_CLAMP_TO_EDGE)
|
||||
gli.BindTexture(gl_TEXTURE_2D, rg.tex)
|
||||
gli.TexParameteri(gl_TEXTURE_2D, gl_TEXTURE_MIN_FILTER, gl_LINEAR)
|
||||
gli.TexParameteri(gl_TEXTURE_2D, gl_TEXTURE_MAG_FILTER, gl_LINEAR)
|
||||
gli.TexParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_S, gl_CLAMP_TO_EDGE)
|
||||
gli.TexParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_T, gl_CLAMP_TO_EDGE)
|
||||
runtime.SetFinalizer(rg, func(rg *RadialGradient) {
|
||||
glChan <- func() {
|
||||
gli.DeleteTextures(1, &rg.tex)
|
||||
|
@ -86,7 +88,7 @@ func (g *gradient) load() {
|
|||
}
|
||||
|
||||
gli.ActiveTexture(gl_TEXTURE0)
|
||||
gli.BindTexture(gl_TEXTURE_1D, g.tex)
|
||||
gli.BindTexture(gl_TEXTURE_2D, g.tex)
|
||||
var pixels [2048 * 4]byte
|
||||
pp := 0
|
||||
for i := 0; i < 2048; i++ {
|
||||
|
@ -97,7 +99,7 @@ func (g *gradient) load() {
|
|||
pixels[pp+3] = byte(math.Floor(c.a*255 + 0.5))
|
||||
pp += 4
|
||||
}
|
||||
gli.TexImage1D(gl_TEXTURE_1D, 0, gl_RGBA, 2048, 0, gl_RGBA, gl_UNSIGNED_BYTE, gli.Ptr(&pixels[0]))
|
||||
gli.TexImage2D(gl_TEXTURE_2D, 0, gl_RGBA, 2048, 1, 0, gl_RGBA, gl_UNSIGNED_BYTE, gli.Ptr(&pixels[0]))
|
||||
g.loaded = true
|
||||
}
|
||||
|
||||
|
|
1398
made_shaders.go
1398
made_shaders.go
File diff suppressed because it is too large
Load diff
|
@ -204,10 +204,8 @@ const compilePart = `
|
|||
gli.ShaderSource(SHADER_VAR, SHADER_SRC)
|
||||
gli.CompileShader(SHADER_VAR)
|
||||
|
||||
var logLength int32
|
||||
gli.GetShaderiv(SHADER_VAR, gl_INFO_LOG_LENGTH, &logLength)
|
||||
if logLength > 0 {
|
||||
shLog := gli.GetShaderInfoLog(SHADER_VAR, logLength)
|
||||
shLog := gli.GetShaderInfoLog(SHADER_VAR)
|
||||
if len(shLog) > 0 {
|
||||
fmt.Printf("SHADER_TYPE compilation log for SHADER_SRC:\n\n%s\n", shLog)
|
||||
}
|
||||
|
||||
|
@ -229,10 +227,8 @@ const linkPart = `
|
|||
gli.AttachShader(program, fs)
|
||||
gli.LinkProgram(program)
|
||||
|
||||
var logLength int32
|
||||
gli.GetProgramiv(program, gl_INFO_LOG_LENGTH, &logLength)
|
||||
if logLength > 0 {
|
||||
shLog := gli.GetProgramInfoLog(program, logLength)
|
||||
shLog := gli.GetProgramInfoLog(program)
|
||||
if len(shLog) > 0 {
|
||||
fmt.Printf("Shader link log for SHADER_SRC:\n\n%s\n", shLog)
|
||||
}
|
||||
|
||||
|
|
|
@ -816,9 +816,9 @@ type GL interface {
|
|||
GenerateMipmap(target uint32)
|
||||
GetAttribLocation(program uint32, name string) int32
|
||||
GetError() uint32
|
||||
GetProgramInfoLog(program uint32, bufSize int32) string
|
||||
GetProgramInfoLog(program uint32) string
|
||||
GetProgramiv(program uint32, pname uint32, params *int32)
|
||||
GetShaderInfoLog(shader uint32, bufSize int32) string
|
||||
GetShaderInfoLog(shader uint32) string
|
||||
GetShaderiv(shader uint32, pname uint32, params *int32)
|
||||
GetUniformLocation(program uint32, name string) int32
|
||||
LinkProgram(program uint32)
|
||||
|
@ -828,7 +828,6 @@ type GL interface {
|
|||
StencilFunc(xfunc uint32, ref int32, mask uint32)
|
||||
StencilMask(mask uint32)
|
||||
StencilOp(fail uint32, zfail uint32, zpass uint32)
|
||||
TexImage1D(target uint32, level int32, internalformat int32, width int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer)
|
||||
TexImage2D(target uint32, level int32, internalformat int32, width int32, height int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer)
|
||||
TexParameteri(target uint32, pname uint32, param int32)
|
||||
TexSubImage2D(target uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, xtype uint32, pixels unsafe.Pointer)
|
||||
|
|
16
shaders.go
16
shaders.go
|
@ -56,7 +56,7 @@ precision mediump float;
|
|||
#endif
|
||||
varying vec2 v_cp;
|
||||
uniform mat3 invmat;
|
||||
uniform sampler1D gradient;
|
||||
uniform sampler2D gradient;
|
||||
uniform vec2 from, dir;
|
||||
uniform float len;
|
||||
uniform float globalAlpha;
|
||||
|
@ -65,7 +65,7 @@ void main() {
|
|||
vec2 v = untf.xy - from;
|
||||
float r = dot(v, dir) / len;
|
||||
r = clamp(r, 0.0, 1.0);
|
||||
vec4 col = texture1D(gradient, r);
|
||||
vec4 col = texture2D(gradient, vec2(r, 0.0));
|
||||
col.a *= globalAlpha;
|
||||
gl_FragColor = col;
|
||||
}`
|
||||
|
@ -85,7 +85,7 @@ precision mediump float;
|
|||
#endif
|
||||
varying vec2 v_cp;
|
||||
uniform mat3 invmat;
|
||||
uniform sampler1D gradient;
|
||||
uniform sampler2D gradient;
|
||||
uniform vec2 from, to, dir;
|
||||
uniform float radFrom, radTo;
|
||||
uniform float len;
|
||||
|
@ -110,7 +110,7 @@ void main() {
|
|||
}
|
||||
float o = max(o1, o2);
|
||||
//float r = radFrom + o * (radTo - radFrom);
|
||||
vec4 col = texture1D(gradient, o);
|
||||
vec4 col = texture2D(gradient, vec2(o, 0.0));
|
||||
col.a *= globalAlpha;
|
||||
gl_FragColor = col;
|
||||
}`
|
||||
|
@ -182,7 +182,7 @@ varying vec2 v_cp;
|
|||
varying vec2 v_atc;
|
||||
varying vec2 v_texCoord;
|
||||
uniform mat3 invmat;
|
||||
uniform sampler1D gradient;
|
||||
uniform sampler2D gradient;
|
||||
uniform vec2 from, dir;
|
||||
uniform float len;
|
||||
uniform sampler2D alphaTex;
|
||||
|
@ -192,7 +192,7 @@ void main() {
|
|||
vec2 v = untf.xy - from;
|
||||
float r = dot(v, dir) / len;
|
||||
r = clamp(r, 0.0, 1.0);
|
||||
vec4 col = texture1D(gradient, r);
|
||||
vec4 col = texture2D(gradient, vec2(r, 0.0));
|
||||
col.a *= texture2D(alphaTex, v_atc).a * globalAlpha;
|
||||
gl_FragColor = col;
|
||||
}`
|
||||
|
@ -215,7 +215,7 @@ precision mediump float;
|
|||
varying vec2 v_cp;
|
||||
varying vec2 v_atc;
|
||||
uniform mat3 invmat;
|
||||
uniform sampler1D gradient;
|
||||
uniform sampler2D gradient;
|
||||
uniform vec2 from, to, dir;
|
||||
uniform float radFrom, radTo;
|
||||
uniform float len;
|
||||
|
@ -241,7 +241,7 @@ void main() {
|
|||
}
|
||||
float o = max(o1, o2);
|
||||
float r = radFrom + o * (radTo - radFrom);
|
||||
vec4 col = texture1D(gradient, o);
|
||||
vec4 col = texture2D(gradient, vec2(o, 0.0));
|
||||
col.a *= texture2D(alphaTex, v_atc).a * globalAlpha;
|
||||
gl_FragColor = col;
|
||||
}`
|
||||
|
|
Loading…
Reference in a new issue