blender.git
11 years agomistake in comparing pointers. (causing memfree prints)
Campbell Barton [Sun, 30 Nov 2008 02:30:34 +0000 (02:30 +0000)]
mistake in comparing pointers. (causing memfree prints)

11 years agoRNA: some fixes for lamp UI text. (Michael Fox)
Brecht Van Lommel [Sun, 30 Nov 2008 01:31:05 +0000 (01:31 +0000)]
RNA: some fixes for lamp UI text. (Michael Fox)

11 years agoRNA
Brecht Van Lommel [Sun, 30 Nov 2008 00:57:32 +0000 (00:57 +0000)]
RNA
* Added more DNA_color_types.h, starting from patch by Sebastian Skejø.
  What's missing is write access to some things like point location,
  hard to retrieve the CurveMapping for proper update still..
* Added all datablocks as ID pointer in Main already, now only have to
  change the type from ID to the specific type. Also added filename
  to Main, which is basically the only non-internal property.
* Fixed setting shadow buffers size in lamps, also ensured it to be a
  multiple of 16.

11 years ago* no write access to bScreen and ScrArea and such
Nathan Letwory [Sat, 29 Nov 2008 23:27:07 +0000 (23:27 +0000)]
* no write access to bScreen and ScrArea and such
  - maybe this will be phased out anyway, but might be handy for querying though.

11 years agoadded all sensor types without their properties and full RNAfy bNearSensor, bMouseSes...
Hamed Zaghaghi [Sat, 29 Nov 2008 22:16:23 +0000 (22:16 +0000)]
added all sensor types without their properties and full RNAfy bNearSensor, bMouseSesnsor, bTouchSensor, bAlwaysSensor

11 years agoRNA
Willian Padovani Germano [Sat, 29 Nov 2008 19:53:49 +0000 (19:53 +0000)]
RNA

Adding support for Cameras. Work in progress, I'm still learning about RNA.

11 years agoRNA
Brecht Van Lommel [Sat, 29 Nov 2008 19:08:46 +0000 (19:08 +0000)]
RNA
* Fix sensor data pointer code, also made sensor type non editable,
  would need to do more work than just setting the type.
* Fix a fairly obscure bug related to inheritance and sorting.
* Complete DNA_ID.h wrapping, just a few extra properties and the
  Library struct, most of this is internal.

11 years agoPyRNA - can write variables now (float, int, bool, enums, strings - but not pointers...
Campbell Barton [Sat, 29 Nov 2008 17:58:17 +0000 (17:58 +0000)]
PyRNA - can write variables now (float, int, bool, enums, strings - but not pointers, RNA limitation too).
also fixed reading enums.

11 years agomore rna_sensor codes
Hamed Zaghaghi [Sat, 29 Nov 2008 16:07:49 +0000 (16:07 +0000)]
more rna_sensor codes

11 years ago* Fix Makefiles to compile python.
Brecht Van Lommel [Sat, 29 Nov 2008 15:43:53 +0000 (15:43 +0000)]
* Fix Makefiles to compile python.
* Tweak SConscript priorities to link ed_util.
* Added RNA_struct_is_ID function for python.

11 years ago2.5: work on bringing back SpaceTime options
Ton Roosendaal [Sat, 29 Nov 2008 15:10:31 +0000 (15:10 +0000)]
2.5: work on bringing back SpaceTime options

- RMB select, also with SHIFT
- RMB tweak for translate
- SHIFT+D dupli
- BKEY border select/deselect
- AKEY (de)select all
- XKEY delete
- GKEY grab

Added some XXX comments for future todos, especially for when other
spaces come back with time markers.

Also added ED_util for putting in all to-be-cleaned cruft

Context conflict: input methods for Markers can conflict with other
spacetypes. It was solved in pre-2.5 with manually tweaking it all over,
but I would prefer one keymap for all marker stuff. Needs some thinking...
could be solved with a boundbox check for bottom part of 2d window.

Tweak issue: both tweak styles are possible:
- Hold mouse button, move, operator ends on mouse release
- Hold mouse button, move, operator ends on mouse click

Problem is that modally handled operators use fixed keymaps... like ESC,
SPACE, ENTER, or press/release mousebutton for 'assign'. There's a lot
to say for making this all consistant, or become part of 1 general keymap?
Should also be possibe to define 'tweak' defaults for Tablet different
than for mouse...

11 years ago* scrarea verts
Nathan Letwory [Sat, 29 Nov 2008 15:04:19 +0000 (15:04 +0000)]
* scrarea verts

11 years agoRNA
Brecht Van Lommel [Sat, 29 Nov 2008 14:35:50 +0000 (14:35 +0000)]
RNA
* Added more lamp properties. (patch by Michael Fox)
* Fix a number of warnings in the RNA code.
* Converted DOS line endings to UNIX.
* Added some information on defining ID structs, and fixed use
  of "ID" inheritance for some non-ID structs.
* Added text on naming conventions to the RNA documentation, and
  applied it to the current code.

http://wiki.blender.org/index.php/BlenderDev/Blender2.5/RNA#Naming_Conventions

11 years ago* more work on screen
Nathan Letwory [Sat, 29 Nov 2008 13:57:19 +0000 (13:57 +0000)]
* more work on screen

11 years agoPython RNA API
Campbell Barton [Sat, 29 Nov 2008 13:36:08 +0000 (13:36 +0000)]
Python RNA API
* Matches the C/RNA api structure
* Thin wrapper ~(600 lines)
* No functions specific to any blender object type.
* Defines 2 types, BPy_StructRNA and BPy_PropertyRNA.
* Python 3.0 target (compatible with python 2.4,5,6)
* http://wiki.blender.org/index.php/BlenderDev/Blender2.5/PyRNA - continue docs/discussion here.

Todo
* Collection iterators
* Write access to data
* Define how constants should be accessed (as strings or some special type)
* Solve the "Python keeping invalid blender pointers" problem.
  This cant just be solved in the py api - we need blender to notify when ID's are removed

Examples
Here are some examples that work with the current implementation of the api.

 rna.lamps["Lamp.006"].energy -> (1.0)
 rna.lamps["Lamp.007"].shadow -> ("NOSHADOW")
 rna.materials.keys() -> ['flyingsquirrel_eye', 'frankie_skin', 'frankie_theeth']
 rna.scenes["hud"].objects["num_text_p2_4"].data.novnormalflip -> False
 rna.meshes["mymesh"].uv_layers.keys() -> ['UVTex', 'UVTex']
 rna.meshes.items()

For a dump of yo-frankie level see - http://pasteall.org/3294/python

Notes
* Added python back, can only execute scripts from the command line with -P script.py
* bpy_interface.c is just enough functionality to run a python file.

11 years ago== MSVC projectfiles ==
Andrea Weikert [Sat, 29 Nov 2008 11:30:39 +0000 (11:30 +0000)]
== MSVC projectfiles ==
- update for RNA_sensors.c
- added missing projectfile fpr DNA_DNA lib

11 years agoadd initial codes for rna_sensors
Hamed Zaghaghi [Sat, 29 Nov 2008 02:01:39 +0000 (02:01 +0000)]
add initial codes for rna_sensors

11 years ago* add material, node and screen RNA to project files
Nathan Letwory [Sat, 29 Nov 2008 01:33:22 +0000 (01:33 +0000)]
* add material, node and screen RNA to project files

11 years ago* start RNA_screen
Nathan Letwory [Sat, 29 Nov 2008 01:04:15 +0000 (01:04 +0000)]
* start RNA_screen
* nicer RNA names for NodeTree and Node

11 years ago* add diffuse shader properties for material
Nathan Letwory [Fri, 28 Nov 2008 16:00:50 +0000 (16:00 +0000)]
* add diffuse shader properties for material

11 years agoView2D - Commented and finished off cleaning up code added so far
Joshua Leung [Fri, 28 Nov 2008 04:01:35 +0000 (04:01 +0000)]
View2D - Commented and finished off cleaning up code added so far

11 years ago* RNA for raytrace mirror properties.
Nathan Letwory [Fri, 28 Nov 2008 00:14:27 +0000 (00:14 +0000)]
* RNA for raytrace mirror properties.

11 years agoBugfix: loading a .blend (via commandline now) while current config
Ton Roosendaal [Thu, 27 Nov 2008 17:58:46 +0000 (17:58 +0000)]
Bugfix: loading a .blend (via commandline now) while current config
had more windows, it left the non-active windows empty. The window-match
code is unfinished (need to bring all editors back), for now it just
follows rule to copy active screen in loaded file to other windows.

Also: added time marker icons (wrong location, view2d stuff still)
Also: bug in random green/purple area code, stopped at 10 subwindows :)

