Thread: Get Shapes
View Single Post
Old 18 October 2016, 22:24   #36
Cylon
Registered User
 
Join Date: Oct 2014
Location: Europe
Posts: 471
You can store all used bplanes one after another, as raw. You might want to crunch it a bit, probably.

Size is bmap\_ebwidth*\_height*\_depth. Addresses of planes are in bmap\data[0....7]

I am not sure about any size limit in shapes. I'll try. '\bltsize' is word; a full screen lowres 8bits is about 80kB which exceeds word boundary. But this could be blitter releated; maybe bltsize is per plane.

Code:
NEWTYPE.shape 
_pixwidth.w ;00: NULL if no shape present, 
; else pixel width of shape 
_pixheight.w ;02: pixel height of shape 
_depth.w ;04: depth, in bitplanes, of shape 
_ebwidth.w ;06: even byte width of shape 
_bltsize.w ;08: BLTSIZE of shape 
_xhandle.w ; 10: horizontal handle of shape 
_yhandle.w ; 72: vertical handle of shape 
_data.l ; 14: pointer to graphic data - Plane 1, Plane2... 
_cookie.l ; 75: pointer to one bitplane cookiecut 
_onebpmem.w ;22: memory taken by one bitplane of shape 
_onebpmemx.w ;24: memory taken by one bitplane of shape, 
; plus an extra word per bitplane per vertical pixel 
_allbpmem.w ;26: memory taken by entire shape. 
_allbpmemx.w ;28: memory taken by entire shape, plus an 
; extra word per bitplane per vertical 
; pixel 
_pad.b(2) ;30: 
;32: sizeof 
End NEWTYPE
Code:
NEWTYPE.bitmap 
_ebwidth.w ;00: even byte width of bitmap 
_height.w ;02: pixel height of bitmap 
_depth. w ; 04: depth, in bitplanes, of bitmap 
_pad.b(2) ;06: 
_data .l (8) ;08: Max of 8 pointers to bitplanes 
_pad2.b(22) ;40: 
isreal.w ;62: =0 : no bitmap present 
;<0 : bitmap present 
;>0 : bitmap present, but not ours 
;64: sizeof 
End NEWTYPE
Cylon is offline  
 
Page generated in 0.04387 seconds with 11 queries