Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision |
hud_library [2017/04/18 16:13] – korshun | hud_library [2017/07/09 14:24] – korshun |
---|
</code> | </code> |
| |
The only drawing functions in HUD Library are [[functions:HudDrawText]] and [[functions:HudDrawImage]]. They call [[zdoom>SetHudSize]], [[zdoom>SetFont]] and then HudMessage(Bold) every time a message is drawn. This means that if you are mixing HUD Library with HudMesasge, then, after calling one of HudDraw* functions, your SetHudSize and SetFont settings are lost and you need to set them back. | The only drawing functions in HUD Library are [[functions:HudDrawText]] and [[functions:HudDrawImage]]. They call [[zdoom>SetHudSize]], [[zdoom>SetFont]] and then [[zdoom>HudMessage]]([[zdoom>HudMessageBold|Bold]]) every time a message is drawn. This means that if you are mixing HUD Library with HudMesasge, then, after calling one of HudDraw* functions, your SetHudSize and SetFont settings are lost and you need to set them back. |
| |
===== Scaling ===== | ===== Scaling ===== |
| |
Scaling is implemented by calling SetHudSize with values that don't match those set in [[functions:HudSetVirtualSize]]. | Scaling is implemented by calling [[zdoom>SetHudSize]] with values that don't match those set in [[functions:HudSetVirtualSize]]. |
| |
| For example: |
| |
| <code> |
| HudResetState(); |
| HudSetVirtualSize(640.0, 480.0); |
| HudSetScale(0.5); |
| HudDrawText(1, "Hello") |
| </code> |
| |
| Will result in the following sequence of calls to ZDoom's functions: |
| <code> |
| SetFont("SMALLFONT"); // Default HUD Library font |
| SetHudSize(1280, 1024, 0); // To implement 0.5 scale |
| HudMessage(s:"Hello"; HUDMSG_PLAIN, 1, etc); |
| </code> |
| |
===== 3D messages ===== | ===== 3D messages ===== |
HUD Library supports an accurate projection of 3D messages. 3D messages are correctly projected in [[hud_library_state#projection_mode|both software and OpenGL renderers]]. | HUD Library supports an accurate projection of 3D messages. 3D messages are correctly projected in [[hud_library_state#projection_mode|both software and OpenGL renderers]]. |
| |
| Example: |
| |
| <code> |
| HudResetState(); |
| HudSetPoint3D(x, y, z); |
| HudSetCameraActor(0); // Set HUD Library camera to match the activator |
| HudDrawText(1, "Look here!") |
| </code> |
| |
| [[functions:HudSetPoint3D]] switches HUD Library to 3D drawing mode, while [[functions:HudSetPoint]] switches it back to 2D mode. 3D messages support all features that 2D messages support, including scaling. |
| |
| By default, 3D messages are automatically scaled with distance. You can disable this setting using [[functions:HudSetAutoDistanceScale]]. |
| |
| ===== State operations ===== |
| The whole [[HUD Library state]] can be reset to default using [[functions:HudResetState]]. It can be saved and loaded using [[functions:HudPushState]] and [[functions:HudPopState]] to a stack. The stack's maximum size is defined in [[ACSUtils_configuration#ACSUTILS_HUDLIB_SAVEDSTATES|ACSUTILS_HUDLIB_SAVEDSTATES]] ACSUtils setting. The stack can be cleared using [[functions:HudClearStateStack]]. |