12 years agoRNA: review of commits in the past days, check the diffs for the
Brecht Van Lommel [Tue, 2 Dec 2008 23:45:11 +0000 (23:45 +0000)]
RNA: review of commits in the past days, check the diffs for the
many small changes, but the two bigger ones are:

* Sensors and controllers now use inheritance, rather than pointing
  to the data in a separate struct. Had to add some new RNA define
  functionality to support this better.
* DNA_meta_types.h was marked as done but still missing many things,
  now completed.

12 years ago2.5
Ton Roosendaal [Tue, 2 Dec 2008 18:49:58 +0000 (18:49 +0000)]

- after closing button (having used it), it sends empty mousemove for
  invoking new modal handler on same button. Don't know better solution
  for now, at least this way WM handles everything. :)

- experiment: moved button handlers to area level, that way it respects
  handlers on higher hierarchical level, like moving area edges.
  Als interesting is that you can have a button active (texteditor) and
  use a similar button in other area.
  This can also be done on region level even.

On todo: proper notifier events for redraw! Don't want all areas to draw
on simple refreshes

12 years agoMade PyRNA props iterable, so you can do things like...
Campbell Barton [Tue, 2 Dec 2008 15:27:10 +0000 (15:27 +0000)]
Made PyRNA props iterable, so you can do things like...

for ob in bpy.objects:

for i, lay in bpy.scenes["Scene"].layer:
print('%d %d' % i, lay)

12 years agoAdded RNA functions from PyRNA
Campbell Barton [Tue, 2 Dec 2008 14:36:35 +0000 (14:36 +0000)]
Added RNA functions from PyRNA
* RNA_property_enum_value
* RNA_property_enum_identifier
To get an enum string from a value and a value from an enum.

BPy_StructRNA types (objects, meshes, images etc) can now be used as dictionary keys.

12 years agoLots of stuff; couldn't commit in parts because of refactor work.
Ton Roosendaal [Tue, 2 Dec 2008 14:22:52 +0000 (14:22 +0000)]
Lots of stuff; couldn't commit in parts because of refactor work.

* Changes in interface/ module

This commit brings back the way how buttons/menus work under control
of WM event system. The previous implementation extended usage of
handlers and operators in an interesting but confusing way. Better to
try it first according the design specs. :)

Most obviously:
- modal-handler operators are not stored anymore in regions/areas/windows.
  such modal handlers own their operator, and should remove it themselves.
- removed code to move handlers from one queue to another.
  (needs review with brecht!)
- WM fix: the API call to remove a modal handler got removed. This was a
  dangerous thing anyway, and you should leave that to the event system.
  Now, if a handler modal() call gets a cancel/finish return, it frees
  itself in event system. WM_event_remove_modal_handler was a confusing
  call anyway!


- allow button-activate to refresh after using button
- re-enable arrow keys for menus
  (do both after commit)

- review return values of operator callbacks in interface_ops.c

* Fixes in WM system

- Freeing areas/regions/windows, also on quit, now correctly closes
  running modal handlers
- On starting a modal handler, the handler now stores previous area
  and region context, so they send proper notifiers etc.

* Other fixes

- Area-split operator had bug, wrong minimal size checking. This
  solves error when trying to split a very narrow area.
- removed DNA_USHORT_FIX from screen_types.h, gave warning
- operators didn't get ID name copied when activated, needed for
  later re-use or saving.

12 years agoRNA - Wrapped a few more simple Object transforms.
Joshua Leung [Tue, 2 Dec 2008 10:10:07 +0000 (10:10 +0000)]
RNA - Wrapped a few more simple Object transforms.

Note: Rotations are still exposed directly in radians. We should probably do some wrapping around this, perhaps at UI-level?

12 years agoView2D - Some more tweaks...
Joshua Leung [Tue, 2 Dec 2008 09:43:23 +0000 (09:43 +0000)]
View2D - Some more tweaks...

