Blender V4.5
draw_select_buffer.cc File Reference
#include <cfloat>
#include "BLI_math_matrix.hh"
#include "MEM_guardedalloc.h"
#include "BLI_array_utils.h"
#include "BLI_bitmap.h"
#include "BLI_bitmap_draw_2d.h"
#include "BLI_math_matrix.h"
#include "BLI_rect.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_view3d_types.h"
#include "GPU_framebuffer.hh"
#include "GPU_select.hh"
#include "DEG_depsgraph.hh"
#include "DEG_depsgraph_query.hh"
#include "DRW_engine.hh"
#include "DRW_render.hh"
#include "DRW_select_buffer.hh"
#include "../engines/select/select_engine.hh"

Go to the source code of this file.

Classes

struct  PolyMaskData
struct  SelectReadData

Typedefs

using int2

Functions

Buffer of select ID's
uintDRW_select_buffer_read (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const rcti *rect, uint *r_buf_len)
Select Bitmap from ID's

Given a buffer of select ID's, fill in a booleans (true/false) per index. BLI_bitmap is used for memory efficiency.

uintDRW_select_buffer_bitmap_from_rect (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const rcti *rect, uint *r_bitmap_len)
uintDRW_select_buffer_bitmap_from_circle (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const int center[2], const int radius, uint *r_bitmap_len)
static void drw_select_mask_px_cb (int x, int x_end, int y, void *user_data)
uintDRW_select_buffer_bitmap_from_poly (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const Span< int2 > poly, const rcti *rect, uint *r_bitmap_len)
Find Single Select ID's

Given a buffer of select ID's, find the a single select id.

uint DRW_select_buffer_sample_point (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const int center[2])
static bool select_buffer_test_fn (const void *__restrict value, void *__restrict userdata)
uint DRW_select_buffer_find_nearest_to_point (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const int center[2], const uint id_min, const uint id_max, uint *dist)
Object Utils
bool DRW_select_buffer_elem_get (const uint sel_id, uint &r_elem, uint &r_base_index, char &r_elem_type)
uint DRW_select_buffer_context_offset_for_object_elem (Depsgraph *depsgraph, Object *object, char elem_type)
Context
void DRW_select_buffer_context_create (Depsgraph *depsgraph, const blender::Span< Base * > bases, short select_mode)

Detailed Description

Utilities to read id buffer created in select_engine.

Definition in file draw_select_buffer.cc.

Typedef Documentation

◆ int2

Definition at line 601 of file BLI_math_vector_types.hh.

Function Documentation

◆ DRW_select_buffer_bitmap_from_circle()

uint * DRW_select_buffer_bitmap_from_circle ( Depsgraph * depsgraph,
ARegion * region,
View3D * v3d,
const int center[2],
int radius,
uint * r_bitmap_len )
Parameters
centerCircle center.
radiusCircle radius.
r_bitmap_lenNumber of indices in the selection id buffer.
Returns
a BLI_bitmap the length of r_bitmap_len or NULL on failure.

Definition at line 177 of file draw_select_buffer.cc.

References BLI_assert, BLI_BITMAP_ENABLE, BLI_BITMAP_NEW, DRW_select_buffer_bitmap_from_circle(), DRW_select_buffer_read(), DRW_select_engine_context_get(), SELECTID_Context::max_index_drawn_len, MEM_freeN(), rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

Referenced by DRW_select_buffer_bitmap_from_circle(), mesh_circle_select(), paint_facesel_circle_select(), and paint_vertsel_circle_select().

◆ DRW_select_buffer_bitmap_from_poly()

◆ DRW_select_buffer_bitmap_from_rect()

uint * DRW_select_buffer_bitmap_from_rect ( Depsgraph * depsgraph,
ARegion * region,
View3D * v3d,
const rcti * rect,
uint * r_bitmap_len )

◆ DRW_select_buffer_context_create()

◆ DRW_select_buffer_context_offset_for_object_elem()

◆ DRW_select_buffer_elem_get()

◆ DRW_select_buffer_find_nearest_to_point()

uint DRW_select_buffer_find_nearest_to_point ( Depsgraph * depsgraph,
ARegion * region,
View3D * v3d,
const int center[2],
uint id_min,
uint id_max,
uint * dist )

◆ DRW_select_buffer_read()

◆ DRW_select_buffer_sample_point()

uint DRW_select_buffer_sample_point ( Depsgraph * depsgraph,
ARegion * region,
View3D * v3d,
const int center[2] )

◆ drw_select_mask_px_cb()

void drw_select_mask_px_cb ( int x,
int x_end,
int y,
void * user_data )
static

◆ select_buffer_test_fn()

bool select_buffer_test_fn ( const void *__restrict value,
void *__restrict userdata )
static