Blender  V3.3
Macros | Functions | Variables
interface_draw.c File Reference
#include <math.h>
#include <string.h>
#include "DNA_color_types.h"
#include "DNA_curve_types.h"
#include "DNA_curveprofile_types.h"
#include "DNA_movieclip_types.h"
#include "DNA_screen_types.h"
#include "BLI_math.h"
#include "BLI_polyfill_2d.h"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "MEM_guardedalloc.h"
#include "BKE_colorband.h"
#include "BKE_colortools.h"
#include "BKE_curveprofile.h"
#include "BKE_node.h"
#include "BKE_tracking.h"
#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "BIF_glutil.h"
#include "BLF_api.h"
#include "GPU_batch.h"
#include "GPU_batch_presets.h"
#include "GPU_context.h"
#include "GPU_immediate.h"
#include "GPU_immediate_util.h"
#include "GPU_matrix.h"
#include "GPU_shader_shared.h"
#include "GPU_state.h"
#include "UI_interface.h"
#include "interface_intern.h"

Go to the source code of this file.

Macros

#define HISTOGRAM_TOT_GRID_LINES   4
 

Functions

void UI_draw_roundbox_corner_set (int type)
 
void UI_draw_roundbox_4fv_ex (const rctf *rect, const float inner1[4], const float inner2[4], float shade_dir, const float outline[4], float outline_width, float rad)
 
void UI_draw_roundbox_3ub_alpha (const rctf *rect, bool filled, float rad, const uchar col[3], uchar alpha)
 
void UI_draw_roundbox_3fv_alpha (const rctf *rect, bool filled, float rad, const float col[3], float alpha)
 
void UI_draw_roundbox_aa (const rctf *rect, bool filled, float rad, const float color[4])
 
void UI_draw_roundbox_4fv (const rctf *rect, bool filled, float rad, const float col[4])
 
void UI_draw_text_underline (int pos_x, int pos_y, int len, int height, const float color[4])
 
void ui_draw_but_TAB_outline (const rcti *rect, float rad, uchar highlight[3], uchar highlight_fade[3])
 
void ui_draw_but_IMAGE (ARegion *UNUSED(region), uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *rect)
 
void UI_draw_safe_areas (uint pos, const rctf *rect, const float title_aspect[2], const float action_aspect[2])
 
static void draw_scope_end (const rctf *rect)
 
static void histogram_draw_one (float r, float g, float b, float alpha, float x, float y, float w, float h, const float *data, int res, const bool is_line, uint pos_attr)
 
void ui_draw_but_HISTOGRAM (ARegion *UNUSED(region), uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *recti)
 
static void waveform_draw_one (float *waveform, int waveform_num, const float col[3])
 
void ui_draw_but_WAVEFORM (ARegion *UNUSED(region), uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *recti)
 
static float polar_to_x (float center, float diam, float ampli, float angle)
 
static float polar_to_y (float center, float diam, float ampli, float angle)
 
static void vectorscope_draw_target (uint pos, float centerx, float centery, float diam, const float colf[3])
 
void ui_draw_but_VECTORSCOPE (ARegion *UNUSED(region), uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *recti)
 
static void ui_draw_colorband_handle_tri_hlight (uint pos, float x1, float y1, float halfwidth, float height)
 
static void ui_draw_colorband_handle_tri (uint pos, float x1, float y1, float halfwidth, float height, bool fill)
 
static void ui_draw_colorband_handle_box (uint pos, float x1, float y1, float x2, float y2, bool fill)
 
static void ui_draw_colorband_handle (uint shdr_pos, const rcti *rect, float x, const float rgb[3], struct ColorManagedDisplay *display, bool active)
 
void ui_draw_but_COLORBAND (uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *rect)
 
void ui_draw_but_UNITVEC (uiBut *but, const uiWidgetColors *wcol, const rcti *rect, const float radius)
 