11 years agoPatch to allow pre-2.50 Blenders to read newer files.
Ton Roosendaal [Thu, 27 Nov 2008 16:00:59 +0000 (16:00 +0000)]
Patch to allow pre-2.50 Blenders to read newer files.

Since we'll reshuffle a lot in UI code, making new Screens totally
incompatible, this patch saves the Screen chunk in Blender files
with a new identifier (ID_SCRN), causing it to be not read in old
Blender binaries. Pre-2.50 blender already has a facility to recover
from this (it keeps old UI), including for .B.blends (it opens
default simple screen)

For the latter reason, it might be advisable to have the .B.blend
for 2.50+ saved as another name? Then you can use both for while.

(Note: commit is just 3 lines of code, other files are comments I
added for documentation of other stuff)

11 years agoBlender 2.5 bugfix! :)
Ton Roosendaal [Thu, 27 Nov 2008 14:27:33 +0000 (14:27 +0000)]
Blender 2.5 bugfix! :)

- keymaps in windowmanager (temporary) have to set to NULL on load.

11 years ago* make sure Material and bNodeTree datablocks show up properly in RNA Viewer.
Nathan Letwory [Thu, 27 Nov 2008 13:36:28 +0000 (13:36 +0000)]
* make sure Material and bNodeTree datablocks show up properly in RNA Viewer.
  - documentation was a bit outdated and missing a step, so I updated http://wiki.blender.org/index.php/BlenderDev/Blender2.5/RNA#Struct to reflect the current state.

11 years ago* add beginning of Material RNA and Nodetree+Node RNA
Nathan Letwory [Thu, 27 Nov 2008 00:23:22 +0000 (00:23 +0000)]
* add beginning of Material RNA and Nodetree+Node RNA

11 years agoAdded access for start/end frames in RNA.
Joshua Leung [Wed, 26 Nov 2008 23:13:59 +0000 (23:13 +0000)]
Added access for start/end frames in RNA.

11 years agoRNA
Brecht Van Lommel [Wed, 26 Nov 2008 22:52:01 +0000 (22:52 +0000)]
RNA

* Added support for auto generating enum properties that are defined as
  bitflags mixed with other flags (use for shadow type in la->mode now).

11 years agoRNA
Brecht Van Lommel [Wed, 26 Nov 2008 22:24:26 +0000 (22:24 +0000)]
RNA

* Made auto collection wrapping work for ** arrays.
  (Mesh.mats, still points to ID since there is no Material yet).
* Added sorting of RNA structs/properties before writing.

