Blender  V3.3
resources.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
8 #include <math.h>
9 #include <stdlib.h>
10 #include <string.h>
11 
12 #include "MEM_guardedalloc.h"
13 
14 #include "DNA_screen_types.h"
15 #include "DNA_space_types.h"
16 #include "DNA_userdef_types.h"
17 
18 #include "BLI_blenlib.h"
19 #include "BLI_math.h"
20 #include "BLI_utildefines.h"
21 
22 #include "BKE_addon.h"
23 #include "BKE_appdir.h"
24 #include "BKE_main.h"
25 #include "BKE_mesh_runtime.h"
26 
27 #include "BLO_readfile.h" /* for UserDef version patching. */
28 
29 #include "BLF_api.h"
30 
31 #include "ED_screen.h"
32 
33 #include "UI_interface.h"
34 #include "UI_interface_icons.h"
35 
36 #include "GPU_framebuffer.h"
37 #include "interface_intern.h"
38 
39 /* global for themes */
40 typedef void (*VectorDrawFunc)(int x, int y, int w, int h, float alpha);
41 
42 /* be sure to keep 'bThemeState' in sync */
43 static struct bThemeState g_theme_state = {
44  NULL,
47 };
48 
49 #define theme_active g_theme_state.theme
50 #define theme_spacetype g_theme_state.spacetype
51 #define theme_regionid g_theme_state.regionid
52 
54 {
55  UI_icons_init();
56 }
57 
59 {
60  UI_icons_free();
61 }
62 
63 /* ******************************************************** */
64 /* THEMES */
65 /* ******************************************************** */
66 
67 const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
68 {
69  ThemeSpace *ts = NULL;
70  static uchar error[4] = {240, 0, 240, 255};
71  static uchar alert[4] = {240, 60, 60, 255};
72  static uchar header_active[4] = {0, 0, 0, 255};
73  static uchar back[4] = {0, 0, 0, 255};
74  static uchar setting = 0;
75  const uchar *cp = error;
76 
77  /* ensure we're not getting a color after running BKE_blender_userdef_free */
78  BLI_assert(BLI_findindex(&U.themes, theme_active) != -1);
79  BLI_assert(colorid != TH_UNDEFINED);
80 
81  if (btheme) {
82 
83  /* first check for ui buttons theme */
84  if (colorid < TH_THEMEUI) {
85 
86  switch (colorid) {
87 
88  case TH_REDALERT:
89  cp = alert;
90  break;
91  }
92  }
93  else {
94 
95  switch (spacetype) {
96  case SPACE_PROPERTIES:
97  ts = &btheme->space_properties;
98  break;
99  case SPACE_VIEW3D:
100  ts = &btheme->space_view3d;
101  break;
102  case SPACE_GRAPH:
103  ts = &btheme->space_graph;
104  break;
105  case SPACE_FILE:
106  ts = &btheme->space_file;
107  break;
108  case SPACE_NLA:
109  ts = &btheme->space_nla;
110  break;
111  case SPACE_ACTION:
112  ts = &btheme->space_action;
113  break;
114  case SPACE_SEQ:
115  ts = &btheme->space_sequencer;
116  break;
117  case SPACE_IMAGE:
118  ts = &btheme->space_image;
119  break;
120  case SPACE_TEXT:
121  ts = &btheme->space_text;
122  break;
123  case SPACE_OUTLINER:
124  ts = &btheme->space_outliner;
125  break;
126  case SPACE_INFO:
127  ts = &btheme->space_info;
128  break;
129  case SPACE_USERPREF:
130  ts = &btheme->space_preferences;
131  break;
132  case SPACE_CONSOLE:
133  ts = &btheme->space_console;
134  break;
135  case SPACE_NODE:
136  ts = &btheme->space_node;
137  break;
138  case SPACE_CLIP:
139  ts = &btheme->space_clip;
140  break;
141  case SPACE_TOPBAR:
142  ts = &btheme->space_topbar;
143  break;
144  case SPACE_STATUSBAR:
145  ts = &btheme->space_statusbar;
146  break;
147  case SPACE_SPREADSHEET:
148  ts = &btheme->space_spreadsheet;
149  break;
150  default:
151  ts = &btheme->space_view3d;
152  break;
153  }
154 
155  switch (colorid) {
156  case TH_BACK:
158  cp = ts->back;
159  }
160  else if (theme_regionid == RGN_TYPE_CHANNELS) {
161  cp = ts->list;
162  }
164  cp = ts->header;
165  }
166  else if (theme_regionid == RGN_TYPE_NAV_BAR) {
167  cp = ts->navigation_bar;
168  }
169  else if (theme_regionid == RGN_TYPE_EXECUTE) {
170  cp = ts->execution_buts;
171  }
172  else {
173  cp = ts->button;
174  }
175 
176  copy_v4_v4_uchar(back, cp);
178  back[3] = 255;
179  }
180  cp = back;
181  break;
182  case TH_BACK_GRAD:
183  cp = ts->back_grad;
184  break;
185 
186  case TH_BACKGROUND_TYPE:
187  cp = &setting;
188  setting = ts->background_type;
189  break;
190  case TH_TEXT:
192  cp = ts->text;
193  }
194  else if (theme_regionid == RGN_TYPE_CHANNELS) {
195  cp = ts->list_text;
196  }
198  cp = ts->header_text;
199  }
200  else {
201  cp = ts->button_text;
202  }
203  break;
204  case TH_TEXT_HI:
206  cp = ts->text_hi;
207  }
208  else if (theme_regionid == RGN_TYPE_CHANNELS) {
209  cp = ts->list_text_hi;
210  }
212  cp = ts->header_text_hi;
213  }
214  else {
215  cp = ts->button_text_hi;
216  }
217  break;
218  case TH_TITLE:
220  cp = ts->title;
221  }
222  else if (theme_regionid == RGN_TYPE_CHANNELS) {
223  cp = ts->list_title;
224  }
226  cp = ts->header_title;
227  }
228  else {
229  cp = ts->button_title;
230  }
231  break;
232 
233  case TH_HEADER:
234  cp = ts->header;
235  break;
236 
237  case TH_HEADER_ACTIVE:
238  cp = ts->header;
239  const int factor = 5;
240  /* Lighten the header color when editor is active. */
241  header_active[0] = cp[0] > 245 ? cp[0] - factor : cp[0] + factor;
242  header_active[1] = cp[1] > 245 ? cp[1] - factor : cp[1] + factor;
243  header_active[2] = cp[2] > 245 ? cp[2] - factor : cp[2] + factor;
244  header_active[3] = cp[3];
245  cp = header_active;
246  break;
247 
248  case TH_HEADER_TEXT:
249  cp = ts->header_text;
250  break;
251  case TH_HEADER_TEXT_HI:
252  cp = ts->header_text_hi;
253  break;
254 
255  case TH_PANEL_HEADER:
256  cp = ts->panelcolors.header;
257  break;
258  case TH_PANEL_BACK:
259  cp = ts->panelcolors.back;
260  break;
261  case TH_PANEL_SUB_BACK:
262  cp = ts->panelcolors.sub_back;
263  break;
264 
265  case TH_BUTBACK:
266  cp = ts->button;
267  break;
268  case TH_BUTBACK_TEXT:
269  cp = ts->button_text;
270  break;
271  case TH_BUTBACK_TEXT_HI:
272  cp = ts->button_text_hi;
273  break;
274 
275  case TH_TAB_ACTIVE:
276  cp = ts->tab_active;
277  break;
278  case TH_TAB_INACTIVE:
279  cp = ts->tab_inactive;
280  break;
281  case TH_TAB_BACK:
282  cp = ts->tab_back;
283  break;
284  case TH_TAB_OUTLINE:
285  cp = ts->tab_outline;
286  break;
287 
288  case TH_SHADE1:
289  cp = ts->shade1;
290  break;
291  case TH_SHADE2:
292  cp = ts->shade2;
293  break;
294  case TH_HILITE:
295  cp = ts->hilite;
296  break;
297 
298  case TH_GRID:
299  cp = ts->grid;
300  break;
302  cp = ts->time_scrub_background;
303  break;
304  case TH_TIME_MARKER_LINE:
305  cp = ts->time_marker_line;
306  break;
308  cp = ts->time_marker_line_selected;
309  break;
310  case TH_VIEW_OVERLAY:
311  cp = ts->view_overlay;
312  break;
313  case TH_WIRE:
314  cp = ts->wire;
315  break;
316  case TH_WIRE_INNER:
317  cp = ts->syntaxr;
318  break;
319  case TH_WIRE_EDIT:
320  cp = ts->wire_edit;
321  break;
322  case TH_LIGHT:
323  cp = ts->lamp;
324  break;
325  case TH_SPEAKER:
326  cp = ts->speaker;
327  break;
328  case TH_CAMERA:
329  cp = ts->camera;
330  break;
331  case TH_EMPTY:
332  cp = ts->empty;
333  break;
334  case TH_SELECT:
335  cp = ts->select;
336  break;
337  case TH_ACTIVE:
338  cp = ts->active;
339  break;
340  case TH_GROUP:
341  cp = ts->group;
342  break;
343  case TH_GROUP_ACTIVE:
344  cp = ts->group_active;
345  break;
346  case TH_TRANSFORM:
347  cp = ts->transform;
348  break;
349  case TH_VERTEX:
350  cp = ts->vertex;
351  break;
352  case TH_VERTEX_SELECT:
353  cp = ts->vertex_select;
354  break;
355  case TH_VERTEX_ACTIVE:
356  cp = ts->vertex_active;
357  break;
358  case TH_VERTEX_BEVEL:
359  cp = ts->vertex_bevel;
360  break;
362  cp = ts->vertex_unreferenced;
363  break;
364  case TH_VERTEX_SIZE:
365  cp = &ts->vertex_size;
366  break;
367  case TH_OUTLINE_WIDTH:
368  cp = &ts->outline_width;
369  break;
370  case TH_OBCENTER_DIA:
371  cp = &ts->obcenter_dia;
372  break;
373  case TH_EDGE:
374  cp = ts->edge;
375  break;
376  case TH_EDGE_SELECT:
377  cp = ts->edge_select;
378  break;
379  case TH_EDGE_SEAM:
380  cp = ts->edge_seam;
381  break;
382  case TH_EDGE_SHARP:
383  cp = ts->edge_sharp;
384  break;
385  case TH_EDGE_CREASE:
386  cp = ts->edge_crease;
387  break;
388  case TH_EDGE_BEVEL:
389  cp = ts->edge_bevel;
390  break;
391  case TH_EDITMESH_ACTIVE:
392  cp = ts->editmesh_active;
393  break;
394  case TH_EDGE_FACESEL:
395  cp = ts->edge_facesel;
396  break;
397  case TH_FACE:
398  cp = ts->face;
399  break;
400  case TH_FACE_SELECT:
401  cp = ts->face_select;
402  break;
403  case TH_FACE_BACK:
404  cp = ts->face_back;
405  break;
406  case TH_FACE_FRONT:
407  cp = ts->face_front;
408  break;
409  case TH_FACE_DOT:
410  cp = ts->face_dot;
411  break;
412  case TH_FACEDOT_SIZE:
413  cp = &ts->facedot_size;
414  break;
416  cp = ts->extra_edge_len;
417  break;
419  cp = ts->extra_edge_angle;
420  break;
422  cp = ts->extra_face_area;
423  break;
425  cp = ts->extra_face_angle;
426  break;
427  case TH_NORMAL:
428  cp = ts->normal;
429  break;
430  case TH_VNORMAL:
431  cp = ts->vertex_normal;
432  break;
433  case TH_LNORMAL:
434  cp = ts->loop_normal;
435  break;
436  case TH_BONE_SOLID:
437  cp = ts->bone_solid;
438  break;
439  case TH_BONE_POSE:
440  cp = ts->bone_pose;
441  break;
442  case TH_BONE_POSE_ACTIVE:
443  cp = ts->bone_pose_active;
444  break;
446  cp = ts->bone_locked_weight;
447  break;
448  case TH_STRIP:
449  cp = ts->strip;
450  break;
451  case TH_STRIP_SELECT:
452  cp = ts->strip_select;
453  break;
454  case TH_KEYTYPE_KEYFRAME:
455  cp = ts->keytype_keyframe;
456  break;
458  cp = ts->keytype_keyframe_select;
459  break;
460  case TH_KEYTYPE_EXTREME:
461  cp = ts->keytype_extreme;
462  break;
464  cp = ts->keytype_extreme_select;
465  break;
467  cp = ts->keytype_breakdown;
468  break;
470  cp = ts->keytype_breakdown_select;
471  break;
472  case TH_KEYTYPE_JITTER:
473  cp = ts->keytype_jitter;
474  break;
476  cp = ts->keytype_jitter_select;
477  break;
478  case TH_KEYTYPE_MOVEHOLD:
479  cp = ts->keytype_movehold;
480  break;
482  cp = ts->keytype_movehold_select;
483  break;
484  case TH_KEYBORDER:
485  cp = ts->keyborder;
486  break;
487  case TH_KEYBORDER_SELECT:
488  cp = ts->keyborder_select;
489  break;
490  case TH_CFRAME:
491  cp = ts->cframe;
492  break;
493  case TH_TIME_KEYFRAME:
494  cp = ts->time_keyframe;
495  break;
496  case TH_TIME_GP_KEYFRAME:
497  cp = ts->time_gp_keyframe;
498  break;
499  case TH_NURB_ULINE:
500  cp = ts->nurb_uline;
501  break;
502  case TH_NURB_VLINE:
503  cp = ts->nurb_vline;
504  break;
505  case TH_NURB_SEL_ULINE:
506  cp = ts->nurb_sel_uline;
507  break;
508  case TH_NURB_SEL_VLINE:
509  cp = ts->nurb_sel_vline;
510  break;
511  case TH_ACTIVE_SPLINE:
512  cp = ts->act_spline;
513  break;
514  case TH_ACTIVE_VERT:
515  cp = ts->lastsel_point;
516  break;
517  case TH_HANDLE_FREE:
518  cp = ts->handle_free;
519  break;
520  case TH_HANDLE_AUTO:
521  cp = ts->handle_auto;
522  break;
523  case TH_HANDLE_AUTOCLAMP:
524  cp = ts->handle_auto_clamped;
525  break;
526  case TH_HANDLE_VECT:
527  cp = ts->handle_vect;
528  break;
529  case TH_HANDLE_ALIGN:
530  cp = ts->handle_align;
531  break;
532  case TH_HANDLE_SEL_FREE:
533  cp = ts->handle_sel_free;
534  break;
535  case TH_HANDLE_SEL_AUTO:
536  cp = ts->handle_sel_auto;
537  break;
539  cp = ts->handle_sel_auto_clamped;
540  break;
541  case TH_HANDLE_SEL_VECT:
542  cp = ts->handle_sel_vect;
543  break;
544  case TH_HANDLE_SEL_ALIGN:
545  cp = ts->handle_sel_align;
546  break;
548  cp = ts->freestyle_edge_mark;
549  break;
551  cp = ts->freestyle_face_mark;
552  break;
553 
554  case TH_SYNTAX_B:
555  cp = ts->syntaxb;
556  break;
557  case TH_SYNTAX_V:
558  cp = ts->syntaxv;
559  break;
560  case TH_SYNTAX_C:
561  cp = ts->syntaxc;
562  break;
563  case TH_SYNTAX_L:
564  cp = ts->syntaxl;
565  break;
566  case TH_SYNTAX_D:
567  cp = ts->syntaxd;
568  break;
569  case TH_SYNTAX_R:
570  cp = ts->syntaxr;
571  break;
572  case TH_SYNTAX_N:
573  cp = ts->syntaxn;
574  break;
575  case TH_SYNTAX_S:
576  cp = ts->syntaxs;
577  break;
578  case TH_LINENUMBERS:
579  cp = ts->line_numbers;
580  break;
581 
582  case TH_NODE:
583  cp = ts->syntaxl;
584  break;
585  case TH_NODE_INPUT:
586  cp = ts->syntaxn;
587  break;
588  case TH_NODE_OUTPUT:
589  cp = ts->nodeclass_output;
590  break;
591  case TH_NODE_COLOR:
592  cp = ts->syntaxb;
593  break;
594  case TH_NODE_FILTER:
595  cp = ts->nodeclass_filter;
596  break;
597  case TH_NODE_VECTOR:
598  cp = ts->nodeclass_vector;
599  break;
600  case TH_NODE_TEXTURE:
601  cp = ts->nodeclass_texture;
602  break;
603  case TH_NODE_PATTERN:
604  cp = ts->nodeclass_pattern;
605  break;
606  case TH_NODE_SCRIPT:
607  cp = ts->nodeclass_script;
608  break;
609  case TH_NODE_LAYOUT:
610  cp = ts->nodeclass_layout;
611  break;
612  case TH_NODE_GEOMETRY:
613  cp = ts->nodeclass_geometry;
614  break;
615  case TH_NODE_ATTRIBUTE:
616  cp = ts->nodeclass_attribute;
617  break;
618  case TH_NODE_SHADER:
619  cp = ts->nodeclass_shader;
620  break;
621  case TH_NODE_CONVERTER:
622  cp = ts->syntaxv;
623  break;
624  case TH_NODE_GROUP:
625  cp = ts->syntaxc;
626  break;
627  case TH_NODE_INTERFACE:
628  cp = ts->console_output;
629  break;
630  case TH_NODE_FRAME:
631  cp = ts->movie;
632  break;
633  case TH_NODE_MATTE:
634  cp = ts->syntaxs;
635  break;
636  case TH_NODE_DISTORT:
637  cp = ts->syntaxd;
638  break;
639  case TH_NODE_CURVING:
640  cp = &ts->noodle_curving;
641  break;
642  case TH_NODE_GRID_LEVELS:
643  cp = &ts->grid_levels;
644  break;
645 
646  case TH_SEQ_MOVIE:
647  cp = ts->movie;
648  break;
649  case TH_SEQ_MOVIECLIP:
650  cp = ts->movieclip;
651  break;
652  case TH_SEQ_MASK:
653  cp = ts->mask;
654  break;
655  case TH_SEQ_IMAGE:
656  cp = ts->image;
657  break;
658  case TH_SEQ_SCENE:
659  cp = ts->scene;
660  break;
661  case TH_SEQ_AUDIO:
662  cp = ts->audio;
663  break;
664  case TH_SEQ_EFFECT:
665  cp = ts->effect;
666  break;
667  case TH_SEQ_META:
668  cp = ts->meta;
669  break;
670  case TH_SEQ_TEXT:
671  cp = ts->text_strip;
672  break;
673  case TH_SEQ_PREVIEW:
674  cp = ts->preview_back;
675  break;
676  case TH_SEQ_COLOR:
677  cp = ts->color_strip;
678  break;
679  case TH_SEQ_ACTIVE:
680  cp = ts->active_strip;
681  break;
682  case TH_SEQ_SELECTED:
683  cp = ts->selected_strip;
684  break;
685 
686  case TH_CONSOLE_OUTPUT:
687  cp = ts->console_output;
688  break;
689  case TH_CONSOLE_INPUT:
690  cp = ts->console_input;
691  break;
692  case TH_CONSOLE_INFO:
693  cp = ts->console_info;
694  break;
695  case TH_CONSOLE_ERROR:
696  cp = ts->console_error;
697  break;
698  case TH_CONSOLE_CURSOR:
699  cp = ts->console_cursor;
700  break;
701  case TH_CONSOLE_SELECT:
702  cp = ts->console_select;
703  break;
704 
705  case TH_HANDLE_VERTEX:
706  cp = ts->handle_vertex;
707  break;
709  cp = ts->handle_vertex_select;
710  break;
712  cp = &ts->handle_vertex_size;
713  break;
714 
715  case TH_GP_VERTEX:
716  cp = ts->gp_vertex;
717  break;
718  case TH_GP_VERTEX_SELECT:
719  cp = ts->gp_vertex_select;
720  break;
721  case TH_GP_VERTEX_SIZE:
722  cp = &ts->gp_vertex_size;
723  break;
724 
726  cp = ts->ds_channel;
727  break;
729  cp = ts->ds_subchannel;
730  break;
732  cp = ts->ds_ipoline;
733  break;
734 
735  case TH_PREVIEW_BACK:
736  cp = ts->preview_back;
737  break;
738 
740  cp = ts->preview_stitch_face;
741  break;
742 
744  cp = ts->preview_stitch_edge;
745  break;
746 
748  cp = ts->preview_stitch_vert;
749  break;
750 
752  cp = ts->preview_stitch_stitchable;
753  break;
754 
757  break;
759  cp = ts->preview_stitch_active;
760  break;
761 
763  cp = ts->paint_curve_handle;
764  break;
766  cp = ts->paint_curve_pivot;
767  break;
768 
769  case TH_METADATA_BG:
770  cp = ts->metadatabg;
771  break;
772  case TH_METADATA_TEXT:
773  cp = ts->metadatatext;
774  break;
775 
776  case TH_UV_SHADOW:
777  cp = ts->uv_shadow;
778  break;
779 
780  case TH_MARKER_OUTLINE:
781  cp = ts->marker_outline;
782  break;
783  case TH_MARKER:
784  cp = ts->marker;
785  break;
786  case TH_ACT_MARKER:
787  cp = ts->act_marker;
788  break;
789  case TH_SEL_MARKER:
790  cp = ts->sel_marker;
791  break;
792  case TH_BUNDLE_SOLID:
793  cp = ts->bundle_solid;
794  break;
795  case TH_DIS_MARKER:
796  cp = ts->dis_marker;
797  break;
798  case TH_PATH_BEFORE:
799  cp = ts->path_before;
800  break;
801  case TH_PATH_AFTER:
802  cp = ts->path_after;
803  break;
805  cp = ts->path_keyframe_before;
806  break;
808  cp = ts->path_keyframe_after;
809  break;
810  case TH_CAMERA_PATH:
811  cp = ts->camera_path;
812  break;
813  case TH_LOCK_MARKER:
814  cp = ts->lock_marker;
815  break;
816 
817  case TH_MATCH:
818  cp = ts->match;
819  break;
820 
821  case TH_SELECT_HIGHLIGHT:
822  cp = ts->selected_highlight;
823  break;
824 
825  case TH_SELECT_ACTIVE:
826  cp = ts->active;
827  break;
828 
829  case TH_SELECTED_OBJECT:
830  cp = ts->selected_object;
831  break;
832 
833  case TH_ACTIVE_OBJECT:
834  cp = ts->active_object;
835  break;
836 
837  case TH_EDITED_OBJECT:
838  cp = ts->edited_object;
839  break;
840 
841  case TH_ROW_ALTERNATE:
842  cp = ts->row_alternate;
843  break;
844 
845  case TH_SKIN_ROOT:
846  cp = ts->skin_root;
847  break;
848 
849  case TH_ANIM_ACTIVE:
850  cp = ts->anim_active;
851  break;
852  case TH_ANIM_INACTIVE:
853  cp = ts->anim_non_active;
854  break;
856  cp = ts->anim_preview_range;
857  break;
858 
859  case TH_NLA_TWEAK:
860  cp = ts->nla_tweaking;
861  break;
862  case TH_NLA_TWEAK_DUPLI:
863  cp = ts->nla_tweakdupli;
864  break;
865 
866  case TH_NLA_TRACK:
867  cp = ts->nla_track;
868  break;
869  case TH_NLA_TRANSITION:
870  cp = ts->nla_transition;
871  break;
873  cp = ts->nla_transition_sel;
874  break;
875  case TH_NLA_META:
876  cp = ts->nla_meta;
877  break;
878  case TH_NLA_META_SEL:
879  cp = ts->nla_meta_sel;
880  break;
881  case TH_NLA_SOUND:
882  cp = ts->nla_sound;
883  break;
884  case TH_NLA_SOUND_SEL:
885  cp = ts->nla_sound_sel;
886  break;
887 
888  case TH_WIDGET_EMBOSS:
889  cp = btheme->tui.widget_emboss;
890  break;
891 
892  case TH_EDITOR_OUTLINE:
893  cp = btheme->tui.editor_outline;
894  break;
896  cp = btheme->tui.widget_text_cursor;
897  break;
898 
900  cp = btheme->tui.transparent_checker_primary;
901  break;
903  cp = btheme->tui.transparent_checker_secondary;
904  break;
906  cp = &btheme->tui.transparent_checker_size;
907  break;
908 
909  case TH_AXIS_X:
910  cp = btheme->tui.xaxis;
911  break;
912  case TH_AXIS_Y:
913  cp = btheme->tui.yaxis;
914  break;
915  case TH_AXIS_Z:
916  cp = btheme->tui.zaxis;
917  break;
918 
919  case TH_GIZMO_HI:
920  cp = btheme->tui.gizmo_hi;
921  break;
922  case TH_GIZMO_PRIMARY:
923  cp = btheme->tui.gizmo_primary;
924  break;
925  case TH_GIZMO_SECONDARY:
926  cp = btheme->tui.gizmo_secondary;
927  break;
928  case TH_GIZMO_VIEW_ALIGN:
929  cp = btheme->tui.gizmo_view_align;
930  break;
931  case TH_GIZMO_A:
932  cp = btheme->tui.gizmo_a;
933  break;
934  case TH_GIZMO_B:
935  cp = btheme->tui.gizmo_b;
936  break;
937 
938  case TH_ICON_SCENE:
939  cp = btheme->tui.icon_scene;
940  break;
941  case TH_ICON_COLLECTION:
942  cp = btheme->tui.icon_collection;
943  break;
944  case TH_ICON_OBJECT:
945  cp = btheme->tui.icon_object;
946  break;
947  case TH_ICON_OBJECT_DATA:
948  cp = btheme->tui.icon_object_data;
949  break;
950  case TH_ICON_MODIFIER:
951  cp = btheme->tui.icon_modifier;
952  break;
953  case TH_ICON_SHADING:
954  cp = btheme->tui.icon_shading;
955  break;
956  case TH_ICON_FOLDER:
957  cp = btheme->tui.icon_folder;
958  break;
959  case TH_ICON_FUND: {
960  /* Development fund icon color is not part of theme. */
961  static const uchar red[4] = {204, 48, 72, 255};
962  cp = red;
963  break;
964  }
965 
966  case TH_SCROLL_TEXT:
967  cp = btheme->tui.wcol_scroll.text;
968  break;
969 
970  case TH_INFO_SELECTED:
971  cp = ts->info_selected;
972  break;
974  cp = ts->info_selected_text;
975  break;
976  case TH_INFO_ERROR:
977  cp = ts->info_error;
978  break;
979  case TH_INFO_ERROR_TEXT:
980  cp = ts->info_error_text;
981  break;
982  case TH_INFO_WARNING:
983  cp = ts->info_warning;
984  break;
986  cp = ts->info_warning_text;
987  break;
988  case TH_INFO_INFO:
989  cp = ts->info_info;
990  break;
991  case TH_INFO_INFO_TEXT:
992  cp = ts->info_info_text;
993  break;
994  case TH_INFO_DEBUG:
995  cp = ts->info_debug;
996  break;
997  case TH_INFO_DEBUG_TEXT:
998  cp = ts->info_debug_text;
999  break;
1000  case TH_INFO_PROPERTY:
1001  cp = ts->info_property;
1002  break;
1003  case TH_INFO_PROPERTY_TEXT:
1004  cp = ts->info_property_text;
1005  break;
1006  case TH_INFO_OPERATOR:
1007  cp = ts->info_operator;
1008  break;
1009  case TH_INFO_OPERATOR_TEXT:
1010  cp = ts->info_operator_text;
1011  break;
1013  cp = ts->clipping_border_3d;
1014  break;
1015  }
1016  }
1017  }
1018 
1019  return (const uchar *)cp;
1020 }
1021 
1023 {
1024  /* we search for the theme with name Default */
1025  bTheme *btheme = BLI_findstring(&U.themes, "Default", offsetof(bTheme, name));
1026  if (btheme == NULL) {
1027  btheme = MEM_callocN(sizeof(bTheme), __func__);
1028  BLI_addtail(&U.themes, btheme);
1029  }
1030 
1031  UI_SetTheme(0, 0); /* make sure the global used in this file is set */
1032 
1033  const int active_theme_area = btheme->active_theme_area;
1034  memcpy(btheme, &U_theme_default, sizeof(*btheme));
1035  btheme->active_theme_area = active_theme_area;
1036 }
1037 
1039 {
1040  BLI_freelistN(&U.uistyles);
1041  /* gets automatically re-allocated */
1042  uiStyleInit();
1043 }
1044 
1046 {
1047  if (spacetype) {
1048  /* later on, a local theme can be found too */
1049  theme_active = U.themes.first;
1052  }
1053  else if (regionid) {
1054  /* popups */
1055  theme_active = U.themes.first;
1058  }
1059  else {
1060  /* for safety, when theme was deleted */
1061  theme_active = U.themes.first;
1064  }
1065 }
1066 
1068 {
1069  return U.themes.first;
1070 }
1071 
1072 void UI_Theme_Store(struct bThemeState *theme_state)
1073 {
1074  *theme_state = g_theme_state;
1075 }
1076 void UI_Theme_Restore(struct bThemeState *theme_state)
1077 {
1078  g_theme_state = *theme_state;
1079 }
1080 
1081 void UI_GetThemeColorShadeAlpha4ubv(int colorid, int coloffset, int alphaoffset, uchar col[4])
1082 {
1083  int r, g, b, a;
1084  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1085  r = coloffset + (int)cp[0];
1086  CLAMP(r, 0, 255);
1087  g = coloffset + (int)cp[1];
1088  CLAMP(g, 0, 255);
1089  b = coloffset + (int)cp[2];
1090  CLAMP(b, 0, 255);
1091  a = alphaoffset + (int)cp[3];
1092  CLAMP(a, 0, 255);
1093 
1094  col[0] = r;
1095  col[1] = g;
1096  col[2] = b;
1097  col[3] = a;
1098 }
1099 
1100 void UI_GetThemeColorBlend3ubv(int colorid1, int colorid2, float fac, uchar col[3])
1101 {
1102  const uchar *cp1 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid1);
1103  const uchar *cp2 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid2);
1104 
1105  CLAMP(fac, 0.0f, 1.0f);
1106  col[0] = floorf((1.0f - fac) * cp1[0] + fac * cp2[0]);
1107  col[1] = floorf((1.0f - fac) * cp1[1] + fac * cp2[1]);
1108  col[2] = floorf((1.0f - fac) * cp1[2] + fac * cp2[2]);
1109 }
1110 
1111 void UI_GetThemeColorBlend3f(int colorid1, int colorid2, float fac, float r_col[3])
1112 {
1113  const uchar *cp1 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid1);
1114  const uchar *cp2 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid2);
1115 
1116  CLAMP(fac, 0.0f, 1.0f);
1117  r_col[0] = ((1.0f - fac) * cp1[0] + fac * cp2[0]) / 255.0f;
1118  r_col[1] = ((1.0f - fac) * cp1[1] + fac * cp2[1]) / 255.0f;
1119  r_col[2] = ((1.0f - fac) * cp1[2] + fac * cp2[2]) / 255.0f;
1120 }
1121 
1122 void UI_GetThemeColorBlend4f(int colorid1, int colorid2, float fac, float r_col[4])
1123 {
1124  const uchar *cp1 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid1);
1125  const uchar *cp2 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid2);
1126 
1127  CLAMP(fac, 0.0f, 1.0f);
1128  r_col[0] = ((1.0f - fac) * cp1[0] + fac * cp2[0]) / 255.0f;
1129  r_col[1] = ((1.0f - fac) * cp1[1] + fac * cp2[1]) / 255.0f;
1130  r_col[2] = ((1.0f - fac) * cp1[2] + fac * cp2[2]) / 255.0f;
1131  r_col[3] = ((1.0f - fac) * cp1[3] + fac * cp2[3]) / 255.0f;
1132 }
1133 
1134 void UI_FontThemeColor(int fontid, int colorid)
1135 {
1136  uchar color[4];
1137  UI_GetThemeColor4ubv(colorid, color);
1138  BLF_color4ubv(fontid, color);
1139 }
1140 
1141 float UI_GetThemeValuef(int colorid)
1142 {
1143  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1144  return ((float)cp[0]);
1145 }
1146 
1147 int UI_GetThemeValue(int colorid)
1148 {
1149  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1150  return ((int)cp[0]);
1151 }
1152 
1153 float UI_GetThemeValueTypef(int colorid, int spacetype)
1154 {
1155  const uchar *cp = UI_ThemeGetColorPtr(theme_active, spacetype, colorid);
1156  return ((float)cp[0]);
1157 }
1158 
1159 int UI_GetThemeValueType(int colorid, int spacetype)
1160 {
1161  const uchar *cp = UI_ThemeGetColorPtr(theme_active, spacetype, colorid);
1162  return ((int)cp[0]);
1163 }
1164 
1165 void UI_GetThemeColor3fv(int colorid, float col[3])
1166 {
1167  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1168  col[0] = ((float)cp[0]) / 255.0f;
1169  col[1] = ((float)cp[1]) / 255.0f;
1170  col[2] = ((float)cp[2]) / 255.0f;
1171 }
1172 
1173 void UI_GetThemeColor4fv(int colorid, float col[4])
1174 {
1175  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1176  col[0] = ((float)cp[0]) / 255.0f;
1177  col[1] = ((float)cp[1]) / 255.0f;
1178  col[2] = ((float)cp[2]) / 255.0f;
1179  col[3] = ((float)cp[3]) / 255.0f;
1180 }
1181 
1182 void UI_GetThemeColorType4fv(int colorid, int spacetype, float col[4])
1183 {
1184  const uchar *cp = UI_ThemeGetColorPtr(theme_active, spacetype, colorid);
1185  col[0] = ((float)cp[0]) / 255.0f;
1186  col[1] = ((float)cp[1]) / 255.0f;
1187  col[2] = ((float)cp[2]) / 255.0f;
1188  col[3] = ((float)cp[3]) / 255.0f;
1189 }
1190 
1191 void UI_GetThemeColorShade3fv(int colorid, int offset, float col[3])
1192 {
1193  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1194  int r, g, b;
1195 
1196  r = offset + (int)cp[0];
1197  CLAMP(r, 0, 255);
1198  g = offset + (int)cp[1];
1199  CLAMP(g, 0, 255);
1200  b = offset + (int)cp[2];
1201  CLAMP(b, 0, 255);
1202 
1203  col[0] = ((float)r) / 255.0f;
1204  col[1] = ((float)g) / 255.0f;
1205  col[2] = ((float)b) / 255.0f;
1206 }
1207 
1208 void UI_GetThemeColorShade3ubv(int colorid, int offset, uchar col[3])
1209 {
1210  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1211  int r, g, b;
1212 
1213  r = offset + (int)cp[0];
1214  CLAMP(r, 0, 255);
1215  g = offset + (int)cp[1];
1216  CLAMP(g, 0, 255);
1217  b = offset + (int)cp[2];
1218  CLAMP(b, 0, 255);
1219 
1220  col[0] = r;
1221  col[1] = g;
1222  col[2] = b;
1223 }
1224 
1226  int colorid1, int colorid2, float fac, int offset, uchar col[3])
1227 {
1228  const uchar *cp1 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid1);
1229  const uchar *cp2 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid2);
1230 
1231  CLAMP(fac, 0.0f, 1.0f);
1232 
1233  float blend[3];
1234  blend[0] = (offset + floorf((1.0f - fac) * cp1[0] + fac * cp2[0])) / 255.0f;
1235  blend[1] = (offset + floorf((1.0f - fac) * cp1[1] + fac * cp2[1])) / 255.0f;
1236  blend[2] = (offset + floorf((1.0f - fac) * cp1[2] + fac * cp2[2])) / 255.0f;
1237 
1239 }
1240 
1241 void UI_GetThemeColorShade4ubv(int colorid, int offset, uchar col[4])
1242 {
1243  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1244  int r, g, b;
1245 
1246  r = offset + (int)cp[0];
1247  CLAMP(r, 0, 255);
1248  g = offset + (int)cp[1];
1249  CLAMP(g, 0, 255);
1250  b = offset + (int)cp[2];
1251  CLAMP(b, 0, 255);
1252 
1253  col[0] = r;
1254  col[1] = g;
1255  col[2] = b;
1256  col[3] = cp[3];
1257 }
1258 
1259 void UI_GetThemeColorShadeAlpha4fv(int colorid, int coloffset, int alphaoffset, float col[4])
1260 {
1261  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1262  int r, g, b, a;
1263 
1264  r = coloffset + (int)cp[0];
1265  CLAMP(r, 0, 255);
1266  g = coloffset + (int)cp[1];
1267  CLAMP(g, 0, 255);
1268  b = coloffset + (int)cp[2];
1269  CLAMP(b, 0, 255);
1270  a = alphaoffset + (int)cp[3];
1271  CLAMP(a, 0, 255);
1272 
1273  col[0] = ((float)r) / 255.0f;
1274  col[1] = ((float)g) / 255.0f;
1275  col[2] = ((float)b) / 255.0f;
1276  col[3] = ((float)a) / 255.0f;
1277 }
1278 
1279 void UI_GetThemeColorBlendShade3fv(int colorid1, int colorid2, float fac, int offset, float col[3])
1280 {
1281  const uchar *cp1 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid1);
1282  const uchar *cp2 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid2);
1283  int r, g, b;
1284 
1285  CLAMP(fac, 0.0f, 1.0f);
1286 
1287  r = offset + floorf((1.0f - fac) * cp1[0] + fac * cp2[0]);
1288  CLAMP(r, 0, 255);
1289  g = offset + floorf((1.0f - fac) * cp1[1] + fac * cp2[1]);
1290  CLAMP(g, 0, 255);
1291  b = offset + floorf((1.0f - fac) * cp1[2] + fac * cp2[2]);
1292  CLAMP(b, 0, 255);
1293 
1294  col[0] = ((float)r) / 255.0f;
1295  col[1] = ((float)g) / 255.0f;
1296  col[2] = ((float)b) / 255.0f;
1297 }
1298 
1299 void UI_GetThemeColorBlendShade4fv(int colorid1, int colorid2, float fac, int offset, float col[4])
1300 {
1301  const uchar *cp1 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid1);
1302  const uchar *cp2 = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid2);
1303  int r, g, b, a;
1304 
1305  CLAMP(fac, 0.0f, 1.0f);
1306 
1307  r = offset + floorf((1.0f - fac) * cp1[0] + fac * cp2[0]);
1308  CLAMP(r, 0, 255);
1309  g = offset + floorf((1.0f - fac) * cp1[1] + fac * cp2[1]);
1310  CLAMP(g, 0, 255);
1311  b = offset + floorf((1.0f - fac) * cp1[2] + fac * cp2[2]);
1312  CLAMP(b, 0, 255);
1313 
1314  a = floorf((1.0f - fac) * cp1[3] + fac * cp2[3]); /* No shading offset. */
1315  CLAMP(a, 0, 255);
1316 
1317  col[0] = ((float)r) / 255.0f;
1318  col[1] = ((float)g) / 255.0f;
1319  col[2] = ((float)b) / 255.0f;
1320  col[3] = ((float)a) / 255.0f;
1321 }
1322 
1323 void UI_GetThemeColor3ubv(int colorid, uchar col[3])
1324 {
1325  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1326  col[0] = cp[0];
1327  col[1] = cp[1];
1328  col[2] = cp[2];
1329 }
1330 
1331 void UI_GetThemeColorShade4fv(int colorid, int offset, float col[4])
1332 {
1333  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1334  int r, g, b, a;
1335 
1336  r = offset + (int)cp[0];
1337  CLAMP(r, 0, 255);
1338  g = offset + (int)cp[1];
1339  CLAMP(g, 0, 255);
1340  b = offset + (int)cp[2];
1341  CLAMP(b, 0, 255);
1342 
1343  a = (int)cp[3]; /* no shading offset... */
1344  CLAMP(a, 0, 255);
1345 
1346  col[0] = ((float)r) / 255.0f;
1347  col[1] = ((float)g) / 255.0f;
1348  col[2] = ((float)b) / 255.0f;
1349  col[3] = ((float)a) / 255.0f;
1350 }
1351 
1352 void UI_GetThemeColor4ubv(int colorid, uchar col[4])
1353 {
1354  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1355  col[0] = cp[0];
1356  col[1] = cp[1];
1357  col[2] = cp[2];
1358  col[3] = cp[3];
1359 }
1360 
1361 void UI_GetThemeColorType3fv(int colorid, int spacetype, float col[3])
1362 {
1363  const uchar *cp = UI_ThemeGetColorPtr(theme_active, spacetype, colorid);
1364  col[0] = ((float)cp[0]) / 255.0f;
1365  col[1] = ((float)cp[1]) / 255.0f;
1366  col[2] = ((float)cp[2]) / 255.0f;
1367 }
1368 
1369 void UI_GetThemeColorType3ubv(int colorid, int spacetype, uchar col[3])
1370 {
1371  const uchar *cp = UI_ThemeGetColorPtr(theme_active, spacetype, colorid);
1372  col[0] = cp[0];
1373  col[1] = cp[1];
1374  col[2] = cp[2];
1375 }
1376 
1377 void UI_GetThemeColorType4ubv(int colorid, int spacetype, uchar col[4])
1378 {
1379  const uchar *cp = UI_ThemeGetColorPtr(theme_active, spacetype, colorid);
1380  col[0] = cp[0];
1381  col[1] = cp[1];
1382  col[2] = cp[2];
1383  col[3] = cp[3];
1384 }
1385 
1386 bool UI_GetIconThemeColor4ubv(int colorid, uchar col[4])
1387 {
1388  if (colorid == 0) {
1389  return false;
1390  }
1391  if (colorid == TH_ICON_FUND) {
1392  /* Always color development fund icon. */
1393  }
1397  /* Only colored icons in specific places, overall UI is intended
1398  * to stay monochrome and out of the way except a few places where it
1399  * is important to communicate different data types. */
1400  return false;
1401  }
1402 
1403  const uchar *cp = UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
1404  col[0] = cp[0];
1405  col[1] = cp[1];
1406  col[2] = cp[2];
1407  col[3] = cp[3];
1408 
1409  return true;
1410 }
1411 
1412 void UI_GetColorPtrShade3ubv(const uchar cp[3], uchar col[3], int offset)
1413 {
1414  int r, g, b;
1415 
1416  r = offset + (int)cp[0];
1417  g = offset + (int)cp[1];
1418  b = offset + (int)cp[2];
1419 
1420  CLAMP(r, 0, 255);
1421  CLAMP(g, 0, 255);
1422  CLAMP(b, 0, 255);
1423 
1424  col[0] = r;
1425  col[1] = g;
1426  col[2] = b;
1427 }
1428 
1430  const uchar cp1[3], const uchar cp2[3], uchar col[3], float fac, int offset)
1431 {
1432  int r, g, b;
1433 
1434  CLAMP(fac, 0.0f, 1.0f);
1435  r = offset + floor((1.0f - fac) * cp1[0] + fac * cp2[0]);
1436  g = offset + floor((1.0f - fac) * cp1[1] + fac * cp2[1]);
1437  b = offset + floor((1.0f - fac) * cp1[2] + fac * cp2[2]);
1438 
1439  CLAMP(r, 0, 255);
1440  CLAMP(g, 0, 255);
1441  CLAMP(b, 0, 255);
1442 
1443  col[0] = r;
1444  col[1] = g;
1445  col[2] = b;
1446 }
1447 
1448 void UI_ThemeClearColor(int colorid)
1449 {
1450  float col[3];
1451 
1452  UI_GetThemeColor3fv(colorid, col);
1453  GPU_clear_color(col[0], col[1], col[2], 1.0f);
1454 }
1455 
1457 {
1458  bTheme *btheme = UI_GetTheme();
1459  return (int)(btheme->tui.menu_shadow_width * UI_DPI_FAC);
1460 }
1461 
1462 void UI_make_axis_color(const uchar src_col[3], uchar dst_col[3], const char axis)
1463 {
1464  uchar col[3];
1465 
1466  switch (axis) {
1467  case 'X':
1469  UI_GetColorPtrBlendShade3ubv(src_col, col, dst_col, 0.5f, -10);
1470  break;
1471  case 'Y':
1473  UI_GetColorPtrBlendShade3ubv(src_col, col, dst_col, 0.5f, -10);
1474  break;
1475  case 'Z':
1477  UI_GetColorPtrBlendShade3ubv(src_col, col, dst_col, 0.5f, -10);
1478  break;
1479  default:
1480  BLI_assert(0);
1481  break;
1482  }
1483 }
typedef float(TangentPoint)[2]
void BLF_color4ubv(int fontid, const unsigned char rgba[4])
Definition: blf.c:383
#define BLI_assert(a)
Definition: BLI_assert.h:46
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
Definition: listbase.c:466
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
Definition: listbase.c:80
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findstring(const struct ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE void copy_v4_v4_uchar(unsigned char r[4], const unsigned char a[4])
unsigned char uchar
Definition: BLI_sys_types.h:70
#define ELEM(...)
external readfile function prototypes.
const struct bTheme U_theme_default
@ RGN_TYPE_CHANNELS
@ RGN_TYPE_EXECUTE
@ RGN_TYPE_WINDOW
@ RGN_TYPE_PREVIEW
@ RGN_TYPE_NAV_BAR
@ RGN_TYPE_FOOTER
@ RGN_TYPE_HEADER
@ SPACE_TEXT
@ SPACE_CLIP
@ SPACE_ACTION
@ SPACE_CONSOLE
@ SPACE_OUTLINER
@ SPACE_STATUSBAR
@ SPACE_TOPBAR
@ SPACE_NODE
@ SPACE_SPREADSHEET
@ SPACE_USERPREF
@ SPACE_FILE
@ SPACE_PROPERTIES
@ SPACE_NLA
@ SPACE_SEQ
@ SPACE_IMAGE
@ SPACE_GRAPH
@ SPACE_VIEW3D
@ SPACE_INFO
bool ED_region_is_overlap(int spacetype, int regiontype)
Definition: area.c:1248
_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 GLdouble r _GL_VOID_RET _GL_VOID GLfloat GLfloat r _GL_VOID_RET _GL_VOID GLint GLint r _GL_VOID_RET _GL_VOID GLshort GLshort r _GL_VOID_RET _GL_VOID GLdouble GLdouble r
_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 y
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position CLAMP
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a producing a negative Combine Generate a color from its red
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
#define UI_DPI_FAC
Definition: UI_interface.h:305
void UI_icons_free(void)
void UI_icons_init(void)
#define TH_UNDEFINED
Definition: UI_resources.h:27
@ TH_SELECT_ACTIVE
Definition: UI_resources.h:258
@ TH_EDGE_SHARP
Definition: UI_resources.h:201
@ TH_ICON_MODIFIER
Definition: UI_resources.h:274
@ TH_BONE_SOLID
Definition: UI_resources.h:133
@ TH_TAB_OUTLINE
Definition: UI_resources.h:48
@ TH_GIZMO_HI
Definition: UI_resources.h:304
@ TH_ROW_ALTERNATE
Definition: UI_resources.h:262
@ TH_HANDLE_ALIGN
Definition: UI_resources.h:112
@ TH_INFO_PROPERTY_TEXT
Definition: UI_resources.h:324
@ TH_NORMAL
Definition: UI_resources.h:92
@ TH_PATH_BEFORE
Definition: UI_resources.h:234
@ TH_LIGHT
Definition: UI_resources.h:155
@ TH_PANEL_HEADER
Definition: UI_resources.h:56
@ TH_NODE_FRAME
Definition: UI_resources.h:174
@ TH_KEYBORDER_SELECT
Definition: UI_resources.h:153
@ TH_NODE_INPUT
Definition: UI_resources.h:161
@ TH_FACE_BACK
Definition: UI_resources.h:90
@ TH_NODE
Definition: UI_resources.h:160
@ TH_BACK_GRAD
Definition: UI_resources.h:41
@ TH_MARKER_OUTLINE
Definition: UI_resources.h:228
@ TH_TIME_SCRUB_BACKGROUND
Definition: UI_resources.h:98
@ TH_LNORMAL
Definition: UI_resources.h:94
@ TH_TIME_KEYFRAME
Definition: UI_resources.h:101
@ TH_KEYTYPE_BREAKDOWN
Definition: UI_resources.h:145
@ TH_EDGE_FACESEL
Definition: UI_resources.h:87
@ TH_NODE_FILTER
Definition: UI_resources.h:164
@ TH_SELECT_HIGHLIGHT
Definition: UI_resources.h:257
@ TH_INFO_WARNING_TEXT
Definition: UI_resources.h:318
@ TH_NURB_SEL_VLINE
Definition: UI_resources.h:106
@ TH_ICON_OBJECT
Definition: UI_resources.h:272
@ TH_BUNDLE_SOLID
Definition: UI_resources.h:232
@ TH_NODE_GROUP
Definition: UI_resources.h:173
@ TH_KEYTYPE_KEYFRAME
Definition: UI_resources.h:141
@ TH_TRANSPARENT_CHECKER_PRIMARY
Definition: UI_resources.h:296
@ TH_BONE_POSE_ACTIVE
Definition: UI_resources.h:135
@ TH_DRAWEXTRA_EDGEANG
Definition: UI_resources.h:221
@ TH_SYNTAX_B
Definition: UI_resources.h:123
@ TH_FREESTYLE_FACE_MARK
Definition: UI_resources.h:254
@ TH_NLA_TRACK
Definition: UI_resources.h:284
@ TH_INFO_DEBUG
Definition: UI_resources.h:321
@ TH_DRAWEXTRA_FACEANG
Definition: UI_resources.h:223
@ TH_ACTIVE_OBJECT
Definition: UI_resources.h:260
@ TH_ICON_FOLDER
Definition: UI_resources.h:276
@ TH_TAB_ACTIVE
Definition: UI_resources.h:45
@ TH_FREESTYLE_EDGE_MARK
Definition: UI_resources.h:253
@ TH_HEADER
Definition: UI_resources.h:50
@ TH_GRID
Definition: UI_resources.h:68
@ TH_VERTEX_ACTIVE
Definition: UI_resources.h:79
@ TH_NODE_SCRIPT
Definition: UI_resources.h:168
@ TH_HANDLE_VERTEX_SIZE
Definition: UI_resources.h:206
@ TH_NLA_TRANSITION_SEL
Definition: UI_resources.h:286
@ TH_SEQ_SELECTED
Definition: UI_resources.h:199
@ TH_BACK
Definition: UI_resources.h:39
@ TH_NODE_GEOMETRY
Definition: UI_resources.h:177
@ TH_LOCK_MARKER
Definition: UI_resources.h:239
@ TH_INFO_INFO
Definition: UI_resources.h:319
@ TH_NODE_OUTPUT
Definition: UI_resources.h:162
@ TH_NODE_COLOR
Definition: UI_resources.h:163
@ TH_GIZMO_B
Definition: UI_resources.h:309
@ TH_NLA_META
Definition: UI_resources.h:287
@ TH_DOPESHEET_IPOLINE
Definition: UI_resources.h:214
@ TH_TIME_MARKER_LINE
Definition: UI_resources.h:99
@ TH_KEYBORDER
Definition: UI_resources.h:152
@ TH_WIRE
Definition: UI_resources.h:69
@ TH_KEYTYPE_JITTER
Definition: UI_resources.h:147
@ TH_INFO_INFO_TEXT
Definition: UI_resources.h:320
@ TH_SYNTAX_C
Definition: UI_resources.h:126
@ TH_SYNTAX_R
Definition: UI_resources.h:125
@ TH_INFO_PROPERTY
Definition: UI_resources.h:323
@ TH_SYNTAX_S
Definition: UI_resources.h:130
@ TH_BONE_LOCKED_WEIGHT
Definition: UI_resources.h:136
@ TH_TIME_GP_KEYFRAME
Definition: UI_resources.h:102
@ TH_KEYTYPE_EXTREME
Definition: UI_resources.h:143
@ TH_FACEDOT_SIZE
Definition: UI_resources.h:96
@ TH_WIDGET_EMBOSS
Definition: UI_resources.h:292
@ TH_BONE_POSE
Definition: UI_resources.h:134
@ TH_TIME_MARKER_LINE_SELECTED
Definition: UI_resources.h:100
@ TH_GROUP
Definition: UI_resources.h:74
@ TH_ICON_COLLECTION
Definition: UI_resources.h:271
@ TH_DOPESHEET_CHANNELSUBOB
Definition: UI_resources.h:213
@ TH_NLA_META_SEL
Definition: UI_resources.h:288
@ TH_HANDLE_SEL_AUTO
Definition: UI_resources.h:115
@ TH_INFO_DEBUG_TEXT
Definition: UI_resources.h:322
@ TH_SKIN_ROOT
Definition: UI_resources.h:264
@ TH_EDGE_SELECT
Definition: UI_resources.h:85
@ TH_TRANSPARENT_CHECKER_SECONDARY
Definition: UI_resources.h:297
@ TH_ICON_OBJECT_DATA
Definition: UI_resources.h:273
@ TH_ACTIVE_VERT
Definition: UI_resources.h:121
@ TH_HANDLE_SEL_AUTOCLAMP
Definition: UI_resources.h:118
@ TH_ACTIVE_SPLINE
Definition: UI_resources.h:120
@ TH_STITCH_PREVIEW_VERT
Definition: UI_resources.h:243
@ TH_EDITED_OBJECT
Definition: UI_resources.h:261
@ TH_CAMERA
Definition: UI_resources.h:157
@ TH_KEYTYPE_KEYFRAME_SELECT
Definition: UI_resources.h:142
@ TH_SELECTED_OBJECT
Definition: UI_resources.h:259
@ TH_PATH_AFTER
Definition: UI_resources.h:235
@ TH_ICON_SHADING
Definition: UI_resources.h:275
@ TH_NODE_PATTERN
Definition: UI_resources.h:167
@ TH_BUTBACK_TEXT
Definition: UI_resources.h:61
@ TH_STITCH_PREVIEW_UNSTITCHABLE
Definition: UI_resources.h:245
@ TH_TRANSFORM
Definition: UI_resources.h:76
@ TH_NODE_ATTRIBUTE
Definition: UI_resources.h:178
@ TH_EDGE_BEVEL
Definition: UI_resources.h:334
@ TH_OUTLINE_WIDTH
Definition: UI_resources.h:82
@ TH_BUTBACK
Definition: UI_resources.h:60
@ TH_HANDLE_AUTO
Definition: UI_resources.h:110
@ TH_PANEL_SUB_BACK
Definition: UI_resources.h:58
@ TH_NODE_DISTORT
Definition: UI_resources.h:176
@ TH_ICON_SCENE
Definition: UI_resources.h:270
@ TH_ANIM_ACTIVE
Definition: UI_resources.h:266
@ TH_INFO_ERROR
Definition: UI_resources.h:315
@ TH_NURB_VLINE
Definition: UI_resources.h:104
@ TH_SEQ_TEXT
Definition: UI_resources.h:195
@ TH_REDALERT
Definition: UI_resources.h:34
@ TH_SPEAKER
Definition: UI_resources.h:156
@ TH_INFO_ERROR_TEXT
Definition: UI_resources.h:316
@ TH_VERTEX
Definition: UI_resources.h:77
@ TH_METADATA_TEXT
Definition: UI_resources.h:332
@ TH_SEQ_MASK
Definition: UI_resources.h:189
@ TH_VERTEX_SIZE
Definition: UI_resources.h:81
@ TH_INFO_OPERATOR
Definition: UI_resources.h:325
@ TH_HANDLE_SEL_ALIGN
Definition: UI_resources.h:117
@ TH_SEQ_MOVIE
Definition: UI_resources.h:187
@ TH_GP_VERTEX_SELECT
Definition: UI_resources.h:209
@ TH_OBCENTER_DIA
Definition: UI_resources.h:83
@ TH_CONSOLE_SELECT
Definition: UI_resources.h:185
@ TH_KEYTYPE_MOVEHOLD
Definition: UI_resources.h:149
@ TH_INFO_WARNING
Definition: UI_resources.h:317
@ TH_GIZMO_VIEW_ALIGN
Definition: UI_resources.h:307
@ TH_SEQ_COLOR
Definition: UI_resources.h:197
@ TH_GIZMO_A
Definition: UI_resources.h:308
@ TH_SHADE2
Definition: UI_resources.h:65
@ TH_CONSOLE_ERROR
Definition: UI_resources.h:183
@ TH_KEYTYPE_BREAKDOWN_SELECT
Definition: UI_resources.h:146
@ TH_DIS_MARKER
Definition: UI_resources.h:233
@ TH_UV_SHADOW
Definition: UI_resources.h:251
@ TH_NODE_MATTE
Definition: UI_resources.h:175
@ TH_PAINT_CURVE_HANDLE
Definition: UI_resources.h:248
@ TH_STITCH_PREVIEW_EDGE
Definition: UI_resources.h:242
@ TH_NLA_TWEAK
Definition: UI_resources.h:281
@ TH_NODE_GRID_LEVELS
Definition: UI_resources.h:226
@ TH_PREVIEW_BACK
Definition: UI_resources.h:216
@ TH_HANDLE_SEL_FREE
Definition: UI_resources.h:114
@ TH_VERTEX_BEVEL
Definition: UI_resources.h:335
@ TH_SEQ_META
Definition: UI_resources.h:194
@ TH_FACE_SELECT
Definition: UI_resources.h:89
@ TH_CFRAME
Definition: UI_resources.h:97
@ TH_HANDLE_VERTEX_SELECT
Definition: UI_resources.h:205
@ TH_HANDLE_VERTEX
Definition: UI_resources.h:204
@ TH_SCROLL_TEXT
Definition: UI_resources.h:279
@ TH_LINENUMBERS
Definition: UI_resources.h:131
@ TH_STITCH_PREVIEW_ACTIVE
Definition: UI_resources.h:246
@ TH_ANIM_PREVIEW_RANGE
Definition: UI_resources.h:268
@ TH_NURB_ULINE
Definition: UI_resources.h:103
@ TH_MARKER
Definition: UI_resources.h:229
@ TH_KEYTYPE_EXTREME_SELECT
Definition: UI_resources.h:144
@ TH_EDGE_SEAM
Definition: UI_resources.h:86
@ TH_AXIS_Y
Definition: UI_resources.h:301
@ TH_AXIS_X
Definition: UI_resources.h:300
@ TH_NODE_TEXTURE
Definition: UI_resources.h:166
@ TH_NODE_VECTOR
Definition: UI_resources.h:165
@ TH_EDGE
Definition: UI_resources.h:84
@ TH_SHADE1
Definition: UI_resources.h:64
@ TH_INFO_SELECTED_TEXT
Definition: UI_resources.h:314
@ TH_HANDLE_SEL_VECT
Definition: UI_resources.h:116
@ TH_VERTEX_SELECT
Definition: UI_resources.h:78
@ TH_STRIP
Definition: UI_resources.h:138
@ TH_NODE_CONVERTER
Definition: UI_resources.h:172
@ TH_KEYTYPE_MOVEHOLD_SELECT
Definition: UI_resources.h:150
@ TH_THEMEUI
Definition: UI_resources.h:36
@ TH_CONSOLE_CURSOR
Definition: UI_resources.h:184
@ TH_EMPTY
Definition: UI_resources.h:158
@ TH_ANIM_INACTIVE
Definition: UI_resources.h:267
@ TH_KEYTYPE_JITTER_SELECT
Definition: UI_resources.h:148
@ TH_ICON_FUND
Definition: UI_resources.h:277
@ TH_FACE_FRONT
Definition: UI_resources.h:91
@ TH_VERTEX_UNREFERENCED
Definition: UI_resources.h:80
@ TH_GIZMO_PRIMARY
Definition: UI_resources.h:305
@ TH_TRANSPARENT_CHECKER_SIZE
Definition: UI_resources.h:298
@ TH_STITCH_PREVIEW_STITCHABLE
Definition: UI_resources.h:244
@ TH_HEADER_TEXT
Definition: UI_resources.h:52
@ TH_PAINT_CURVE_PIVOT
Definition: UI_resources.h:249
@ TH_V3D_CLIPPING_BORDER
Definition: UI_resources.h:329
@ TH_NLA_TWEAK_DUPLI
Definition: UI_resources.h:282
@ TH_AXIS_Z
Definition: UI_resources.h:302
@ TH_EDITMESH_ACTIVE
Definition: UI_resources.h:202
@ TH_SEQ_PREVIEW
Definition: UI_resources.h:196
@ TH_GP_VERTEX_SIZE
Definition: UI_resources.h:210
@ TH_CONSOLE_INFO
Definition: UI_resources.h:182
@ TH_GP_VERTEX
Definition: UI_resources.h:208
@ TH_INFO_OPERATOR_TEXT
Definition: UI_resources.h:326
@ TH_HEADER_ACTIVE
Definition: UI_resources.h:51
@ TH_SYNTAX_D
Definition: UI_resources.h:128
@ TH_VIEW_OVERLAY
Definition: UI_resources.h:327
@ TH_HILITE
Definition: UI_resources.h:66
@ TH_GIZMO_SECONDARY
Definition: UI_resources.h:306
@ TH_BUTBACK_TEXT_HI
Definition: UI_resources.h:62
@ TH_ACT_MARKER
Definition: UI_resources.h:230
@ TH_FACE_DOT
Definition: UI_resources.h:95
@ TH_TITLE
Definition: UI_resources.h:44
@ TH_CONSOLE_OUTPUT
Definition: UI_resources.h:180
@ TH_CONSOLE_INPUT
Definition: UI_resources.h:181
@ TH_PATH_KEYFRAME_AFTER
Definition: UI_resources.h:237
@ TH_SYNTAX_V
Definition: UI_resources.h:124
@ TH_INFO_SELECTED
Definition: UI_resources.h:313
@ TH_SEQ_AUDIO
Definition: UI_resources.h:192
@ TH_NODE_CURVING
Definition: UI_resources.h:225
@ TH_SEL_MARKER
Definition: UI_resources.h:231
@ TH_TAB_BACK
Definition: UI_resources.h:47
@ TH_CAMERA_PATH
Definition: UI_resources.h:238
@ TH_SELECT
Definition: UI_resources.h:72
@ TH_WIDGET_TEXT_CURSOR
Definition: UI_resources.h:293
@ TH_HANDLE_FREE
Definition: UI_resources.h:109
@ TH_NLA_SOUND
Definition: UI_resources.h:289
@ TH_SYNTAX_L
Definition: UI_resources.h:127
@ TH_SEQ_ACTIVE
Definition: UI_resources.h:198
@ TH_HANDLE_AUTOCLAMP
Definition: UI_resources.h:113
@ TH_EDITOR_OUTLINE
Definition: UI_resources.h:294
@ TH_GROUP_ACTIVE
Definition: UI_resources.h:75
@ TH_TAB_INACTIVE
Definition: UI_resources.h:46
@ TH_BACKGROUND_TYPE
Definition: UI_resources.h:311
@ TH_SYNTAX_N
Definition: UI_resources.h:129
@ TH_DRAWEXTRA_EDGELEN
Definition: UI_resources.h:220
@ TH_MATCH
Definition: UI_resources.h:256
@ TH_NLA_TRANSITION
Definition: UI_resources.h:285
@ TH_SEQ_EFFECT
Definition: UI_resources.h:193
@ TH_SEQ_SCENE
Definition: UI_resources.h:191
@ TH_NODE_LAYOUT
Definition: UI_resources.h:169
@ TH_EDGE_CREASE
Definition: UI_resources.h:218
@ TH_PANEL_BACK
Definition: UI_resources.h:57
@ TH_HANDLE_VECT
Definition: UI_resources.h:111
@ TH_HEADER_TEXT_HI
Definition: UI_resources.h:53
@ TH_TEXT
Definition: UI_resources.h:42
@ TH_METADATA_BG
Definition: UI_resources.h:331
@ TH_NODE_SHADER
Definition: UI_resources.h:170
@ TH_WIRE_EDIT
Definition: UI_resources.h:71
@ TH_SEQ_MOVIECLIP
Definition: UI_resources.h:188
@ TH_WIRE_INNER
Definition: UI_resources.h:70
@ TH_DRAWEXTRA_FACEAREA
Definition: UI_resources.h:222
@ TH_SEQ_IMAGE
Definition: UI_resources.h:190
@ TH_NODE_INTERFACE
Definition: UI_resources.h:171
@ TH_STITCH_PREVIEW_FACE
Definition: UI_resources.h:241
@ TH_DOPESHEET_CHANNELOB
Definition: UI_resources.h:212
@ TH_NURB_SEL_ULINE
Definition: UI_resources.h:105
@ TH_ACTIVE
Definition: UI_resources.h:73
@ TH_STRIP_SELECT
Definition: UI_resources.h:139
@ TH_NLA_SOUND_SEL
Definition: UI_resources.h:290
@ TH_PATH_KEYFRAME_BEFORE
Definition: UI_resources.h:236
@ TH_FACE
Definition: UI_resources.h:88
@ TH_VNORMAL
Definition: UI_resources.h:93
@ TH_TEXT_HI
Definition: UI_resources.h:43
unsigned int U
Definition: btGjkEpa3.h:78
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
Definition: btQuadWord.h:119
SyclQueue void void size_t num_bytes void
uint col
void GPU_clear_color(float red, float green, float blue, float alpha)
void uiStyleInit(void)
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
void *(* MEM_callocN)(size_t len, const char *str)
Definition: mallocn.c:31
#define unit_float_to_uchar_clamp_v3(v1, v2)
static void error(const char *str)
Definition: meshlaplacian.c:51
#define floorf(x)
Definition: metal/compat.h:224
static unsigned a[3]
Definition: RandGen.cpp:78
T floor(const T &a)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
static const pxr::TfToken g("g", pxr::TfToken::Immortal)
bool UI_GetIconThemeColor4ubv(int colorid, uchar col[4])
Definition: resources.c:1386
static struct bThemeState g_theme_state
Definition: resources.c:43
void UI_make_axis_color(const uchar src_col[3], uchar dst_col[3], const char axis)
Definition: resources.c:1462
void UI_style_init_default(void)
Definition: resources.c:1038
void UI_GetThemeColorType3fv(int colorid, int spacetype, float col[3])
Definition: resources.c:1361
void(* VectorDrawFunc)(int x, int y, int w, int h, float alpha)
Definition: resources.c:40
void UI_GetThemeColor3fv(int colorid, float col[3])
Definition: resources.c:1165
void UI_GetColorPtrBlendShade3ubv(const uchar cp1[3], const uchar cp2[3], uchar col[3], float fac, int offset)
Definition: resources.c:1429
int UI_GetThemeValueType(int colorid, int spacetype)
Definition: resources.c:1159
void UI_GetThemeColorBlend4f(int colorid1, int colorid2, float fac, float r_col[4])
Definition: resources.c:1122
void UI_GetThemeColorShade3fv(int colorid, int offset, float col[3])
Definition: resources.c:1191
void UI_GetThemeColorBlendShade4fv(int colorid1, int colorid2, float fac, int offset, float col[4])
Definition: resources.c:1299
void UI_GetThemeColorShadeAlpha4ubv(int colorid, int coloffset, int alphaoffset, uchar col[4])
Definition: resources.c:1081
void UI_ThemeClearColor(int colorid)
Definition: resources.c:1448
float UI_GetThemeValueTypef(int colorid, int spacetype)
Definition: resources.c:1153
void UI_GetThemeColorType4fv(int colorid, int spacetype, float col[4])
Definition: resources.c:1182
void ui_resources_init(void)
Definition: resources.c:53
void UI_Theme_Restore(struct bThemeState *theme_state)
Definition: resources.c:1076
void UI_GetThemeColorShade4ubv(int colorid, int offset, uchar col[4])
Definition: resources.c:1241
int UI_ThemeMenuShadowWidth(void)
Definition: resources.c:1456
void UI_GetThemeColorBlendShade3fv(int colorid1, int colorid2, float fac, int offset, float col[3])
Definition: resources.c:1279
void UI_GetThemeColorShadeAlpha4fv(int colorid, int coloffset, int alphaoffset, float col[4])
Definition: resources.c:1259
void UI_GetThemeColor4fv(int colorid, float col[4])
Definition: resources.c:1173
#define theme_active
Definition: resources.c:49
#define theme_spacetype
Definition: resources.c:50
void UI_GetThemeColorShade4fv(int colorid, int offset, float col[4])
Definition: resources.c:1331
#define theme_regionid
Definition: resources.c:51
void UI_GetThemeColor4ubv(int colorid, uchar col[4])
Definition: resources.c:1352
int UI_GetThemeValue(int colorid)
Definition: resources.c:1147
void UI_GetThemeColorBlend3f(int colorid1, int colorid2, float fac, float r_col[3])
Definition: resources.c:1111
void UI_FontThemeColor(int fontid, int colorid)
Definition: resources.c:1134
void UI_GetColorPtrShade3ubv(const uchar cp[3], uchar col[3], int offset)
Definition: resources.c:1412
bTheme * UI_GetTheme(void)
Definition: resources.c:1067
void UI_GetThemeColorBlend3ubv(int colorid1, int colorid2, float fac, uchar col[3])
Definition: resources.c:1100
void UI_theme_init_default(void)
Definition: resources.c:1022
float UI_GetThemeValuef(int colorid)
Definition: resources.c:1141
void UI_GetThemeColorBlendShade3ubv(int colorid1, int colorid2, float fac, int offset, uchar col[3])
Definition: resources.c:1225
void UI_SetTheme(int spacetype, int regionid)
Definition: resources.c:1045
const uchar * UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
Definition: resources.c:67
void UI_GetThemeColorType3ubv(int colorid, int spacetype, uchar col[3])
Definition: resources.c:1369
void UI_Theme_Store(struct bThemeState *theme_state)
Definition: resources.c:1072
void ui_resources_free(void)
Definition: resources.c:58
void UI_GetThemeColorShade3ubv(int colorid, int offset, uchar col[3])
Definition: resources.c:1208
void UI_GetThemeColorType4ubv(int colorid, int spacetype, uchar col[4])
Definition: resources.c:1377
void UI_GetThemeColor3ubv(int colorid, uchar col[3])
Definition: resources.c:1323
unsigned char keytype_keyframe_select[4]
unsigned char back_grad[4]
unsigned char preview_stitch_vert[4]
unsigned char path_before[4]
unsigned char edge_bevel[4]
unsigned char noodle_curving
unsigned char active_strip[4]
unsigned char movie[4]
unsigned char lock_marker[4]
unsigned char movieclip[4]
unsigned char bundle_solid[4]
unsigned char dis_marker[4]
unsigned char ds_ipoline[4]
unsigned char info_warning[4]
unsigned char handle_sel_auto[4]
unsigned char time_scrub_background[4]
unsigned char syntaxl[4]
unsigned char active_object[4]
unsigned char nodeclass_filter[4]
unsigned char keytype_jitter[4]
unsigned char keytype_keyframe[4]
unsigned char keytype_breakdown_select[4]
unsigned char anim_active[4]
unsigned char anim_non_active[4]
unsigned char shade2[4]
unsigned char handle_free[4]
unsigned char console_info[4]
unsigned char edge_crease[4]
unsigned char group_active[4]
unsigned char edge_select[4]
unsigned char handle_sel_vect[4]
unsigned char selected_highlight[4]
unsigned char editmesh_active[4]
unsigned char console_select[4]
unsigned char vertex[4]
unsigned char vertex_size
unsigned char marker[4]
unsigned char keytype_extreme[4]
unsigned char text[4]
unsigned char gp_vertex_size
unsigned char syntaxv[4]
unsigned char ds_subchannel[4]
unsigned char syntaxc[4]
unsigned char syntaxn[4]
unsigned char gp_vertex_select[4]
unsigned char sel_marker[4]
unsigned char navigation_bar[4]
unsigned char keytype_movehold_select[4]
unsigned char vertex_unreferenced[4]
unsigned char effect[4]
unsigned char list_text[4]
unsigned char keytype_extreme_select[4]
unsigned char active[4]
unsigned char vertex_select[4]
unsigned char outline_width
unsigned char selected_object[4]
unsigned char time_marker_line_selected[4]
unsigned char empty[4]
unsigned char header_text_hi[4]
unsigned char face_back[4]
unsigned char edge[4]
unsigned char info_property_text[4]
unsigned char normal[4]
unsigned char syntaxs[4]
unsigned char time_keyframe[4]
unsigned char transform[4]
unsigned char select[4]
unsigned char handle_vertex_size
unsigned char list[4]
unsigned char face_dot[4]
unsigned char marker_outline[4]
unsigned char bone_pose_active[4]
unsigned char info_info[4]
unsigned char match[4]
unsigned char obcenter_dia
unsigned char act_marker[4]
unsigned char camera_path[4]
unsigned char nla_meta[4]
unsigned char info_selected_text[4]
uiPanelColors panelcolors
unsigned char handle_vect[4]
unsigned char syntaxr[4]
unsigned char handle_auto[4]
unsigned char extra_edge_len[4]
unsigned char list_title[4]
unsigned char speaker[4]
unsigned char view_overlay[4]
unsigned char wire_edit[4]
unsigned char skin_root[4]
unsigned char console_error[4]
unsigned char handle_auto_clamped[4]
unsigned char keytype_breakdown[4]
unsigned char bone_solid[4]
unsigned char clipping_border_3d[4]
unsigned char extra_edge_angle[4]
unsigned char header[4]
unsigned char face_select[4]
unsigned char mask[4]
unsigned char facedot_size
unsigned char loop_normal[4]
unsigned char nla_track[4]
unsigned char nodeclass_vector[4]
unsigned char camera[4]
unsigned char button_text_hi[4]
unsigned char preview_stitch_face[4]
unsigned char freestyle_face_mark[4]
unsigned char nodeclass_layout[4]
unsigned char path_after[4]
unsigned char title[4]
unsigned char edge_facesel[4]
unsigned char button_title[4]
unsigned char face[4]
unsigned char bone_locked_weight[4]
unsigned char group[4]
unsigned char keyborder_select[4]
unsigned char extra_face_angle[4]
unsigned char tab_back[4]
unsigned char vertex_bevel[4]
unsigned char metadatatext[4]
unsigned char preview_stitch_edge[4]
unsigned char nodeclass_attribute[4]
unsigned char freestyle_edge_mark[4]
unsigned char anim_preview_range[4]
unsigned char preview_back[4]
unsigned char gp_vertex[4]
unsigned char extra_face_area[4]
unsigned char handle_sel_align[4]
unsigned char lastsel_point[4]
unsigned char nurb_sel_vline[4]
unsigned char line_numbers[4]
unsigned char preview_stitch_stitchable[4]
unsigned char console_cursor[4]
unsigned char text_strip[4]
unsigned char button_text[4]
unsigned char metadatabg[4]
unsigned char preview_stitch_unstitchable[4]
unsigned char meta[4]
unsigned char syntaxd[4]
unsigned char strip[4]
unsigned char nurb_sel_uline[4]
unsigned char info_property[4]
unsigned char info_selected[4]
unsigned char nurb_vline[4]
unsigned char bone_pose[4]
unsigned char edge_sharp[4]
unsigned char wire[4]
unsigned char shade1[4]
unsigned char handle_align[4]
unsigned char color_strip[4]
unsigned char vertex_active[4]
unsigned char preview_stitch_active[4]
unsigned char nodeclass_geometry[4]
unsigned char cframe[4]
unsigned char path_keyframe_before[4]
unsigned char nodeclass_script[4]
unsigned char tab_inactive[4]
unsigned char nodeclass_shader[4]
unsigned char time_marker_line[4]
unsigned char paint_curve_pivot[4]
unsigned char nodeclass_pattern[4]
unsigned char image[4]
unsigned char vertex_normal[4]
unsigned char nla_tweakdupli[4]
unsigned char info_debug_text[4]
unsigned char nla_transition[4]
unsigned char nla_sound_sel[4]
unsigned char grid_levels
unsigned char nla_sound[4]
unsigned char header_text[4]
unsigned char text_hi[4]
unsigned char uv_shadow[4]
unsigned char edited_object[4]
unsigned char button[4]
unsigned char grid[4]
unsigned char path_keyframe_after[4]
unsigned char hilite[4]
unsigned char edge_seam[4]
unsigned char nla_transition_sel[4]
unsigned char info_error[4]
unsigned char nodeclass_output[4]
unsigned char info_operator[4]
unsigned char header_title[4]
unsigned char handle_sel_auto_clamped[4]
unsigned char info_operator_text[4]
unsigned char back[4]
unsigned char tab_active[4]
unsigned char console_output[4]
unsigned char act_spline[4]
unsigned char info_info_text[4]
unsigned char time_gp_keyframe[4]
unsigned char lamp[4]
unsigned char handle_vertex_select[4]
unsigned char handle_sel_free[4]
unsigned char audio[4]
unsigned char nurb_uline[4]
unsigned char keytype_movehold[4]
unsigned char info_debug[4]
unsigned char nodeclass_texture[4]
unsigned char paint_curve_handle[4]
unsigned char face_front[4]
unsigned char handle_vertex[4]
unsigned char keyborder[4]
unsigned char execution_buts[4]
unsigned char row_alternate[4]
unsigned char ds_channel[4]
unsigned char nla_tweaking[4]
unsigned char list_text_hi[4]
unsigned char console_input[4]
unsigned char nla_meta_sel[4]
unsigned char strip_select[4]
unsigned char info_warning_text[4]
unsigned char tab_outline[4]
unsigned char info_error_text[4]
unsigned char selected_strip[4]
unsigned char keytype_jitter_select[4]
unsigned char scene[4]
unsigned char syntaxb[4]
unsigned char gizmo_primary[4]
unsigned char xaxis[4]
unsigned char transparent_checker_secondary[4]
short menu_shadow_width
unsigned char icon_modifier[4]
unsigned char zaxis[4]
unsigned char icon_shading[4]
unsigned char transparent_checker_size
unsigned char gizmo_view_align[4]
unsigned char icon_folder[4]
unsigned char icon_scene[4]
unsigned char gizmo_hi[4]
unsigned char editor_outline[4]
unsigned char gizmo_secondary[4]
unsigned char icon_object[4]
unsigned char gizmo_a[4]
uiWidgetColors wcol_scroll
unsigned char icon_collection[4]
unsigned char widget_text_cursor[4]
unsigned char gizmo_b[4]
unsigned char widget_emboss[4]
unsigned char transparent_checker_primary[4]
unsigned char yaxis[4]
unsigned char icon_object_data[4]
ThemeSpace space_sequencer
int active_theme_area
ThemeSpace space_clip
ThemeSpace space_topbar
ThemeSpace space_action
ThemeSpace space_view3d
ThemeSpace space_properties
ThemeSpace space_outliner
ThemeSpace space_nla
ThemeSpace space_graph
ThemeUI tui
ThemeSpace space_preferences
ThemeSpace space_image
ThemeSpace space_node
ThemeSpace space_console
ThemeSpace space_spreadsheet
ThemeSpace space_text
ThemeSpace space_info
ThemeSpace space_statusbar
ThemeSpace space_file
unsigned char sub_back[4]
unsigned char back[4]
unsigned char header[4]
unsigned char text[4]
static int blend(const Tex *tex, const float texvec[3], TexResult *texres)