Commit Graph

76 Commits

Author SHA1 Message Date
6559209dbf [#26482] Solidify / Animation Opengl render. no texture.
workaround for view3d datamask not being correct on opengl render.
2011-03-13 02:44:25 +00:00
092c3d8a85 fix bug [#26315] Background and 3D view mistakes
The bug is caused by a fix for [#22111], commits r29356, r28545.

exiting localview would set the rv3d->view but use the original rv3d->viewquat.
2011-03-08 07:44:30 +00:00
627c764e3c bug [#26329] Project Paint not working
we cant ensure that a requested buffer can be allocated so report opengl errors when failing to allocate the buffer (rather then printing to console).

this is common enough and generic error isn't too helpful to users.
2011-03-06 23:12:12 +00:00
3c3997f050 replace references to old arithb library 2011-03-02 05:05:12 +00:00
Nathan Letwory
8172207d20 doxygen: editor entry 2011-02-21 07:25:24 +00:00
691f2abad1 fix [#25684] Grease pencil strokes with "Surface" option attach erratically to curves.
added new functions
- view_autodist_depth_segment()
- plot_line_v2v2i(), which takes a callback and plots x/y points.
2011-02-02 03:32:58 +00:00
e49df9e09f Bugfix [#25684b] Surface and Stroke options are not working with Use
Sketching Sessions.

Fix for secondary issue noted in this bug report. Some of the code for
the fancy 3d view sketching options needed to be moved around so that
there is a clearer "paint/sketch session" and "stroke" separation
between various stages. There's still some more stuff that needs to be
done here before I think it's totally cleaned up.
2011-01-18 01:04:14 +00:00
5d6c76c6a3 Spelling fix: itterator->iterator 2011-01-02 19:00:32 +00:00
c046ae14be Fix for multiple modifier stack calculations per frame.
Since 2.5x blender has been using CD_MASK_BAREMESH for updating objects since object_handle_update() no longer has access to G.curscreen to calculate the mask from viewports.

The problem with this is after an initial calculation, CD_MASK_MTFACE may be required on draw, so it would recalculate the modifier stack multiple times per frame.
One case which caused this is armature animated mesh with texface in a dupligroup.

Fix this by having customdata_mask member in the scene, this isn't great design but at least fixes the bug and only changes a few files.
2010-12-23 04:16:31 +00:00
9dbb31383f remove shadowed definitions but keep them as zero this time. 2010-12-03 23:55:10 +00:00
a44acdf348 bugfix [#23118] Blender freezes when combing hair - OS X path changes related?
- glReadPixels() was running to get the depth on each pixel, this works fine one some cards but was locking up on OSX.
- Replace glReadPixels() call with a single call to view3d_update_depths() right after view3d_validate_backbuf(), so the depths are only read once.
- Unrelated to the changes above, but should improve performance: view3d_validate_backbuf() was being called on every redraw while combing, now only call once when combing starts.
2010-11-26 12:57:35 +00:00
85b9652258 fix for glitches with quad-split view.
- Home or Numpad Period with smoothview disabled were not syncing up the other views.
- Disabling clip only disabled clip syncing but left clip enabled for all views.
- Clip was being calculated for every update even when not enabled.
- The perspective view was being used to copy settings from when changing box & clip settings, resetting the distance each time. Now use one of the aligned views instead.
2010-11-08 03:44:52 +00:00
7569a25a4f centralize function for calculating pixel size. (no functional changes) 2010-11-05 05:26:34 +00:00
f13417a969 keep the view centered with camera shift, camera view grease pencil intentionally ignores shift. 2010-10-26 20:51:11 +00:00
0ec320783e fix [#24339] Auto Depth, makes viewport lag.
The problem is the opensource nvidia nouveau drivers are slow running glReadPixels(), was hanging on memcpy().
However for autodepth its not needed to update the entire 3D view depths, so added view3d_update_depths_rect() to get the depths for a smaller area.
2010-10-21 07:38:09 +00:00
ea3be03743 ED_view3d_draw_offscreen_imbuf_simple and ED_view3d_draw_offscreen_imbuf now accept the imbuf flag so they can get the float buffer from opengl directly. 2010-08-26 23:30:15 +00:00
81d5e4f8df bugfix [#22819] Grease Pencil: OpenGL render incorrect if view mode, OK with cursor mode
also made drawing in camera view stick to the camera border (belated durian request),
useful for animation review without worrying about screensize moving the overlay about.
2010-08-25 08:31:52 +00:00
15669532a2 header re-shuffle, some headers contained unneeded refereces to other headers, better include inline with the C files that need them 2010-08-10 05:41:51 +00:00
99c64e05a6 bugfix/functionality fix [#21752] 3D cursor vanished and does not come back
Setting the 3d cursor in perspective mode would keep the cursor behind the viewport,
now check if the cursor is begind the viewport and use the orbit location to set the cursor depth rather then the existing plane.
2010-08-06 03:52:13 +00:00
b0eee216d4 Fix [#22383] 3dView Layer Management (by Mouse) broken 2010-06-04 01:39:34 +00:00
230eec9917 chaning the camera from the scene buttons didnt update the views. moved some scene/view functions from view3d_view.c into BKE_screen since they need to be accessed when changing cameras from outside the view. 2010-04-22 19:57:18 +00:00
998ca03989 Fix #21741: changing scenes didn't update layers in 3d view, patch by Elia Sarti. 2010-03-27 11:54:38 +00:00
42ac4a3e7d Fix syntax for ID keyword. 2010-03-21 01:14:04 +00:00
5c9c50e13b change the scene opengl sequence rendering to be a global option with rendering and scrubbing settings.
still need to do a do_versions for this to work right without changing settings.
(commit 27442 by Campbell from render25 branch)
2010-03-16 17:37:34 +00:00
d4756d395b remove for bad-level-call & some minor changes to make camera switching neater. 2010-03-09 07:41:04 +00:00
754b22bd51 option to use offscreen opengl drawing with the sequencer scene strips.
warning, uses bad level call, will need to resolve very very soon!
2010-03-08 21:33:51 +00:00
b356eb6a8b image re-project now uses offscreen render function and has input for render size.
unrelated changes that ended up being more trouble to commit separate...

- removed BLI_split_dirfile(), was nasty, occasionaly modifying the source string, it could create directories and used the $CWD in some cases. was only used in 2 places in filesel.c, if this gives problems can address without bringing back this function.
  renamed BLI_split_dirfile_basic --> BLI_split_dirfile

- view3d_operator_needs_opengl was being called for offscreen render when it wasnt needed.
2010-03-08 20:08:04 +00:00
b1a05da291 re-project: operators for projecting from a view screenshot rather then a camera.
- new mode for projecting an image with the view matrix saved in the image id-properties rather then using the camera matrix.
 - operator to screenshot the view and create a new image with the view matrix stored in the image.

these will be used for better re-project integration and are not immediately very useful.
2010-03-06 19:46:21 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
3d9988cde7 Fix #19473: Toggle Quad View options missing from UI. 2010-01-30 03:22:22 +00:00
b119ce5fcc Drag and drop 2.5 integration! Finally, slashdot regulars can use
Blender too now! :)

** Drag works as follows:

- drag-able items are defined by the standard interface ui toolkit
- each button can get this feature, via uiButSetDragXXX(but, ...).
  There are calls to define drag-able images, ID blocks, RNA paths, 
  file paths, and so on. By default you drag an icon, exceptionally 
  an ImBuf
- Drag items are registered centrally in the WM, it allows more drag 
  items simultaneous too, but not implemented

** Drop works as follows:

- On mouse release, and if drag items exist in the WM, it converts 
  the mouse event to an EVT_DROP type. This event then gets the full 
  drag info as customdata

- drop regions are defined with WM_dropbox_add(), similar to keymaps 
  you can make a "drop map" this way, which become 'drop map handlers' 
  in the queues.
- next to that the UI kit handles some common button types (like 
  accepting ID or names) to be catching a drop event too.

- Every "drop box" has two callbacks:
  - poll() = check if the event drag data is relevant for this box
  - copy() = fill in custom properties in the dropbox to initialize 
    an operator
- The dropbox handler then calls its standard Operator with its 
  dropbox properties.

** Currently implemented

Drag items:
- ID icons in browse buttons
- ID icons in context menu of properties region
- ID icons in outliner and rna viewer
- FileBrowser icons
- FileBrowser preview images

Drag-able icons are subtly visualized by making them brighter a bit 
on mouse-over. In case the icon is a button or UI element too (most 
cases), the drag-able feature will make the item react to 
mouse-release instead of mouse-press. 

Drop options:

- UI buttons: ID and text buttons (paste name)
- View3d: Object ID drop copies object
- View3d: Material ID drop assigns to object under cursor
- View3d: Image ID drop assigns to object UV texture under cursor
- Sequencer: Path drop will add either Image or Movie strip
- Image window: Path drop will open image


** Drag and drop Notes:

- Dropping into another Blender window (from same application) works 
too. I've added code that passes on mousemoves and clicks to other 
windows, without activating them though. This does make using multi-window
Blender a bit friendler.

- Dropping a file path to an image, is not the same as dropping an 
Image ID... keep this in mind. Sequencer for example wants paths to 
be dropped,  textures in 3d window wants an Image ID.

- Although drop boxes could be defined via Python, I suggest they're 
part of the UI and editor design (= how we want an editor to work), and 
not default offered configurable like keymaps. 

- At the moment only one item can be dragged at a time. This is for 
several reasons.... For one, Blender doesn't have a well defined 
uniform way to define "what is selected" (files, outliner items, etc). 
Secondly there's potential conflicts on what todo when you drop mixed 
drag sets on spots. All undefined stuff... nice for later.

- Example to bypass the above: a collection of images that form a strip, 
should be represented in filewindow as a single sequence anyway. 
This then will fit well and gets handled neatly by design.

- Another option to check is to allow multiple options per drop... it 
could show the operator as a sort of menu, allowing arrow or scrollwheel 
to choose. For time being I'd prefer to try to design a singular drop 
though, just offer only one drop action per data type on given spots.

- What does work already, but a tad slow, is to use a function that 
detects an object (type) under cursor, so a drag item's option can be 
further refined (like drop object on object = parent). (disabled)


** More notes

- Added saving for Region layouts (like split points for toolbar)

- Label buttons now handle mouse over

- File list: added full path entry for drop feature.

- Filesel bugfix: wm_operator_exec() got called there and fully handled, 
while WM event code tried same. Added new OPERATOR_HANDLED flag for this. 
Maybe python needs it too?

- Cocoa: added window move event, so multi-win setups work OK (didnt save).

- Interface_handlers.c: removed win->active

- Severe area copy bug: area handlers were not set to NULL

- Filesel bugfix: next/prev folder list was not copied on area copies

** Leftover todos

- Cocoa windows seem to hang on cases still... needs check
- Cocoa 'draw overlap' swap doesn't work
- Cocoa window loses focus permanently on using Spotlight
  (for these reasons, makefile building has Carbon as default atm)

- ListView templates in UI cannot become dragged yet, needs review... 
it consists of two overlapping UI elements, preventing handling icon clicks.

- There's already Ghost library code to handle dropping from OS 
into Blender window. I've noticed this code is unfinished for Macs, but 
seems to be complete for Windows. Needs test... currently, an external 
drop event will print in console when succesfully delivered to Blender's WM.
2010-01-26 18:18:21 +00:00
d0ec3f428c - grease pencil option to only use the endpoint depths. this makes drawing shapes in 3D easier since it wont stick to every depth the line passes through.
- use a 8x8 area when finding stroke depths since thin lines can get ignored if the point is not close enough to them.
2010-01-01 17:48:48 +00:00
7cc72d5830 grease pencil stroke depth option, rather then snapping to geometry you can draw over existing grease pencil lines. makes it easuer to draw 3D shapes with grease pencil. 2010-01-01 16:46:27 +00:00
30aff3b830 - grease pencil mode for drawing onto geometry (using the z-buffer), access in the 3D view panel.
- account for parts of the line going off into infinity by making the stroke stretch between the last valid depth values (like an elastic band), if the endpoints are not over any geometry then use the closest valid depth.
2010-01-01 15:05:31 +00:00
1503c90f6b Utility function to get the view vector aligned with a specific 3d coordinate. 2009-12-28 22:40:52 +00:00
82ddfbf99f Sculpt Branch:
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r24889:25180
2009-12-07 19:22:48 +00:00
bd8e929044 Fix for [#20226] 3DView header: hiding menu texts and layer button's issue.
Also: big purge of old 3d view header menus and old unused code
2009-12-03 09:49:21 +00:00
dc1af66d8a - grease pencil drawing on the surface of objects (only when enable face snap & projection, a bit hidden I know)
- retopo operator to convert grease pencil drawn topology into geometry, not in the convert menu yet since its not quite finished, use the operator search menu for retopo. will test this week and see what needs fixing.
2009-11-30 01:13:46 +00:00
55d2a56d60 Sculpt:
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r24483:24889
2009-11-25 17:51:16 +00:00
6f38938a64 [#19930] Nurb CV select is failing because of view clipping
- the clipping test function was using the rv3d->viewmatob where it needed to use the object matrix.
- added a local clipping member to rv3d, the clipping planes in object-space, avoids many matrix multiplications when testing verts or clipping pixels when projection painting.
2009-11-21 16:44:05 +00:00
a365ccd20e Sculpt: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r24095:24152 2009-10-29 10:12:07 +00:00
b6459105b4 OpenGL Render restored.
I tried to make it integrate more with regular render but couldn't
do it well, it still needs a 3D view to take the settings from, and
can't run in a separate thread due to OpenGL.

However, it is now rendering to an offscreen buffer which then gets
displayed in the image window. This requires FBO's to be available, so
a fallback creating a new window is still needed. Currently available
from the Render menu in the top header.
2009-10-28 18:03:04 +00:00
93beb0b85a Commit of the sculpt patch (#19672). Further development will be in this branch until we merge to trunk. 2009-10-27 19:53:34 +00:00
53ac50ea8b Bugfix: 3d view with scene layer lock were not updated when the
scene layer or other 3d view layers were changed.
2009-10-26 12:42:25 +00:00
3a1216a2f2 Project option for snap to faces.
This is similar to the old retopo all option but uses the snapping code and not the openGL depth buffer (it's thus more precise).

Not sure if making it available as a snap option is sensible, this is up for discussion.

NOTE: it will get slow fast on large meshes, we need to plug in an acceleration structure into snapping.

This will need an icon too.
2009-10-12 22:33:32 +00:00
dff1738765 bugfix for exitmode verts being unselectable. caused by view3d_project_short_clip/noclip being used by selecton code outside of object drawing (which isnt supposed to happen according to view3d_project_short_* comments).
Deal with this by adding ED_view3d_init_mats_rv3d(ob, r3d) which initialized the region mat's and is used in mesh_foreachScreenVert, mesh_foreachScreenEdge etc.
2009-10-11 19:57:56 +00:00
c21627e31b 2.5/Paint:
* Some initial work on a new paint abstraction, PaintStroke. For now, most of the code just pulls out stroke-related stuff from sculpt mode, next step is to integrate the other paint modes to use this. It'll enable stuff like smooth stroke for all the paint modes with less code duplication.
2009-08-19 21:24:52 +00:00
88294d7fa2 2.5/Particle edit:
* Made particle edit object-localized.
2009-08-16 02:35:44 +00:00
0ba5cf2450 2.5/Paint modes:
* Fixed one of the items from Brecht's TODO mail. Exiting edit mode now restores any paint mode you might have been in, rather than going to object mode.
2009-08-14 15:47:32 +00:00
524b861437 2.5
Part one (of probably many :) of Operator review/validation.
Nothing final nor defined, it's reseach :)

- Added tool buttons in "Toolbar" (Tkey). Just four examples
  for objectmode, and six for mesh editmode.

(Review in progress is operator internal state vs context, what
do redo exactly, undo vs redo syncing, when op->invoke or not,
etc. This has to be pinned down exactly and frozen asap)

- On undo, clear redo-operator-stack for now (won't work)
- Added call to better detect active/current view3d region.
  ED_view3d_context_rv3d(C)
- Fixed some operators that missed correct redo (add-prim etc).

Later more fun!
2009-06-26 15:48:09 +00:00