11 years agoBringing back icons:
Andrea Weikert [Tue, 25 Nov 2008 19:23:54 +0000 (19:23 +0000)]
Bringing back icons:
Part 3/3: new icons
- Icon set done by jendrzych! Great job!
- cleaned up unnecessary includes and removed commented out code
- preview icons (for materials, textures,..) don't work yet, have to be ported to new event system

11 years agoBringing back icons:
Andrea Weikert [Tue, 25 Nov 2008 18:32:51 +0000 (18:32 +0000)]
Bringing back icons:
- Part 2/3: renaming file according to new convention

11 years agoBringing back icons:
Andrea Weikert [Tue, 25 Nov 2008 18:27:41 +0000 (18:27 +0000)]
Bringing back icons:
- Step 1/3: move relevant files to branch

11 years agoallow building without python
Campbell Barton [Mon, 24 Nov 2008 21:57:58 +0000 (21:57 +0000)]
allow building without python

11 years agoMore testing with new system:
Ton Roosendaal [Mon, 24 Nov 2008 18:59:59 +0000 (18:59 +0000)]
More testing with new system:

- Added markers (partially) back, ed_markers.c (temporary in spacetime,
  where to put general stuff like this?), and added ED_markers.h for api.

- Mkey in timewindow shows marker (no icon, doesnt work yet).
  (Adding operators gets easy :)

- Noted some conflict for operator storage... with markers being used all
  over, added it to the screen level.

- More todos: view2d is stored in space, for time, etc. With regions we
  could move this over, but better todo as post 2.5 project. Multiple 2d
  views in area would be cool though.

11 years agoRNA
Brecht Van Lommel [Mon, 24 Nov 2008 15:51:55 +0000 (15:51 +0000)]
RNA
* Disable editable pointers for now, difficult to support well.
* Swap parameters in RNA_access.h functions to make it more
  consistent.
* Rename rna members for operators to wmOperatorType.srna, and
  wmOperator.ptr, to make the distincton a bit clearer.
• Removed the RNA_int_default and similar functions, they're too
  confusing. RNA_property_is_set can still be used to achieve
  the same goal.
* Add functions to create RNA pointers.

Some example code for RNA data access and operator properties:
http://wiki.blender.org/index.php/BlenderDev/Blender2.5/RNAExampleCode

11 years ago* make sure this compiles with msvc too.
Nathan Letwory [Mon, 24 Nov 2008 14:16:04 +0000 (14:16 +0000)]
* make sure this compiles with msvc too.
  - note: there is no round() in msvc math.h, so I used floor(val+0.5)

11 years agoRNA
Brecht Van Lommel [Mon, 24 Nov 2008 12:12:24 +0000 (12:12 +0000)]
RNA
* Wrap most user editable data in DNA_mesh_types.h and DNA_meshdata_types.h.
  Still needs to be improved in some areas though, especially how to deal
  with data layers (expose per element or as array, or both?), and data in
  face corners (bmesh type data structures are more logical here).

Tweaks to RNA defining to make some cases easier:
* Added range callback function for int/float.
* Added 'skip' callback for listbase and array iterators to skip items in
  the collection.
* Extra error print when calling wrong define_property_*_sdna functions.
* Also made button code respect non_editable flag, is quick change though,
  need to add support for properly graying out etc.

11 years agoFile had to be deleted in Brecht's RNA commit for Operator storage.
Ton Roosendaal [Mon, 24 Nov 2008 10:47:20 +0000 (10:47 +0000)]
File had to be deleted in Brecht's RNA commit for Operator storage.

11 years agoWork on gesture, some more cleaning.
Ton Roosendaal [Mon, 24 Nov 2008 10:45:36 +0000 (10:45 +0000)]
Work on gesture, some more cleaning.

- Added standard "tweak" gesture operator, which can be set per region, to
  generate EVT_TWEAK events. You can configure tweaks for any mouse button
  and have handlers for such events check for modifiers etc.
  It even stores tweak direction (8 directions). Might be fun to experiment
  with tweak gestures N, S, etc. :)
  In general it can be used to replace the current tweak code in 2.48
  (std_rmouse_transform).

  Test added: on screen level it now adds LMB tweaks, if tweak-South it splits
  the area. Will be removed of course.

- Added to Border operator a property to store event used to end border with.

- Moved the "AZone" triangle drawing to the right context (area). It was on
  screen level, not respecting area-redraws. Also cleaned up drawing for it,
  and moved the "swap buffers indicator" square to look nicer. Those squares
  are only for test!

- event-match function had bad code for checking for event-value. Made a
  "KM_ANY" define so keymaps can be defined ignoring event values.

- Gesture todo: lasso, "real gesture" (like blender now has)

11 years ago== MSVC 2.50 projectfiles ==
Andrea Weikert [Sun, 23 Nov 2008 20:06:47 +0000 (20:06 +0000)]
== MSVC 2.50 projectfiles ==
- fixed dependencies and some glitches for RNA
- still WIP, but Blender Release and Blender Debug should compile now.

11 years agoRNA
Brecht Van Lommel [Fri, 21 Nov 2008 19:14:38 +0000 (19:14 +0000)]
RNA

* Added RNA for operators. This still uses ID properties internally,
  but through the RNA API now. The OP_get/set_* API that was used is
  replaced by the RNA API. Currently RNA properties for operators are
  defined at runtime since it means operator registration can be done
  in a single function.
* Changed the existing operators to use this system, I haven't defined
  user interface names yet though. I also think there need to be some
  conventions on which properties to expose to make these operators
  usable in macros, for example if mouse coordinates should be stored
  or not.
* When using ID properties through defined RNA properties, it now
  checks that the ID property actually matches the RNA property and
  removes/overwrites it otherwise. This ensures that you can safely
  get/set arrays for example without having to worry that some
  external thing may have changed the length.
