Commit Graph

53000 Commits

Author SHA1 Message Date
Nathan Letwory
f3dc0ba876 * spacetype time -> spacetype ipo 2008-12-12 20:59:59 +00:00
Kent Mein
e8effb2d0f started whiping cmake into shape for 2.5 still need to figure out
the rna stuff but its close.  Need to get it working for
blender then copy over same to game engine.

Kent
2008-12-12 20:41:30 +00:00
Nathan Letwory
0956f78d69 * To have IPO editor get both compiled and link, we also make sure it is actually built and linked to. 2008-12-12 20:11:45 +00:00
Ton Roosendaal
f2884fed5c 2.5
Another make file...
2008-12-12 19:19:09 +00:00
Campbell Barton
aa40953210 Projection Painting, merge from branch
Additions/Features...
 - Painting onto multiple images at once.
 - Clone with an offset similar to the gimp, also an option to clone between UV layers, (not both offset and between layers atm)
 - Stencil layer, similar to The Gimp's quickmask.
 - Face mask mode - (painting onto only selected faces).
 - Texture brushes (so image and texture-node brushes too)
 - Seam bleed so you don't see gaps when painting over UV seams (new option set in the panit panel)
 - Occlusion (only point onto the first face under the paintbrush, can also be used for masking out parts of the model to paint onto) - (new option set in the paint panel)
 - Muti-threaded, each thread operates on its own bucket.
 - Support partial updates to speedup OpenGL texture refreshing.
 - Support tile based multiple undo's
 - Support float image buffers.
 - Backface culling (new option set in the paint panel)
 - All color blending modes - Add/Multiply.. etc.
 - Airbrush rate. (used to be broken) 
 - Improve the way paint is mixed when painting, so painting with 0.2 alpha will not accumulate above 0.2 alpha on the image as you paint.
 - Option to use normals to fade out strokes on the edge of a surface to avoid ugly edges. (same as Vertex Paints "Normal" option) 

Known Problems
 - Not directly related to painting but changes in selection flags are not updated on the final derived mesh.
 - Smear tool has some distortion when in perspective mode. 
 - While in perspective view any faces with 1 vert behind the viewpoint, will be completely ignored.
 - Painting can be initially slow while buckets are being initialized, a number of solutions exist.
 - Size 1 brushes don't work yet.
 - When painting onto large faces its still possible to get artifacts.
 - Spatial optimizations are needed to skip occluded faces and test pixel occlusion. (will look into using blenders BVH )
2008-12-12 18:59:17 +00:00
Ton Roosendaal
3b9781ba0d 2.5
Scons was missing WM includes
2008-12-12 18:56:15 +00:00
Ton Roosendaal
a46ddac1a9 2.5
- Added rudimentary support for Ipo window
  (Joshua can check on view2d issues for this? :)

- removed ED_area.h, added ED_space_api.h
2008-12-12 18:47:12 +00:00
Campbell Barton
696ef1afd2 minor changes 2008-12-12 18:31:34 +00:00
Campbell Barton
6f78cdd79f view.c
* Renamed view_autodist to view_mouse_depth
 * Accept args for mouse location and pixel distance around the hotspot used to lookup the depth.
 * removed persp(PERSP_VIEW) within this function, since it didnt set the view back.

imagepaint.c
 * normal falloff now works as Brecht suggests. Normal limit of 80 will blend between 80 and 85deg,  70deg limit blends between 70-80deg.
 * convert normal falloff to radians on initializing rather then on every comparison.
 * Ctrl+Click setting the cursor in its own function.
 * projection painting wasnt accounting for an exception for too high pressure values on first touch in windows for some tablets.
 * removed grease pencil benchmark function
2008-12-12 17:56:19 +00:00
Ton Roosendaal
faf7965b3c 2.5
- found fix for time-space view2d when increasing height of area,   it has min/max Y zoom stored based on size of area... needs 
  smarter way.

- outliner: header file added, area switch menu + dummy pulldown. 
  this will become template for other space types...
2008-12-12 17:10:54 +00:00
Ton Roosendaal
2fa23a0594 2.5
Fixes in view2d:

- mask/slider rects were calculated wrong 1 pixel (was overlapping)
- found bug with outliner stretching on area-edge-dragging. It required
  an extra mapping of the 'cur view' via mask to actual region.
- added v2d sanity check for uninitialized v2d's
- removed cruft in do_versions for headers (gets catched with above)
- added header-view2d-initialize function, for new-space calls

Fixes in areamanager:

- fixes in 'new space' for time/outliner/view2d
  (unfinished)

For Joshua:

- Making time window higher shows it doesn't update 'cur'. Not sure
  what kind of v2d flag should be checked or set?
2008-12-12 16:29:33 +00:00
Joshua Leung
05e5e00bc9 View2D: Cosmetic tweaks for scrollers
Scrollers now draw in the 'rounded + shaded' style as much of the rest of Blender now. This is just a rough draft of what they could look like (vertical scrollbers in particular highlight the need for a complementary version of gl_round_box_shade).
2008-12-12 11:41:05 +00:00
Ton Roosendaal
e02c15151f 2.5
Removed notifier SCREEN_CHANGED from creating menus or tooltips.
This one is used to re-initialize spaces, areas, regions in screen.
2008-12-12 10:55:36 +00:00
Ton Roosendaal
7f3a34d16c 2.5
Resolved cyclic calls for editors. 
Now there's a space_api/ module, here you can use functions calling
other editor modules. The functions in the module are only used by
the WindowManager module to initialize space types.

Note for sconzers and MSVC and cmake: the proper linking order for
editors is:

- space_api
- space_xxx
- object / mesh / transform / etc
- interface
- util / datafiles
- screen
2008-12-12 10:18:26 +00:00
Joshua Leung
6f6eee0923 2.5 - Fixed crashes when closing windows 2008-12-11 23:05:18 +00:00
Benoit Bolsee
1ecf855276 VideoTexture.ImageMirror: if the mirror is horizontal in mesh coord, take the Y axis as the up direction for the UV map. If the mirror is not perfectly vertical(horizontal), the projection of the Z(Y) axis on the mirror plane is the mirror Up direction. 2008-12-11 23:02:33 +00:00
Joshua Leung
b7426ab4e2 2.5 - Compiling fix (ED_newspace not defined yet) 2008-12-11 22:30:24 +00:00
Brecht Van Lommel
a10752f4bc UI: restored mechanism to only call button/block callback functions
after the menus are closed, to avoid conflicts with those callbacks
manipulating their own area or region.
2008-12-11 20:30:41 +00:00
Ton Roosendaal
7a1100c8b5 2.5
Today's progress; half working, but i better commit to prevent
conflicts tomorrow :)

- added storage for regions in spacedata
- added space switching (unfinished, gives mem-free errors)
- bugfix: icon of timewindow gave error on split-area
- cleaned interface_icons.c a bit, no warnings
- first work on space new() callbacks, they have to make regions too


NOTE: probably files saved with 2.5 crash now. Have to look at
patching this.

NOTE2: the Makefiles required libeditor screen twice... scons too?
2008-12-11 19:35:27 +00:00
Ton Roosendaal
d39b43aa20 2.5
TimeLine window pulldowns work sorta (for the options that were coded :)

Still trying to bring back code without recoding uiDefButs. In future these
will get directly operator stuff linked. For time being made a simple 
operator call function, like:

WM_operator_call(C, "ED_MARKER_OT_add");

and for forcing operator to run in the main region-window:

WM_operator_call_rwin(C, "ED_MARKER_OT_add");

These calls also work for modal operators, like marker grab in this case.
2008-12-11 15:38:16 +00:00
Ton Roosendaal
045306ae49 2.5
Small fix: Screen state  updating should be blocked while menus are open.
Caused draw errors for activated headers. Todo is: bring back separation
between window-handlers and screen-handlers, to solve this?
2008-12-11 14:59:57 +00:00
Joshua Leung
3c0c5e04bb RNA - Finished wrapping Armatures + Bones
Notes: 
- I'm not sure whether we want to move out the PoseMode hide flags from here, but PoseChannels directly get most of their flags from here.
- Some of the settings for Bones have not been exposed, as they are mostly internal flags or used only by transform
- I'm not sure whether we should be exposing EditMode settings like head/tail/roll directly here...
2008-12-11 10:36:40 +00:00
Joshua Leung
9fa6b03ea7 View2D: Various Fixes + Header Support
Added support for panning headers using View2D of the header regions (only done for TimeLine, as only that one has buttons on it). 
Currently, this uses some do_versions magic to initialise the View2D rects required, however, I'm not sure if all the information was safely ported over yet (notably height and position of rects due to alignment issues).

