Blender V4.3
draw_debug.hh File Reference

Simple API to draw debug shapes and log in the viewport. More...

#include "BLI_math_vector_types.hh"
#include "BLI_string_ref.hh"
#include "BLI_vector.hh"
#include "DNA_object_types.h"
#include "DRW_gpu_wrapper.hh"

Go to the source code of this file.

Classes

class  blender::draw::DebugDraw
 

Namespaces

namespace  blender
 
namespace  blender::draw
 

Macros

#define drw_debug_line(...)   DRW_debug_get()->draw_line(__VA_ARGS__)
 
#define drw_debug_polygon(...)   DRW_debug_get()->draw_polygon(__VA_ARGS__)
 
#define drw_debug_bbox(...)   DRW_debug_get()->draw_bbox(__VA_ARGS__)
 
#define drw_debug_sphere(...)   DRW_debug_get()->draw_sphere(__VA_ARGS__)
 
#define drw_debug_point(...)   DRW_debug_get()->draw_point(__VA_ARGS__)
 
#define drw_debug_matrix(...)   DRW_debug_get()->draw_matrix(__VA_ARGS__)
 
#define drw_debug_matrix_as_bbox(...)   DRW_debug_get()->draw_matrix_as_bbox(__VA_ARGS__)
 
#define drw_print(...)   DRW_debug_get()->print(__VA_ARGS__)
 
#define drw_print_hex(...)   DRW_debug_get()->print_hex(__VA_ARGS__)
 
#define drw_print_binary(...)   DRW_debug_get()->print_binary(__VA_ARGS__)
 
#define drw_print_no_endl(...)   DRW_debug_get()->print_no_endl(__VA_ARGS__)
 
#define drw_print_id(v_)   DRW_debug_get()->print(#v_, "= ", v_)
 
#define drw_print_id_no_endl(v_)   DRW_debug_get()->print_no_endl(#v_, "= ", v_)
 

Functions

blender::draw::DebugDrawDRW_debug_get ()
 

Detailed Description

Simple API to draw debug shapes and log in the viewport.

Both CPU and GPU implementation are supported and symmetrical (meaning GPU shader can use it too, see common_debug_print/draw_lib.glsl).

NOTE: CPU logging will overlap GPU logging on screen as it is drawn after.

Definition in file draw_debug.hh.

Macro Definition Documentation

◆ drw_debug_bbox

#define drw_debug_bbox ( ...)    DRW_debug_get()->draw_bbox(__VA_ARGS__)

Definition at line 29 of file draw_debug.hh.

◆ drw_debug_line

#define drw_debug_line ( ...)    DRW_debug_get()->draw_line(__VA_ARGS__)

Definition at line 27 of file draw_debug.hh.

◆ drw_debug_matrix

#define drw_debug_matrix ( ...)    DRW_debug_get()->draw_matrix(__VA_ARGS__)

Definition at line 32 of file draw_debug.hh.

◆ drw_debug_matrix_as_bbox

#define drw_debug_matrix_as_bbox ( ...)    DRW_debug_get()->draw_matrix_as_bbox(__VA_ARGS__)

◆ drw_debug_point

#define drw_debug_point ( ...)    DRW_debug_get()->draw_point(__VA_ARGS__)

Definition at line 31 of file draw_debug.hh.

◆ drw_debug_polygon

#define drw_debug_polygon ( ...)    DRW_debug_get()->draw_polygon(__VA_ARGS__)

Definition at line 28 of file draw_debug.hh.

◆ drw_debug_sphere

#define drw_debug_sphere ( ...)    DRW_debug_get()->draw_sphere(__VA_ARGS__)

Definition at line 30 of file draw_debug.hh.

Referenced by blender::eevee::Light::debug_draw().

◆ drw_print

#define drw_print ( ...)    DRW_debug_get()->print(__VA_ARGS__)

Definition at line 34 of file draw_debug.hh.

◆ drw_print_binary

#define drw_print_binary ( ...)    DRW_debug_get()->print_binary(__VA_ARGS__)

Definition at line 36 of file draw_debug.hh.

◆ drw_print_hex

#define drw_print_hex ( ...)    DRW_debug_get()->print_hex(__VA_ARGS__)

Definition at line 35 of file draw_debug.hh.

◆ drw_print_id

#define drw_print_id ( v_)    DRW_debug_get()->print(#v_, "= ", v_)

Definition at line 40 of file draw_debug.hh.

◆ drw_print_id_no_endl

#define drw_print_id_no_endl ( v_)    DRW_debug_get()->print_no_endl(#v_, "= ", v_)

Definition at line 41 of file draw_debug.hh.

◆ drw_print_no_endl

#define drw_print_no_endl ( ...)    DRW_debug_get()->print_no_endl(__VA_ARGS__)

Definition at line 37 of file draw_debug.hh.

Function Documentation

◆ DRW_debug_get()

blender::draw::DebugDraw * DRW_debug_get ( )

Ease of use function to get the debug module. TODO(fclem): Should be removed once DRWManager is no longer global. IMPORTANT: Can return nullptr if storage buffer is not supported.

Definition at line 601 of file draw_debug.cc.

References DRWManager::debug, and DST.