func (sprite *Sprite) SetTexture(tex *gfx.Texture) { var tw, th float64 sprite.Quad.Texture = tex if tex != nil { tw = float64(tex.Width()) th = float64(tex.Height()) } else { tw, th = 1.0, 1.0 } if tw != sprite.TexW || th != sprite.TexH { tx1 := float64(sprite.Quad.V[0].TX) * sprite.TexW ty1 := float64(sprite.Quad.V[0].TY) * sprite.TexH tx2 := float64(sprite.Quad.V[2].TX) * sprite.TexW ty2 := float64(sprite.Quad.V[2].TY) * sprite.TexH sprite.TexW, sprite.TexH = tw, th tx1 /= tw ty1 /= th tx2 /= tw ty2 /= th sprite.Quad.V[0].TX, sprite.Quad.V[0].TY = float32(tx1), float32(ty1) sprite.Quad.V[1].TX, sprite.Quad.V[1].TY = float32(tx2), float32(ty1) sprite.Quad.V[2].TX, sprite.Quad.V[2].TY = float32(tx2), float32(ty2) sprite.Quad.V[3].TX, sprite.Quad.V[3].TY = float32(tx1), float32(ty2) } }
func New(texture *gfx.Texture, texx, texy, w, h float64) Sprite { var sprite Sprite sprite.TX, sprite.TY = texx, texy sprite.W, sprite.H = w, h if texture != nil { sprite.TexW = float64(texture.Width()) sprite.TexH = float64(texture.Height()) } else { sprite.TexW = 1.0 sprite.TexH = 1.0 } sprite.Quad.Texture = texture texx1 := texx / sprite.TexW texy1 := texy / sprite.TexH texx2 := (texx + w) / sprite.TexW texy2 := (texy + h) / sprite.TexH sprite.Quad.V[0].TX, sprite.Quad.V[0].TY = float32(texx1), float32(texy1) sprite.Quad.V[1].TX, sprite.Quad.V[1].TY = float32(texx2), float32(texy1) sprite.Quad.V[2].TX, sprite.Quad.V[2].TY = float32(texx2), float32(texy2) sprite.Quad.V[3].TX, sprite.Quad.V[3].TY = float32(texx1), float32(texy2) sprite.Quad.V[0].Z = 0.5 sprite.Quad.V[1].Z = 0.5 sprite.Quad.V[2].Z = 0.5 sprite.Quad.V[3].Z = 0.5 sprite.Quad.V[0].Color = 0xffffffff sprite.Quad.V[1].Color = 0xffffffff sprite.Quad.V[2].Color = 0xffffffff sprite.Quad.V[3].Color = 0xffffffff sprite.Quad.Blend = gfx.BLEND_DEFAULT return sprite }
func (h *HGE) Texture_GetHeight(tex gfx.Texture, a ...interface{}) int { return tex.Height(a...) }