Neil & set_mix_table
- Posted by Tor Bernhard Gausen <tor.gausen at C2I.NET> Jul 11, 1999
- 452 views
Somebody please help me with this, I=92m trying to use the mixing table in Neil, but I have a problem with th= e =93set_mix_table=94 procedure. Here=92s what I=92m trying to do: -- begin code include neil.e object junk sequence pal integer size size =3D 64 -- size of a very dull sprite SCREEN_W =3D 640 SCREEN_H =3D 480 -- create a black and white palette pal =3D repeat(0,256) for n=3D1 to 256 do pal[n] =3D (n-1) + #100 * (n-1) + #10000 * (n-1) end for if gfx_mode(SCREEN_W, SCREEN_H,8) then puts(1,"gfx problems") abort(1) end if set_all_palette(pal) constant virtual_1 =3D virtual_screen(size, size), -- source virtual_2 =3D virtual_screen(SCREEN_W, SCREEN_H), --destination mix_table =3D allocate(#10000) -- create a mixing table with an 'average' functionality for y=3D0 to 255 do for x=3D0 to 255 do poke (mix_table + y * #100 + x, floor((x+y) / 2) ) end for end for -- and now... set_mix_table(virtual_1, mix_table) -- ERROR: Invalid sprite handle! -- if I comment out the above command, the routine =91works=92 -- but the table seems to be random memory =91garbage=92. -- make a very dull sprite for y=3D1 to size do for x=3D1 to size do poke (virtual_1 + (y-1) * size+(x-1), 127) end for end for while get_key() =3D -1 do -- copy the sprite to the big virtual screen using mixer_blit do_command( mixer_blit, {virtual_1, 0,0, size, size}, {virtual_2,rand(SCREEN_W)-5, rand (SCREEN_H)-5}) -- copy the big virtual screen to the physical screen do_command( screen_blit, {virtual_2, 0,0, SCREEN_W, SCREEN_H}, {screen, 0,0}) end while -- end of code Thanks in advance, Tor