Commit Graph

1028 Commits

Author SHA1 Message Date
Ton Roosendaal
40ab9be14a Bug fix:
On screen/area refresh calls the header scroll offset was cleared too. 
Probably an old remainder of early 2.5 coding. Should be not needed so much.
2013-03-25 15:45:59 +00:00
Bastien Montagne
6926596174 More new data names translation (most cases should be covered now).
Also done a few cleanup here and there...
2013-03-25 08:29:06 +00:00
Campbell Barton
790374d07d code cleanup: rename editmode functions so we have ED_object_editmode_load/enter/exit 2013-03-21 14:18:17 +00:00
Campbell Barton
e7c15beaf6 code cleanup: use booleans for mesh and selection code. 2013-03-19 23:17:44 +00:00
Lukas Toenne
bbac76ee26 Nicer handling of undefined node, tree and socket types.
When nodes are loaded from a .blend file they can potentially have undefined types. This can happen if a type has been deprecated and removed, or if node types were defined in a python script that has not been loaded correctly. Previously all such nodes would automatically be removed from a node tree, assuming that their types were deprecated and no longer in use (more commonly caused by loading new nodes in an older Blender version). Due to the possibility of dynamic registration it is no longer feasible to simply delete such nodes.

Display and handling of node trees was simply disabled before this patch, so that a node tree where any node or socket type was undefined would not be displayed at all. To give more information and avoid problems caused by necessary checks for the typeinfo pointer, there is now a 'Undefined' fallback type for trees, nodes and sockets. These types are used as placeholders in case the real type is not registered and can provide useful visual feedback on undefined nodes.
2013-03-19 13:40:16 +00:00
Lukas Toenne
4638e5f99a Merge of the PyNodes branch (aka "custom nodes") into trunk.
PyNodes opens up the node system in Blender to scripters and adds a number of UI-level improvements.

=== Dynamic node type registration ===
Node types can now be added at runtime, using the RNA registration mechanism from python. This enables addons such as render engines to create a complete user interface with nodes.

Examples of how such nodes can be defined can be found in my personal wiki docs atm [1] and as a script template in release/scripts/templates_py/custom_nodes.py [2].

=== Node group improvements ===
Each node editor now has a tree history of edited node groups, which allows opening and editing nested node groups. The node editor also supports pinning now, so that different spaces can be used to edit different node groups simultaneously. For more ramblings and rationale see (really old) blog post on code.blender.org [3].

The interface of node groups has been overhauled. Sockets of a node group are no longer displayed in columns on either side, but instead special input/output nodes are used to mirror group sockets inside a node tree. This solves the problem of long node lines in groups and allows more adaptable node layout. Internal sockets can be exposed from a group by either connecting to the extension sockets in input/output nodes (shown as empty circle) or by adding sockets from the node property bar in the "Interface" panel. Further details such as the socket name can also be changed there.

[1] http://wiki.blender.org/index.php/User:Phonybone/Python_Nodes
[2] http://projects.blender.org/scm/viewvc.php/trunk/blender/release/scripts/templates_py/custom_nodes.py?view=markup&root=bf-blender
[3] http://code.blender.org/index.php/2012/01/improving-node-group-interface-editing/
2013-03-18 16:34:57 +00:00
Ton Roosendaal
66a35e089a Fix for "draw images as texture"
Zooming in on images in Image window now shows pixels again (was filtered).

Now the glaDrawPixelsTex() and glaDrawPixelsAuto() have an argument to 
define if images should zoom in with linear filter, or draw pixels.
2013-03-17 17:32:45 +00:00
Ton Roosendaal
0a4b030145 New feature:
Automatic switching for drawing pixel buffers via glDrawPixels or using GPU textures

It works with a User Preference limit, in megapixels, to define whether to use
GPU or direct pixel drawing. Default is now initialized to 10 MP (4k buffers).

Especially for zooming out (draw smaller) texture drawing is much smaller. Also
Nvidia cards typically draw much faster with textures in general.

Added to node backdrop first now, the other editors follow in a next commit.

For coders: added new DNA function to initialize new struct variables, so you
don't have to sub-version files anymore.

   DNA_struct_elem_find(fd->filesdna, "structname", "typename", "varname") 

"filesdna" is the sdna description of the current file being versioned.
2013-03-17 14:38:58 +00:00
Brecht Van Lommel
88cf1a2bc7 Screen: add exit callback for area and region types, this gets called when
hiding or removing an area or region.
2013-03-15 19:56:29 +00:00
Campbell Barton
aaa8a13c49 code cleanup: use const events for modal and invoke operators. 2013-03-13 09:03:46 +00:00
Campbell Barton
660be3da39 use gcc warning -Wredundant-decls, exposes some odd/duplicate declarations which have been removed. 2013-03-11 20:27:38 +00:00
Ton Roosendaal
af16cd804c Bugfix #34365
Tiny tweak.

Dragging option (cursor change) for region dividers in editors was having an 
un-even sensitivity hotspot. This conflicted with header buttons for example,
where the hotspot and bottons overlapped.

