blender.git
10 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)

10 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.

10 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.

10 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

10 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.

10 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).

10 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.

10 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

10 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

10 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

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

10 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.

10 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

10 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)

10 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.

10 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.

10 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)

10 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.

10 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

10 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.

10 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.

10 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.

10 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

10 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 :)

10 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

10 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! :)

10 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.

10 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.

10 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

10 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)

10 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.

10 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.

10 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.

10 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.

10 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

10 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.

10 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

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

10 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)

10 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

10 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

10 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.

10 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.

10 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.

10 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.

10 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.

10 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.

10 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

10 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

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

10 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).

10 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).

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

10 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)

10 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.

10 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.

10 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.

10 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

10 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.

10 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)

10 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.

10 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.

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

10 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.

10 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

10 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...

10 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

10 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

10 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!)

10 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.

10 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)

10 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

10 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.

10 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 ;)

10 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.

10 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.

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

10 years agoVideoTexture: new VideoTexture.ImageFFmpeg to load and reload images.
Benoit Bolsee [Wed, 5 Nov 2008 21:53:22 +0000 (21:53 +0000)]
VideoTexture: new VideoTexture.ImageFFmpeg to load and reload images.

The FFmpeg library allows to load image files. Although it is possible
to load images using the VideoFFmpeg class, it is not very efficient.
The new class VideoTexture.ImageFFmpeg is dedicated to image management.

Constructor:
-----------
VideoTexture.ImageFFmpeg('image_file_name')
  Opens the file but does not load the texture yet.
  The file name can also be a network address. It can also be a video
  file name; in that case only the first image is loaded.

Methods:
-------
refresh(True)
  Loads the image to texture.
  You just need to call it once, the file is automatically closed after
  that and calling refresh() again will have no effect.

reload('new_file_name')
  Reloads the image (if new_file_name is omitted) or loads a new image.
  The file is opened but the texture is not updated yet, you need
  to call refresh() once to load the texture.

Attributes:
----------
status
  returns the image status:
    2 : file opened, texture not loaded
    3 : file closed, texture loaded

image
  returns the image data as a string of RGBA pixel

size
  returns the image size [x,y]

scale
  get/set the scale flag.
  If the scale flag is False, the image is rescale to texture format
  using gluScaleImage() function, slow but good quality.
  If the scale flag is True, the image is rescaled using a fast but
  less accurate algorithm.

flip
  get/set Y-flip flag.
  Set to True by default as FFmpeg always provides the image upside down

filter
  get/set filter(s) on the image.

Example:

10 years agoVideoTexture: fixing a crash when loading an image as a video file - yes it works...
Benoit Bolsee [Wed, 5 Nov 2008 17:38:31 +0000 (17:38 +0000)]
VideoTexture: fixing a crash when loading an image as a video file - yes it works, provided that you don't set repeat and also no need to refresh all the time.

10 years agoVideoTexture: Add support for GLSL. FIx small printout bug in Exception printout
Benoit Bolsee [Wed, 5 Nov 2008 13:22:10 +0000 (13:22 +0000)]
VideoTexture: Add support for GLSL. FIx small printout bug in Exception printout

10 years agouniform end-of-line format and set svn:eol-style property to "native" for all scripts
Remigiusz Fiedler [Wed, 5 Nov 2008 11:42:34 +0000 (11:42 +0000)]
uniform end-of-line format and set svn:eol-style property to "native" for all scripts

10 years ago* Updated the 'Consolidate into one image' script to support alpha
Matt Ebb [Wed, 5 Nov 2008 04:48:08 +0000 (04:48 +0000)]
* Updated the 'Consolidate into one image' script to support alpha

10 years ago* doing some warning cleaning
Nathan Letwory [Tue, 4 Nov 2008 23:46:01 +0000 (23:46 +0000)]
* doing some warning cleaning
* accidently left priority tests around.

10 years ago* enable openjpeg building for win32/msvc
Nathan Letwory [Tue, 4 Nov 2008 23:04:15 +0000 (23:04 +0000)]
* enable openjpeg building for win32/msvc
* add support for building redcode on win32/msvc, but disabled for now, as there are linking problems
  - I cleaned the redcode sconscript - the copying of headers within the source tree is not a clean solution
    This needs to be fixed later on. For now, lets use redcode from extern/ until a better way is found.

10 years ago=== SCons ===
Nathan Letwory [Tue, 4 Nov 2008 22:46:43 +0000 (22:46 +0000)]
=== SCons ===

