Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Bishop <nicholasbishop@gmail.com>2009-08-17 08:40:59 +0400
committerNicholas Bishop <nicholasbishop@gmail.com>2009-08-17 08:40:59 +0400
commita3b317daf7fbaa2359afbfdf0524b590d3622f2e (patch)
treeaf7876365655c372b4a7a3e16c41fde9b725d3ad /source/blender/editors
parent3425925a7702c0a5527c60b2da044dad378d7f2c (diff)
2.5 Texture paint:
* Converted to use Paint struct. Now all the brush modes are done. TODO: * Make the UI better
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/sculpt_paint/paint_image.c25
-rw-r--r--source/blender/editors/space_buttons/buttons_context.c12
-rw-r--r--source/blender/editors/space_image/image_buttons.c6
-rw-r--r--source/blender/editors/space_image/image_draw.c5
-rw-r--r--source/blender/editors/space_node/node_edit.c13
5 files changed, 29 insertions, 32 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c
index 93744072fff..975bfd8dbe7 100644
--- a/source/blender/editors/sculpt_paint/paint_image.c
+++ b/source/blender/editors/sculpt_paint/paint_image.c
@@ -71,6 +71,7 @@
#include "BKE_main.h"
#include "BKE_mesh.h"
#include "BKE_node.h"
+#include "BKE_paint.h"
#include "BKE_utildefines.h"
#include "BKE_DerivedMesh.h"
#include "BKE_report.h"
@@ -4375,7 +4376,7 @@ static Brush *image_paint_brush(bContext *C)
Scene *scene= CTX_data_scene(C);
ToolSettings *settings= scene->toolsettings;
- return settings->imapaint.brush;
+ return paint_brush(&settings->imapaint.paint);
}
static int image_paint_poll(bContext *C)
@@ -4486,11 +4487,12 @@ static void paint_redraw(bContext *C, ImagePaintState *s, int final)
}
}
-static int paint_init(bContext *C, wmOperator *op)
+static int texture_paint_init(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
ToolSettings *settings= scene->toolsettings;
PaintOperation *pop;
+ Brush *brush;
pop= MEM_callocN(sizeof(PaintOperation), "PaintOperation");
pop->first= 1;
@@ -4518,10 +4520,11 @@ static int paint_init(bContext *C, wmOperator *op)
pop->ps.ar= CTX_wm_region(C);
/* intialize brush */
- if(!settings->imapaint.brush)
+ brush= paint_brush(&settings->imapaint.paint);
+ if(!brush)
return 0;
- pop->s.brush = settings->imapaint.brush;
+ pop->s.brush = brush;
pop->s.tool = settings->imapaint.tool;
if(pop->mode == PAINT_MODE_3D && (pop->s.tool == PAINT_TOOL_CLONE))
pop->s.tool = PAINT_TOOL_DRAW;
@@ -4672,7 +4675,7 @@ static void paint_exit(bContext *C, wmOperator *op)
static int paint_exec(bContext *C, wmOperator *op)
{
- if(!paint_init(C, op)) {
+ if(!texture_paint_init(C, op)) {
MEM_freeN(op->customdata);
return OPERATOR_CANCELLED;
}
@@ -4746,7 +4749,7 @@ static int paint_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
PaintOperation *pop;
- if(!paint_init(C, op)) {
+ if(!texture_paint_init(C, op)) {
MEM_freeN(op->customdata);
return OPERATOR_CANCELLED;
}
@@ -4874,7 +4877,7 @@ static int paint_radial_control_invoke(bContext *C, wmOperator *op, wmEvent *eve
ToolSettings *ts = CTX_data_scene(C)->toolsettings;
get_imapaint_zoom(C, &zoom, &zoom);
toggle_paint_cursor(C, !ts->imapaint.paintcursor);
- brush_radial_control_invoke(op, ts->imapaint.brush, 0.5 * zoom);
+ brush_radial_control_invoke(op, paint_brush(&ts->imapaint.paint), 0.5 * zoom);
return WM_radial_control_invoke(C, op, event);
}
@@ -4893,7 +4896,7 @@ static int paint_radial_control_exec(bContext *C, wmOperator *op)
int ret;
char str[256];
get_imapaint_zoom(C, &zoom, &zoom);
- ret = brush_radial_control_exec(op, CTX_data_scene(C)->toolsettings->imapaint.brush, 2.0 / zoom);
+ ret = brush_radial_control_exec(op, paint_brush(&CTX_data_scene(C)->toolsettings->imapaint.paint), 2.0 / zoom);
WM_radial_control_string(op, str, 256);
return ret;
@@ -5167,7 +5170,7 @@ static int texture_paint_toggle_exec(bContext *C, wmOperator *op)
me->mtface= CustomData_add_layer(&me->fdata, CD_MTFACE, CD_DEFAULT,
NULL, me->totface);
- brush_check_exists(&scene->toolsettings->imapaint.brush, "Brush");
+ paint_init(&scene->toolsettings->imapaint.paint, "Brush");
if(U.glreslimit != 0)
GPU_free_images();
@@ -5202,13 +5205,13 @@ static int texture_paint_radial_control_invoke(bContext *C, wmOperator *op, wmEv
{
ToolSettings *ts = CTX_data_scene(C)->toolsettings;
toggle_paint_cursor(C, !ts->imapaint.paintcursor);
- brush_radial_control_invoke(op, ts->imapaint.brush, 0.5);
+ brush_radial_control_invoke(op, paint_brush(&ts->imapaint.paint), 0.5);
return WM_radial_control_invoke(C, op, event);
}
static int texture_paint_radial_control_exec(bContext *C, wmOperator *op)
{
- int ret = brush_radial_control_exec(op, CTX_data_scene(C)->toolsettings->imapaint.brush, 2);
+ int ret = brush_radial_control_exec(op, paint_brush(&CTX_data_scene(C)->toolsettings->imapaint.paint), 2);
char str[256];
WM_radial_control_string(op, str, 256);
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index 318e0b0f558..6b89532cdaf 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -322,16 +322,8 @@ static int buttons_context_path_brush(const bContext *C, ButsContextPath *path)
scene= path->ptr[path->len-1].data;
ts= scene->toolsettings;
- if(obact) {
- if(obact->mode & OB_MODE_SCULPT)
- paint_brush(&ts->sculpt->paint);
- else if(obact->mode & OB_MODE_VERTEX_PAINT)
- paint_brush(&ts->vpaint->paint);
- else if(obact->mode & OB_MODE_WEIGHT_PAINT)
- paint_brush(&ts->wpaint->paint);
- else if(obact->mode & OB_MODE_TEXTURE_PAINT)
- br= ts->imapaint.brush;
- }
+ if(scene)
+ br= paint_brush(paint_get_active(scene));
if(br) {
RNA_id_pointer_create(&br->id, &path->ptr[path->len]);
diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c
index e4fbaad656f..ac0a5c7f53a 100644
--- a/source/blender/editors/space_image/image_buttons.c
+++ b/source/blender/editors/space_image/image_buttons.c
@@ -451,7 +451,7 @@ void brush_buttons(const bContext *C, uiBlock *block, short fromsima,
{
// SpaceImage *sima= CTX_wm_space_image(C);
ToolSettings *settings= CTX_data_tool_settings(C);
- Brush *brush= settings->imapaint.brush;
+ Brush *brush= paint_brush(&settings->imapaint.paint);
ID *id;
int yco, xco, butw, but_idx;
// short *menupoin = &(sima->menunr); // XXX : &(G.buts->menunr);
@@ -473,7 +473,7 @@ void brush_buttons(const bContext *C, uiBlock *block, short fromsima,
uiBlockEndAlign(block);
yco -= 30;
- id= (ID*)settings->imapaint.brush;
+ id= (ID*)brush;
xco= 200; // std_libbuttons(block, 0, yco, 0, NULL, evt_browse, ID_BR, 0, id, NULL, menupoin, 0, evt_local, evt_del, 0, evt_keepdata);
if(brush && !brush->id.lib) {
@@ -575,7 +575,7 @@ static void image_panel_paintcolor(const bContext *C, Panel *pa)
{
SpaceImage *sima= CTX_wm_space_image(C);
ToolSettings *settings= CTX_data_tool_settings(C);
- Brush *brush= settings->imapaint.brush;
+ Brush *brush= paint_brush(&settings->imapaint.paint);
uiBlock *block;
static float hsv[3], old[3]; // used as temp mem for picker
static char hexcol[128];
diff --git a/source/blender/editors/space_image/image_draw.c b/source/blender/editors/space_image/image_draw.c
index ff25a2635d2..2f5fc805367 100644
--- a/source/blender/editors/space_image/image_draw.c
+++ b/source/blender/editors/space_image/image_draw.c
@@ -47,6 +47,7 @@
#include "BKE_colortools.h"
#include "BKE_global.h"
#include "BKE_image.h"
+#include "BKE_paint.h"
#include "BKE_utildefines.h"
#include "BIF_gl.h"
@@ -577,7 +578,7 @@ static void draw_image_view_tool(Scene *scene)
static unsigned char *get_alpha_clone_image(Scene *scene, int *width, int *height)
{
- Brush *brush = scene->toolsettings->imapaint.brush;
+ Brush *brush = paint_brush(&scene->toolsettings->imapaint.paint);
ImBuf *ibuf;
unsigned int size, alpha;
unsigned char *rect, *cp;
@@ -615,7 +616,7 @@ static void draw_image_paint_helpers(SpaceImage *sima, ARegion *ar, Scene *scene
int x, y, w, h;
unsigned char *clonerect;
- brush= scene->toolsettings->imapaint.brush;
+ brush= paint_brush(&scene->toolsettings->imapaint.paint);
if(brush && (scene->toolsettings->imapaint.tool == PAINT_TOOL_CLONE)) {
/* this is not very efficient, but glDrawPixels doesn't allow
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index d19dc897a89..d66cbb55baa 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -624,17 +624,18 @@ void snode_set_context(SpaceNode *snode, Scene *scene)
}
else {
MTex *mtex= NULL;
+ Brush *brush= NULL;
if(ob && ob->mode & OB_MODE_SCULPT) {
- Brush *brush = paint_brush(&scene->toolsettings->sculpt->paint);
+ brush= paint_brush(&scene->toolsettings->sculpt->paint);
+ }
+ else
+ brush= paint_brush(&scene->toolsettings->imapaint.paint);
+
+ if(brush) {
if(brush && brush->texact != -1)
mtex= brush->mtex[brush->texact];
}
- else {
- Brush *br= scene->toolsettings->imapaint.brush;
- if(br)
- mtex= br->mtex[br->texact];
- }
if(mtex) {
snode->from= (ID *)scene;