diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-10-12 20:00:39 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-10-12 20:00:39 +0400 |
commit | fbde77ce809111318a8cfb6b25eeaf03511cb0dc (patch) | |
tree | 3847f0e2cecd8d408e3b9ab31f01188a5bd28b54 /source/blender/blenkernel | |
parent | 50fd4f967f7f83c8ff33b76274bc6f2e8845fb46 (diff) |
texture slots up/down back
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_texture.h | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/texture.c | 49 |
2 files changed, 52 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_texture.h b/source/blender/blenkernel/BKE_texture.h index c7a6e20cc8b..b9dc5916e69 100644 --- a/source/blender/blenkernel/BKE_texture.h +++ b/source/blender/blenkernel/BKE_texture.h @@ -75,6 +75,9 @@ struct Tex *give_current_lamp_texture(struct Lamp *la); struct Tex *give_current_world_texture(struct World *world); struct Tex *give_current_brush_texture(struct Brush *br); +int give_active_mtex(struct ID *id, struct MTex ***mtex_ar, short *act); +void set_active_mtex(struct ID *id, short act); + void set_current_brush_texture(struct Brush *br, struct Tex *tex); void set_current_world_texture(struct World *wo, struct Tex *tex); void set_current_material_texture(struct Material *ma, struct Tex *tex); diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index d1c26b5a1b4..33dfcfca76e 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -889,6 +889,55 @@ Tex *give_current_material_texture(Material *ma) return tex; } +int give_active_mtex(ID *id, MTex ***mtex_ar, short *act) +{ + switch(GS(id->name)) { + case ID_MA: + *mtex_ar= ((Material *)id)->mtex; + if(act) *act= (((Material *)id)->texact); + break; + case ID_WO: + *mtex_ar= ((World *)id)->mtex; + if(act) *act= (((World *)id)->texact); + break; + case ID_LA: + *mtex_ar= ((Lamp *)id)->mtex; + if(act) *act= (((Lamp *)id)->texact); + break; + case ID_BR: + *mtex_ar= ((Brush *)id)->mtex; + if(act) *act= (((Brush *)id)->texact); + break; + default: + *mtex_ar = NULL; + if(act) *act= 0; + return FALSE; + } + + return TRUE; +} + +void set_active_mtex(ID *id, short act) +{ + if(act<0) act= 0; + else if(act>=MAX_MTEX) act= MAX_MTEX-1; + + switch(GS(id->name)) { + case ID_MA: + ((Material *)id)->texact= act; + break; + case ID_WO: + ((World *)id)->texact= act; + break; + case ID_LA: + ((Lamp *)id)->texact= act; + break; + case ID_BR: + ((Brush *)id)->texact= act; + break; + } +} + void set_current_material_texture(Material *ma, Tex *newtex) { Tex *tex= NULL; |