Blender  V3.3
Macros | Typedefs | Functions | Variables
brush.cc File Reference
#include "MEM_guardedalloc.h"
#include "DNA_brush_types.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_types.h"
#include "DNA_material_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_rand.h"
#include "BLT_translation.h"
#include "BKE_bpath.h"
#include "BKE_brush.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_gpencil.h"
#include "BKE_icons.h"
#include "BKE_idtype.h"
#include "BKE_lib_id.h"
#include "BKE_lib_query.h"
#include "BKE_lib_remap.h"
#include "BKE_main.h"
#include "BKE_material.h"
#include "BKE_paint.h"
#include "BKE_texture.h"
#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "RE_texture.h"
#include "BLO_read_write.h"

Go to the source code of this file.

Macros

#define FROM_DEFAULT(member)    memcpy((void *)&brush->member, (void *)&brush_def->member, sizeof(brush->member))
 
#define FROM_DEFAULT_PTR(member)   memcpy(brush->member, brush_def->member, sizeof(brush->member))
 
#define SMOOTH_STROKE_RADIUS   40
 
#define SMOOTH_STROKE_FACTOR   0.9f
 
#define ACTIVE_SMOOTH   0.35f
 
#define BR_TEST(field, t)
 
#define BR_TEST_FLAG(_f)
 
#define BR_TEST_FLAG_OVERLAY(_f)
 

Typedefs

using eGPCurveMappingPreset = enum eGPCurveMappingPreset { GPCURVE_PRESET_PENCIL=0, GPCURVE_PRESET_INK=1, GPCURVE_PRESET_INKNOISE=2, GPCURVE_PRESET_MARKER=3, GPCURVE_PRESET_CHISEL_SENSIVITY=4, GPCURVE_PRESET_CHISEL_STRENGTH=5, }
 

Functions

static void brush_init_data (ID *id)
 
static void brush_copy_data (Main *UNUSED(bmain), ID *id_dst, const ID *id_src, const int flag)
 
static void brush_free_data (ID *id)
 
static void brush_make_local (Main *bmain, ID *id, const int flags)
 
static void brush_foreach_id (ID *id, LibraryForeachIDData *data)
 
static void brush_foreach_path (ID *id, BPathForeachPathData *bpath_data)
 
static void brush_blend_write (BlendWriter *writer, ID *id, const void *id_address)
 
static void brush_blend_read_data (BlendDataReader *reader, ID *id)
 
static void brush_blend_read_lib (BlendLibReader *reader, ID *id)
 
static void brush_blend_read_expand (BlendExpander *expander, ID *id)
 
static int brush_undo_preserve_cb (LibraryIDLinkCallbackData *cb_data)
 
static void brush_undo_preserve (BlendLibReader *reader, ID *id_new, ID *id_old)
 
void BKE_brush_system_init (void)
 
void BKE_brush_system_exit (void)
 
static void brush_defaults (Brush *brush)
 
BrushBKE_brush_add (Main *bmain, const char *name, const eObjectMode ob_mode)
 
void BKE_brush_init_gpencil_settings (Brush *brush)
 
BrushBKE_brush_add_gpencil (Main *bmain, ToolSettings *ts, const char *name, eObjectMode mode)
 
bool BKE_brush_delete (Main *bmain, Brush *brush)
 
static void brush_gpencil_curvemap_reset (CurveMap *cuma, int tot, int preset)
 
void BKE_gpencil_brush_preset_set (Main *bmain, Brush *brush, const short type)
 
static Brushgpencil_brush_ensure (Main *bmain, ToolSettings *ts, const char *brush_name, eObjectMode mode, bool *r_new)
 
void BKE_brush_gpencil_paint_presets (Main *bmain, ToolSettings *ts, const bool reset)
 
void BKE_brush_gpencil_vertex_presets (Main *bmain, ToolSettings *ts, const bool reset)
 
void BKE_brush_gpencil_sculpt_presets (Main *bmain, ToolSettings *ts, const bool reset)
 
void BKE_brush_gpencil_weight_presets (Main *bmain, ToolSettings *ts, const bool reset)
 
