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