mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-25 03:08:54 +01:00
affine: Refactoring ColorM
This commit is contained in:
parent
8c8e512059
commit
ccd9241b07
@ -59,8 +59,12 @@ func clamp(x float32) float32 {
|
|||||||
return x
|
return x
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *ColorM) isInited() bool {
|
||||||
|
return c != nil && c.body != nil
|
||||||
|
}
|
||||||
|
|
||||||
func (c *ColorM) Apply(clr color.Color) color.Color {
|
func (c *ColorM) Apply(clr color.Color) color.Color {
|
||||||
if c == nil || c.body == nil {
|
if !c.isInited() {
|
||||||
return clr
|
return clr
|
||||||
}
|
}
|
||||||
r, g, b, a := clr.RGBA()
|
r, g, b, a := clr.RGBA()
|
||||||
@ -91,7 +95,7 @@ func (c *ColorM) Apply(clr color.Color) color.Color {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *ColorM) UnsafeElements() ([]float32, []float32) {
|
func (c *ColorM) UnsafeElements() ([]float32, []float32) {
|
||||||
if c == nil || c.body == nil {
|
if !c.isInited() {
|
||||||
return colorMIdentityBody, colorMIdentityTranslate
|
return colorMIdentityBody, colorMIdentityTranslate
|
||||||
}
|
}
|
||||||
return c.body, c.translate
|
return c.body, c.translate
|
||||||
@ -103,7 +107,7 @@ func (c *ColorM) SetElement(i, j int, element float32) *ColorM {
|
|||||||
body: make([]float32, 16),
|
body: make([]float32, 16),
|
||||||
translate: make([]float32, 4),
|
translate: make([]float32, 4),
|
||||||
}
|
}
|
||||||
if c == nil || c.body == nil {
|
if !c.isInited() {
|
||||||
copy(newC.body, colorMIdentityBody)
|
copy(newC.body, colorMIdentityBody)
|
||||||
copy(newC.translate, colorMIdentityTranslate)
|
copy(newC.translate, colorMIdentityTranslate)
|
||||||
} else {
|
} else {
|
||||||
@ -119,7 +123,7 @@ func (c *ColorM) SetElement(i, j int, element float32) *ColorM {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *ColorM) Equals(other *ColorM) bool {
|
func (c *ColorM) Equals(other *ColorM) bool {
|
||||||
if (c == nil || c.body == nil) && (other == nil || other.body == nil) {
|
if !c.isInited() && !other.isInited() {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,11 +131,11 @@ func (c *ColorM) Equals(other *ColorM) bool {
|
|||||||
lhst := colorMIdentityTranslate
|
lhst := colorMIdentityTranslate
|
||||||
rhsb := colorMIdentityBody
|
rhsb := colorMIdentityBody
|
||||||
rhst := colorMIdentityTranslate
|
rhst := colorMIdentityTranslate
|
||||||
if other != nil {
|
if other.isInited() {
|
||||||
lhsb = other.body
|
lhsb = other.body
|
||||||
lhst = other.translate
|
lhst = other.translate
|
||||||
}
|
}
|
||||||
if c != nil {
|
if c.isInited() {
|
||||||
rhsb = c.body
|
rhsb = c.body
|
||||||
rhst = c.translate
|
rhst = c.translate
|
||||||
}
|
}
|
||||||
@ -152,10 +156,10 @@ func (c *ColorM) Equals(other *ColorM) bool {
|
|||||||
// Concat multiplies a color matrix with the other color matrix.
|
// Concat multiplies a color matrix with the other color matrix.
|
||||||
// This is same as muptiplying the matrix other and the matrix c in this order.
|
// This is same as muptiplying the matrix other and the matrix c in this order.
|
||||||
func (c *ColorM) Concat(other *ColorM) *ColorM {
|
func (c *ColorM) Concat(other *ColorM) *ColorM {
|
||||||
if c == nil || c.body == nil {
|
if !c.isInited() {
|
||||||
return other
|
return other
|
||||||
}
|
}
|
||||||
if other == nil || other.body == nil {
|
if !other.isInited() {
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,11 +167,11 @@ func (c *ColorM) Concat(other *ColorM) *ColorM {
|
|||||||
lhst := colorMIdentityTranslate
|
lhst := colorMIdentityTranslate
|
||||||
rhsb := colorMIdentityBody
|
rhsb := colorMIdentityBody
|
||||||
rhst := colorMIdentityTranslate
|
rhst := colorMIdentityTranslate
|
||||||
if other != nil {
|
if other.isInited() {
|
||||||
lhsb = other.body
|
lhsb = other.body
|
||||||
lhst = other.translate
|
lhst = other.translate
|
||||||
}
|
}
|
||||||
if c != nil {
|
if c.isInited() {
|
||||||
rhsb = c.body
|
rhsb = c.body
|
||||||
rhst = c.translate
|
rhst = c.translate
|
||||||
}
|
}
|
||||||
@ -191,11 +195,11 @@ func (c *ColorM) Add(other *ColorM) *ColorM {
|
|||||||
lhst := colorMIdentityTranslate
|
lhst := colorMIdentityTranslate
|
||||||
rhsb := colorMIdentityBody
|
rhsb := colorMIdentityBody
|
||||||
rhst := colorMIdentityTranslate
|
rhst := colorMIdentityTranslate
|
||||||
if other != nil {
|
if other.isInited() {
|
||||||
lhsb = other.body
|
lhsb = other.body
|
||||||
lhst = other.translate
|
lhst = other.translate
|
||||||
}
|
}
|
||||||
if c != nil {
|
if c.isInited() {
|
||||||
rhsb = c.body
|
rhsb = c.body
|
||||||
rhst = c.translate
|
rhst = c.translate
|
||||||
}
|
}
|
||||||
@ -216,7 +220,7 @@ func (c *ColorM) Add(other *ColorM) *ColorM {
|
|||||||
|
|
||||||
// Scale scales the matrix by (r, g, b, a).
|
// Scale scales the matrix by (r, g, b, a).
|
||||||
func (c *ColorM) Scale(r, g, b, a float32) *ColorM {
|
func (c *ColorM) Scale(r, g, b, a float32) *ColorM {
|
||||||
if c == nil || c.body == nil {
|
if !c.isInited() {
|
||||||
return &ColorM{
|
return &ColorM{
|
||||||
body: []float32{
|
body: []float32{
|
||||||
r, 0, 0, 0,
|
r, 0, 0, 0,
|
||||||
@ -249,7 +253,7 @@ func (c *ColorM) Scale(r, g, b, a float32) *ColorM {
|
|||||||
|
|
||||||
// Translate translates the matrix by (r, g, b, a).
|
// Translate translates the matrix by (r, g, b, a).
|
||||||
func (c *ColorM) Translate(r, g, b, a float32) *ColorM {
|
func (c *ColorM) Translate(r, g, b, a float32) *ColorM {
|
||||||
if c == nil || c.body == nil {
|
if !c.isInited() {
|
||||||
return &ColorM{
|
return &ColorM{
|
||||||
body: colorMIdentityBody,
|
body: colorMIdentityBody,
|
||||||
translate: []float32{r, g, b, a},
|
translate: []float32{r, g, b, a},
|
||||||
|
Loading…
Reference in New Issue
Block a user