Blitz:Object types

From Amiga Coding
Jump to: navigation, search

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

menulist

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
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox