diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2013-03-07 16:11:38 +0400 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2013-03-07 16:11:38 +0400 |
commit | 41bf595c5f57247beee262005aab8a0d723660c5 (patch) | |
tree | deeba3613252207f659888dfde14910c7812d611 /source/blender/blenkernel/BKE_brush.h | |
parent | 28b9abe3eb599203c52df1aa1d4c8c0ee3d7a582 (diff) |
Texture paint refactoring commit
This is as close as I can get to keeping the old code intact. After this
commit, I will have to change existing code paths, making testing of
functionality harder.
Changes:
* Keep only projective texturing code in paint_image_proj.c
* Move 2D code to paint_image_2d.c. This needed the introduction of
allocation/cleanup functions for the relevant structures.
* Common code interface for both modes stays in paint_image.c (which
still includes all old code, system should work as it did with the
exception of non-projective 3D paint mode) and is made public. This is
not a lot of code, only rectangle invalidation and undo system.
* Changed the naming in the new code slightly: imapaint_ prefixed functions refer to
common functions used by both systems, paint_2d_ prefixed to 2d
painting. There will be an interface for the projection painting as
well. Probably there is some leftover naming conversions to do.
TODO:
* Move operator init/exec/modal to common interface file
* Get rid of old BKE_brush_painter_paint, now brush_painter_2d_paint.
All code uses stroke system for the stroke management
* Write space pressure management for the paint stroke system (for other
systems to access as well :) )
* Move texture paint tablet presssure exception code for old bugs to
stroke system (makes me wonder...aren't other systems also influenced by
these pressure issues?) or up in the function hierarchy inside texture
paint. This code is still not there so users with tablets may notice
some issues.
* possibly change other systems to pre-multiply pressure with the
relevant influenced attributes in the stroke function. This could get
tricky though and it's possible that it could backfire.
Diffstat (limited to 'source/blender/blenkernel/BKE_brush.h')
-rw-r--r-- | source/blender/blenkernel/BKE_brush.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/blenkernel/BKE_brush.h b/source/blender/blenkernel/BKE_brush.h index cfae15961d7..95c39bad344 100644 --- a/source/blender/blenkernel/BKE_brush.h +++ b/source/blender/blenkernel/BKE_brush.h @@ -79,13 +79,13 @@ struct BrushPainter; typedef struct BrushPainter BrushPainter; typedef int (*BrushFunc)(void *user, struct ImBuf *ibuf, const float lastpos[2], const float pos[2]); -BrushPainter *BKE_brush_painter_new(struct Scene *scene, struct Brush *brush); -void BKE_brush_painter_require_imbuf(BrushPainter *painter, short flt, +BrushPainter *brush_painter_2d_new(struct Scene *scene, struct Brush *brush); +void brush_painter_2d_require_imbuf(BrushPainter *painter, short flt, short texonly, int size); -int BKE_brush_painter_paint(BrushPainter *painter, BrushFunc func, const float pos[2], +int brush_painter_2d_paint(BrushPainter *painter, BrushFunc func, const float pos[2], double time, float pressure, void *user, int use_color_correction); -void BKE_brush_painter_break_stroke(BrushPainter *painter); -void BKE_brush_painter_free(BrushPainter *painter); +void brush_painter_2d_break_stroke(BrushPainter *painter); +void brush_painter_2d_free(BrushPainter *painter); /* texture */ unsigned int *BKE_brush_gen_texture_cache(struct Brush *br, int half_side); |