void BKE_brush_init_curves_sculpt_settings (Brush *brush)
 
struct BrushBKE_brush_first_search (struct Main *bmain, const eObjectMode ob_mode)
 
void BKE_brush_debug_print_state (Brush *br)
 
void BKE_brush_sculpt_reset (Brush *br)
 
void BKE_brush_curve_preset (Brush *b, eCurveMappingPreset preset)
 
float BKE_brush_sample_tex_3d (const Scene *scene, const Brush *br, const float point[3], float rgba[4], const int thread, struct ImagePool *pool)
 
float BKE_brush_sample_masktex (const Scene *scene, Brush *br, const float point[2], const int thread, struct ImagePool *pool)
 
const floatBKE_brush_color_get (const struct Scene *scene, const struct Brush *brush)
 
const floatBKE_brush_secondary_color_get (const struct Scene *scene, const struct Brush *brush)
 
void BKE_brush_color_set (struct Scene *scene, struct Brush *brush, const float color[3])
 
void BKE_brush_size_set (Scene *scene, Brush *brush, int size)
 
int BKE_brush_size_get (const Scene *scene, const Brush *brush)
 
bool BKE_brush_use_locked_size (const Scene *scene, const Brush *brush)
 
bool BKE_brush_use_size_pressure (const Brush *brush)
 
bool BKE_brush_use_alpha_pressure (const Brush *brush)
 
bool BKE_brush_sculpt_has_secondary_color (const Brush *brush)
 
void BKE_brush_unprojected_radius_set (Scene *scene, Brush *brush, float unprojected_radius)
 
float BKE_brush_unprojected_radius_get (const Scene *scene, const Brush *brush)
 
void BKE_brush_alpha_set (Scene *scene, Brush *brush, float alpha)
 
float BKE_brush_alpha_get (const Scene *scene, const Brush *brush)
 
float BKE_brush_weight_get (const Scene *scene, const Brush *brush)
 
void BKE_brush_weight_set (const Scene *scene, Brush *brush, float value)
 
void BKE_brush_scale_unprojected_radius (float *unprojected_radius, int new_brush_size, int old_brush_size)
 
void BKE_brush_scale_size (int *r_brush_size, float new_unprojected_radius, float old_unprojected_radius)
 
void BKE_brush_jitter_pos (const Scene *scene, Brush *brush, const float pos[2], float jitterpos[2])
 
void BKE_brush_randomize_texture_coords (UnifiedPaintSettings *ups, bool mask)
 
float BKE_brush_curve_strength (const Brush *br, float p, const float len)
 
float BKE_brush_curve_strength_clamped (const Brush *br, float p, const float len)
 
static bool brush_gen_texture (const Brush *br, const int side, const bool use_secondary, float *rect)
 
struct ImBufBKE_brush_gen_radial_control_imbuf (Brush *br, bool secondary, bool display_gradient)
 

Variables

IDTypeInfo IDType_ID_BR
 
static RNGbrush_rng
 

Macro Definition Documentation

◆ ACTIVE_SMOOTH

#define ACTIVE_SMOOTH   0.35f

◆ BR_TEST

