2013-06-27 06:22:04 +08:00
//========= Copyright 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.
2013-07-18 09:26:59 +08:00
# define NDEBUG_PERSIST_TILL_NEXT_SERVER (0.0f)
2013-06-27 06:22:04 +08:00
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 , PRINTF_FORMAT_STRING 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 , PRINTF_FORMAT_STRING const char * format , . . . ) = 0 ;
virtual void AddTextOverlay ( const Vector & origin , int line_offset , float duration , PRINTF_FORMAT_STRING 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 ;
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 , PRINTF_FORMAT_STRING const char * format , . . . ) = 0 ;
virtual void AddTextOverlayRGB ( const Vector & origin , int line_offset , float duration , int r , int g , int b , int a , PRINTF_FORMAT_STRING 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 , PRINTF_FORMAT_STRING 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