[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58345] branches/soc-2013-paint/source/ blender/editors/interface/interface_handlers.c: Allow copying of non gamma-corrected colors.
Antony Riakiotakis
kalast at gmail.com
Wed Jul 17 17:44:22 CEST 2013
Revision: 58345
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58345
Author: psy-fi
Date: 2013-07-17 15:44:22 +0000 (Wed, 17 Jul 2013)
Log Message:
-----------
Allow copying of non gamma-corrected colors.
Modified Paths:
--------------
branches/soc-2013-paint/source/blender/editors/interface/interface_handlers.c
Modified: branches/soc-2013-paint/source/blender/editors/interface/interface_handlers.c
===================================================================
--- branches/soc-2013-paint/source/blender/editors/interface/interface_handlers.c 2013-07-17 15:34:03 UTC (rev 58344)
+++ branches/soc-2013-paint/source/blender/editors/interface/interface_handlers.c 2013-07-17 15:44:22 UTC (rev 58345)
@@ -675,6 +675,7 @@
typedef struct uiDragColorHandle {
float color[3];
+ bool gamma_corrected;
} uiDragColorHandle;
typedef struct uiDragToggleHandle {
@@ -812,10 +813,19 @@
uiBut *but = ui_but_find_mouse_over(ar, event->x, event->y);
if (but && but->rnaprop && RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA) {
+ if (!drag_info->gamma_corrected)
+ linearrgb_to_srgb_v3_v3(drag_info->color, drag_info->color);
RNA_property_float_set_array(&but->rnapoin, but->rnaprop, drag_info->color);
RNA_property_update(C, &but->rnapoin, but->rnaprop);
}
+ if (but && but->rnaprop && RNA_property_subtype(but->rnaprop) == PROP_COLOR) {
+ if (drag_info->gamma_corrected)
+ srgb_to_linearrgb_v3_v3(drag_info->color, drag_info->color);
+ RNA_property_float_set_array(&but->rnapoin, but->rnaprop, drag_info->color);
+ RNA_property_update(C, &but->rnapoin, but->rnaprop);
+ }
+
WM_event_remove_ui_handler(&win->modalhandlers,
ui_handler_region_drag_color,
ui_handler_region_drag_color_remove,
@@ -954,12 +964,17 @@
/* TODO support more button pointer types */
if (but->rnaprop && RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA) {
RNA_property_float_get_array(&but->rnapoin, but->rnaprop, drag_info->color);
+ drag_info->gamma_corrected = true;
valid = true;
- } else if (but->pointype == UI_BUT_POIN_FLOAT) {
+ } else if (but->rnaprop && RNA_property_subtype(but->rnaprop) == PROP_COLOR) {
+ RNA_property_float_get_array(&but->rnapoin, but->rnaprop, drag_info->color);
+ drag_info->gamma_corrected = false;
+ valid = true;
+ }else if (but->pointype == UI_BUT_POIN_FLOAT) {
copy_v3_v3(drag_info->color, (float *)but->poin);
valid = true;
} else if (but->pointype == UI_BUT_POIN_CHAR) {
- rgba_uchar_to_float(drag_info->color, but->poin);
+ rgba_uchar_to_float(drag_info->color, (unsigned char *)but->poin);
valid = true;
}
More information about the Bf-blender-cvs
mailing list