diff --git a/image.go b/image.go index 68074df82..0166b2c37 100644 --- a/image.go +++ b/image.go @@ -103,8 +103,11 @@ type DrawImageOptions struct { GeoM GeoM // ColorScale is a scale of color. - // ColorScale is slightly different from ColorM's Scale in terms of alphas: - // ColorScale is applied to premultiplied-alpha colors, while ColorM is applied to straight-alpha colors. + // + // ColorScale is slightly different from colorm.ColorM's Scale in terms of alphas. + // ColorScale is applied to premultiplied-alpha colors, while colorm.ColorM is applied to straight-alpha colors. + // Thus, colorm.ColorM.Scale(r, g, b, a) equals to ColorScale.Scale(r*a, g*a, b*a, a). + // // The default (zero) value is identity, which is (1, 1, 1, 1). ColorScale ColorScale @@ -188,9 +191,12 @@ func (i *Image) adjustedRegion() graphicsdriver.Region { // DrawImage works more efficiently as batches // when the successive calls of DrawImages satisfy the below conditions: // -// - All render targets are same (A in A.DrawImage(B, op)) -// - All Blend values are same -// - All Filter values are same +// - All render targets are the same (A in A.DrawImage(B, op)) +// - All Blend values are the same +// - All Filter values are the same +// +// A whole image and its sub-image are considered to be the same, but some +// environments like browsers might not work efficiently (#2471). // // Even when all the above conditions are satisfied, multiple draw commands can // be used in really rare cases. Ebitengine images usually share an internal