diff options
author | Ton Roosendaal <ton@blender.org> | 2013-01-22 15:18:41 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2013-01-22 15:18:41 +0400 |
commit | e11d22a6b751c750c40226cb027e7805adb7d4e4 (patch) | |
tree | c7a7afd211db440cbcbd154f76379e7685cb03fe /source/blender/editors/include | |
parent | 1e3a2931ac0cfc9af790717bf19577e22ebda4f5 (diff) |
Matcap support in 3D Viewport.
Full log is here:
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.66/Usability#Matcap_in_3D_viewport
Implementation notes:
- Matcaps are an extension of Solid draw mode, and don't show in other drawmodes.
(It's mostly intended to aid modeling/sculpt)
- By design, Matcaps are a UI feature, and only stored locally for the UI itself, and
won't affect rendering or materials.
- Currently a set of 16 (GPL licensed) Matcaps have been compiled into Blender.
It doesn't take memory or cpu time, until you use it.
- Brush Icons and Matcaps use same code now, and only get generated/allocated on
actually using it (instead of on startup).
- The current set might get new or different images still, based on user feedback.
- Matcap images are 512x512 pixels, so each image takes 1 Mb memory. Unused matcaps get
freed immediately. The Matcap icon previews (128x128 pixels) stay in memory.
- Loading own matcap image files will be added later. That needs design and code work
to get it stable and memory-friendly.
- The GLSL code uses the ID PreviewImage for matcaps. I tested it using the existing
Material previews, which has its limits... especially for textured previews the
normal-mapped matcap won't look good.
Diffstat (limited to 'source/blender/editors/include')
-rw-r--r-- | source/blender/editors/include/ED_datafiles.h | 51 | ||||
-rw-r--r-- | source/blender/editors/include/UI_icons.h | 18 | ||||
-rw-r--r-- | source/blender/editors/include/UI_interface.h | 1 | ||||
-rw-r--r-- | source/blender/editors/include/UI_interface_icons.h | 3 |
4 files changed, 73 insertions, 0 deletions
diff --git a/source/blender/editors/include/ED_datafiles.h b/source/blender/editors/include/ED_datafiles.h index 6d7bcecc630..afe23090ae3 100644 --- a/source/blender/editors/include/ED_datafiles.h +++ b/source/blender/editors/include/ED_datafiles.h @@ -150,6 +150,57 @@ extern char datatoc_twist_png[]; extern int datatoc_vertexdraw_png_size; extern char datatoc_vertexdraw_png[]; +/* Matcap files */ + +extern int datatoc_mc01_jpg_size; +extern char datatoc_mc01_jpg[]; + +extern int datatoc_mc02_jpg_size; +extern char datatoc_mc02_jpg[]; + +extern int datatoc_mc03_jpg_size; +extern char datatoc_mc03_jpg[]; + +extern int datatoc_mc04_jpg_size; +extern char datatoc_mc04_jpg[]; + +extern int datatoc_mc05_jpg_size; +extern char datatoc_mc05_jpg[]; + +extern int datatoc_mc06_jpg_size; +extern char datatoc_mc06_jpg[]; + +extern int datatoc_mc07_jpg_size; +extern char datatoc_mc07_jpg[]; + +extern int datatoc_mc08_jpg_size; +extern char datatoc_mc08_jpg[]; + +extern int datatoc_mc09_jpg_size; +extern char datatoc_mc09_jpg[]; + +extern int datatoc_mc10_jpg_size; +extern char datatoc_mc10_jpg[]; + +extern int datatoc_mc11_jpg_size; +extern char datatoc_mc11_jpg[]; + +extern int datatoc_mc12_jpg_size; +extern char datatoc_mc12_jpg[]; + +extern int datatoc_mc13_jpg_size; +extern char datatoc_mc13_jpg[]; + +extern int datatoc_mc14_jpg_size; +extern char datatoc_mc14_jpg[]; + +extern int datatoc_mc15_jpg_size; +extern char datatoc_mc15_jpg[]; + +extern int datatoc_mc16_jpg_size; +extern char datatoc_mc16_jpg[]; + + #endif /* __ED_DATAFILES_H__ */ diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h index fa04048ec91..f5ac3f19b5b 100644 --- a/source/blender/editors/include/UI_icons.h +++ b/source/blender/editors/include/UI_icons.h @@ -990,6 +990,24 @@ DEF_ICON(BRUSH_THUMB) DEF_ICON(BRUSH_ROTATE) DEF_ICON(BRUSH_VERTEXDRAW) + /* Matcaps */ +DEF_ICON(MATCAP_01) +DEF_ICON(MATCAP_02) +DEF_ICON(MATCAP_03) +DEF_ICON(MATCAP_04) +DEF_ICON(MATCAP_05) +DEF_ICON(MATCAP_06) +DEF_ICON(MATCAP_07) +DEF_ICON(MATCAP_08) +DEF_ICON(MATCAP_09) +DEF_ICON(MATCAP_10) +DEF_ICON(MATCAP_11) +DEF_ICON(MATCAP_12) +DEF_ICON(MATCAP_13) +DEF_ICON(MATCAP_14) +DEF_ICON(MATCAP_15) +DEF_ICON(MATCAP_16) + /* vector icons, VICO_ prefix added */ DEF_VICO(VIEW3D_VEC) DEF_VICO(EDIT_VEC) diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 292cc4cdca0..e9cb2eff7e3 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -807,6 +807,7 @@ uiLayout *uiTemplateModifier(uiLayout *layout, struct bContext *C, struct Pointe uiLayout *uiTemplateConstraint(uiLayout *layout, struct PointerRNA *ptr); void uiTemplatePreview(uiLayout *layout, struct ID *id, int show_buttons, struct ID *parent, struct MTex *slot); void uiTemplateColorRamp(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int expand); +void uiTemplateIconView(uiLayout *layout, struct PointerRNA *ptr, const char *propname); void uiTemplateHistogram(uiLayout *layout, struct PointerRNA *ptr, const char *propname); void uiTemplateWaveform(uiLayout *layout, struct PointerRNA *ptr, const char *propname); void uiTemplateVectorscope(uiLayout *layout, struct PointerRNA *ptr, const char *propname); diff --git a/source/blender/editors/include/UI_interface_icons.h b/source/blender/editors/include/UI_interface_icons.h index f578d68b852..10026bbd50f 100644 --- a/source/blender/editors/include/UI_interface_icons.h +++ b/source/blender/editors/include/UI_interface_icons.h @@ -39,6 +39,7 @@ struct World; struct Tex; struct Lamp; struct Material; +struct PreviewImage; struct PointerRNA; typedef struct IconFile { @@ -76,6 +77,8 @@ void UI_icons_free_drawinfo(void *drawinfo); struct ListBase *UI_iconfile_list(void); int UI_iconfile_get_index(const char *filename); +struct PreviewImage *UI_icon_to_preview(int icon_id); + int UI_rnaptr_icon_get(struct bContext *C, struct PointerRNA *ptr, int rnaicon, int big); #endif /* __UI_INTERFACE_ICONS_H__ */ |