Blitz:Object types
The following NewTypes define the structure of the internal Blitz objects. This can allow you to access the individual properties of many objects directly. In order to use these newtypes, include the resident file Blitzlibs:Bb2objtypes.res in the residents list in the compiler options. This list builds upon the definitions found in Blitzlibs:Bb2objtypes.bb. (The BlitzLibs: assign is not used for AmiBlitz 3, relevant files are in the BlitzLibs drawer inside the AmiBlitz drawer.)
Please note that these are different to the OS object structures, which are defined in the C includes of the relevant SDK, and contained in the BlitzLibs:amigalibs.res file.
Contents
rgbcomp
NEWTYPE.rgbcomp
_red.l ;left justified red component _green.l ;left justified green component _blue.l ;left justified blue component
End NEWTYPE
palette
NEWTYPE.palette ;size=128
*_pdata.palettedata ;00: pointer to palettedata null=none _numcols.w ;04: num cols present in palettedata. _cycle.cycleinfo[14] ;06: below is colour cycling info. _pad.b[10]
End NEWTYPE
cycleinfo
NEWTYPE.cycleinfo
_lowcol.w ;06: low colour for cycle range 0=end _hicol.w ;08: high colour for cycle range. _speed.w ;10: speed of cycle : 16384 = max speed sign=direction _var.w ;12: cvariable speed is added to.
End NEWTYPE
palettedata
NEWTYPE .palettedata
_numcols.w ;same as palette/_numcols. _zero.w ;for compatibility with graphics lib LoadRGB32. _rgbs.rgbcomp[256] ;256 is the max the amount it will vary _zero2.l ;for graphics lib too.
End NEWTYPE
bitmap
NEWTYPE.bitmap ;size=64
_ebwidth.w[0] ;00: for compatability. _linemod.w ;00: value to get from one scanline to next. _height.w ;02: currently pixel height - but open to commodore 'enhancement'. _depth.w ;04: number of bitplanes. _pad.b[2] ;06: nothing. _data.l[8] ;08: actual bitplane pointers. _pad2.b[12] ;40: zilch. _flags.w ;0=normal bitmap, <0=interleaved. _bitplanemod.w ;value to get from one bitplane to next. MAY BE 0! _xclip.w ;pixel width for render clipping _yclip.w ;pixel height for render clipping _cclip.w ;number of colours available on bitmap ( = 2^_depth) _isreal.w ;0=no bitmap here, <0=blitz created bitmap, >0=borrowed
End NEWTYPE
module
NEWTYPE.module ;size=8
_mt_data.l ;00 else pointer to module data null=nomod _length.l ;04 length of module data
End NEWTYPE
blitzfont
NEWTYPE.blitzfont ;size=4
_font.l ;00 pointer to GFX TextFont struct null=nofont
End NEWTYPE
shape
NEWTYPE.shape ;size=32
_pixwidth.w ;00: pixel width of shape null=noshape _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 ;12: vertical handle of shape _data.l ;14: pointer to graphic data - Plane1, Plane2... _cookie.l ;18: 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:
End NEWTYPE
tape
NEWTYPE.tape ;size=16
_ielist.l ;00: pointer to list of InputEvents null=none _timevalhi.l ;04: high 4 bytes of timeval of first event _timevallo.l ;08: low 4 bytes of timeval of first event _pad.b[4] ;12:
End NEWTYPE
stencil
NEWTYPE.stencil ;size=8
_ebwidth.w ;00: NULL if no stencil present else even byte width _height.w ;02: height of stencil _data.l ;04: pointer to one bitplane of stencil data
End NEWTYPE
queueitem
NEWTYPE.queueitem ;size=16
_mod.w ;00: blitter BLTDMOD value _bltsize.w ;02: blitter BLTSIZE value _depth.w ;04: depth, in bitplanes, of bitmap _bitmap.l ;06: bitmap object QBLIT was made to _offset.l ;10: offset into bitmap QBLIT was made at _pad.b[2]
End NEWTYPE
queue
NEWTYPE.queue ;size=16
*_current.queueitem ;00: pointer to where to add next QBLIT QueueItem *_first.queueitem ;04: pointer to start of .QueueItem block null=none _length.l ;08: Length of allocated queue memory _pad.b[4] ;12:
End NEWTYPE
fielditem
NEWTYPE.fielditem ;size=16
*_next.fielditem ;00: For linked list. _data.l ;04: pointer to where data comes from or goes to _lenth.l ;08: length of above data _pad.b[4]
End NEWTYPE
file
NEWTYPE.file ;size=32
_handle.l ;00: NULL if no file present else dos file handle of file _reclen.l ;04: Byte length of 'Fields' for this file _pad.b[4] ;08: *_fields.fielditem ;12: list of field items _buffer.l ;16: buffer for my own read/write routines _bufflen.w ;20: length of above buffer _flags.w ;22: =0 : buffer not altered, ; <0 : buffer written to, ; >0 : seek necessary when buffer flushed _valid.w ;24: number of valid bytes in buffer _seekoff.w ;26: seek (position) offset into buffer _seek.l ;28: dos seek of start of buffer
End NEWTYPE
buffer
NEWTYPE.buffer ;size=16
_current.l ;00: Pointer to current point in buffer to add BBLIT info to. _first.l ;04: else pointer to beginning of buffer memory. null=none _length.l ;08: length in bytes of buffer memory. _pad.b[4] ;12:
End NEWTYPE
gadgetlist
NEWTYPE.gadgetlist ;size=4
_gadgets.l ;00: pointer to INTUITION gadget list null=none
End NEWTYPE
slice
NEWTYPE.slice ;size=32
_ypos.w ;00: vertical position of slice null=noslice _flags.w ;02: slice flags _numbitplanes.w ;04: number of bitplanes available in slice _numsprites.w ;06: number of sprites available in slice _numcolours.w ;08: number of colours available in slice _bitplanes.l ;10: pointer to address in copper list of bitplane MOVEs _sprites.l ;14: pointer to address in copper list of sprite MOVEs _colours.l ;18: pointer to address in copper list of colour MOVEs _BPLCON1.l ;22: pointer to address in copper list of word MOVEd to BPLCON1 _BPLCON2.l ;26: pointer to address in copper list of word MOVEd to BPLCON2 _pad.b[2] ;30:
End NEWTYPE
sound
NEWTYPE.sound ;size=16
_data.l ;00: NULL if no sound present, else pointer to sound data _period.w ;04: period of sound _length.w ;06: length, in words, of sound data _loop.l ;08: repeat to loop position of sound _looplength.w ;12: length of looping section, in words _pad.b[2] ;14:
End NEWTYPE
sprite
NEWTYPE.sprite ;size=16
_data.l ;00: NULL if no sprite present, else pointer to sprite data _height.w ;04: height of sprite, in pixels, plus an extra 1 _channels.w ;06: number of sprite channels required to display sprite _flags.w ;08: low byte = pix width of sprite, hi bit = 1 if 16 colour sprite _nextoff.w ;10: difference in bytes between seperate sprites for separate sprite channels _xhandle.w ;12: horizontal handle for sprite _yhandle.w ;14: vertical handle for sprite
End NEWTYPE
window
NEWTYPE.window ;size=16
_window.l ;00: pointer to Intuition window struct null=none _cursx.w ;04: horizontal cursor position in window _cursy.w ;06: vertical cursor position in window _pointer.l ;08: pointer optional window pointer sprite data. _length.l ;12: length of window pointer sprite data.
End NEWTYPE
screen
NEWTYPE.screen ;size=4
_screen.l ;00 pointer to INTUITION screen struct null=noscreen
End NEWTYPE
NEWTYPE.menulist ;size=4
_menu.l ;00 pointer to INTUITION menu list null=nomenu
End NEWTYPE
intuifont
NEWTYPE.intuifont ;size=16
_fontname.l ;00 Pointer to name of font _ysize.w ;04 height of font _pad.w ;06 _font.l ;08 pointer to GFX TextFont struct null=none _pad2.b[4] ;12
End NEWTYPE
coplist
Note: This may not be included in some bb2objtypes.res files...
NEWTYPE .coplist
size.l ;0 = not initialised coppos.l ;location in chipmem colors.l sprites.l bpcons.l bplanes.l dot.l customs.l dob.l numbp.w:colpokes.w ;limits fetchwid.w:xand:xshift ;for show calculations (3 words) ypos.w:height:res numsprites.w:numcols:numcustoms aga.w ;24bit=$8000 fetch = $00,$10,$20,$30 resshift.w ;lo,hi,shi = 2 1 0 setup.w ;lines taken for setup cblow.w ;if custom goes below 256 sfetch.w:spres:spif:spwid:sspwid ;sprite mode for display
End NEWTYPE