* Documentation now has some information on RNA + ID properties.

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

11 years agoRNA
Brecht Van Lommel [Fri, 21 Nov 2008 02:23:46 +0000 (02:23 +0000)]
RNA

* More ID property support. What was already possible was showing
  ID properties as RNA properties. Now it is possible to define
  RNA properties and have an ID property automatically created the
  first time it is set (if not set it retuns the default).

* Added support for defining RNA structs and properties at runtime.
  This is useful for python and plugins, and could also be used
  for operators, not sure yet what is best there, they could be done
  in preprocess for speed, but not sure how to do that while keeping
  operator registration a single function.

* Added quick functions to get/set properties based on names, to be
  used for operators.

* Added some simple support for inheritance, was already doing this
  but having it as a feature simplifies things. Two things were added
  for this: when defining a struct you can give a 'from' struct whose
  properties will be copied, and structs like ID, operator, modifier,
  can define a refine callback that will return the more specific type
  of the struct like ID -> Object, Mesh, .. .

* Added simple windowmanager wrap with only the registered operators
  list, used for testing RNA for operators.

11 years agoCode shuffle to make a bit more structure.
Ton Roosendaal [Wed, 19 Nov 2008 16:28:11 +0000 (16:28 +0000)]
Code shuffle to make a bit more structure.

- operator definitions, callbacks, registry to WM and handlers for it are
  now always in a file xxxx_ops.c or xxxx_operators.c, in the bottom you
  will find the registry and handler code.

- fixed some confusing naming conventions "rip_area vs area_join" etc. Now
  stick to convention to first name subject, then operation (like UI :).
  So it's area_rip, screen_add, and so on.

- Nicely put exported calls (outside module) together in bottom: this using
  names such as ED_screen_duplicate().

- Moved Operator-Property API to new C file.

11 years ago2.5: gesture code in WM
Ton Roosendaal [Wed, 19 Nov 2008 13:16:05 +0000 (13:16 +0000)]
2.5: gesture code in WM

- Simplified and cleaned previous border code
  It was a bit too complex, too many data manipulations

Original idea was to have WM API calls to manage border, circle, lines,
lasso, etc. This now means that WM provides callbacks for custom operators,
so it's very easy to make them. Check bottom of screen_edit.c for an
example.

Currently two borders were coded; with and without cross hair.
Press Bkey in any area-region to test it (note: time window has wrong matrix!)

Some specs to note:
- gestures are in region space, and draw 'over'. That latter still needs some
  work when we do real composites.
- only the active region is redrawn.
- on todo is the generic gesture engine for 'tweak' or like how currently grab
  gestures in Blender work. These will be configurable per area-region, and WM
  then will send the proper "Gesture Event" with properties (N, S, E, W, etc)
  to which you then can assign operators. Such events will be generated with low
  priority, so other handlers who swallowed mouse events have preference.

11 years agoStarted work on an updated UI theme
Matt Ebb [Wed, 19 Nov 2008 03:15:52 +0000 (03:15 +0000)]
Started work on an updated UI theme

11 years agoCleanup of area-rip operator
Ton Roosendaal [Tue, 18 Nov 2008 13:51:02 +0000 (13:51 +0000)]
Cleanup of area-rip operator

- moved from WM to Screen code (it uses active area)
- less code :) result of cleaning some calls
- added WM_window_open() to WM API for this
- now opens new window on top of area, and leaves old screen unaffected
  (simple, atomic, the 'do not think for user' convention :)

11 years agoRNA minor changes
Brecht Van Lommel [Tue, 18 Nov 2008 10:57:06 +0000 (10:57 +0000)]
RNA minor changes
* Added start of lamp wrapping (code by Michael Fox).
* Add back Object.data, was crashing with unknown data type.
* Added support for using consecutive variables like float r, g, b;
  as an array without writing a manual get/set function.
* Also note the RNA documentation is updated now to be more
  about how to define RNA and use it, including some diagrams.

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

11 years ago2.5 getting-back-into-coding commit :)
Ton Roosendaal [Mon, 17 Nov 2008 18:54:03 +0000 (18:54 +0000)]
2.5 getting-back-into-coding commit :)

- cleaned up join and split operations. Most noticable is operator callback
  design, which should make a design based on user-less exec() first, then
  wrap invoke() and modal() around it. The exec() should be callable with
  only Context and properties.

- split now works again; and inversed as previously, if you drag from a
  triangle (action zone) inside area it subdivides area as expected.

- dragging from triangle outside area, over an edge, joins areas

- split has been simplified, it had too many options... it could just work
  simpler (now)

- 'action zone' now is an operator itself, a widget sending an ACTIONZONE event,
  which can be handled by others (so other gestures can be added in action zone
  too)

Still evaluating:
- context gets set where?
- code structure confuses... what are proper functions for operators?
- what is WM... should low level screen stuff more there?
- when do you send event, notifier?
- files grow to large, will clean

Oh yeah and docs, docs, docs. Coming! :)

11 years agoRNA
Brecht Van Lommel [Mon, 17 Nov 2008 18:44:06 +0000 (18:44 +0000)]
RNA
* Added support for ID properties, mapped as follows:
* IDP Int = RNA Int
* IDP Float, Double = RNA Float
* IDP_String = RNA String
* IDP Group = RNA IDPropertyGroup Struct
* IDP_Array = RNA Array

* PropertyRNA and StructRNA are now defined private for the module,
  to force external code to always use accessor functions.

11 years ago2.5: patch to comment out some more bad level calls in the game engine,
Brecht Van Lommel [Sun, 16 Nov 2008 21:13:53 +0000 (21:13 +0000)]
2.5: patch to comment out some more bad level calls in the game engine,
apparently msvc is more strict here, provided by Jean-Michel Soler.

