Blender  V3.3
Classes
button2d_gizmo.c File Reference
#include "MEM_guardedalloc.h"
#include "BLI_math.h"
#include "BKE_context.h"
#include "GPU_batch.h"
#include "GPU_batch_utils.h"
#include "GPU_immediate.h"
#include "GPU_immediate_util.h"
#include "GPU_matrix.h"
#include "GPU_select.h"
#include "GPU_state.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_gizmo_library.h"
#include "ED_screen.h"
#include "ED_view3d.h"
#include "UI_interface.h"
#include "UI_interface_icons.h"
#include "UI_resources.h"
#include "../gizmo_geometry.h"
#include "../gizmo_library_intern.h"

Go to the source code of this file.

Classes

struct  ButtonGizmo2D
 

Typedefs

Internal Types
typedef struct ButtonGizmo2D ButtonGizmo2D
 

Functions

Button Gizmo API
static void GIZMO_GT_button_2d (wmGizmoType *gzt)
 
void ED_gizmotypes_button_2d (void)
 

Internal API

#define CIRCLE_RESOLUTION_3D   32
 
static void button2d_geom_draw_backdrop (const wmGizmo *gz, const float color[4], const float fill_alpha, const bool select, const float screen_scale)
 
static void button2d_draw_intern (const bContext *C, wmGizmo *gz, const bool select, const bool highlight)
 
static void gizmo_button2d_draw_select (const bContext *C, wmGizmo *gz, int select_id)
 
static void gizmo_button2d_draw (const bContext *C, wmGizmo *gz)
 
static int gizmo_button2d_test_select (bContext *C, wmGizmo *gz, const int mval[2])
 
static int gizmo_button2d_cursor_get (wmGizmo *gz)
 
static bool gizmo_button2d_bounds (bContext *C, wmGizmo *gz, rcti *r_bounding_box)
 
static void gizmo_button2d_free (wmGizmo *gz)
 

Macro Definition Documentation

◆ CIRCLE_RESOLUTION_3D

#define CIRCLE_RESOLUTION_3D   32

Definition at line 326 of file button2d_gizmo.c.

Typedef Documentation

◆ ButtonGizmo2D

typedef struct ButtonGizmo2D ButtonGizmo2D

Function Documentation

◆ button2d_draw_intern()

static void button2d_draw_intern ( const bContext C,
wmGizmo gz,
const bool  select,
const bool  highlight 
)
static

Definition at line 122 of file button2d_gizmo.c.

References ARRAY_SIZE, BLI_assert, button2d_geom_draw_backdrop(), C, color, copy_v3_fl(), CTX_wm_region_view3d(), ED_GIZMO_BUTTON_SHOW_BACKDROP, ED_GIZMO_BUTTON_SHOW_HELPLINE, ED_GIZMO_BUTTON_SHOW_OUTLINE, wmGizmoGroupType::flag, gizmo_color_get(), GPU_batch_draw(), GPU_batch_program_set_builtin(), GPU_batch_tris_from_poly_2d_encoded(), GPU_batch_uniform_1f, GPU_batch_uniform_2fv, GPU_batch_wire_from_poly_2d_encoded(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_line_smooth(), GPU_matrix_mul, GPU_matrix_pop(), GPU_matrix_push(), GPU_matrix_scale_2f(), GPU_matrix_translate_2f(), GPU_polygon_smooth(), GPU_PRIM_LINE_STRIP, GPU_SHADER_2D_UNIFORM_COLOR, GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR, GPU_shader_uniform_4f(), GPU_vertformat_attr_add(), GPU_viewport_size_get_f(), ButtonGizmo2D::icon, ICON_DEFAULT_HEIGHT, ICON_DEFAULT_WIDTH, immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniform1f(), immUniform2fv(), immUniformColor4fv(), immVertex3fv(), immVertexFormat(), ButtonGizmo2D::is_init, wmGizmo::line_width, mat4_to_scale(), wmGizmo::matrix_basis, MEM_freeN, MEM_mallocN, mul_m4_m4m4(), normalize_m4_m4(), NULL, wmGizmo::parent_gzgroup, pos, wmGizmo::ptr, rgb_to_grayscale(), RNA_enum_get(), RNA_float_get(), RNA_property_enum_get(), RNA_property_is_set(), RNA_property_string_get(), RNA_property_string_length(), RNA_struct_find_property(), select(), ButtonGizmo2D::shape_batch, transpose_m4(), wmGizmoGroup::type, UI_DPI_FAC, UI_icon_draw_alpha(), UNPACK4, RegionView3D::viewmat, WM_gizmo_calc_matrix_final(), WM_gizmo_calc_matrix_final_no_offset(), WM_GIZMOGROUPTYPE_3D, and zero_v3().

Referenced by gizmo_button2d_draw(), and gizmo_button2d_draw_select().

◆ button2d_geom_draw_backdrop()

static void button2d_geom_draw_backdrop ( const wmGizmo gz,
const float  color[4],
const float  fill_alpha,
const bool  select,
const float  screen_scale 
)
static

◆ ED_gizmotypes_button_2d()

void ED_gizmotypes_button_2d ( void  )

Definition at line 429 of file button2d_gizmo.c.

References GIZMO_GT_button_2d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ gizmo_button2d_bounds()

static bool gizmo_button2d_bounds ( bContext C,
wmGizmo gz,
rcti r_bounding_box 
)
static

◆ gizmo_button2d_cursor_get()

static int gizmo_button2d_cursor_get ( wmGizmo gz)
static

◆ gizmo_button2d_draw()

static void gizmo_button2d_draw ( const bContext C,
wmGizmo gz 
)
static

◆ gizmo_button2d_draw_select()

static void gizmo_button2d_draw_select ( const bContext C,
wmGizmo gz,
int  select_id 
)
static

Definition at line 279 of file button2d_gizmo.c.

References button2d_draw_intern(), C, and GPU_select_load_id().

Referenced by GIZMO_GT_button_2d().

◆ gizmo_button2d_free()

static void gizmo_button2d_free ( wmGizmo gz)
static

Definition at line 368 of file button2d_gizmo.c.

References ARRAY_SIZE, GPU_BATCH_DISCARD_SAFE, and ButtonGizmo2D::shape_batch.

Referenced by GIZMO_GT_button_2d().

◆ gizmo_button2d_test_select()

static int gizmo_button2d_test_select ( bContext C,
wmGizmo gz,
const int  mval[2] 
)
static

◆ GIZMO_GT_button_2d()

static void GIZMO_GT_button_2d ( wmGizmoType gzt)
static