In the process, I noticed a few bugs with the current View2D code:
* UI_view2d_curRect_validate() is now called after UI_view2d_size_update(), as the size of the 'mask' rect is closely related to the size of the 'cur' rect (especially when zooming is locked).
* Fixed a bug in UI_view2d_curRect_validate() which meant that if the 'cur' rect was slightly larger than the 'tot' rect, and keeptot was set, the view would flicker between the two closely related positions.
2008-12-11 03:50:50 +00:00
Maxime Curioni
20496ca644 renamed app_blender/api.cpp FRS_freestyle.cpp 2008-12-10 22:13:23 +00:00
Maxime Curioni
2f460b448b improved Freestyle IO formatting 2008-12-10 22:06:27 +00:00
Maxime Curioni
d15321082e removed AppGLWidget and all related classes
added an AppView class to transfer camera information from Blender to Freestyle
removed unused functions
2008-12-10 21:51:58 +00:00
Brecht Van Lommel
f00a75272e UI:
* Added context pointer to function callbacks for buttons and blocks.
* Added a uiBlockSetHandleFunc, which will be called with the button
  return value. This seems kind of redundant with uiBlockSetButmFunc,
  but the latter uses a2 to pass the value.
2008-12-10 19:22:10 +00:00
Maxime Curioni
8b3e4bc069 when Freestyle would execute style modules, a copy of the Python script would end up in the text editor and pollute the text editor file list. This is corrected: executed scripts do not leave trails behind. 2008-12-10 18:36:56 +00:00
Ton Roosendaal
64f9c67ca8 2.5
- Brought back (most of) buttons in TimeLine window.
  They don't work yet though! Waiting for Brecht to commit callbacks
  for menus and ui-blocks

- Area headers hilite again when mouse is inside.
2008-12-10 17:58:18 +00:00
Maxime Curioni
eaae4090c1 replaced "Shape loading" message with "Importing triangular meshes into Blender"
handled case when scene is empty
made controller's view map as public variable
2008-12-10 15:30:43 +00:00
Ton Roosendaal
acce05c7e4 2.5
Fix: on quit with a ghost event, windows were freed without freeing screens.
2008-12-10 15:12:46 +00:00
Ton Roosendaal
54c4ed469a 2.5
Cleanup in area/region management

- more intelligence in area management for adding handlers and setting
  data correct. Space/Region type callbacks only have to do own things.

- added option for adding default handlers to areas/regions. (flag in
  type definition)

- ensured that region-types store the minsizes for regions.

- added boundbox check for handlers; note that it accepts pointer to
  boundbox, because handlers don't get reset on area-resizing or
  view changes. Example: view2d handlers use mask rect.

- handlers get now added on correct context levels (example frame change
  also worked in header)

- removed ->refresh() callback. Context refreshing is Listener.
  
- the ->init() is being called on all WM level actions, also after a
  file read, moving areas, re-opening areas etc. 

- fixed bug: crash on exit was caused by cleaning up Screen too late.

- UI_view2d_size_update() removed from draw callback, is init()

- regions now store (winx, winy) subwindow size.
2008-12-10 13:56:54 +00:00
Joshua Leung
1fdb9da2a7 RNA - Wrapped a few more Armature/Bone settings
* I've only got a few more Armature settings to go (path stuff)
* Bones have still only got name + layers so far
2008-12-10 12:00:36 +00:00
Campbell Barton
6dc2714c78 fix for [18069] open nurbs curve snaps end to centerpoint
made nurbs surface curves use the same number of points as nurbs curves.
2008-12-10 11:42:26 +00:00
Campbell Barton
2ef5af67ca merge from trunk - r17500 to HEAD 2008-12-10 09:45:48 +00:00
Joshua Leung
a8726cd9c3 View2D - Bugfixes
Fixed a few typos in View2D code, which included the zoom-locking flags not being checked for correctly by the zoom operators. 

This commit does NOT fix the problems with the Outliner 'cur' rect expanding/contracting as the view changes size. I still haven't found the cause of this, but it might be related to the off-by-1 errors with UI-widgets that brecht noted in TimeLine header...
2008-12-10 09:07:15 +00:00
Campbell Barton
2f39ae3b2e move the paint buttons from the image view and buttons window into one function. 2008-12-10 05:41:21 +00:00
Brecht Van Lommel
4a9ee46c14 UI: don't use operators anymore for handling user interface events, but rather
a special UI handler which makes the code clearer. This UI handler is attached
to the region along with other handlers, and also gets a callback when all
handlers for the region are removed to ensure things are properly cleaned up.
This should fix XXX's in the UI code related to events and context switching.

