ACSUtils Wiki

An ACS library for ZDoom-based ports

User Tools

Site Tools


hud_library

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
hud_library [2017/04/18 16:13] korshunhud_library [2017/07/09 14:24] korshun
Line 10: Line 10:
 </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]].
hud_library.txt · Last modified: 2017/07/09 14:26 by korshun