* Improved scrollbar drawing a bit more - only cosmetic lines
* Added new view2d view-matrix api method to only use 'cur' coordinates on one axis, for use when drawing markers, etc. that need to be glued to a certain time but stay fixed in space in another dimension. This should improve the sitation for drawing markers
* To aid testing, adding markers now sets the marker to have frame number as it's "name". This will need to be removed later...

12 years agomingw was giving errors...
Campbell Barton [Tue, 2 Dec 2008 09:35:29 +0000 (09:35 +0000)]
mingw was giving errors...
source\blender\python\intern\bpy_rna.c:1018: error: initializer element is not constant
source\blender\python\intern\bpy_rna.c:1018: error: (near initialization for `pyrna_prop_Type.tp_get

Assign get generic get/sets before PyType_Ready runs

12 years ago* rna_property completed
Hamed Zaghaghi [Tue, 2 Dec 2008 01:05:23 +0000 (01:05 +0000)]
* rna_property completed
CAUTION: some defines like PROP_INT in DNA_property_types.h are the same
as enums in RNA_types.h, and may be encounter hidden errors in future.

12 years ago* after discussion with cambo on IRC, change the #ifndef's to #undefs instead:
Nathan Letwory [Mon, 1 Dec 2008 23:38:22 +0000 (23:38 +0000)]
* after discussion with cambo on IRC, change the #ifndef's to #undefs instead:
  Pre-Python 3.0 has strings default non-unicode, so checks and handling should be done so too.

12 years ago* make sure there are no redefinitions (I'm using py2.5 and ie PyUnicode_Check define...
Nathan Letwory [Mon, 1 Dec 2008 22:20:18 +0000 (22:20 +0000)]
* make sure there are no redefinitions (I'm using py2.5 and ie PyUnicode_Check define exists

12 years agoRNA
Andrea Weikert [Mon, 1 Dec 2008 21:23:58 +0000 (21:23 +0000)]
* DNA_packedFile_types: added rna definitions for packed files
* also experimentally filled in correct struct 'PackedFile' in image rna for testing.
* updated MSVC projectfiles (also for rna_curve.c and rna_vfont.c)

I removed PackedFile->flags, I did grep through source and a complete recompile of blender trunk svn without them too, so they obviously aren't needed anymore. A bit of cleaning up :)

12 years agoRNA: Added missing *srna's to curve functions.
Juho Vepsalainen [Mon, 1 Dec 2008 21:19:36 +0000 (21:19 +0000)]
RNA: Added missing *srna's to curve functions.

12 years ago* add debug symbols when building BF_DEBUG=True
Nathan Letwory [Mon, 1 Dec 2008 21:13:49 +0000 (21:13 +0000)]
* add debug symbols when building BF_DEBUG=True

12 years ago== MSVC9 projectfiles ==
Andrea Weikert [Mon, 1 Dec 2008 20:53:01 +0000 (20:53 +0000)]
== MSVC9 projectfiles ==
- update for several new rna files.

12 years agoRNA: Curves and VFont
Juho Vepsalainen [Mon, 1 Dec 2008 19:02:27 +0000 (19:02 +0000)]
RNA: Curves and VFont

Implemented RNA wrappers for curves and VFont. Only issue I could
not yet solve is related to struct CharInfo curinfo; . This particular
line proved to be hard to wrap and I therefore marked it as a TODO
should someone want to fix this issue.

I also cleaned up makesrna.c a bit by unifying brush/meta parts
under one call just the way it is done in the case of other

12 years agoPyRNA structs and properties can now be subtyped to add functionality in python.
Campbell Barton [Mon, 1 Dec 2008 16:59:18 +0000 (16:59 +0000)]
PyRNA structs and properties can now be subtyped to add functionality in python.
rna_actuator.c was missing an enum

12 years ago* ray_mirror naming for property grouping
Nathan Letwory [Mon, 1 Dec 2008 14:36:14 +0000 (14:36 +0000)]
* ray_mirror naming for property grouping

12 years agoRNA:
Juho Vepsalainen [Mon, 1 Dec 2008 13:01:48 +0000 (13:01 +0000)]

Implemented RNA wrapper for ModifierData.

Note that actual interface to access data of any specific modifier is
still missing. I also marked a couple of parts as TODO that should be
reviewed to decide whether or not to expose those specific parts
via RNA.

12 years agoView2D - Zoom + More Scrollbar work
Joshua Leung [Mon, 1 Dec 2008 11:37:05 +0000 (11:37 +0000)]
View2D - Zoom + More Scrollbar work

* Added basic (non-modal) zoom operators that use a uniform scale factor, with zoom centered using the view center as scaling point. Use Scrollwheel up/down and Pad +/- to use this.

* Added back the 'button'/bubble for the scrollbars. I've added dark lines on either end of it for some later work on zooming widgets.
This is not the final form they'll take. I still need to decide how to handle those scrollbars which act as grid-markers too (showing timescale, etc.), before trying to integrate that with some fancy scrollbar drawing (rounded, etc.)

Assorted changes:
* Moved vertical scrollbar for Outliner to right hand side
* Made Timeline use standard scrollbars, and turned on various clamping options
* Fixed ortho-matrix corrections for scrollbars, and added pixel offsets
* Made Timeline markers sit more snugly on the scrollbar. They were a bit far out...
* Fixed memory leak with view2d keymaps not being freed when Blender exited

12 years ago* Added checkmarks to 'table buttons' as used in RNA viewer. Helps to distinguish...
Matt Ebb [Mon, 1 Dec 2008 06:53:00 +0000 (06:53 +0000)]
* Added checkmarks to 'table buttons' as used in RNA viewer. Helps to distinguish them
a bit better.

12 years agoRNA: brush wrapping
Juho Vepsalainen [Mon, 1 Dec 2008 06:52:18 +0000 (06:52 +0000)]
RNA: brush wrapping

Wrapped most of brush. Brush is still missing a link to texture and to
BrushClone. Also PAINT_TOOL_DRAW etc. flags found on DNA_brush_types.h
need to be associated to a brush somehow. Currently they are linked
to a brush via ImagePaintSettings.

Also changed identifiers in metaball wrapping to conform with the

12 years agoRNA
Willian Padovani Germano [Mon, 1 Dec 2008 00:48:54 +0000 (00:48 +0000)]

* Tiny updates/fixes to Ipo wrapping.

12 years agoView2D - Another WIP commit
Joshua Leung [Mon, 1 Dec 2008 00:20:19 +0000 (00:20 +0000)]
View2D - Another WIP commit

* Start of basic scrollbar drawing. This will be improved. Only Outliner shows these for now, as although the Timeline should show them, the old files didn't have them turned on.

* Tidied up the view-panning operator
- Fixed naming convention
- Added user-adjustable properties (deltax, deltay in screenspace)

* Added ctrl-scrollwheel (horizontal) and shift-scrollwheel (vertical) scroll operators. These use the view-panning code too.
Unfortunately, I haven't been able to figure out why the WHEELMOUSEDOWN events don't seem to be triggering the operators!

12 years agoRNA
Willian Padovani Germano [Sun, 30 Nov 2008 23:27:10 +0000 (23:27 +0000)]

- Minor updates to Camera and start of Ipo (+ IpoDriver and IpoCurve) wrappings.

12 years ago* added rna_world with porperties of two first panel in the current UI
Hamed Zaghaghi [Sun, 30 Nov 2008 22:48:43 +0000 (22:48 +0000)]
* added rna_world with porperties of two first panel in the current UI

12 years agoRNA: Support for Metaballs and Metaelements. I did not figure out a way to test latte...
Juho Vepsalainen [Sun, 30 Nov 2008 20:18:55 +0000 (20:18 +0000)]
RNA: Support for Metaballs and Metaelements. I did not figure out a way to test latter but hopefully it works as well.

12 years ago* changed NULL properties into UnknownProperty
Hamed Zaghaghi [Sun, 30 Nov 2008 19:52:21 +0000 (19:52 +0000)]
* changed NULL properties into  UnknownProperty
* added rna_property.c and rna_actuator
* enabled access to properties and actuators from object
Note that because we have RNA_Property in the RNA itself, you can find
properties in gamelogic of and object under the name of RNA_GameProperty

12 years agoRNA:
Brecht Van Lommel [Sun, 30 Nov 2008 18:39:49 +0000 (18:39 +0000)]
* DNA_image_types.h done, except for some properties not being editable.

12 years agoRNA
Andrea Weikert [Sun, 30 Nov 2008 16:38:56 +0000 (16:38 +0000)]
* DNA_lattice_types: added rna definitions for lattice u,v,w and some flags
* updated MSVC projectfiles

12 years agoRNA
Brecht Van Lommel [Sun, 30 Nov 2008 15:55:14 +0000 (15:55 +0000)]
* DNA_radio_types.h: done. (patch by Jorge Bernal). Also adds
  some #defines in the radiosity DNA since it was using hardcoded
* Added an "UnknownType" which has no properties, useful as a
  placeholder for pointers that have no defined type yet.
* Sort a few lists in the code alphabetically.

12 years ago* controller structs, bController, bExpressionCont and bPythoncont RNFied\n*controlle...
Hamed Zaghaghi [Sun, 30 Nov 2008 14:40:00 +0000 (14:40 +0000)]
* controller structs, bController, bExpressionCont and bPythoncont RNFied\n*controllers are available in objects\n* some typos in rna_sensor

12 years agoPyRNA epydoc style docstrings.
Campbell Barton [Sun, 30 Nov 2008 14:00:14 +0000 (14:00 +0000)]
PyRNA epydoc style docstrings.


RNA Lamp: Lamp
@ivar rna_type: RNA type definition. *readonly*
@type rna_type: PyRNA PointerProperty
@ivar name: Unique datablock ID name. (22 maximum length)
@type name: string
@ivar adapt_thresh: Threshold for Adaptive Sampling. in (0.000, 1.000)
@type adapt_thresh: float
@ivar area_shape: Shape of the Area lamp
@type area_shape: enum in [SQUARE, RECTANGLE]
@ivar area_size: Size of the area of the Area Lamp. in (0.000, 100.000)
@type area_size: float
@ivar area_sizey: Size of the area of the Area Lamp. in (0.000, 100.000)
@type area_sizey: float
- snip

RNA Object: Object
@ivar rna_type: RNA type definition. *readonly*
@type rna_type: PyRNA PointerProperty
@ivar name: Unique datablock ID name. (22 maximum length)
@type name: string
@ivar data: Object data. *readonly*
@type data: PyRNA PointerProperty
@ivar fake_user: Saves this datablock even if it has no users
@type fake_user: bool
@ivar library: Library file the datablock is linked from. *readonly*
@type library: PyRNA PointerProperty
@ivar loc:  in (-inf, inf)
@type loc: float[3]

12 years agoscons build dir was assumed to be relative, this isn't always the case. also, define...
Joseph Eagar [Sun, 30 Nov 2008 13:25:59 +0000 (13:25 +0000)]
scons build dir was assumed to be relative, this isn't always the case.  also, defined BF_PROFILE_FLAGS for win32-ming.

12 years agocompleted, remaining sensors added, random, radar, message, joystick and others
Hamed Zaghaghi [Sun, 30 Nov 2008 12:00:03 +0000 (12:00 +0000)]
completed, remaining sensors added, random, radar, message, joystick and others

12 years ago== MSVC projectfiles ==
Andrea Weikert [Sun, 30 Nov 2008 11:55:44 +0000 (11:55 +0000)]
== MSVC projectfiles ==
== MSVC projectfiles ==
- update for python RNA API
- update for editors: ed_util.c
- fixed RNA_rna library project, doesn't need the c files included in rna.c

12 years ago3 another sensors added: delay, actuator, porperty
Hamed Zaghaghi [Sun, 30 Nov 2008 09:00:32 +0000 (09:00 +0000)]
3 another sensors added: delay, actuator, porperty

12 years agoView2D - Initial commit of Pan-View Operator
Joshua Leung [Sun, 30 Nov 2008 06:15:33 +0000 (06:15 +0000)]
View2D - Initial commit of Pan-View Operator

* Moved View2D data from space-data to ARegion (aka regions). This has been done because drawing occurs in regions not areas anymore. The View2D struct is currently stored in the ARegion struct (not as pointer), given that most of the regions in use will be 2D anyway (only the 3d-view's "window" region is the exception).
Added version patch code for outliner and timeline only for now. Headers are also likely to need this.

* Added separate keymap for View2D operators. All regions that use View2D will need this added. This includes headers too.

* Pan view operator (ED_View2D_OT_view_pan), currently works for Outliner and Timeline. Use MMB-drag as before.
- It currently doesn't exposed any parameters for redo (via RNA-ID-Props), but only uses some customdata. Suggestions on what these parameters could be are welcomed.
- I've yet to implement the necessary axis-locking features for this panning (which is required in Timeline for example to prevent vertical panning, which moves the markers out of view).

12 years agoAdded Group type to RNA
Campbell Barton [Sun, 30 Nov 2008 05:07:57 +0000 (05:07 +0000)]
Added Group type to RNA

12 years agoPyRNA
Campbell Barton [Sun, 30 Nov 2008 03:52:07 +0000 (03:52 +0000)]
Can now assign RNA arrays from python lists of bools/ints/floats
 eg -> rna.scenes["Scene"].layer = [True] * 20

Also added exceptions when trying to set readonly properties.

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

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

12 years agoRNA
Brecht Van Lommel [Sun, 30 Nov 2008 00:57:32 +0000 (00:57 +0000)]
* 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.

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

12 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

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

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

12 years agoRNA
Brecht Van Lommel [Sat, 29 Nov 2008 19:08:46 +0000 (19:08 +0000)]
* 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.

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

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

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

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

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

12 years agoRNA
Brecht Van Lommel [Sat, 29 Nov 2008 14:35:50 +0000 (14:35 +0000)]
* 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.

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

12 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)
* - continue docs/discussion here.

* 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

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']

For a dump of yo-frankie level see -

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

12 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

12 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

12 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

12 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

12 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

12 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

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

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

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

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

12 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 to reflect the current state.

12 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

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

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

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

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

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

12 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

12 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

12 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

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

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

12 years agoRNA
Brecht Van Lommel [Mon, 24 Nov 2008 15:51:55 +0000 (15:51 +0000)]
* Disable editable pointers for now, difficult to support well.
* Swap parameters in RNA_access.h functions to make it more
* 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:

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

12 years agoRNA
Brecht Van Lommel [Mon, 24 Nov 2008 12:12:24 +0000 (12:12 +0000)]
* 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.

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

12 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

  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)

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

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

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

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

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

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

12 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

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.

12 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

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

12 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, 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.

12 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

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

12 years agoRNA
Brecht Van Lommel [Mon, 17 Nov 2008 18:44:06 +0000 (18:44 +0000)]
* 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.

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

12 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
- 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

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

12 years agoRNA
Brecht Van Lommel [Fri, 14 Nov 2008 18:46:57 +0000 (18:46 +0000)]
* 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.

12 years agoRNA
Brecht Van Lommel [Fri, 14 Nov 2008 17:05:25 +0000 (17:05 +0000)]
* 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.

12 years agoRNA
Brecht Van Lommel [Fri, 14 Nov 2008 14:34:19 +0000 (14:34 +0000)]
* 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.

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

12 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 -r17416:HEAD

12 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 -r12987:17416

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

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

12 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