Most of the changes are in interface_handlers.c, which was renamed from
interface_ops.c, to convert operators to the UI handler. UI code notes:
* uiBeginBlock/uiEndBlock/uiFreeBlocks now takes a context argument, this is
  required to properly cancel things like timers or tooltips when the region
  gets removed.
* UI_add_region_handlers will add the region level UI handlers, to be used
  when adding keymap handlers etc. This replaces the UI keymap.
* When the UI code starts a modal interaction (number sliding, text editing,
  opening a menu, ..), it will add an UI handler at the window level which
  will block events.

Windowmanager changes:
* Added an UI handler next to the existing keymap and operator modal handlers.
  It has an event handling and remove callback, and like operator modal handlers
  will remember the area and region if it is registered at the window level.
* Removed the MESSAGE event.
* Operator cancel and UI handler remove callbacks now get the
  window/area/region restored in the context, like the operator modal and UI
  handler event callbacks.
* Regions now receive MOUSEMOVE events for the mouse going outside of the
  region. This was already happening for areas, but UI buttons are at the region
  level so we need it there.

Issues:
* Tooltips and menus stay open when switching to another window, and button
  highlight doesn't work without moving the mouse first when Blender starts up.
  I tried using some events like Q_FIRSTTIME, WINTHAW, but those don't seem to
  arrive..
* Timeline header buttons seem to be moving one pixel or so sometimes when
  interacting with them.
* Seems not due to this commit, but UI and keymap handlers are leaking. It
  seems that handlers are being added to regions in all screens, also in regions
  of areas that are not visible, but these handlers are not removed. Probably
  there should only be handlers in visible regions?
2008-12-10 04:36:33 +00:00
Campbell Barton
ce5b9d21a7 tweaks to brush falloff and alpha, giving nicer looking strokes. 2008-12-10 03:13:48 +00:00
Martin Poirier
6651af413d When not using quick mode, automatically select the last drawn stroke. 2008-12-09 21:25:30 +00:00
Martin Poirier
2b9a6251d1 Reeb graph filtering
Add exception to normal nodes preservation when that node is the root node. In that case, pruning the arc is A-OK and in fact needed.
2008-12-09 20:46:25 +00:00
Maxime Curioni
12debd47dd corrected crash caused when enabling scene vectors 2008-12-09 17:14:34 +00:00
Ton Roosendaal
b205ec4f18 2.5
Area Manager: revised how an area subdivision gets managed. Originally
the 'spacedata' would store regiondata too, but this already became
impractical (like having view2d data in region is useful). So I left
that part how it is. See new diagram:

http://wiki.blender.org/index.php/BlenderDev/Blender2.5/AreaManager

This means that regions in an Area define location/size or constraints
for how they get arranged. The "RegionType" which is linked to this 
defines its functionality. 

For fun, test, and code validation: two temporary hotkeys added.
SKEY: splits current region horizontally
SHIFT+S: splits vertically

Note - in outliner - that "context" sticks to the Area as whole, the region
here only defines view. That's the purpose. :) For two outliners with different
context you open 2 areas.
Also note that dragging screen-edges shows the region-alignment type (split
with percentage).
2008-12-09 15:59:43 +00:00
Campbell Barton
42f792309f bugfix - [#18063] Projection paint branch: draw tool "drops out" when model extends beyond view borders
reported by michael williamson.

Was caused by point inside triangle test using an error limit that didnt adjust for different size triangles.
2008-12-09 14:30:05 +00:00
Benoit Bolsee
cd47292745 ImageMirror: add clip attribute to limit clipping distance of mirror rendering 2008-12-09 14:16:10 +00:00
Joshua Leung
b9e04c67dc RNA: Start of RNA wrapping for Armatures
Wrapped most of Armature settings, but bones are not yet complete.
2008-12-09 11:29:40 +00:00
Campbell Barton
4251912b54 * tablet pressure changing opacity while painting didnt work
* pixels with <= the current opacity are not painted onto, speeds up painting especially with low spacing. (only when airbrush is disabled)
* use qsort rather then own crufty sorting function
* grouped projection painting functions together.
2008-12-09 08:21:53 +00:00
Matt Ebb
aef61a7000 wip commit to work on at home, nothing to see 2008-12-09 07:19:55 +00:00
Joshua Leung
13c634c7ba 2.5 - Swapped order for adding View2D keymaps in TimeLine so that they can still work. 2008-12-09 06:23:40 +00:00
Diego Borghetti
12fbd936dd Fix mistake in last commit.. it's pic + 1 ;) 2008-12-09 04:57:42 +00:00