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(...)
#define drw_debug_polygon(...)
#define drw_debug_bbox(...)
#define drw_debug_sphere(...)
#define drw_debug_point(...)
#define drw_debug_matrix(...)
#define drw_debug_matrix_as_bbox(...)
#define drw_print(...)
#define drw_print_hex(...)
#define drw_print_binary(...)
#define drw_print_no_endl(...)
#define drw_print_id(v_)
#define drw_print_id_no_endl(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 ( ...)
Value:
DRW_debug_get()->draw_bbox(__VA_ARGS__)
void draw_bbox(const BoundBox &bbox, const float4 color={1, 0, 0, 1})
blender::draw::DebugDraw * DRW_debug_get()

Definition at line 29 of file draw_debug.hh.

◆ drw_debug_line

#define drw_debug_line ( ...)
Value:
DRW_debug_get()->draw_line(__VA_ARGS__)
void draw_line(float3 v1, float3 v2, float4 color={1, 0, 0, 1})

Definition at line 27 of file draw_debug.hh.

◆ drw_debug_matrix

#define drw_debug_matrix ( ...)
Value:
DRW_debug_get()->draw_matrix(__VA_ARGS__)
void draw_matrix(const float4x4 &m4)

Definition at line 32 of file draw_debug.hh.

◆ drw_debug_matrix_as_bbox

#define drw_debug_matrix_as_bbox ( ...)
Value:
void draw_matrix_as_bbox(const float4x4 &mat, const float4 color={1, 0, 0, 1})

Definition at line 33 of file draw_debug.hh.

Referenced by blender::draw::View::compute_visibility(), and blender::eevee::ShadowTileMap::debug_draw().

◆ drw_debug_point

#define drw_debug_point ( ...)
Value:
DRW_debug_get()->draw_point(__VA_ARGS__)
void draw_point(const float3 center, float radius=0.01f, const float4 color={1, 0, 0, 1})

Definition at line 31 of file draw_debug.hh.

◆ drw_debug_polygon

#define drw_debug_polygon ( ...)
Value:
DRW_debug_get()->draw_polygon(__VA_ARGS__)
void draw_polygon(Span< float3 > face_verts, float4 color={1, 0, 0, 1})

Definition at line 28 of file draw_debug.hh.

◆ drw_debug_sphere

#define drw_debug_sphere ( ...)
Value:
DRW_debug_get()->draw_sphere(__VA_ARGS__)
void draw_sphere(const float3 center, float radius, const float4 color={1, 0, 0, 1})

Definition at line 30 of file draw_debug.hh.

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

◆ drw_print

#define drw_print ( ...)
Value:
DRW_debug_get()->print(__VA_ARGS__)
void print(StringRefNull str, Ts... args)

Definition at line 34 of file draw_debug.hh.

◆ drw_print_binary

#define drw_print_binary ( ...)
Value:
DRW_debug_get()->print_binary(__VA_ARGS__)
void print_binary(const T &value)

Definition at line 36 of file draw_debug.hh.

◆ drw_print_hex

#define drw_print_hex ( ...)
Value:
DRW_debug_get()->print_hex(__VA_ARGS__)
void print_hex(const T &value)

Definition at line 35 of file draw_debug.hh.

◆ drw_print_id

#define drw_print_id ( v_)
Value:
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_)
Value:
DRW_debug_get()->print_no_endl(#v_, "= ", v_)
void print_no_endl(std::string arg)

Definition at line 41 of file draw_debug.hh.

◆ drw_print_no_endl

#define drw_print_no_endl ( ...)
Value:

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 DST.