11 years ago== MSVC project files ==
Andrea Weikert [Sun, 16 Nov 2008 16:53:37 +0000 (16:53 +0000)]
== MSVC project files ==
updated VisualStudio 9 projectfiles for blender 2.50
notes:
- still WIP
- dependencies have to be reviewed
- gameengine has been removed from build for now, needs to be added back at some point
- time, outliner and view3d editors have been added, other editors will have to be added when ported

11 years ago2.5 branch: Makefile for videotexture pointed to wrong include path (BIF_gl.h)
Ton Roosendaal [Sun, 16 Nov 2008 11:13:19 +0000 (11:13 +0000)]
2.5 branch: Makefile for videotexture pointed to wrong include path (BIF_gl.h)

11 years agoRNA
Brecht Van Lommel [Fri, 14 Nov 2008 18:46:57 +0000 (18:46 +0000)]
RNA
* Rename cname to identifier.
* Rename PropertyEnumItem to EnumPropertyItem.
* Wrapped min/max/step/precision, pointer type for RNA.
* Draw FLT_MAX a bit better in buttons.

11 years agoRNA
Brecht Van Lommel [Fri, 14 Nov 2008 17:05:25 +0000 (17:05 +0000)]
RNA
* Added RNA list viewer. This is currently drawn in the outliner
  window, the UI is limited but it is just intended to test RNA
  at the moment.
* Added UI names for currently wrapped properties.
* Made iterating collections a bit more convenient.

11 years agoRNA
Brecht Van Lommel [Fri, 14 Nov 2008 14:34:19 +0000 (14:34 +0000)]
RNA
* Added accessor functions for structs and properties instead of
  direct access, in preparation of wrapping ID properties.
* Added more error prints for wrong defines.
* Wrap RNA data structures with RNA.
* Disable dependency code for now to avoid confusion.

11 years agoRNA Tweaks:
Brecht Van Lommel [Fri, 14 Nov 2008 11:15:53 +0000 (11:15 +0000)]
RNA Tweaks:
* Added an error for RNA enums without items.
* Added to scene layer set callback.

11 years ago2.5: merge with trunk, previous merge was only up to yesterday.
Brecht Van Lommel [Wed, 12 Nov 2008 22:03:11 +0000 (22:03 +0000)]
2.5: merge with trunk, previous merge was only up to yesterday.
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r17416:HEAD

11 years agoMerge of trunk into blender 2.5:
Brecht Van Lommel [Wed, 12 Nov 2008 21:16:53 +0000 (21:16 +0000)]
Merge of trunk into blender 2.5:
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r12987:17416

Issues:
* GHOST/X11 had conflicting changes. Some code was added in 2.5, which was
  later added in trunk also, but reverted partially, specifically revision
  16683. I have left out this reversion in the 2.5 branch since I think it is
  needed there.
  http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16683
* Scons had various conflicting changes, I decided to go with trunk version
  for everything except priorities and some library renaming.
* In creator.c, there were various fixes and fixes for fixes related to the -w
  -W and -p options. In 2.5 -w and -W is not coded yet, and -p is done
  differently. Since this is changed so much, and I don't think those fixes
  would be needed in 2.5, I've left them out.
* Also in creator.c: there was code for a python bugfix where the screen was not
  initialized when running with -P. The code that initializes the screen there
  I had to disable, that can't work in 2.5 anymore but left it commented as a
  reminder.

Further I had to disable some new function calls. using src/ and python/, as
was done already in this branch, disabled function calls:
* bpath.c: error reporting
* BME_conversions.c: editmesh conversion functions.
* SHD_dynamic: disabled almost completely, there is no python/.
* KX_PythonInit.cpp and Ketsji/ build files: Mathutils is not there, disabled.
* text.c: clipboard copy call.
* object.c: OB_SUPPORT_MATERIAL.
* DerivedMesh.c and subsurf_ccg, stipple_quarttone.

Still to be done:
* Go over files and functions that were moved to a different location but could
  still use changes that were done in trunk.

11 years agoprevious commits showed that the absolute path problem was even deeper. This should...
Nathan Letwory [Tue, 11 Nov 2008 21:37:53 +0000 (21:37 +0000)]
previous commits showed that the absolute path problem was even deeper. This should fix yet again some of the problems with giving them to BF_BUILDDIR

11 years agospaces -> tabs
Nathan Letwory [Tue, 11 Nov 2008 20:47:45 +0000 (20:47 +0000)]
spaces -> tabs