Now the hotspot is around the region-edge evenly.
2013-03-10 14:30:24 +00:00
Campbell Barton
83fe8e549e patch [#34586] Variable typo in glaDrawPixelsTexScaled
from Andre D (andred)

xzoom was used where yzoom was meant to be used. Caused issues when xzoom and yzoom were not the same value.
2013-03-10 07:01:52 +00:00
Campbell Barton
ddddb7bab1 code cleanup: favor braces when blocks have mixed brace use. 2013-03-09 03:46:30 +00:00
Ton Roosendaal
f6548d5e6e Bug fix #34418
Fix for 2.66a

Screencast could be started twice in a row, but it then also added two handlers
for drawing an overlay circle around mouse cursor. After ending the screencast,
this circle then kept being drawn.
2013-03-01 17:17:57 +00:00
Brecht Van Lommel
28444a4831 UI/DPI: user preferences window size now takes into account DPI, otherwise the
buttons don't fit properly.
2013-02-28 16:37:19 +00:00
Bastien Montagne
1039135965 More UI messages fixes... 2013-02-28 15:31:20 +00:00
Campbell Barton
a9b9fcc951 style cleanup 2013-02-24 20:33:21 +00:00
Bastien Montagne
b1543f07bf Another bunch of UI translation fixes, thanks to Leon Cheung, Gabriel Gazzán and S. Lockal for spotting them! 2013-02-24 15:40:28 +00:00
Ton Roosendaal
89e0de3c35 Bug fix #34347
If you move (with F5) the properties and tools region in 3d viewport to the same side,
the mini-axis and text overlays were drawing in wrong place.
2013-02-23 14:31:46 +00:00
Campbell Barton
2c084e280d code cleanup: remove unused arg 2013-02-22 00:51:58 +00:00
Brecht Van Lommel
7175549de6 Fix DPI not taken into account for header text (e.g. during transform). 2013-02-20 14:53:31 +00:00
Bastien Montagne
ec04f98a75 Various fixes for UI translation issues (reported by Leon Cheung on bf-translations ML, thanks!). 2013-02-15 14:30:36 +00:00
Campbell Barton
2005f7c6c0 style cleanup: also some typos 2013-02-11 00:49:00 +00:00
Campbell Barton
296444e1dc style cleanup: some warnigs & spelling. 2013-02-06 14:02:19 +00:00
Campbell Barton
936a38c607 fix for valgrind warning - using uninitialized variable. Though in practice it didn't cause any problems.
Getting the 'CTX_data_main' while un-fullscreen'ing a space would do a context lookup into the view3d_context which had an uninitialized layer.
since view3d_context doesn't hold a 'main' member it never did anything but cleaner not to do context lookups while modifying the view.
- noticed while checking on a real bug :)
2013-02-05 02:28:49 +00:00
Campbell Barton
518bfbb1c9 style cleanup 2013-02-02 04:58:03 +00:00
Bastien Montagne
7834f72282 More UI messages tweaks and fixes. Please do not use points inside tooltips, unless they are absolutely mandatory (they are ugly, as we do not have final points!). 2013-01-29 08:01:50 +00:00
Campbell Barton
cf94722380 code cleanup: var rename and add assert, when writing to out of bounds array.
minor edit to recent tip change.
2013-01-29 00:20:04 +00:00
Pablo Vazquez
c08a1c4ced Better tooltips for the Full Screen option on Save Screenshot/Screencast operators. 2013-01-28 23:58:09 +00:00
Dalai Felinto
236bc27484 Operators name "cleanup"
The operator names all show up in the Search button. As such is nicer if they
can all have the main words capitalized.

e.g. "Snap strips" should be "Snap Strips"
     "Copy to clipboard" should be "Copy to Clipboard"

This was done with a mix of bash tools, regex, and manual work because I'm too rushed into regex :)

+ fix bge stereo eye separation tooltip
2013-01-27 07:23:58 +00:00
Campbell Barton
c411cde415 header cleanup, include BLI before BKE, also use bool for ntreeShaderExecTree 2013-01-24 21:57:13 +00:00
Campbell Barton
c24777ee9e style cleanup 2013-01-23 23:42:18 +00:00
Brecht Van Lommel
f0c313c8b6 Fix #33556: overlapping regions draw over render info at the top of 3d view and
image editor. Also fix it not scaling properly with DPI.
2013-01-23 14:05:08 +00:00
Thomas Dinges
faf2779ea5 WM / Screenshot fix:
* Screenshot resolution was wrong on Macbook Retina (did only capture a cropped part of the screen).
2013-01-15 21:41:51 +00:00
Campbell Barton
a2e17ff5ec reduce the alpha of console selection (text was too hard to read) 2013-01-09 10:18:05 +00:00
Campbell Barton
682df047a0 style cleanup 2013-01-08 02:06:16 +00:00
Ton Roosendaal
d4eac8189e Removed on old patch from the code, which attempted to keep the scrollers
in user preferences in place.

