Commit Graph

1020 Commits

Author SHA1 Message Date
Campbell Barton
a60f79daf7 - rna py-api bug fix, a NULL item in a collection was raising an error
eg: mesh.materials[0] 
 ... when this was an empty slot.

- game world mist panel wasnt updated for rna renaming.
2010-08-22 17:23:08 +00:00
Campbell Barton
0267f6a0a3 patch [#23449] RNA renaming bugs
from Jacob F (raccoon)
2010-08-22 16:33:26 +00:00
Campbell Barton
96429a4792 fix for error rna naming 2010-08-22 12:59:13 +00:00
Brecht Van Lommel
de35361b11 Fix python errors in particles render panel and rigid body joint constraint. 2010-08-22 09:18:26 +00:00
Campbell Barton
4ca9a7e9c1 - bugfix [#23407] vertex painting on a mesh with no face segfaults
- removed animsys update values that dont need animating.
2010-08-22 06:31:26 +00:00
Campbell Barton
c2036fda5d fix for changes in recent renaming 2010-08-22 05:45:04 +00:00
Campbell Barton
87eaf57593 fix for errors in constraints and modifiers made when rna renaming. 2010-08-21 07:15:11 +00:00
Campbell Barton
5c3d2b13b8 rna name which wasnt set to change but should have been: eff_group -> effector_group 2010-08-21 06:40:46 +00:00
Campbell Barton
93ffe7d7f1 rna renaming (manual edits) 2010-08-21 04:51:00 +00:00
Campbell Barton
c8c2393310 rna naming error in recent commits 2010-08-20 22:00:23 +00:00
Brecht Van Lommel
0db0b14a52 Fix #23384: python errors in input tab in user preferences. 2010-08-20 10:02:21 +00:00
Campbell Barton
6da7684ca6 fixed [#23400] Unable to import *.3ds/*.obj files with textures
changed some rna names to be more consistant
- use_texture -> use_image, since it sets if 'image' is used.
- use_map_color_diff -> use_map_color_diffuse since diffuse is used elsewhere in the same type.
2010-08-20 08:11:26 +00:00
Campbell Barton
4f5f868a52 rna data path names which are more likely to break animations.
Added an operator "Update Animation Data",
access from the search menu to update drivers and fcurves.
2010-08-20 06:09:58 +00:00
Campbell Barton
097a6ca926 rna remaining that negates values 2010-08-20 02:08:43 +00:00
Campbell Barton
bea1c4fb13 misc rna renaming. 2010-08-19 17:46:00 +00:00
Campbell Barton
fedde2f8e3 rna rename Spline/Curve/Text3D 2010-08-19 17:31:10 +00:00
Campbell Barton
7c98860a0d rna renaming FModifier & GameObjectSettings 2010-08-19 17:10:43 +00:00
Campbell Barton
eee445590a rna naming mainly forBoids 2010-08-19 15:49:30 +00:00
Campbell Barton
486b3cd2f5 more rna renaming for non-animated properties: mainly Texface, Particle & Pointcache changes.
Changed some names when applying.
- render was use_render, changed to show_viewport so call it show_render
- texface shadow was use_shadow_face, changed to use_shadow_cast since this only affects casting.
- transp was alpha_mode, changed to blend_type since its similar to other overlay blending where this property name is used.
2010-08-19 12:51:31 +00:00
Campbell Barton
46e25e7c77 bugfix [#23384] Items disappear after expanding key config items
using dir() on operator properties isnt good practice, better use properties.keys() or properties.items()
2010-08-19 11:32:48 +00:00
Campbell Barton
736edd547b fix for error in recent renaming 2010-08-19 11:04:46 +00:00
Campbell Barton
b00c0526c7 missed this with recent renaming 2010-08-19 10:54:41 +00:00
Campbell Barton
4e3390437e - Properties from base classes are now registered too, this allows class mix-in's to define properties.
An example of how this is useful - an importer mixin could define the filepath properties and a generic invoke function which can run the subclasses exec for each selected file.

- Panels and Menus now skip the property check when registering.

- renamed _idproperties_ to _idprops_ in function names, function names were getting very long.
2010-08-19 10:16:30 +00:00
Campbell Barton
cdd62d6150 missed renaming this 2010-08-18 13:02:59 +00:00
Campbell Barton
399dda68d8 fix errors with recent commits. 2010-08-18 10:42:00 +00:00
Campbell Barton
c04199b3a1 rna naming mainly for Scene/IK/KeyingSet's 2010-08-18 08:58:37 +00:00
Campbell Barton
55ed0f0507 more rna renaming. 2010-08-18 08:26:18 +00:00
Campbell Barton
513a907730 rna rename Bone and Text changes 2010-08-18 07:45:32 +00:00
Campbell Barton
7da5d9faec rna renaming, still only adjusting properties that wont be animated (at least its very unlikely). 2010-08-18 07:14:10 +00:00
Campbell Barton
54e6ea70c0 rna renaming for Render* structs 2010-08-18 04:10:23 +00:00
Campbell Barton
64347d81c4 rna renaming for 'Brush' struct 2010-08-18 03:56:14 +00:00
Campbell Barton
9784a1169d rna naming: verts -> vertices 2010-08-18 03:42:26 +00:00
Campbell Barton
f32a35fd9d apply rna naming for ToolSettings 2010-08-18 03:24:52 +00:00
Campbell Barton
3bd039eff9 apply rna rename most of the show_*, names. 2010-08-17 17:03:52 +00:00
Campbell Barton
7a31417f50 apply UserPrefs and Theme rna naming changes. 2010-08-17 13:14:41 +00:00
Thomas Dinges
7394e1a312 * Put "Custom Properties" panel to bottom in particle buttons as well. 2010-08-17 09:05:44 +00:00
Thomas Dinges
2e2592127e 2.5 Texture Panels:
* Removed "Plugin" Texture Type from the Interface as it is not implemented in 2.5 atm.
2010-08-17 08:56:47 +00:00
Campbell Barton
b9d99b9c5b apply all rna naming changes for rna_space.c 2010-08-17 07:49:53 +00:00
Campbell Barton
04f619d8af - PyLineSpit() - used to print the filename and line number for internal errors now works when executing class functions in a module.
- replaced PySys_GetObject("modules") with PyImport_GetModuleDict()
- use defaults for keymap import/export rather then setting the same value every time from the UI scripts.
2010-08-14 05:33:20 +00:00
Campbell Barton
ae6a632534 fix for error in world buttons when the world was None 2010-08-13 22:35:13 +00:00
Campbell Barton
79487cca47 bugfix [#21807] Import Key Configuration problems 2010-08-13 18:48:33 +00:00
Brecht Van Lommel
ed36b00e36 Fix #23297: python error caused empty brush panel in the image editor. 2010-08-13 17:13:07 +00:00
Thomas Dinges
76e1773548 2.5 User Interface / UI Scripts
* Fixed some panel ordering after recent register changes.
* Placed "Custom Props" to the bottom again, where possible

This fixes [#23171] Material context is messed up.
2010-08-12 19:36:10 +00:00
Brecht Van Lommel
dc3ddd518b Fix #23269: inconsistent naming of recalculate roll in menus compared to
operator popup menu.
2010-08-12 16:15:50 +00:00
Campbell Barton
ab8ccaa709 python declarative UI
- remove XML testing feature
- add 2 modules: bpyml - generic, bpyml_ui - blender spesific. nothing uses these now.

==bpyml_ui module==
defines BPyML_BaseUI and its draw() function which uses the bpyml member of the class instance self.draw_data & self.draw_header_data.

This way declarative ui is opt-in and easy to use by using BPyML_BaseUI as a mix-in class.

==bpyml module==

This module translates a python like XML representation into XML
or simple python blender/ui function calls.

    sometag(arg=10) [
        another(),
        another(key="value")
    ]

# converts into ...

    <sometag arg="10">
        <another/>
        <another key="value" />
    </sometag>
2010-08-11 15:11:30 +00:00
Campbell Barton
d739a1788d small edits to text editor from writing a python editor extension.
- rename TextLine.line -> body, ConsoleLine.line -> body
- minor speedups when setting the body text, also re-allocate console lines if they are < half the length.
- added option to highlight current line in the text editor.
2010-08-11 05:21:43 +00:00
Campbell Barton
7c0216c7a0 minor adjustments to python scripts to make them easier to run outside of blender. 2010-08-10 18:21:33 +00:00
Campbell Barton
c026b8066d fix from recent poll() edits. 2010-08-09 08:18:49 +00:00
Campbell Barton
a6f13f9d7b poll() as a python '@staticmethod' was too limiting and didnt allow useful base class poll functions in many cases.
now rna functions that dont have a 'self' are automatically assumed '@classmethods'.

de-duplicated poll functions and made some minor tweaks too.
2010-08-09 01:37:09 +00:00
Campbell Barton
015c23b86d display addons sorted by category then name (remove old commented code which loaded the modules for real) 2010-08-08 13:45:16 +00:00
Campbell Barton
057aac553b Experemental XML UI, define panels/menus/headers which load at startup like python scripts.
- 2 panels implimented in properties_render_test.xml (Render Dimensions and Stamp)
- only enabled in debug mode.
- poll() functions are not supported yet.
- as stated above experemental, we'll see if this is at all useful, remove if not.
- XML could be replaced with JSON or YAML.
2010-08-07 16:21:15 +00:00
Brecht Van Lommel
89d30de7e3 Fix missing texture face panel. 2010-08-06 17:04:31 +00:00
Campbell Barton
55676442db reverted r31104 with recent commit. 2010-08-06 15:36:38 +00:00
Campbell Barton
acca04bf33 remove narrow ui feature
- re-arranged UI in a way that gave far too much vert scrolling.
- was added all over for simple things like making text="", layout engine should handle this.
- Ton and Brecht are ok with removing this now. Ton would like to work on the layout engine to make it better support these cases.
2010-08-06 15:17:44 +00:00
Luca Bonavita
17bd603cbc == Area lamp UI ==
Fixes [#23152] Area light with noshadow is affected by rayshadow sampling setup (Kino Bug Reporting Sprint)
https://projects.blender.org/tracker/index.php?func=detail&aid=23152&group_id=9&atid=498

This moves the samples field so that it is visible in area lamps when noshadow is clicked, because acording to Brecht: "area lights also use the 
samples for sampling the form factor, but they are in the shadow panel, probably for area lights that button should be moved"

Also modified the sampling buttons so that only those depending on the sampling method are below the sampling method selector, while the general 
ones come first so it's immediate to see which ones are depending on the sampling method.

Also, formatted so that options for constant jitter appear below that button, so it's faster to setup.
Same for QMC which has the threshold field just below the QMC selector, and not wide as the column.

This still uses "if wide_ui else", in IRC there has been discussion about removing it but this will be done but who is in charge of it at due 
time.
2010-08-06 14:36:39 +00:00
Campbell Barton
14fe11bd81 bugfix [#19525] Curve modifier moves mesh geometry first
more of a request then a bug but shows up a strange limitation with curve deform modifier,
The mesh bounding box would set the deform axis start/end to map the deformation of the curve to. This means it ignored offset in the object location and object data location (you could use a dummy vertex to trick it).

Old files wont change, added an option (next to stretch), called 'Bounds Clamp', old files have this behavior but newly made curves have it disabled.
Double checked this gives useful results with stretch on/off and negative axis.
2010-08-06 08:27:07 +00:00
Campbell Barton
30d180ff0d bugfix [#23194] export UVs miss the extension file
also made all other exporters do this.

Made some internal changes.
- moved path functions from bpy.utils to bpy.path (similar to os.path)
- added functions...
  bpy.path.ensure_ext(path, ".ext", case_sensitive=False) # simple function to ensure the extension is set.
  bpy.path.resolve_ncase(path) # useful for importing scenes made on windows where the path case doesnt match the files.
2010-08-06 01:40:54 +00:00
Campbell Barton
4f71435bbf some fixes for the poll() function from last commit.
Martin: forgot to mention, had to remove the use of super() in poll functions for netrender. commented with FIXME.
2010-08-05 21:58:57 +00:00
Campbell Barton
163f6055d2 bugfix [#23182] Using self.report() inside poll() gives crash
poll() function is now a static method in python, this is more correct, matching C where the operator is not created to run poll.


    def poll(self, context): ...

is now...

    @staticmethod
    def poll(context): ...

Pythons way of doing static methods is a bit odd but cant be helped :|

This does make subclassing poll functions with COMPAT_ENGINES break, so had to modify quite a few scripts for this.
2010-08-05 16:05:30 +00:00
Brecht Van Lommel
25f1741517 Fix sculpt 3d view menu showing in two columns. 2010-08-04 15:59:15 +00:00
Brecht Van Lommel
8b8c280755 Fix #23157: missing sculpt symmetry and appearance panels after python
registration changes.
2010-08-04 15:56:18 +00:00
Brecht Van Lommel
0aef61caef Fix hang on opening addons tab, having a .py file without bl_addon_info
would go into eternal loop.
2010-08-04 15:52:59 +00:00
Campbell Barton
1f77f7b05a Brush/Paint internal changes
- remove brush array for each Paint struct, just use a single brush pointer.
- removed rna function based template filtering.
- filter brushes using a flag on the brush and the pointer poll function.
- set the brushes using a new operator WM_OT_context_set_id().

TODO
- remake startup.blend, currently brush groupings are lost.
- rewrite WM_OT_context_set_id() to use rna introspection.
2010-08-04 12:18:07 +00:00
Brecht Van Lommel
7a5d6a5eb1 2.5: Hide options panel for halo materials, none of the settings here
should have an effect on halo's currently, and they share some of the
same flag bits as other halo options, which makes it even more confusing.
2010-08-04 08:49:56 +00:00
Campbell Barton
596952a5e0 bugfix [#23174] Text Editor: View Top of File and View Bottom of File not working [Patch to fix attached]
also moved these into the View menu (removed Edit->View)
2010-08-03 22:41:01 +00:00
Campbell Barton
6d0769bc42 forgot to update addons with recent update to bpy.types 2010-08-03 06:36:07 +00:00
Campbell Barton
486e00a3ed py addons: much faster scanning of addons by only parsing the dictionary rather then the entire file. 2010-08-02 12:35:32 +00:00
Campbell Barton
200fb4a286 fix for parsing scripts 2010-08-02 12:07:50 +00:00
Campbell Barton
9e16c687a9 update userpref's addon code to support new register/unregister, now the modules are parsed rather then being imported since it become quite tricky to import once without registering the classes, then again in a way that registered the existing modules classes without a reload() - which had problems too. 2010-08-02 07:50:58 +00:00
Campbell Barton
3d81ee3e4a fix for sequencer panel registration, a parent class panel was being registered as well as its children which crashed running the poll() function.
theres not much point in having 3 classes here, just use 1.
2010-08-02 04:10:16 +00:00
Martin Poirier
5b345524ea RNA Types metaclass registration
See mailing list posts for details [1][2][3]

Addons still need to be fixed; Campbell said he'd do it today.

See any of the py files (outside netrender) in this commit for how to do it (it's rather simple).

[1] http://lists.blender.org/pipermail/bf-committers/2010-February/026328.html
[2] http://lists.blender.org/pipermail/bf-committers/2010-August/028311.html
[3] http://lists.blender.org/pipermail/bf-committers/2010-August/028321.html
2010-08-02 02:55:12 +00:00
Luca Bonavita
174145be60 == addons ==
Loads addons from usual .blender/scripts/addons but also from .blender/scripts/addons_contrib if this folder exists

To get  latest contrib scripts, we can checkout
https://svn.blender.org/svnroot/bf-extensions/contrib/py/scripts/addons/
into release/scripts/addons_contrib/
2010-08-02 01:37:52 +00:00
Luca Bonavita
9d68a27365 == rigify ==
- small fix, doing F8 complains during the unregister phase

- hey Campbell, also netrender complains during F8, prints lots of 
  "AttributeError: 'Scene' object has no attribute 'network_render'"
  I tried to track this down with no luck, bpy.types.Scene doesn't seem
  to have a network_render method anymore? I'll investigate later if it 
  won't be fixed already :)
2010-07-31 18:06:55 +00:00
Nathan Letwory
11b140fb3a patch [#23110] isolate render type UI labelling + operator to clear all hide render flags in scene by Peter Schulman 2010-07-30 23:25:26 +00:00
Thomas Dinges
e4a16c8010 Properties Window:
* Deleted space_buttons.py file as I doubt that these buttons will be done in python. File was not used anyway.
* Deleted some ifdef checks from space_buttons.c for the py header.
2010-07-30 16:15:56 +00:00
Thomas Dinges
0972d05b4b Logic Editor:
*Removed the old header menu code, replacing with Python menus.
2010-07-30 15:44:26 +00:00
Thomas Dinges
8fea1c327c Ui Scripts:
* Made a "View" Menu in the Text Editor, these settings don't belong into a "Text" Menu. 
* Added "Properties" Operator into the VSE "View" menu.
2010-07-30 14:56:17 +00:00
Brecht Van Lommel
5251a9b3bf 2.5: remove vertex normal flip option, this is more harmful than helpful
in many cases, and also gave incorrect rim lighting.
2010-07-30 11:50:00 +00:00
Matt Ebb
eec1318996 Preview commit in sculpt brushes broke resetting curves in other areas (rgb curves etc).
Fixed by adding a 'slope' parameter to curvemap_reset() to mirror curve presets around Y axis.

Also removed curve preset with 'random' icon, wasn't doing what it looked like it should, 
this was intended only for hue correct node anyway.
2010-07-30 00:06:59 +00:00
Campbell Barton
70bca0405d sequencer ui
- opacity seq button was messed up.
- only show opengl preview option in preview window.
2010-07-28 07:52:05 +00:00
Jason Wilkins
3c0ed589c1 * moved Threaded Sculpt, Fast Navigate, and Show Brush back to Sculpt Options panel until they are properly moved in memory to the corresponding places they were in the UI.
Fast Navigate apparently needs to be made an option of the multires modifier

Threaded Sculpt and Show Brush need to be made UserPrefs

Some of these options were removed form UserPref panel without placing them anywhere else in the interface so this commit at least puts them somewhere so they can be used.
2010-07-28 07:19:54 +00:00
Nicholas Bishop
88dcfbaee9 == Sculpt ==
Added a brush reset operator so that a user won't need to reload the default blend to get back default brush settings

* New brush.reset operator, resets a brush based on the currently-selected tool
* Added UI button in the tools panel

TODO:
* Only resets sculpt brushes right now, other paint modes should be added
* Sculpt polish tool exists only as a Brush, not as a tool; I'd suggest we make it a tool so it can be reset to defaults too
2010-07-27 16:09:02 +00:00
Daniel Genrich
614192cce3 Fluid: Fix empty named fluid particle system; Smoke: Fix typo 2010-07-27 15:04:50 +00:00
Daniel Genrich
967d25ac1c Smoke Patch + additions: a) Applying patch #22765 by Miika Hämäläinen (domain border collision settings, vorticity settings, time scale, non absolute density, smooth high res emitter, initial velocity multiplier, high res strength available to be set to 0), b) Additions by me: --Initial velocity is now per flow object, not per domain; --Using boundingbox as standard display mode for domains (was wire before); --When adding a flow object, an initial nice SmokeParticle system is added too with nice initial settings (life=1, no_render, unborn, etc) fitting smoke simulation; --Adaptive timesteps introduced to the smoke sim (depending on the magnitude of the velocity) because it was quite unstable when used for fire simulations, still needs to be tested and will also slow down some simulations. 2010-07-27 14:53:20 +00:00
Joshua Leung
a3166d2997 Dammit to whoever removed the X-Ray button AGAIN from the armature buttons. I remember specifically restoring this a few months ago, but it seems to have gone missing again.
Despite the overlap with Object draw settings, this is a one-off setting that you'll end up turning on/off quickly while working with armatures and is also more conveniently set while chosing armature drawtypes (than jumping back to object buttons).

Grr...!
2010-07-27 05:53:29 +00:00
Campbell Barton
432ec37965 Jason, from your merge 30325.
move toolsettings out of the userprefs into the sculpt menu, if these should be userprefs then they should be moved into that struct.
2010-07-26 23:49:23 +00:00
Luca Bonavita
b30e2a57fc == node editor ==
- added backdrop commands in the view menu
  I couldnt finf them in the menus and also liquidape asked for them

- added cut links command in menu, since also this one wasnt thast obvious (now it's ctrl-drag)

- micro patch reviewed by jesterKing
2010-07-26 21:37:55 +00:00
Campbell Barton
15e94823dd in debug mode report the time to load addon modules. 2010-07-26 09:09:53 +00:00
Jason Wilkins
9941b7d52d * was suggested I combine all the direction modes into a single enumeration by using RNA_def_property_enum_funcs 2010-07-26 05:25:09 +00:00
Nicholas Bishop
ec19c7dffc == Sculpt ==
Fixed brush icons loading slowly

* Changed brush icon property from an enum to a flag that toggles whether a custom file is used for the brush icon
* Changed get_brush_icon to only handle loading external icons, built-ins are handled through the regular icon system
* Modified preview icon drawing to allow built-in icons
* When not using a custom icon, a default icon is selected based on the current tool

TODO:
* Allowing preview to show built-in icons makes the brush texture selector look ugly when nothing is selected. As discussed on IRC though, the nothing-selected state needs to be clarified anyway; I'll address this in another commit
* Use image browser when selecting a custom icon
* Selecting the default icon is ugly (uses the active object's mode), this can be fixed by making brushes know which paint mode they are part of
2010-07-26 04:00:09 +00:00
Janne Karhu
6ec87e6095 Fix for [#22128] particle sizes and physics
* size wasn't updated at all for particles with keyed or no physics
2010-07-25 14:40:18 +00:00
Luca Bonavita
0eca3db6c5 - typo: from "lenght" to "length" in rna
fixes [#22997] typo in autocomplete/python api name in bpy.context.active_object.data.draw_edge_lenght not length
  https://projects.blender.org/tracker/index.php?func=detail&aid=22997&group_id=9&atid=498
  no addons are affected by this change

- also found a typo in particles toolbar
2010-07-24 16:35:58 +00:00
Peter Schlaile
b3dca80c5b Sequencer UI bugfix: translate / crop also work on effect output, UI was
missing
2010-07-23 17:09:33 +00:00
Brecht Van Lommel
444d06af32 2.5: change a user preferences settings from .enabled to .active, it's nicer
if the button is grayed out but still editable.
2010-07-23 09:33:58 +00:00
Campbell Barton
026ac24922 [#22488] Reloading scripts causes crash
F8 key enabled again, useful for script UI development.

- keying set freeing wasnt freeing from all scenes and the builtin list.
- PointerProperty() cant refer to a removed python srna type (fixed in rigify and netrender).
- Added a check for freeing a type used by a PointerProperty but its very slow, makes reloading take ~10sec. Only enabled this in debug mode for now.

Netrender register() function isnt re-registering the property, probably because the module is cached by python and not re-run.
2010-07-23 01:43:30 +00:00
Jason Wilkins
3b5b761a56 == Sculpt/Paint Fixes ==
* Fix: unify strength and size did work consistently with other paint modes
* Fix: If [ and ] keys were used to resize a brush it was not possible to increase the size of the brush if it went under 10 pixels
* Fix: Made interpretation of brush size consistent across all modes, Texture/Image paint interpreted brush size as the diameter while all the other modes interpret it as radius
* Fix: The default spacing for vertex paint brushes was 3%, should be 10%
* Fix: due to fixes to unified strength, re-enabled 'Unify Size' by default
* Fix: Unified size and strength were stored in UserPrefs, moved this to ToolSettings
* Fix: The setting of pressure sensitivity was not unified when strength or size were unified.  Now the appropriate pressure sensitivity setting is also unified across all brushes when corresponding unification option is selected
* Fix: When using [ and ] to resize the brush it didn't immediately redraw
* Fix: fkey resizing/"re-strength-ing" was not working consistently accross all paint modes due to only sculpt mode having full support for unified size and strength, now it works properly.
* Fix: other paint modes did expose the ability to have a  custom brush colors, so I added the small bit of code to allow it.  Note: I made all of the other paint mode brushes white.  Note2: Actually, probably want to make the paint modes use the selected color for painting instead of a constant brush color.
* I had removed OPTYPE_REGISTER from some Sculpt/Paint operators but in this commit I add them back.  I'm not completely sure what this option does so I don't want to disturb it for now.
2010-07-22 18:56:46 +00:00
Tom Musgrove
aa2f0b1e42 yet another inconsistency fix curve in uv editmode was using the drop down menu for picking curves instead of the icons 2010-07-22 11:21:21 +00:00
Tom Musgrove
ea5fdcbd67 finished making uv paint panel consistent with the 3d view painting panel, asked Matt and he said the inconsistency was unintentional 2010-07-22 05:59:50 +00:00
Jason Wilkins
e3ad451ae1 * closed small gap at top of appearance panel 2010-07-21 11:58:23 +00:00
Tom Musgrove
6b2c4dfe73 making this consistent with texture brush selector in the 3d viewport 2010-07-21 08:23:57 +00:00