* BlenderLib now expects lists for all compiler related flags (release, profile, debug, warn).
  I changed the default config files, but do double-check your user-config files, esp. if you did
  a full copy of an old default platform config

10 years ago* Changed the constant colorband interpolation to work left->right,
Matt Ebb [Tue, 4 Nov 2008 22:16:57 +0000 (22:16 +0000)]
* Changed the constant colorband interpolation to work left->right,
 rather than right -> left. This is how it works now:

http://mke3.net/blender/etc/constant_ss.png

10 years ago* remove redundant comment
Nathan Letwory [Tue, 4 Nov 2008 21:14:54 +0000 (21:14 +0000)]
* remove redundant comment

10 years agoVideoTexture: fix RGB/BGR confusion, make code compatible with big endian CPU, add...
Benoit Bolsee [Tue, 4 Nov 2008 12:04:59 +0000 (12:04 +0000)]
VideoTexture: fix RGB/BGR confusion, make code compatible with big endian CPU, add RGBA source filter.

10 years agoVideoTexture: Bug report #17946: add (char*) casting to fix compile error with Python...
Benoit Bolsee [Tue, 4 Nov 2008 09:21:27 +0000 (09:21 +0000)]
VideoTexture: Bug report #17946: add (char*) casting to fix compile error with Python get-set method and module object.

10 years agoSimple warning fixes
Andre Susano Pinto [Tue, 4 Nov 2008 01:05:44 +0000 (01:05 +0000)]
Simple warning fixes

10 years agoAdded a new interpolation type for colorbands: Constant
Matt Ebb [Tue, 4 Nov 2008 00:15:27 +0000 (00:15 +0000)]
Added a new interpolation type for colorbands: Constant
This can be useful for toon shading etc.

Example: http://mke3.net/blender/etc/constant_ss.png

10 years agoAdd's GSR's INT64_C fix and removes dos line endings...
Kent Mein [Mon, 3 Nov 2008 23:35:41 +0000 (23:35 +0000)]
Add's GSR's INT64_C fix and removes dos line endings...

Kent

10 years agoAdded Lattice vgroup support to shrinkwrap and simple deform modifier.
Andre Susano Pinto [Mon, 3 Nov 2008 23:17:36 +0000 (23:17 +0000)]
Added Lattice vgroup support to shrinkwrap and simple deform modifier.

10 years agoMoving silence_log_ffmpeg to imbuf (it fits better there and fixes the link error...
Martin Poirier [Mon, 3 Nov 2008 13:33:11 +0000 (13:33 +0000)]
Moving silence_log_ffmpeg to imbuf (it fits better there and fixes the link error in blenderplayer)

10 years agoBugfix #17921
Ton Roosendaal [Mon, 3 Nov 2008 13:00:39 +0000 (13:00 +0000)]
Bugfix #17921

ALT+select face-loop on mesh with hidden faces ignored the hidden part.
Also caused errors on deleting faces that way.

10 years agoVideoTexture: fix compile error with GLint in ImageViewport under osx, part 2
Benoit Bolsee [Sun, 2 Nov 2008 18:41:24 +0000 (18:41 +0000)]
VideoTexture: fix compile error with GLint in ImageViewport under osx, part 2

10 years agoVideoTexture: fix compile error with GLint in ImageViewport under osx.
Benoit Bolsee [Sun, 2 Nov 2008 18:31:54 +0000 (18:31 +0000)]
VideoTexture: fix compile error with GLint in ImageViewport under osx.

10 years agoMakefile fixes for compiling with new videotexture code.
Ton Roosendaal [Sun, 2 Nov 2008 18:12:45 +0000 (18:12 +0000)]
Makefile fixes for compiling with new videotexture code.

Also: buttons for logic, controllers, didn't line up correct when
multiple objects were selected (too little space)

10 years agoBugfix #17942
Ton Roosendaal [Sun, 2 Nov 2008 18:05:11 +0000 (18:05 +0000)]
Bugfix #17942

Python dict error: when trying to access a Bone via a key, and the key
was not found, a wrong error message got printed. Fix provided by
reporter Gregor Riepl. Thanks!

10 years agoVideoTexture: use PyObjectPlus.h instead of Python.h for compatibility with Python2.3
Benoit Bolsee [Sun, 2 Nov 2008 18:02:31 +0000 (18:02 +0000)]
VideoTexture: use PyObjectPlus.h instead of Python.h for compatibility with Python2.3