| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| hud_library [2017/04/18 13:13] – korshun | hud_library [2017/07/09 11:26] (current) – 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 can be cleared using [[functions:HudClearStateStack]]. |