You could also just let those 2 functions return exactly what they did
before, no color obj for them...

On Wed, Jun 17, 2009 at 2:02 PM, Lenard Lindstrom <le...@telus.net> wrote:

> Hi Tyler (and Ian),
>
> In most cases colors are length 4. But in Pygame 1.8.1 and earlier the
> Surface palette methods get_palette and get_palette_at return 3-tuples.
> Pygame 1.9 will return color instances instead. For compatibility the se
> color instances must also be length 3. As for a default alpha, that is 255,
> which is now consistent throughout Pygame.
>
> Lenard
>
>
> Tyler Laing wrote:
>
>> Hi Lenard,
>>
>> But are there any situations where one MUST have 3 elements colors only?
>> If not, then just fill in a reasonable default value for times when there
>> isn't an alpha value for the picture.
>>
>> -Tyler
>>
>> On Wed, Jun 17, 2009 at 9:31 AM, Lenard Lindstrom <le...@telus.net<mailto:
>> le...@telus.net>> wrote:
>>
>>    Hi Tyler,
>>
>>    Well, one wants 4 element colors when working with per-pixel-alpha
>>    surfaces.
>>
>>    Lenard
>>
>>
>>    Tyler Laing wrote:
>>
>>        Why don't we just fill in a full value of 255 for all the
>>        cases where it returns 3 values? If we make every call return
>>        four values, and warn about this in the documentation, it
>>        becomes very consistent.
>>
>>        -Tyler
>>
>>        On Tue, Jun 16, 2009 at 11:52 PM, Lenard Lindstrom
>>        <le...@telus.net <mailto:le...@telus.net>
>>        <mailto:le...@telus.net <mailto:le...@telus.net>>> wrote:
>>
>>           René Dudfield wrote:
>>
>>               On Wed, Jun 17, 2009 at 4:29 PM, Lenard
>>               Lindstrom<le...@telus.net <mailto:le...@telus.net>
>>        <mailto:le...@telus.net <mailto:le...@telus.net>>> wrote:
>>                                 René Dudfield wrote:
>>                                           Hi,
>>
>>                       one issue with the new Color type is unpacking to
>>                       r,g,b or r,g,b,a.
>>
>>                       In some places Color is assumed to return
>>        (r,g,b) and
>>                       others
>>                       (r,g,b,a), and now many things return a Color
>>        rather
>>                       than a tuple.
>>
>>                       So I want to change Color to unpack to r,g,b,a
>>        or r,g,b.
>>
>>                       r,g,b = pygame.Color(1,2,3,4)
>>                       r,g,b,a = pygame.Color(1,2,3,4)
>>
>>                       Anyone have an idea how this can work?  Either
>>        in C or
>>                       python?
>>
>>                       This is to keep backwards compatibility.
>>
>>
>>                       cheers,
>>
>>                                             Hi René,
>>
>>                   Are there cases where this is breaking code? For
>>        the most
>>                   part I believe
>>                   Pygame functions returned 4-tuples. So Color is just
>>                   pretty much a drop-in
>>                   replacement. If a program is using tuples to
>>        declare color
>>                   values then the
>>                   size is already known and unpacking is not a
>>        problem. It is
>>                   Surface.get_palette and get_palette_at, which
>>        originally
>>                   returned 3-tuples,
>>                   where we run into problems. So here are the choices
>>        I see.
>>                   One, just accept
>>                   that the new get_palette and get_palette_at will break
>>                   things, just as any
>>                   program that tries to use a color return value as a
>>                   dictionary key will now
>>                   break. How many programs actually use color palettes
>>                   anyway? Two, give Color
>>                   a size property. If alpha is set None it becomes
>>        length 3.
>>                   But then how does
>>                   one represent this internally without adding
>>        another field
>>                   to the Color C
>>                   structure? Declare the color component values as C
>>        ints?
>>                   Three, create a new
>>                   Color subtype of length 3 having a fixed alpha of
>>        255. I'm
>>                   not happy with
>>                   any of the choices but prefer three. Any other ideas?
>>
>>                   Lenard
>>
>>
>>
>>               hi,
>>
>>               yeah for example in solarwolf:
>>                File "solarwolf-1.5/code/gamemenu.py", line 70, in
>>               load_game_resources
>>                  pal = [(g,g,b) for (r,g,b) in origpal]
>>
>>                File "solarwolf-1.5/code/objshot.py", line 28, in
>>               load_game_resources
>>                  for (r,g,b) in origpal]
>>
>>
>>               hrmm.  I think a 3 element Color subtype might be the
>>        way to go.
>>               Maybe we don't even need a subtype, but just a length
>>        property
>>               that
>>               can be 1,2,3, or 4?  As you say get_palette(_at) could
>>        return
>>               len 3
>>               Colors.
>>
>>               If it could unpack to 3, or 4 depending on the number of
>>               elements on
>>               the left, I think I'd prefer that though.
>>
>>
>>
>>                         Hi,
>>
>>           Well yes, but now you are have something that is basically an
>>           integer array, including the additional overhead.
>>
>>
>>
>

Reply via email to