FreeBSD Manual Pages
image_framesetsize(3) Arcan Lua API image_framesetsize(3) NAME image_framesetsize - Allocate slots for multi-frame objects. SYNOPSIS nil image_framesetsize( vid, int:count ) image_framesetsize( vid, int:count, int:mode ) DESCRIPTION Objects can have a frameset associated with them. A frameset is com- prised of references to vstores that have been acquired from other pre- existing objects, including the source object itself. This mechanism works similarly to image_sharestorage and the lifecycle of the frameset association is tied to the supplied vid . This can be used for applica- tions e.g. multitexturing, animations, texturing complex 3D models and as a round-robin storage for dynamic data sources (effectively giving access to previous frames). mode is FRAMESET_SPLIT , other options are FRAMESET_MULTITEXTURE . FRAMESET_SPLIT only has one active frame, like any other video object (and then relies on framecyclemode or manu- ally selecting visible frame by explicitly calling image_active_frame). FRAMESET_MULTITEXTURE tries to split the frameset across multiple tex- ture units. These can be accessed in a shader through the samplers map_tu0, map_tu1 etc. NOTES 1 A frameset associated with a 3D model will be split across each mesh, where a single mesh can consume multiple frameset slots, unless the source is a cubemap. 2 Once initialized with a frameset, the size of the frameset can only increase during the life-cycle of the object with the spe- cial case of setting a frameset to 1 which will drop and reset the object to only have one active frame and revert to normal mapping mode. 3 The initial state of frameset slots for vid is that all refer- ence the default vstore for the object. 4 A persistant object cannot have a frameset, associating a frame- set with an objects disqualifies the object to be marked as per- sistant. 5 frameset support only applies to objects with a normal, textured backing store. EXAMPLE function image_framesetsize0() a = fill_surface(32, 32, 255, 0, 0); image_framesetsize(a, 3); b = fill_surface(32, 32, 0, 255, 0); c = fill_surface(32, 32, 0, 0, 255); set_image_as_frame(a, b, 1); set_image_as_frame(a, c, 2); image_framecyclemode(1, -1); show_image(a); end SEE ALSO: set_image_as_frame(3) image_framesetsize(3) image_framecyclemode(3) im- age_active_frame(3) image April 2025 image_framesetsize(3)
NAME | SYNOPSIS | DESCRIPTION | NOTES | EXAMPLE | SEE ALSO:
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=image_framesetsize&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>