#define BR_TEST (   field,
  t 
)
Value:
if (br->field != def.field) { \
printf("br->" #field " = %" #t ";\n", br->field); \
} \
((void)0)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
SyclQueue void void size_t num_bytes void

◆ BR_TEST_FLAG

#define BR_TEST_FLAG (   _f)
Value:
if ((br->flag & _f) && !(def.flag & _f)) { \
printf("br->flag |= " #_f ";\n"); \
} \
else if (!(br->flag & _f) && (def.flag & _f)) { \
printf("br->flag &= ~" #_f ";\n"); \
} \
((void)0)

◆ BR_TEST_FLAG_OVERLAY

#define BR_TEST_FLAG_OVERLAY (   _f)
Value:
if ((br->overlay_flags & _f) && !(def.overlay_flags & _f)) { \
printf("br->overlay_flags |= " #_f ";\n"); \
} \
else if (!(br->overlay_flags & _f) && (def.overlay_flags & _f)) { \
printf("br->overlay_flags &= ~" #_f ";\n"); \
} \
((void)0)

◆ FROM_DEFAULT

#define FROM_DEFAULT (   member)     memcpy((void *)&brush->member, (void *)&brush_def->member, sizeof(brush->member))

◆ FROM_DEFAULT_PTR

#define FROM_DEFAULT_PTR (   member)    memcpy(brush->member, brush_def->member, sizeof(brush->member))

◆ SMOOTH_STROKE_FACTOR

#define SMOOTH_STROKE_FACTOR   0.9f

◆ SMOOTH_STROKE_RADIUS

#define SMOOTH_STROKE_RADIUS   40

Typedef Documentation

◆ eGPCurveMappingPreset

using eGPCurveMappingPreset = enum eGPCurveMappingPreset { GPCURVE_PRESET_PENCIL = 0, GPCURVE_PRESET_INK = 1, GPCURVE_PRESET_INKNOISE = 2, GPCURVE_PRESET_MARKER = 3, GPCURVE_PRESET_CHISEL_SENSIVITY = 4, GPCURVE_PRESET_CHISEL_STRENGTH = 5, }

Local grease pencil curve mapping preset.

Definition at line 591 of file brush.cc.

Function Documentation

◆ BKE_brush_add()

Brush* BKE_brush_add ( struct Main bmain,
const char *  name,
eObjectMode  ob_mode 
)
Note
Resulting brush will have two users: one as a fake user, another is assumed to be used by the caller.

Definition at line 496 of file brush.cc.

References BKE_brush_init_curves_sculpt_settings(), BKE_id_new(), ID_BR, Brush::ob_mode, and OB_MODE_SCULPT_CURVES.

Referenced by BKE_brush_add_gpencil(), BKE_paint_init(), BLO_update_defaults_startup_blend(), brush_add_exec(), brush_add_gpencil_exec(), brush_generic_tool_set(), and toolsystem_ref_link().

◆ BKE_brush_add_gpencil()

Brush* BKE_brush_add_gpencil ( struct Main bmain,
struct ToolSettings ts,
const char *  name,
eObjectMode  mode 
)

◆ BKE_brush_alpha_get()

float BKE_brush_alpha_get ( const Scene scene,
const Brush brush 
)

◆ BKE_brush_alpha_set()

void BKE_brush_alpha_set ( Scene scene,
Brush brush,
float  alpha 
)

◆ BKE_brush_color_get()

const float* BKE_brush_color_get ( const struct Scene scene,
const struct Brush brush 
)

◆ BKE_brush_color_set()

void BKE_brush_color_set ( struct Scene scene,
struct Brush brush,
const float  color[3] 
)

◆ BKE_brush_curve_preset()

void BKE_brush_curve_preset ( struct Brush b,
enum eCurveMappingPreset  preset 
)

◆ BKE_brush_curve_strength()

float BKE_brush_curve_strength ( const Brush br,
float  p,
const float  len 
)

◆ BKE_brush_curve_strength_clamped()

float BKE_brush_curve_strength_clamped ( const Brush br,
float  p,
const float  len 
)

Definition at line 2460 of file brush.cc.

References BKE_brush_curve_strength(), CLAMP, and len.

Referenced by BKE_brush_gen_radial_control_imbuf().

◆ BKE_brush_debug_print_state()

void BKE_brush_debug_print_state ( Brush br)

◆ BKE_brush_delete()

bool BKE_brush_delete ( struct Main bmain,
struct Brush brush 
)

◆ BKE_brush_first_search()

struct Brush* BKE_brush_first_search ( struct Main bmain,
const eObjectMode  ob_mode 
)

Definition at line 1567 of file brush.cc.

References Main::brushes, LISTBASE_FOREACH, and Brush::ob_mode.

Referenced by BKE_paint_init().

◆ BKE_brush_gen_radial_control_imbuf()

struct ImBuf* BKE_brush_gen_radial_control_imbuf ( struct Brush br,
bool  secondary,
bool  display_gradient 
)

◆ BKE_brush_gpencil_paint_presets()

void BKE_brush_gpencil_paint_presets ( struct Main bmain,
struct ToolSettings ts,
bool  reset 
)

◆ BKE_brush_gpencil_sculpt_presets()

void BKE_brush_gpencil_sculpt_presets ( struct Main bmain,
struct ToolSettings ts,
bool  reset 
)

◆ BKE_brush_gpencil_vertex_presets()

void BKE_brush_gpencil_vertex_presets ( struct Main bmain,
struct ToolSettings ts,
bool  reset 
)

◆ BKE_brush_gpencil_weight_presets()

void BKE_brush_gpencil_weight_presets ( struct Main bmain,
struct ToolSettings ts,
bool  reset 
)

◆ BKE_brush_init_curves_sculpt_settings()

void BKE_brush_init_curves_sculpt_settings ( Brush brush)

◆ BKE_brush_init_gpencil_settings()

void BKE_brush_init_gpencil_settings ( struct Brush brush)

◆ BKE_brush_jitter_pos()

void BKE_brush_jitter_pos ( const Scene scene,
Brush brush,
const float  pos[2],
float  jitterpos[2] 
)

◆ BKE_brush_randomize_texture_coords()

void BKE_brush_randomize_texture_coords ( UnifiedPaintSettings ups,
bool  mask 
)

◆ BKE_brush_sample_masktex()

float BKE_brush_sample_masktex ( const Scene scene,
Brush br,
const float  point[2],
const int  thread,
struct ImagePool pool 
)

◆ BKE_brush_sample_tex_3d()

float BKE_brush_sample_tex_3d ( const Scene scene,
const Brush br,
const float  point[3],
float  rgba[4],
const int  thread,
struct ImagePool pool 
)

◆ BKE_brush_scale_size()

void BKE_brush_scale_size ( int *  r_brush_size,
float  new_unprojected_radius,
float  old_unprojected_radius 
)

Scale brush size to reflect a change in the brush's unprojected radius.

Definition at line 2363 of file brush.cc.

◆ BKE_brush_scale_unprojected_radius()

void BKE_brush_scale_unprojected_radius ( float unprojected_radius,
int  new_brush_size,
int  old_brush_size 
)

Scale unprojected radius to reflect a change in the brush's 2D size.

Definition at line 2351 of file brush.cc.

References float().

◆ BKE_brush_sculpt_has_secondary_color()

bool BKE_brush_sculpt_has_secondary_color ( const Brush brush)

◆ BKE_brush_sculpt_reset()

void BKE_brush_sculpt_reset ( Brush br)

Definition at line 1683 of file brush.cc.

References Brush::add_col, Brush::alpha, Brush::area_radius_factor, Brush::autosmooth_factor, BKE_brush_curve_preset(), BRUSH_ACCUMULATE, BRUSH_ALPHA_PRESSURE, BRUSH_CLOTH_DEFORM_DRAG, BRUSH_CURVE_CONSTANT, BRUSH_CURVE_POW4, BRUSH_CURVE_SMOOTH, BRUSH_CURVE_SMOOTHER, BRUSH_CURVE_SPHERE, brush_defaults(), BRUSH_DIR_IN, BRUSH_ELASTIC_DEFORM_GRAB_TRISCALE, BRUSH_INVERT_TO_SCRAPE_FILL, BRUSH_MULTIPLANE_SCRAPE_DYNAMIC, BRUSH_MULTIPLANE_SCRAPE_PLANES_PREVIEW, BRUSH_POSE_IK_ANCHORED, BRUSH_SIZE_PRESSURE, BRUSH_SLIDE_DEFORM_DRAG, BRUSH_SPACE, BRUSH_SPACE_ATTEN, BRUSH_USE_CONNECTED_ONLY, Brush::cloth_damping, Brush::cloth_deform_type, Brush::cloth_mass, Brush::cloth_sim_falloff, Brush::cloth_sim_limit, copy_v3_fl(), Brush::curve_preset, CURVE_PRESET_SMOOTH, Brush::density, Brush::elastic_deform_type, Brush::elastic_deform_volume_preservation, Brush::flag, Brush::flag2, Brush::flow, Brush::hardness, Brush::height, Brush::multiplane_scrape_angle, Brush::normal_radius_factor, Brush::pose_ik_segments, Brush::pose_smooth_iterations, Brush::rake_factor, Brush::rgb, Brush::sculpt_tool, SCULPT_TOOL_BLOB, SCULPT_TOOL_BOUNDARY, SCULPT_TOOL_CLAY, SCULPT_TOOL_CLAY_STRIPS, SCULPT_TOOL_CLAY_THUMB, SCULPT_TOOL_CLOTH, SCULPT_TOOL_CREASE, SCULPT_TOOL_DISPLACEMENT_ERASER, SCULPT_TOOL_DISPLACEMENT_SMEAR, SCULPT_TOOL_DRAW, SCULPT_TOOL_DRAW_FACE_SETS, SCULPT_TOOL_DRAW_SHARP, SCULPT_TOOL_ELASTIC_DEFORM, SCULPT_TOOL_FILL, SCULPT_TOOL_FLATTEN, SCULPT_TOOL_GRAB, SCULPT_TOOL_INFLATE, SCULPT_TOOL_LAYER, SCULPT_TOOL_MASK, SCULPT_TOOL_MULTIPLANE_SCRAPE, SCULPT_TOOL_NUDGE, SCULPT_TOOL_PAINT, SCULPT_TOOL_PINCH, SCULPT_TOOL_POSE, SCULPT_TOOL_ROTATE, SCULPT_TOOL_SCRAPE, SCULPT_TOOL_SIMPLIFY, SCULPT_TOOL_SLIDE_RELAX, SCULPT_TOOL_SMEAR, SCULPT_TOOL_SMOOTH, SCULPT_TOOL_SNAKE_HOOK, SCULPT_TOOL_THUMB, Brush::secondary_rgb, Brush::size, Brush::slide_deform_type, Brush::spacing, Brush::sub_col, Brush::surface_smooth_current_vertex, Brush::surface_smooth_iterations, Brush::surface_smooth_shape_preservation, Brush::tip_roundness, Brush::tip_scale_x, and zero_v3().

Referenced by BLO_update_defaults_startup_blend(), brush_reset_exec(), and toolsystem_ref_link().

◆ BKE_brush_secondary_color_get()

const float* BKE_brush_secondary_color_get ( const struct Scene scene,
const struct Brush brush 
)

◆ BKE_brush_size_get()

int BKE_brush_size_get ( const Scene scene,
const Brush brush 
)

◆ BKE_brush_size_set()

void BKE_brush_size_set ( Scene scene,
Brush brush,
int  size 
)

◆ BKE_brush_system_exit()

void BKE_brush_system_exit ( void  )

Definition at line 433 of file brush.cc.

References BLI_rng_free(), and brush_rng.

Referenced by BKE_blender_free().

◆ BKE_brush_system_init()

void BKE_brush_system_init ( void  )

Definition at line 427 of file brush.cc.

References BLI_rng_new(), BLI_rng_srandom(), and brush_rng.

Referenced by main().

◆ BKE_brush_unprojected_radius_get()

float BKE_brush_unprojected_radius_get ( const Scene scene,
const Brush brush 
)

◆ BKE_brush_unprojected_radius_set()

void BKE_brush_unprojected_radius_set ( Scene scene,
Brush brush,
float  unprojected_radius 
)

◆ BKE_brush_use_alpha_pressure()

bool BKE_brush_use_alpha_pressure ( const Brush brush)

Definition at line 2270 of file brush.cc.

References BRUSH_ALPHA_PRESSURE, and Brush::flag.

◆ BKE_brush_use_locked_size()

bool BKE_brush_use_locked_size ( const Scene scene,
const Brush brush 
)

◆ BKE_brush_use_size_pressure()

bool BKE_brush_use_size_pressure ( const Brush brush)

Definition at line 2265 of file brush.cc.

References BRUSH_SIZE_PRESSURE, and Brush::flag.

◆ BKE_brush_weight_get()

float BKE_brush_weight_get ( const Scene scene,
const Brush brush 
)

◆ BKE_brush_weight_set()

void BKE_brush_weight_set ( const Scene scene,
Brush brush,
float  value 
)

◆ BKE_gpencil_brush_preset_set()

void BKE_gpencil_brush_preset_set ( Main bmain,
Brush brush,
const short  type 
)

Definition at line 669 of file brush.cc.

References ACTIVE_SMOOTH, BrushGpencilSettings::active_smooth, BrushGpencilSettings::aspect_ratio, BKE_curvemapping_init(), BKE_curvemapping_set_defaults(), BKE_gpencil_brush_material_set(), BKE_gpencil_material_add(), BLI_assert, BLI_findstring(), BRUSH_CURVE_SMOOTH, brush_gpencil_curvemap_reset(), CurveMapping::cm, copy_v2_fl(), Brush::curve_preset, BrushGpencilSettings::curve_sensitivity, BrushGpencilSettings::curve_strength, DEG2RAD, BrushGpencilSettings::dilate_pixels, BrushGpencilSettings::draw_angle, BrushGpencilSettings::draw_angle_factor, BrushGpencilSettings::draw_jitter, BrushGpencilSettings::draw_random_press, BrushGpencilSettings::draw_random_strength, BrushGpencilSettings::draw_smoothfac, BrushGpencilSettings::draw_smoothlvl, BrushGpencilSettings::draw_strength, BrushGpencilSettings::draw_subdivide, BrushGpencilSettings::era_strength_f, BrushGpencilSettings::era_thickness_f, BrushGpencilSettings::eraser_mode, BrushGpencilSettings::fill_factor, BrushGpencilSettings::fill_leak, BrushGpencilSettings::fill_simplylvl, BrushGpencilSettings::fill_threshold, BrushGpencilSettings::flag, GP_BRUSH_DEFAULT_ERASER, GP_BRUSH_ERASER_HARD, GP_BRUSH_ERASER_SOFT, GP_BRUSH_ERASER_STROKE, GP_BRUSH_FILL_SHOW_EXTENDLINES, GP_BRUSH_GROUP_RANDOM, GP_BRUSH_GROUP_SETTINGS, GP_BRUSH_ICON_AIRBRUSH, GP_BRUSH_ICON_CHISEL, GP_BRUSH_ICON_ERASE_HARD, GP_BRUSH_ICON_ERASE_SOFT, GP_BRUSH_ICON_ERASE_STROKE, GP_BRUSH_ICON_FILL, GP_BRUSH_ICON_GPBRUSH_CLONE, GP_BRUSH_ICON_GPBRUSH_GRAB, GP_BRUSH_ICON_GPBRUSH_PINCH, GP_BRUSH_ICON_GPBRUSH_PUSH, GP_BRUSH_ICON_GPBRUSH_RANDOMIZE, GP_BRUSH_ICON_GPBRUSH_SMOOTH, GP_BRUSH_ICON_GPBRUSH_STRENGTH, GP_BRUSH_ICON_GPBRUSH_THICKNESS, GP_BRUSH_ICON_GPBRUSH_TWIST, GP_BRUSH_ICON_GPBRUSH_WEIGHT, GP_BRUSH_ICON_INK, GP_BRUSH_ICON_INKNOISE, GP_BRUSH_ICON_MARKER, GP_BRUSH_ICON_PEN, GP_BRUSH_ICON_PENCIL, GP_BRUSH_ICON_TINT, GP_BRUSH_ICON_VERTEX_AVERAGE, GP_BRUSH_ICON_VERTEX_BLUR, GP_BRUSH_ICON_VERTEX_DRAW, GP_BRUSH_ICON_VERTEX_REPLACE, GP_BRUSH_ICON_VERTEX_SMEAR, GP_BRUSH_MATERIAL_PINNED, GP_BRUSH_PRESET_AIRBRUSH, GP_BRUSH_PRESET_CLONE_STROKE, GP_BRUSH_PRESET_DRAW_WEIGHT, GP_BRUSH_PRESET_ERASER_HARD, GP_BRUSH_PRESET_ERASER_POINT, GP_BRUSH_PRESET_ERASER_SOFT, GP_BRUSH_PRESET_ERASER_STROKE, GP_BRUSH_PRESET_FILL_AREA, GP_BRUSH_PRESET_GRAB_STROKE, GP_BRUSH_PRESET_INK_PEN, GP_BRUSH_PRESET_INK_PEN_ROUGH, GP_BRUSH_PRESET_MARKER_BOLD, GP_BRUSH_PRESET_MARKER_CHISEL, GP_BRUSH_PRESET_PEN, GP_BRUSH_PRESET_PENCIL, GP_BRUSH_PRESET_PENCIL_SOFT, GP_BRUSH_PRESET_PINCH_STROKE, GP_BRUSH_PRESET_PUSH_STROKE, GP_BRUSH_PRESET_RANDOMIZE_STROKE, GP_BRUSH_PRESET_SMOOTH_STROKE, GP_BRUSH_PRESET_STRENGTH_STROKE, GP_BRUSH_PRESET_THICKNESS_STROKE, GP_BRUSH_PRESET_TINT, GP_BRUSH_PRESET_TWIST_STROKE, GP_BRUSH_PRESET_VERTEX_AVERAGE, GP_BRUSH_PRESET_VERTEX_BLUR, GP_BRUSH_PRESET_VERTEX_DRAW, GP_BRUSH_PRESET_VERTEX_REPLACE, GP_BRUSH_PRESET_VERTEX_SMEAR, GP_BRUSH_USE_JITTER_PRESSURE, GP_BRUSH_USE_PRESSURE, GP_BRUSH_USE_STRENGTH_PRESSURE, GP_MATERIAL_MODE_DOT, GP_SCULPT_FLAGMODE_APPLY_POSITION, GP_SCULPT_FLAGMODE_APPLY_THICKNESS, Material::gp_style, GPAINT_TOOL_DRAW, GPAINT_TOOL_ERASE, GPAINT_TOOL_FILL, GPAINT_TOOL_TINT, Brush::gpencil_sculpt_tool, Brush::gpencil_settings, Brush::gpencil_tool, Brush::gpencil_vertex_tool, Brush::gpencil_weight_tool, GPPAINT_MODE_BOTH, GPPAINT_MODE_FILL, GPSCULPT_TOOL_CLONE, GPSCULPT_TOOL_GRAB, GPSCULPT_TOOL_PINCH, GPSCULPT_TOOL_PUSH, GPSCULPT_TOOL_RANDOMIZE, GPSCULPT_TOOL_SMOOTH, GPSCULPT_TOOL_STRENGTH, GPSCULPT_TOOL_THICKNESS, GPSCULPT_TOOL_TWIST, GPVERTEX_TOOL_AVERAGE, GPVERTEX_TOOL_BLUR, GPVERTEX_TOOL_DRAW, GPVERTEX_TOOL_REPLACE, GPVERTEX_TOOL_SMEAR, GPWEIGHT_TOOL_DRAW, BrushGpencilSettings::hardeness, BrushGpencilSettings::icon_id, Material::id, id_us_min(), BrushGpencilSettings::input_samples, Main::materials, MaterialGPencilStyle::mode, BrushGpencilSettings::preset_type, Brush::rgb, BrushGpencilSettings::sculpt_flag, BrushGpencilSettings::sculpt_mode_flag, Brush::secondary_rgb, BrushGpencilSettings::simplify_f, Brush::size, SMOOTH_STROKE_FACTOR, Brush::smooth_stroke_factor, SMOOTH_STROKE_RADIUS, Brush::smooth_stroke_radius, type, ID::us, BrushGpencilSettings::vertex_factor, BrushGpencilSettings::vertex_mode, and zero_v3().

Referenced by BKE_brush_gpencil_paint_presets(), BKE_brush_gpencil_sculpt_presets(), BKE_brush_gpencil_vertex_presets(), BKE_brush_gpencil_weight_presets(), brush_add_gpencil_exec(), and gpencil_brush_reset_exec().

◆ brush_blend_read_data()

static void brush_blend_read_data ( BlendDataReader reader,
ID id 
)
static

◆ brush_blend_read_expand()

static void brush_blend_read_expand ( BlendExpander expander,
ID id 
)
static

◆ brush_blend_read_lib()

static void brush_blend_read_lib ( BlendLibReader reader,
ID id 
)
static

◆ brush_blend_write()

static void brush_blend_write ( BlendWriter writer,
ID id,
const void id_address 
)
static

◆ brush_copy_data()

static void brush_copy_data ( Main UNUSEDbmain,
ID id_dst,
const ID id_src,
const int  flag 
)
static

◆ brush_defaults()

static void brush_defaults ( Brush brush)
static

◆ brush_foreach_id()

static void brush_foreach_id ( ID id,
LibraryForeachIDData data 
)
static

◆ brush_foreach_path()

static void brush_foreach_path ( ID id,
BPathForeachPathData bpath_data 
)
static

Definition at line 195 of file brush.cc.

References BKE_bpath_foreach_path_fixed_process(), and Brush::icon_filepath.

◆ brush_free_data()

static void brush_free_data ( ID id)
static

◆ brush_gen_texture()

static bool brush_gen_texture ( const Brush br,
const int  side,
const bool  use_secondary,
float rect 
)
static

Definition at line 2470 of file brush.cc.

References if(), Brush::mask_mtex, Brush::mtex, RE_texture_evaluate(), MTex::tex, x, and y.

Referenced by BKE_brush_gen_radial_control_imbuf().

◆ brush_gpencil_curvemap_reset()

static void brush_gpencil_curvemap_reset ( CurveMap cuma,
int  tot,
int  preset 
)
static

◆ brush_init_data()

static void brush_init_data ( ID id)
static

◆ brush_make_local()

static void brush_make_local ( Main bmain,
ID id,
const int  flags 
)
static

◆ brush_undo_preserve()

static void brush_undo_preserve ( BlendLibReader reader,
ID id_new,
ID id_old 
)
static

◆ brush_undo_preserve_cb()

static int brush_undo_preserve_cb ( LibraryIDLinkCallbackData cb_data)
static

◆ gpencil_brush_ensure()

static Brush* gpencil_brush_ensure ( Main bmain,
ToolSettings ts,
const char *  brush_name,
eObjectMode  mode,
bool r_new 
)
static

Variable Documentation

◆ brush_rng

RNG* brush_rng
static

◆ IDType_ID_BR

IDTypeInfo IDType_ID_BR
Initial value:
= {
sizeof(Brush),
"Brush",
"brushes",
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_NO_ANIMDATA
Definition: BKE_idtype.h:41
#define BLT_I18NCONTEXT_ID_BRUSH
#define FILTER_ID_BR
Definition: DNA_ID.h:901
@ INDEX_ID_BR
Definition: DNA_ID.h:1046
@ ID_BR
Definition: DNA_ID_enums.h:69
struct Brush Brush
static void brush_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition: brush.cc:203
static void brush_free_data(ID *id)
Definition: brush.cc:105
static void brush_blend_read_expand(BlendExpander *expander, ID *id)
Definition: brush.cc:352
static void brush_foreach_id(ID *id, LibraryForeachIDData *data)
Definition: brush.cc:180
static void brush_init_data(ID *id)
Definition: brush.cc:45
static void brush_undo_preserve(BlendLibReader *reader, ID *id_new, ID *id_old)
Definition: brush.cc:381
static void brush_make_local(Main *bmain, ID *id, const int flags)
Definition: brush.cc:136
static void brush_blend_read_data(BlendDataReader *reader, ID *id)
Definition: brush.cc:253
static void brush_foreach_path(ID *id, BPathForeachPathData *bpath_data)
Definition: brush.cc:195
static void brush_blend_read_lib(BlendLibReader *reader, ID *id)
Definition: brush.cc:326
static void brush_copy_data(Main *UNUSED(bmain), ID *id_dst, const ID *id_src, const int flag)
Definition: brush.cc:59

Definition at line 395 of file brush.cc.