[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: 0xff000000

Sander Land

1/30/2007 11:25:00 AM

On 1/30/07, SonOfLilit <sonoflilit@gmail.com> wrote:
> Hello.
>
> I am running on a 32 bit machine.
>
> I need to pass SDL the unsigned long 0xff000000 as a mask.
>
> s = SDL::Surface.new_from(image_data, screen.w, screen.h, 32, screen.w*4,
> 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff0000000)
>
> fails with "bignum too big to convert into `unsigned long' (RangeError)"
>
> which is very understandable, considering that Ruby uses the MSB of a VALUE
> and thus Fixnums can only be 31bit on 32bit machines.
>
> What's the best idiom to get the mask so I can pass it?
>
> Thanks,
>
> Aur
>
>

The number 0xff0000000 in your code has seven zeroes instead of six,
so it's too big to fit in 32 bits.