11 years agofix for another place where absolute paths for BF_BUILDDIR where a problem (generatin...
Nathan Letwory [Tue, 11 Nov 2008 20:46:46 +0000 (20:46 +0000)]
fix for another place where absolute paths for BF_BUILDDIR where a problem (generating results in the wrong place)

11 years agofix problem with giving absolute paths to BF_BUILDDIR
Nathan Letwory [Tue, 11 Nov 2008 20:26:53 +0000 (20:26 +0000)]
fix problem with giving absolute paths to BF_BUILDDIR

11 years agoFix typo that prevented CC_WARN from being added to build commands
Nathan Letwory [Tue, 11 Nov 2008 20:01:45 +0000 (20:01 +0000)]
Fix typo that prevented CC_WARN from being added to build commands

11 years agoPort of part of the Interface code to 2.50.
Brecht Van Lommel [Tue, 11 Nov 2008 18:31:32 +0000 (18:31 +0000)]
Port of part of the Interface code to 2.50.

This is based on the current trunk version, so these files should not need
merges. There's two things (clipboard and intptr_t) that are missing in 2.50
and commented out with XXX 2.48, these can be enabled again once trunk is
merged into this branch.

Further this is not all interface code, there are many parts commented out:
* interface.c: nearly all button types, missing: links, chartab, keyevent.
* interface_draw.c: almost all code, with some small exceptions.
* interface_ops.c: this replaces ui_do_but and uiDoBlocks with two operators,
  making it non-blocking.
* interface_regions: this is a part of interface.c, split off, contains code to
  create regions for tooltips, menus, pupmenu (that one is crashing currently),
  color chooser, basically regions with buttons which is fairly independent of
  core interface code.
* interface_panel.c and interface_icons.c: not ported over, so no panels and
  icons yet. Panels should probably become (free floating) regions?
* text.c: (formerly language.c) for drawing text and translation. this works
  but is using bad globals still and could be cleaned up.

Header Files:
* ED_datafiles.h now has declarations for datatoc_ files, so those extern
  declarations can be #included instead of repeated.
* The user interface code is in UI_interface.h and other UI_* files.

Core:
* The API for creating blocks, buttons, etc is nearly the same still. Blocks
  are now created per region instead of per area.
* The code was made non-blocking, which means that any changes and redraws
  should be possible while editing a button. That means though that we need
  some sort of persistence even though the blender model is to recreate buttons
  for each redraw. So when a new block is created, some matching happens to
  find out which buttons correspond to buttons in the previously created block,
  and for activated buttons some data is then copied over to the new button.
* Added UI_init/UI_init_userdef/UI_exit functions that should initialize code
  in this module, instead of multiple function calls in the windowmanager.
* Removed most static/globals from interface.c.
* Removed UIafterfunc_ I don't think it's needed anymore, and not sure how it
  would integrate here?
* Currently only full window redraws are used, this should become per region
  and maybe per button later.

Operators:
* Events are currently handled through two operators: button activate and menu
  handle. Operators may not be the best way to implement this, since there are
  currently some issues with events being missed, but they can become a special
  handler type instead, this should not be a big change.
* The button activate operator runs as long as a button is active, and will
  handle all interaction with that button until the button is not activated
  anymore. This means clicking, text editing, number dragging, opening menu
  blocks, etc.
* Since this operator has to be non-blocking, the ui_do_but code needed to made
  non-blocking. That means variables that were previously on the stack, now
  need to be stored away in a struct such that they can be accessed again when
  the operator receives more events.
* Additionally the place in the ui_do_but code indicated the state, now that
  needs to be set explicit in order to handle the right events in the right
  state. So an activated button can be in one of these states: init, highlight,
  wait_flash, wait_release, wait_key_event, num_editing, text_editing,
  text_selecting, block_open, exit.
* For each button type an ui_apply_but_* function has also been separated out
  from ui_do_but. This makes it possible to continuously apply the button as
  text is being typed for example, and there is an option in the code to enable
  this. Since the code non-blocking and can deal with the button being deleted
  even, it should be safe to do this.
* When editing text, dragging numbers, etc, the actual data (but->poin) is not
  being edited, since that would mean data is being edited without correct
  updates happening, while some other part of blender may be accessing that
  data in the meantime. So data values, strings, vectors are written to a
  temporary location and only flush in the apply function.

Regions:
* Menus, color chooser, tooltips etc all create screen level regions. Such menu
  blocks give a handle to the button that creates it, which will contain the
  results of the menu block once a MESSAGE event is received from that menu
  block.
* For this type of menu block the coordinates used to be in window space. They
  are still created that way and ui_positionblock still works with window
  coordinates, but after that the block and buttons are brought back to region
  coordinates since these are now contained in a region.
* The flush/overdraw frontbuffer drawing code was removed, the windowmanager
  should have enough information with these screen level regions to have full
  control over what gets drawn when and to then do correct compositing.

Testing:
* The header in the time space currently has some buttons to test the UI code.

11 years ago* Compile fix for RNA + makefiles.
Brecht Van Lommel [Tue, 11 Nov 2008 18:28:00 +0000 (18:28 +0000)]
* Compile fix for RNA + makefiles.
* Fix for bug in collection string lookup function.

11 years agoMSVC90 project files: Tune projects build order to allow error-free build from clean...
Benoit Bolsee [Tue, 11 Nov 2008 16:48:34 +0000 (16:48 +0000)]
MSVC90 project files: Tune projects build order to allow error-free build from clean state.

11 years agoVarious changes made in the process of working on the UI code:
Brecht Van Lommel [Tue, 11 Nov 2008 15:18:21 +0000 (15:18 +0000)]
Various changes made in the process of working on the UI code:

* Added functions to generate Timer events. There was some unfinished code to
  create one timer per window, this replaces that with a way to let operators
  or other handlers add/remove their own timers as needed. This is currently
  delivered as an event with the timer handle, perhaps this should be a notifier
  instead? Also includes some fixes in ghost for timer events that were not
  delivered in time, due to passing negative timeout.
* Added a Message event, which is a generic event that can be added by any
  operator. This is used in the UI code to communicate the results of opened
  blocks. Again, this may be better as a notifier.
* These two events should not be blocked as they are intended for a specific
  operator or handler, so there were exceptions added for this, which is one
  of the reasons they might work better as notifiers, but currently these
  things can't listen to notifier yet.
* Added an option to events to indicate if the customdata should be freed or
  not.

* Added a free() callback for area regions, and added a free function for
  area regions in blenkernel since it was already there for screens and areas.
* Added ED_screen/area/region_exit functions to clean up things like operators
  and handlers when they are closed.
* Added screen level regions, these will draw over areas boundaries, with the
  last created region on top. These are useful for tooltips, menus, etc, and
  are not saved to file. It's using the same ARegion struct as areas to avoid
  code duplication, but perhaps that should be renamed then. Note that redraws
  currently go correct, because only full window redraws are used, for partial
  redraws without any frontbuffer drawing, the window manager needs to get
  support for compositing subwindows.

* Minor changes in the subwindow code to retrieve the matrix, and moved
  setlinestyle to glutil.c.
* Reversed argument order in WM_event_add/remove_keymap_handler to be consistent
  with modal_handler.

* Operators can now block events but not necessarily cancel/finish.
* Modal operators are now stored in a list in the window/area/region they were
  created in. This means for example that when a transform operator is invoked
  from a region but registers a handler at the window level (since mouse motion
  across areas should work), it will still get removed when the region is closed
  while the operator is running.

11 years ago* RNA: utility function to retrieve strings. It will use a fixed
Brecht Van Lommel [Tue, 11 Nov 2008 15:03:26 +0000 (15:03 +0000)]
* RNA: utility function to retrieve strings. It will use a fixed
  size buffer if it's big enough, and otherwise allocate memory.
* Added BLI_dynstr_appendf() to construct strings easily in printf
  style, this should make it easier to construct menu strings for
  example.

11 years agoAdjusted scons files so disabling quicktime, python and sdl also removes their includ...
Campbell Barton [Tue, 11 Nov 2008 14:14:22 +0000 (14:14 +0000)]
Adjusted scons files so disabling quicktime, python and sdl also removes their includes when building.
writefile.c had usless include.

11 years agoattempt to make executing an external command work with python 2.4 & 2.5, it seems...
Campbell Barton [Tue, 11 Nov 2008 08:21:09 +0000 (08:21 +0000)]
attempt to make executing an external command work with python 2.4 & 2.5, it seems that only py 2.6 wanted list args for subprocess.Popen

11 years agofix for [#17959] NURBS Circle: pie-shaped deformation, sticking to object origin
Campbell Barton [Tue, 11 Nov 2008 05:03:03 +0000 (05:03 +0000)]
fix for [#17959] NURBS Circle: pie-shaped deformation, sticking to object origin

11 years agoremoved some warnings
Campbell Barton [Tue, 11 Nov 2008 04:42:15 +0000 (04:42 +0000)]
removed some warnings

11 years agoMedian center didn't use TD_NOCENTER properly, making it work incorrectly with hinge...
Martin Poirier [Tue, 11 Nov 2008 03:12:31 +0000 (03:12 +0000)]
Median center didn't use TD_NOCENTER properly, making it work incorrectly with hinge bones (and with chain rotations).

11 years agobicubic_interpolation function was re-calculating a variable it didnt need to - ...
Campbell Barton [Tue, 11 Nov 2008 01:13:05 +0000 (01:13 +0000)]
bicubic_interpolation function was re-calculating a variable it didnt need to - (was calling 32 pow()'s per pixel, now only 8 - approx 3-4x speedup on my system).

11 years agoVideoTexture: support VideoTexture in blenderplayer
Benoit Bolsee [Mon, 10 Nov 2008 22:17:40 +0000 (22:17 +0000)]
VideoTexture: support VideoTexture in blenderplayer

11 years agoChain rotations for objects and pose bones (for teamto)
Martin Poirier [Mon, 10 Nov 2008 21:23:54 +0000 (21:23 +0000)]
Chain rotations for objects and pose bones (for teamto)

This commit adds an exception for rotations (standard rotation and tracball) to still work on children of transformed objects and bones in an expected fashion. That is, you can select a chain of finger bones and rotate to flex them all at once.

Notes:
[1] This could be expended to other transformations if needed.
[2] Center of transformation is determined using the same principle as hinge bones (transformed children aren't taken into account)

11 years agoAdd MSVC90 project files - part 3. Extern and Intern projects are merged in projectfi...
Benoit Bolsee [Mon, 10 Nov 2008 21:22:22 +0000 (21:22 +0000)]
Add MSVC90 project files - part 3. Extern and Intern projects are merged in projectfiles_vc9\blender\blender.sln solution, you just need to open that solution to compile everything with VS2008.

11 years agoAdd MSVC90 project files - part 2.
Benoit Bolsee [Mon, 10 Nov 2008 16:09:25 +0000 (16:09 +0000)]
Add MSVC90 project files - part 2.

11 years agoAdd MSVC90 project files - part 1.
Benoit Bolsee [Mon, 10 Nov 2008 15:36:58 +0000 (15:36 +0000)]
Add MSVC90 project files - part 1.

11 years agomissing comma made scons arg BF_CXX_LIB_STATIC not work
Campbell Barton [Mon, 10 Nov 2008 13:36:44 +0000 (13:36 +0000)]
missing comma made scons arg BF_CXX_LIB_STATIC not work

11 years agoBugfix #17965
Ton Roosendaal [Mon, 10 Nov 2008 10:05:09 +0000 (10:05 +0000)]
Bugfix #17965

Most Surface (NURBS) tools in buttons didn't add undo pushes.

11 years agoPatch #17971 by Nathan Vegdahl:
Matt Ebb [Mon, 10 Nov 2008 05:42:07 +0000 (05:42 +0000)]
Patch #17971 by Nathan Vegdahl:
Makes colorband GUI display proper color interpolation

(for real this time)

11 years agoVideoTexture: Preserve alpha channel if present in video, images and sequences. Bette...
Benoit Bolsee [Sun, 9 Nov 2008 21:42:30 +0000 (21:42 +0000)]
VideoTexture: Preserve alpha channel if present in video, images and sequences. Better detection of end of video.

11 years ago* add Brecht's small patch to make values to BF_QUICK and BF_QUICKDEBUG function...
Nathan Letwory [Sun, 9 Nov 2008 21:00:49 +0000 (21:00 +0000)]
* add Brecht's small patch to make values to BF_QUICK and BF_QUICKDEBUG function as partial search entries.
  - this means you can do BF_QUICK=bf_ and it would build all libs that contain bf_ in their name. This makes
    it easier to use, since you don't have to remember the exact names

* Update documentation to mention scons-local.

11 years ago* typo fix
Nathan Letwory [Sat, 8 Nov 2008 13:39:37 +0000 (13:39 +0000)]
* typo fix

11 years ago=== BPy API ===
Nathan Letwory [Sat, 8 Nov 2008 13:38:21 +0000 (13:38 +0000)]
=== BPy API ===
* add two optional arguments to control click step and precision of Number buttons.

11 years ago* use msvc proposed names when building on win32
Nathan Letwory [Sat, 8 Nov 2008 12:01:55 +0000 (12:01 +0000)]
* use msvc proposed names when building on win32

11 years agoVideoTexture: forgot to commit MSVC project file, strange that nobody noticed...
Benoit Bolsee [Fri, 7 Nov 2008 20:13:07 +0000 (20:13 +0000)]
VideoTexture: forgot to commit MSVC project file, strange that nobody noticed...

11 years ago* fix typo found by brecht
Nathan Letwory [Fri, 7 Nov 2008 19:49:55 +0000 (19:49 +0000)]
* fix typo found by brecht

11 years ago* fix for typo found by brecht
Nathan Letwory [Fri, 7 Nov 2008 19:48:12 +0000 (19:48 +0000)]
* fix for typo found by brecht

11 years ago=== SCons ===
Nathan Letwory [Fri, 7 Nov 2008 19:21:52 +0000 (19:21 +0000)]
=== SCons ===
* merge the recent scons changes from trunk, so this means that the same rules now apply:
  - scons-local available
  - platform default configs updated
  - check your user-config.py if you have made a full copy of default config

Note: BGE and blenderplayer still not working, but that is normal ;) (so turn them off!)

11 years ago[#17958] Windows path fix for image_edit.py script.
Campbell Barton [Fri, 7 Nov 2008 15:16:30 +0000 (15:16 +0000)]
[#17958] Windows path fix for image_edit.py script.
Modified to work in linux too,  on my system subprocess.Popen(appstring) only works when appstring is a list.

Blenders __import__ didnt support keywords like pythons causing the subprocess module to fail for me.
added keywords to blenders c/api import to match pythons.

11 years agoVideoTexture: VideoTexture.materialID() can now take texture image name.
Benoit Bolsee [Fri, 7 Nov 2008 10:54:32 +0000 (10:54 +0000)]
VideoTexture: VideoTexture.materialID() can now take texture image name.

You can specify a image name (starting with 'IM') instead of a material
name in VideoTexture.materialID() and return the material ID matching
this texture.
The advantage of this method is that is works with blender material
and UV texture. In case of UV texture, it grabs the internal material
corresponding to the faces that are assigned to this texture. In case
of blender material, it grabs the material that has an image texture
matching the name as first texture channel.
In both cases, the texture id used in VideoTexture.Texture() should be 0.

Ex:

matID = VideoTexture.materialID(obj,'IMvideo.png')
GameLogic.video = VideoTexture.Texture(obj, matID, 0)

11 years agoRNA
Brecht Van Lommel [Fri, 7 Nov 2008 02:58:25 +0000 (02:58 +0000)]
RNA

* Added more error prints for wrong definitions, for cases that
  would laters cause problems compiling or crash at runtime, and
  also made messages more clear.
* Added some skeleton code for main/ID/mesh/vertex types for testing.
* Added support for automatic arrays as collections using SDNA.

* Changed how pointers to data work. Now they are always wrapped
  in a PointerRNA struct, which contains the data pointer and type,
  and also the data pointer and type of the ID datablock that this
  belongs to, since for example a vertex on it's own may not have
  enough information for some operations, it also needs the mesh.

* Added some code for defining dependencies with RNA, and looking up
  data with paths like: scenes[0].objects["Cube"].data.verts[7].co.
  Note sure either will end up being used, this is experimental.

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

11 years agoVideoTexture: comment was misplaced after previous commit.
Benoit Bolsee [Thu, 6 Nov 2008 23:52:47 +0000 (23:52 +0000)]
VideoTexture: comment was misplaced after previous commit.

11 years agoBugfix #17524
Diego Borghetti [Thu, 6 Nov 2008 18:49:53 +0000 (18:49 +0000)]
Bugfix #17524

 The problem is that the audio_fill_seq function try to load the hd file
if the sequence don't have it, but it join the two string (directory path +
file path) without the / (Linux... \ Windows), so the result is a wrong path.

 I change the the strncpy and strncat function for a BLI_join_dirfile (like
the reload_sequence_new_file) and all work fine now.

 Also note that the "them go" that Luca report is (or what happen here) the
ctrl+z function, and now both case work fine here.

(interesting.. date from Feb 05.. 2006 ;)

11 years agoVideoTexture: fix compile error when FFmpeg is disabled.
Benoit Bolsee [Thu, 6 Nov 2008 16:01:17 +0000 (16:01 +0000)]
VideoTexture: fix compile error when FFmpeg is disabled.

11 years ago* While making changes to btools.py and Blender.py, I completely forgot about the...
Nathan Letwory [Thu, 6 Nov 2008 00:28:26 +0000 (00:28 +0000)]
* While making changes to btools.py and Blender.py, I completely forgot about the name changes.
  Here they are.

  Platform managers, double check that the compiler flag options still work.

11 years agoChange remaining Copy() to Clone()
Nathan Letwory [Wed, 5 Nov 2008 23:23:04 +0000 (23:23 +0000)]
Change remaining Copy() to Clone()