Skip to content

containment

Thomas edited this page Dec 22, 2019 · 2 revisions

What is containment?
Containment in uiz is making sure that objects don't draw outside the locations they are supposed to draw.

For example, you might have an object with a size of 500x500, inside a frame that is only 100x100.
Uiz will then detect that there is a bigger object inside another smaller object.
It will then make sure that the big object won't draw outside the canvas of the frame.

How does containment work?
First uiz checks if an object exceeds any boundaries. This check is partly done in the uiz_fix functions.
If the object is completely outside of boundaries and shouldn't be visible, the drawing of the object is disabled.
If the object is partly within boundaries, and partly outside of them, a containment method will be used.
There are 2 ways of containing something in uiz: shaders and surfaces.
Shaders are the default way to handle containment as it is faster and doesn't use any extra ram.
However, some systems don't support shaders or you are using code that isn't compatible with shaders.
In such cases uiz will use surfaces instead of shaders to contain objects.
For containment to work, the code "if uiz_cntn() then{" at the beginning, and "uiz_containend()}" at the end of the draw event of an uiz object is needed.
Please don't put any if statements higher up, as there is still some important code within the uiz_cntn() that could conflict with other objects if not called.

Manipulating containment.
Sometimes you are using shaders yourself and you don't want a certain object to use shaders.
In that case you can set the variable uiz_shader to 0. This variable must be set on an object and will only apply to that object, not it's children.
You can also force containment using the variable forcecontain on any uiz object.

Wiki pages

🏑Home / General
πŸ“ƒTutorials
πŸ‘ͺ Parent
↕️ Positioning
πŸ›  Fixing & Updating
πŸ• Depth
πŸ“ƒ Templates and Examples
πŸŒ† Background
πŸ“‡ Structures
🎈 Objects

obj_uiZ_3waybutton
obj_uiZ_button
obj_uiZ_checkbox
obj_uiZ_clock
obj_uiZ_colorbox
obj_uiZ_cover
obj_uiZ_drawdslist obj_uiZ_dropdown
obj_uiZ_easybutton
obj_uiZ_frame
obj_uiZ_framescrollbar
obj_uiZ_functionbar
obj_uiZ_gradientsquare
obj_uiZ_gradientroundrect
obj_uiZ_gridlist
obj_uiZ_huesquare
obj_uiZ_loadingbar
obj_uiZ_loadingcircle
obj_uiZ_menubutton
obj_uiZ_mousemenu
obj_uiZ_radiobox
obj_uiZ_rotator
obj_uiZ_slider
obj_uiZ_scrollbar
obj_uiZ_slider_2col
obj_uiZ_slickslider
obj_uiZ_slideframe
obj_uiZ_sprbutton
obj_uiZ_spriteanimationbutton
obj_uiZ_spritecounter
obj_uiZ_stringbox
obj_uiZ_sliderstruct
obj_uiZ_surfacecanvas
obj_uiZ_sprite
obj_uiZ_square
obj_uiZ_squarebutton
obj_uiZ_swipicon
obj_uiZ_switch
obj_uiZ_tabslider
obj_uiZ_tabs
obj_uiZ_treelist
obj_uiZ_text
obj_uiZ_text_background
obj_uiZ_textarea
obj_uiZ_valuebox


🎈 Your own objects
🚫 Destroy
🐭 Mouse
πŸ’» Windows (uiz)
🌌 Animations
❓ General
πŸ“’ Numbers
πŸ“’ Strings
✏️ Draw
🚩 Popup
πŸ“‚ Files
πŸ’» Windows (os)
Clone this wiki locally