blender.git
11 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.

11 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

11 years agoRNA
Andrea Weikert [Mon, 1 Dec 2008 21:23:58 +0000 (21:23 +0000)]
RNA
* 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)

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

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

11 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

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

11 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
wrappers.

11 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

11 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

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

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.

11 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

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

11 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
standards.

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

* Tiny updates/fixes to Ipo wrapping.

11 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!

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

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

11 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

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

11 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

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

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

11 years agoRNA
Brecht Van Lommel [Sun, 30 Nov 2008 15:55:14 +0000 (15:55 +0000)]
RNA
* DNA_radio_types.h: done. (patch by Jorge Bernal). Also adds
  some #defines in the radiosity DNA since it was using hardcoded
  values.
* 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.

11 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

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

examples...

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]

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

11 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

11 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

11 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

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

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

11 years agoPyRNA
Campbell Barton [Sun, 30 Nov 2008 03:52:07 +0000 (03:52 +0000)]
PyRNA
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.

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.