//========= 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. #define NDEBUG_PERSIST_TILL_NEXT_SERVER (0.0f) 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