New scroller code made user pref scroller jump back on activating add-ons,
because that causes a full blender system refresh.
2012-12-31 14:56:07 +00:00
Campbell Barton
857df8065f style cleanup 2012-12-28 14:19:05 +00:00
Ton Roosendaal
41753f4fdd Node editor: remove option to show overlapping Property region.
- The main window has sliders, which was drawn behind the region
- If property region had slider too, it got even worse.

Basically the node editor is UI view, so drawing another UI on top isn't
functioning well in general.
2012-12-26 13:25:13 +00:00
Ton Roosendaal
fa28e50ac2 Region scrollbar fix!
Now scrollbars correctly hide and show, making space for the actual contents
in a region. It solves several old hacks, and puts view2d code a bit more
back in control as well. 

Implementation notes:

- The view2d mask feature is working again
- The #define V2D_SCROLL_HORIZONTAL_HIDE means: "turn on hiding".
- Code for UI_view2d_region_reinit() is enforcing better standard view settings

But... two hack/patches needed to be added:

- Region panel drawing: if after generating the button panels it appears
  a scroller hides or reveils, it calls all the generating code again.
  (a simple scale doesn't work due to rounding differences in layout code)

- View2d code that maps 'tot' and 'cur' rects: if this code detects that
  the mask changes, it calcs the map code again.

Also a bugfix (issue in 2.65)

- The left/bottom area split widget was drawing 1 pixel too large sometimes, 
  leaving bad trails on moving area dividers.
2012-12-26 13:05:39 +00:00
Sergey Sharybin
851cb9b345 Added support of J2K codec for Jpeg2000 writing
This codec is absolutely needed to generate DCP using OpenDCP,
before that external application to convert JP2 to J2K was used
which slowed down export a lot.

New codec is exposed to image format settings panel and called
Codec. Default one is JP2 which creates files with .jp2 extension,
new one is called J2K which creates with .j2c extension.

Other changes:
- Fixed avi jpeg warning which was treating as error here.
- Made it so extension is detecting from ImageFormatData instead
  of image file type, which makes it possible to have different
  extension for the same file type depending on it's settings.

  IRIS format should still be changed (depending on number of
  channels it'll be .bw, .rgb or .rgba extension)

- Default image format settings would be set from image buffer
  when re-saving it. Makes it possible to easily open .j2c file
  and save it using J2K codec (without this change it'll save as
  .jp2 using JP2 codec)
2012-12-23 13:57:09 +00:00
Ton Roosendaal
6a57420b52 Small drawing glitch, for UI with transparent overlapping regions;
- The corner 'duplicate/merge area' widget was drawing too often.

(Added comment in subwindow 'active' code, too many redraws are being
sent on moving mouse over region eddges)
2012-12-22 11:52:53 +00:00
Ton Roosendaal
eac2042fc0 Another patch for changes in file format...
- Since 2.50, the .blends have the current file name stored
- In versions up to 2.65.0 this didn't save for files saved from startup
  (i.e. files saved without loading a file)

Code now adds the file name after all, except for recovery loads.
2012-12-19 16:45:47 +00:00
Ton Roosendaal
482630652b Bugfix, in 2.61.1
Overlapping regions now hide automatic when too little space is left.
2012-12-19 16:16:20 +00:00
Ton Roosendaal
9aa6698bd0 UI DPI scaling:
Recoded the (2.65.1 version) region scale, which happened on loading files with 
different saved size windows. Also scaling window itself was affected.

Old method: scaled region widths based on area/editor scaling factors.
That was leading to too small or too large button regions easily.

New method: region width/height now are in DPI control. Much nicer!
- On changing dpi, buttons remain visually same widths.
- On changing window sizes, the button views and zooms stick to exactly same.

Caveat: people who were using Blender with 'extreme' dpi setting, might find
the layouts slightly differ. Not sure if this is worth version patching...

Todo: overlapping regions that overlap together draw badly. Fix underway.
2012-12-19 15:44:47 +00:00
Brecht Van Lommel
6b2af22d37 DPI: fix wrong scaling of editor type choosing buttons, and for menu arrows
overlapping or being too close to icons in small buttons.
2012-12-18 20:00:52 +00:00
Brecht Van Lommel
f91eefcc62 Fix region expander (+) drawing too narrow. 2012-12-18 14:55:51 +00:00
Ton Roosendaal
9c90cf3ca4 Nicer function for drawing text in 3d window:
ED_region_visible_rect(ar, rect)
Returns the visible rect inside a region, subtracting the overlapping UI regions.

Added with minimal overhead, only called once per region draw.

Also fixes the 'Auto Key' warning print in 3d window (was behind properties)
2012-12-18 13:59:47 +00:00
Ton Roosendaal
60e35be2d4 UI fixes:
- on setting lower DPI, the regions that were scrolled down would start moving down
  1 pixel on every draw. Caused by rounding error. (int + 0.1 vs int -0.1)
  (Ancient bug)

- circles used in outliner - to denote selection/active - now draw bigger, and better
  centered. (2.66 fix only)
2012-12-17 17:37:48 +00:00