static void ui_draw_but_curve_grid (const uint pos, const rcti *rect, const float zoom_x, const float zoom_y, const float offset_x, const float offset_y, const float step)
 
static void gl_shaded_color_get (const uchar color[3], int shade, uchar r_color[3])
 
static void gl_shaded_color_get_fl (const uchar *color, int shade, float r_color[3])
 
static void gl_shaded_color (const uchar *color, int shade)
 
void ui_draw_but_CURVE (ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *rect)
 
static bool point_draw_handles (CurveProfilePoint *point)
 
void ui_draw_but_CURVEPROFILE (ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_TRACKPREVIEW (ARegion *UNUSED(region), uiBut *but, const uiWidgetColors *UNUSED(wcol), const rcti *recti)
 
static void ui_shadowbox (const rctf *rect, uint pos, uint color, float shadsize, uchar alpha)
 
void UI_draw_box_shadow (const rctf *rect, uchar alpha)
 
void ui_draw_dropshadow (const rctf *rct, float radius, float aspect, float alpha, int UNUSED(select))
 

Variables

static int roundboxtype = UI_CNR_ALL
 

Macro Definition Documentation

◆ HISTOGRAM_TOT_GRID_LINES

#define HISTOGRAM_TOT_GRID_LINES   4

Definition at line 445 of file interface_draw.c.

Function Documentation

◆ draw_scope_end()

static void draw_scope_end ( const rctf rect)
static

◆ gl_shaded_color()

static void gl_shaded_color ( const uchar color,
int  shade 
)
static

◆ gl_shaded_color_get()

static void gl_shaded_color_get ( const uchar  color[3],
int  shade,
uchar  r_color[3] 
)
static

Definition at line 1454 of file interface_draw.c.

References color.

Referenced by gl_shaded_color(), and gl_shaded_color_get_fl().

◆ gl_shaded_color_get_fl()

static void gl_shaded_color_get_fl ( const uchar color,
int  shade,
float  r_color[3] 
)
static

Definition at line 1461 of file interface_draw.c.

References color, gl_shaded_color_get(), and rgb_uchar_to_float().

Referenced by ui_draw_but_CURVE(), and ui_draw_but_CURVEPROFILE().

◆ histogram_draw_one()

static void histogram_draw_one ( float  r,
float  g,
float  b,
float  alpha,
float  x,
float  y,
float  w,
float  h,
const float data,
int  res,
const bool  is_line,
uint  pos_attr 
)
static

◆ point_draw_handles()

static bool point_draw_handles ( CurveProfilePoint point)
static

Helper for ui_draw_but_CURVEPROFILE. Used to tell whether to draw a control point's handles.

Definition at line 1744 of file interface_draw.c.

References ELEM, HD_ALIGN, HD_FREE, point, PROF_H1_SELECT, PROF_H2_SELECT, and PROF_SELECT.

Referenced by ui_draw_but_CURVEPROFILE().

◆ polar_to_x()

static float polar_to_x ( float  center,
float  diam,
float  ampli,
float  angle 
)
static

Definition at line 815 of file interface_draw.c.

References angle(), center, and cosf.

Referenced by vectorscope_draw_target().

◆ polar_to_y()

static float polar_to_y ( float  center,
float  diam,
float  ampli,
float  angle 
)
static

Definition at line 820 of file interface_draw.c.

References angle(), center, and sinf.

Referenced by vectorscope_draw_target().

◆ UI_draw_box_shadow()

void UI_draw_box_shadow ( const rctf rect,
uchar  alpha 
)

◆ ui_draw_but_COLORBAND()

void ui_draw_but_COLORBAND ( uiBut but,
const uiWidgetColors UNUSEDwcol,
const rcti rect 
)

◆ ui_draw_but_CURVE()

void ui_draw_but_CURVE ( ARegion region,
uiBut but,
const uiWidgetColors wcol,
const rcti rect 
)

Definition at line 1475 of file interface_draw.c.

References Freestyle::a, ARRAY_SET_ITEMS, uiBlock::aspect, BKE_curvemapping_changed(), BLI_rctf_size_x(), BLI_rctf_size_y(), BLI_rcti_isect(), BLI_rcti_size_x(), BLI_rcti_size_y(), uiBut::block, CurveMapping::clipr, CurveMapping::cm, CM_TABLE, col, CUMA_DO_CLIP, CUMA_DRAW_CFRA, CUMA_DRAW_SAMPLE, CUMA_EXTEND_EXTRAPOLATE, CUMA_SELECT, CurveMapping::cur, CurveMapping::curr, CurveMap::curve, uiButCurveMapping::edit_cumap, CurveMap::ext_in, CurveMap::ext_out, CurveMapping::flag, gl_shaded_color(), gl_shaded_color_get_fl(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_line_smooth(), GPU_line_width(), GPU_point_size(), GPU_PRIM_LINE_STRIP, GPU_PRIM_LINES, GPU_PRIM_POINTS, GPU_PRIM_TRI_STRIP, GPU_scissor(), GPU_scissor_get(), GPU_SHADER_2D_FLAT_COLOR, GPU_SHADER_2D_UNIFORM_COLOR, GPU_vertformat_attr_add(), uiButCurveMapping::gradient_type, IMB_colormanagement_get_luminance(), imm_draw_box_wire_2d(), immAttr4fv(), immBegin(), immBindBuiltinProgram(), immEnd(), immRectf(), immUnbindProgram(), immUniformColor3fv(), immUniformColor3ub(), immUniformColor3ubv(), immUniformColor3ubvAlpha(), immUniformColor4fv(), immVertex2f(), immVertexFormat(), uiWidgetColors::inner, interp_v3_v3v3(), uiWidgetColors::item, len_squared_v3(), len_squared_v3v3(), linearrgb_to_srgb_v3_v3(), max_ff(), min_ff(), NULL, uiWidgetColors::outline, uiBut::poin, pos, rgb_to_hsv_v(), rgb_uchar_to_float(), CurveMapping::sample, swap_v3_v3(), CurveMap::table, TH_TEXT, TH_TEXT_HI, CurveMap::totpoint, UI_DPI_FAC, ui_draw_but_curve_grid(), ui_draw_gradient(), UI_GetThemeColor4fv(), UI_GRAD_H, ARegion::winx, ARegion::winy, CurveMapPoint::x, rcti::xmax, rctf::xmax, rcti::xmin, rctf::xmin, CurveMapPoint::y, rcti::ymax, rctf::ymax, rcti::ymin, and rctf::ymin.

Referenced by ui_draw_but().

◆ ui_draw_but_curve_grid()

static void ui_draw_but_curve_grid ( const uint  pos,
const rcti rect,
const float  zoom_x,
const float  zoom_y,
const float  offset_x,
const float  offset_y,
const float  step 
)
static

◆ ui_draw_but_CURVEPROFILE()

void ui_draw_but_CURVEPROFILE ( ARegion region,
uiBut but,
const uiWidgetColors wcol,
const rcti rect 
)

Definition at line 1751 of file interface_draw.c.

References uiBlock::aspect, BKE_curveprofile_table_size(), BKE_curveprofile_update(), BLI_polyfill_calc(), BLI_rctf_size_x(), BLI_rctf_size_y(), BLI_rcti_isect(), BLI_rcti_size_x(), BLI_rcti_size_y(), uiBut::block, CurveProfile::clip_rect, col, uiButCurveProfile::edit_profile, CurveProfile::flag, float(), gl_shaded_color(), gl_shaded_color_get_fl(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_line_smooth(), GPU_line_width(), GPU_point_size(), GPU_polygon_smooth(), GPU_PRIM_LINE_STRIP, GPU_PRIM_LINES, GPU_PRIM_POINTS, GPU_PRIM_TRIS, GPU_scissor(), GPU_scissor_get(), GPU_SHADER_2D_FLAT_COLOR, GPU_SHADER_2D_UNIFORM_COLOR, GPU_vertformat_attr_add(), CurveProfilePoint::h1_loc, CurveProfilePoint::h2_loc, if(), imm_draw_box_wire_2d(), immAttr4fv(), immBegin(), immBindBuiltinProgram(), immEnd(), immRectf(), immUnbindProgram(), immUniformColor3fv(), immUniformColor3ubv(), immUniformColor3ubvAlpha(), immVertex2f(), immVertexFormat(), uiWidgetColors::inner, interp_v3_v3v3(), uiWidgetColors::item, len_squared_v3(), len_squared_v3v3(), max_ff(), MEM_freeN, MEM_mallocN, MEM_SAFE_FREE, min_ff(), NULL, uiWidgetColors::outline, CurveProfile::path, CurveProfile::path_len, uiBut::poin, point_draw_handles(), pos, PROF_H1_SELECT, PROF_H2_SELECT, PROF_SELECT, PROF_UPDATE_NONE, PROF_USE_CLIP, rgb_uchar_to_float(), CurveProfile::segments, CurveProfile::segments_len, swap_v3_v3(), CurveProfile::table, TH_TEXT, TH_TEXT_HI, UI_DPI_FAC, ui_draw_but_curve_grid(), UI_GetThemeColor4fv(), CurveProfile::view_rect, ARegion::winx, ARegion::winy, CurveProfilePoint::x, rcti::xmax, rctf::xmax, rcti::xmin, rctf::xmin, CurveProfilePoint::y, rcti::ymax, rctf::ymax, rcti::ymin, and rctf::ymin.

Referenced by ui_draw_but().

◆ ui_draw_but_HISTOGRAM()

void ui_draw_but_HISTOGRAM ( ARegion UNUSEDregion,
uiBut but,
const uiWidgetColors UNUSEDwcol,
const rcti recti 
)

◆ ui_draw_but_IMAGE()

void ui_draw_but_IMAGE ( ARegion UNUSEDregion,
uiBut but,
const uiWidgetColors UNUSEDwcol,
const rcti rect 
)

◆ ui_draw_but_TAB_outline()

void ui_draw_but_TAB_outline ( const rcti rect,
float  rad,
uchar  highlight[3],
uchar  highlight_fade[3] 
)

◆ ui_draw_but_TRACKPREVIEW()

void ui_draw_but_TRACKPREVIEW ( ARegion UNUSEDregion,
uiBut but,
const uiWidgetColors UNUSEDwcol,
const rcti recti 
)

Definition at line 2035 of file interface_draw.c.

References float(), uiBut::poin, rcti::xmax, rcti::xmin, rctf::xmin, rcti::ymax, and rcti::ymin.

Referenced by ui_draw_but().

◆ ui_draw_but_UNITVEC()

void ui_draw_but_UNITVEC ( uiBut but,
const uiWidgetColors wcol,
const rcti rect,
const float  radius 
)

◆ ui_draw_but_VECTORSCOPE()

void ui_draw_but_VECTORSCOPE ( ARegion UNUSEDregion,
uiBut but,
const uiWidgetColors UNUSEDwcol,
const rcti recti 
)

Definition at line 921 of file interface_draw.c.

References DEG2RADF, and uiBut::poin.

Referenced by ui_draw_but().

◆ ui_draw_but_WAVEFORM()

void ui_draw_but_WAVEFORM ( ARegion UNUSEDregion,
uiBut but,
const uiWidgetColors UNUSEDwcol,
const rcti recti 
)

Definition at line 569 of file interface_draw.c.

References uiBut::poin.

Referenced by ui_draw_but().

◆ ui_draw_colorband_handle()

static void ui_draw_colorband_handle ( uint  shdr_pos,
const rcti rect,
float  x,
const float  rgb[3],
struct ColorManagedDisplay display,
bool  active 
)
static

◆ ui_draw_colorband_handle_box()

static void ui_draw_colorband_handle_box ( uint  pos,
float  x1,
float  y1,
float  x2,
float  y2,
bool  fill 
)
static

◆ ui_draw_colorband_handle_tri()

static void ui_draw_colorband_handle_tri ( uint  pos,
float  x1,
float  y1,
float  halfwidth,
float  height,
bool  fill 
)
static

◆ ui_draw_colorband_handle_tri_hlight()

static void ui_draw_colorband_handle_tri_hlight ( uint  pos,
float  x1,
float  y1,
float  halfwidth,
float  height 
)
static

◆ ui_draw_dropshadow()

void ui_draw_dropshadow ( const rctf rct,
float  radius,
float  aspect,
float  alpha,
int   UNUSEDselect 
)

◆ UI_draw_roundbox_3fv_alpha()

void UI_draw_roundbox_3fv_alpha ( const rctf rect,
bool  filled,
float  rad,
const float  col[3],
float  alpha 
)

Definition at line 142 of file interface_draw.c.

References col, NULL, and UI_draw_roundbox_4fv_ex().

◆ UI_draw_roundbox_3ub_alpha()

void UI_draw_roundbox_3ub_alpha ( const rctf rect,
bool  filled,
float  rad,
const uchar  col[3],
uchar  alpha 
)

Definition at line 130 of file interface_draw.c.

References col, float(), NULL, and UI_draw_roundbox_4fv_ex().

Referenced by ui_draw_but_UNITVEC().

◆ UI_draw_roundbox_4fv()

void UI_draw_roundbox_4fv ( const rctf rect,
bool  filled,
float  rad,
const float  col[4] 
)

Definition at line 161 of file interface_draw.c.

References col, NULL, and UI_draw_roundbox_4fv_ex().

Referenced by draw_scope_end(), ui_draw_but_HISTOGRAM(), and ui_draw_dropshadow().

◆ UI_draw_roundbox_4fv_ex()

void UI_draw_roundbox_4fv_ex ( const rctf rect,
const float  inner1[4],
const float  inner2[4],
float  shade_dir,
const float  outline[4],
float  outline_width,
float  rad 
)

◆ UI_draw_roundbox_aa()

void UI_draw_roundbox_aa ( const rctf rect,
bool  filled,
float  rad,
const float  color[4] 
)

Definition at line 149 of file interface_draw.c.

References color, NULL, and UI_draw_roundbox_4fv_ex().

◆ UI_draw_roundbox_corner_set()

void UI_draw_roundbox_corner_set ( int  type)

◆ UI_draw_safe_areas()

void UI_draw_safe_areas ( uint  pos,
const rctf rect,
const float  title_aspect[2],
const float  action_aspect[2] 
)

◆ UI_draw_text_underline()

void UI_draw_text_underline ( int  pos_x,
int  pos_y,
int  len,
int  height,
const float  color[4] 
)

◆ ui_shadowbox()

static void ui_shadowbox ( const rctf rect,
uint  pos,
uint  color,
float  shadsize,
uchar  alpha 
)
static
         v1-_
         |   -_v2
         |     |
         |     |
         |     |
v7_______v3____v4
\        |     /
 \       |   _v5
 v8______v6_-

Definition at line 2219 of file interface_draw.c.

References color, immAttr4ub(), immVertex2fv(), pos, v1, v2, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by UI_draw_box_shadow().

◆ vectorscope_draw_target()

static void vectorscope_draw_target ( uint  pos,
float  centerx,
float  centery,
float  diam,
const float  colf[3] 
)
static

◆ waveform_draw_one()

static void waveform_draw_one ( float waveform,
int  waveform_num,
const float  col[3] 
)
static

Variable Documentation

◆ roundboxtype

int roundboxtype = UI_CNR_ALL
static