6 bitplane chunky2planar engine

AmigaOS specific forum
xperience2003
Enthusiast
Enthusiast
Posts: 109
Joined: Tue Oct 05, 2004 9:05 pm
Location: germany
Contact:

6 bitplane chunky2planar engine

Post by xperience2003 »

hi,

i put a very small c2p engine from sp^contraz into a pb userlib
it running fine with normal pb-screens and hardwarelib copperlist screens

sample prog:

Code: Select all

;  Chunky example new c2p 6bpl screen
; ***********************************

#Width  = 320
#Height = 200

initmemorybank(1)
InitPalette(1)
InitBitMap(1)
initScreen(0)


WbStartup() 
programpriority(20)

bm0.l=AllocateLinearBitMap(0,#Width,#Height,6)
*cb0.l=AllocateMemoryBank(0,#Width*#Height,#memf_clear)

If OpenScreen(0,320,200,6,0)

;we create the palette from our data
 CreatePalette(0,64)

For i=0 To 31
  palettergb(i,i*8,i*8,255)
  PaletteRgb(i+32,255-(i*8),0,255-(i*8))
Next

DisplayPalette(0,ScreenID())
 showbitmap(0,ScreenID(),0,0)
UseBitMap(0) ;chunky bitmap
*bmappointer=BitMapID()
*planepointer=PeekL(*bmappointer+8)
db=1   
Repeat
;
;VWait()
    db=1-db
   w.l=w+1 :If w>359:w=0:EndIf
   sini.l = PeekL(?sintable+(w*4))
   cosi.l = PeekL(?costable+(w*4))

   For x = 20 To 240 Step 2
     For y = 20 To 180 Step 2
       dx=x-110
       dy=y-90
       z=800+(y<<3)
       
     u.w=(dx*cosi-dy*sini)/z
     v.w=(dx*sini+dy*cosi)/z
     u&127: v&127
     colo.w=Xor(u,v);Peekb(?color+((u*128)+v))
     ypos=y+db
     *addy=*cb0+(x+(ypos*320))
     C2Pset2plot(*addy,colo)    
     Next
   Next
 
   c2p6bpl(*cb0,*planepointer)
      
 Until Joy1Button()

 CloseScreen(0)
endif

End

 
sintable:
IncludeBinary "Work:codes/pbchunkylib/dat/sintable"
costable:
IncludeBinary "Work:codes/pbchunkylib/dat/costable"


screeny
Image


download userlib, datas and example

at the moment just 2 comands plot and render
maybe more will come later


HAVE FUN =)