2008-09-15 01:07:45 -05:00
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
//
// cdll_int.h
//
// 4-23-98
// JOHN: client dll interface declarations
//
# ifndef IVDEBUGOVERLAY_H
# define IVDEBUGOVERLAY_H
# ifdef _WIN32
# pragma once
# endif
class Vector ;
# define VDEBUG_OVERLAY_INTERFACE_VERSION "VDebugOverlay003"
// When used as a duration by a server-side NDebugOverlay:: call,
// causes the overlay to persist until the next server update.
# define NDEBUG_PERSIST_TILL_NEXT_SERVER (0.01023f)
class OverlayText_t ;
abstract_class IVDebugOverlay
{
public :
virtual void AddEntityTextOverlay ( int ent_index , int line_offset , float duration , int r , int g , int b , int a , const char * format , . . . ) = 0 ;
virtual void AddBoxOverlay ( const Vector & origin , const Vector & mins , const Vector & max , QAngle const & orientation , int r , int g , int b , int a , float duration ) = 0 ;
virtual void AddTriangleOverlay ( const Vector & p1 , const Vector & p2 , const Vector & p3 , int r , int g , int b , int a , bool noDepthTest , float duration ) = 0 ;
virtual void AddLineOverlay ( const Vector & origin , const Vector & dest , int r , int g , int b , bool noDepthTest , float duration ) = 0 ;
virtual void AddTextOverlay ( const Vector & origin , float duration , const char * format , . . . ) = 0 ;
virtual void AddTextOverlay ( const Vector & origin , int line_offset , float duration , const char * format , . . . ) = 0 ;
virtual void AddScreenTextOverlay ( float flXPos , float flYPos , float flDuration , int r , int g , int b , int a , const char * text ) = 0 ;
2023-05-27 09:42:27 -07:00
virtual void AddScreenTextOverlay ( float flXPos , float flYPos , int line_offset , float flDuration , int r , int g , int b , int a , const char * text ) = 0 ;
2008-09-15 01:07:45 -05:00
virtual void AddSweptBoxOverlay ( const Vector & start , const Vector & end , const Vector & mins , const Vector & max , const QAngle & angles , int r , int g , int b , int a , float flDuration ) = 0 ;
virtual void AddGridOverlay ( const Vector & origin ) = 0 ;
virtual int ScreenPosition ( const Vector & point , Vector & screen ) = 0 ;
virtual int ScreenPosition ( float flXPos , float flYPos , Vector & screen ) = 0 ;
virtual OverlayText_t * GetFirst ( void ) = 0 ;
virtual OverlayText_t * GetNext ( OverlayText_t * current ) = 0 ;
virtual void ClearDeadOverlays ( void ) = 0 ;
virtual void ClearAllOverlays ( ) = 0 ;
virtual void AddTextOverlayRGB ( const Vector & origin , int line_offset , float duration , float r , float g , float b , float alpha , const char * format , . . . ) = 0 ;
virtual void AddTextOverlayRGB ( const Vector & origin , int line_offset , float duration , int r , int g , int b , int a , const char * format , . . . ) = 0 ;
virtual void AddLineOverlayAlpha ( const Vector & origin , const Vector & dest , int r , int g , int b , int a , bool noDepthTest , float duration ) = 0 ;
virtual void AddBoxOverlay2 ( const Vector & origin , const Vector & mins , const Vector & max , QAngle const & orientation , const Color & faceColor , const Color & edgeColor , float duration ) = 0 ;
private :
inline void AddTextOverlay ( const Vector & origin , int line_offset , float duration , int r , int g , int b , int a , const char * format , . . . ) { } /* catch improper use of bad interface. Needed because '0' duration can be resolved by compiler to NULL format string (i.e., compiles but calls wrong function) */
} ;
# endif // IVDEBUGOVERLAY_H