So In Inside Playdate the function
playdate.graphics.setDitherPattern(white, [ditherType]) is described as follow:
white should be a value in the range 0.0 (completely black) to 1.0 (completely white).
I read it as 0 will create a fully black pattern and 1 a fully white pattern and in between will be a mix of black and white.
It seems the function is actually taking the color set by
playdate.graphics.setColor() and set the pattern in the alpha (which is great).
I feel the documentation should be a bit clearer.
I also noticed that
playdate.graphics.getColor() return max float after a pattern has been set.
playdate.graphics.setDitherPattern( 0.5 ) print( "getColor:", playdate.graphics.getColor() )
return a value like “pattern” or playdate.graphics.kPattern would be more appropriate.
And here another related issue, because
setDitherPattern() is using the current color, if you call the function multiple time in a row, it might look like it fails because it seems it will default to the color black when the current color is a pattern. This is an undocumented behavior that look like a bug in practice.
Ideally the current color should be kept internally but getColor() should return this is a pattern when a pattern is set. On a related note, I think having a function to remove the pattern (like
playdate.graphics.setPattern() without parameters) would be useful.