2011-02-17 05:57:18 +00:00
|
|
|
/*
|
2008-10-31 23:50:02 +00:00
|
|
|
* ***** BEGIN GPL LICENSE BLOCK *****
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software Foundation,
|
2010-02-12 13:34:04 +00:00
|
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
2008-10-31 23:50:02 +00:00
|
|
|
*
|
|
|
|
* Contributor(s): Blender Foundation (2008).
|
|
|
|
*
|
|
|
|
* ***** END GPL LICENSE BLOCK *****
|
|
|
|
*/
|
|
|
|
|
2011-02-27 20:20:01 +00:00
|
|
|
/** \file blender/makesrna/intern/rna_internal.h
|
|
|
|
* \ingroup RNA
|
|
|
|
*/
|
|
|
|
|
2012-02-17 18:59:41 +00:00
|
|
|
#ifndef __RNA_INTERNAL_H__
|
|
|
|
#define __RNA_INTERNAL_H__
|
2008-10-31 23:50:02 +00:00
|
|
|
|
2013-03-07 02:44:55 +00:00
|
|
|
#include "BLI_utildefines.h"
|
|
|
|
|
2008-11-17 18:44:06 +00:00
|
|
|
#include "rna_internal_types.h"
|
|
|
|
|
2013-04-05 17:56:54 +00:00
|
|
|
#include "UI_resources.h"
|
|
|
|
|
2008-11-17 18:44:06 +00:00
|
|
|
#define RNA_MAGIC ((int)~0)
|
|
|
|
|
2012-09-23 18:50:56 +00:00
|
|
|
struct ColorBand;
|
2010-03-30 11:49:07 +00:00
|
|
|
struct ID;
|
2008-11-17 18:44:06 +00:00
|
|
|
struct IDProperty;
|
2012-09-23 18:50:56 +00:00
|
|
|
struct Main;
|
|
|
|
struct Mesh;
|
|
|
|
struct Object;
|
|
|
|
struct RenderEngine;
|
|
|
|
struct ReportList;
|
2008-10-31 23:50:02 +00:00
|
|
|
struct SDNA;
|
2010-06-21 22:05:34 +00:00
|
|
|
struct Sequence;
|
2008-10-31 23:50:02 +00:00
|
|
|
|
|
|
|
/* Data structures used during define */
|
|
|
|
|
2009-04-07 00:49:39 +00:00
|
|
|
typedef struct ContainerDefRNA {
|
|
|
|
void *next, *prev;
|
|
|
|
|
|
|
|
ContainerRNA *cont;
|
|
|
|
ListBase properties;
|
|
|
|
} ContainerDefRNA;
|
|
|
|
|
|
|
|
typedef struct FunctionDefRNA {
|
|
|
|
ContainerDefRNA cont;
|
|
|
|
|
|
|
|
FunctionRNA *func;
|
|
|
|
const char *srna;
|
|
|
|
const char *call;
|
2009-04-15 15:12:42 +00:00
|
|
|
const char *gencall;
|
2009-04-07 00:49:39 +00:00
|
|
|
} FunctionDefRNA;
|
|
|
|
|
2008-10-31 23:50:02 +00:00
|
|
|
typedef struct PropertyDefRNA {
|
|
|
|
struct PropertyDefRNA *next, *prev;
|
|
|
|
|
2009-04-07 00:49:39 +00:00
|
|
|
struct ContainerRNA *cont;
|
2008-10-31 23:50:02 +00:00
|
|
|
struct PropertyRNA *prop;
|
|
|
|
|
2008-12-02 23:45:11 +00:00
|
|
|
/* struct */
|
2008-10-31 23:50:02 +00:00
|
|
|
const char *dnastructname;
|
2008-12-02 23:45:11 +00:00
|
|
|
const char *dnastructfromname;
|
|
|
|
const char *dnastructfromprop;
|
|
|
|
|
|
|
|
/* property */
|
2008-10-31 23:50:02 +00:00
|
|
|
const char *dnaname;
|
|
|
|
const char *dnatype;
|
|
|
|
int dnaarraylength;
|
2008-11-26 22:24:26 +00:00
|
|
|
int dnapointerlevel;
|
2008-10-31 23:50:02 +00:00
|
|
|
|
2008-12-02 23:45:11 +00:00
|
|
|
/* for finding length of array collections */
|
|
|
|
const char *dnalengthstructname;
|
|
|
|
const char *dnalengthname;
|
|
|
|
int dnalengthfixed;
|
|
|
|
|
2008-12-03 20:17:12 +00:00
|
|
|
int booleanbit, booleannegative;
|
2009-12-22 16:11:11 +00:00
|
|
|
|
|
|
|
/* not to be confused with PROP_ENUM_FLAG
|
|
|
|
* this only allows one of the flags to be set at a time, clearing all others */
|
2008-11-26 22:52:01 +00:00
|
|
|
int enumbitflags;
|
2008-10-31 23:50:02 +00:00
|
|
|
} PropertyDefRNA;
|
|
|
|
|
|
|
|
typedef struct StructDefRNA {
|
2009-04-07 00:49:39 +00:00
|
|
|
ContainerDefRNA cont;
|
2008-10-31 23:50:02 +00:00
|
|
|
|
2008-11-07 02:58:25 +00:00
|
|
|
struct StructRNA *srna;
|
2009-01-08 13:57:29 +00:00
|
|
|
const char *filename;
|
2008-10-31 23:50:02 +00:00
|
|
|
|
|
|
|
const char *dnaname;
|
2008-12-02 23:45:11 +00:00
|
|
|
|
|
|
|
/* for derived structs to find data in some property */
|
|
|
|
const char *dnafromname;
|
|
|
|
const char *dnafromprop;
|
|
|
|
|
2009-04-07 00:49:39 +00:00
|
|
|
ListBase functions;
|
2008-10-31 23:50:02 +00:00
|
|
|
} StructDefRNA;
|
|
|
|
|
|
|
|
typedef struct AllocDefRNA {
|
|
|
|
struct AllocDefRNA *next, *prev;
|
|
|
|
void *mem;
|
|
|
|
} AllocDefRNA;
|
|
|
|
|
|
|
|
typedef struct BlenderDefRNA {
|
|
|
|
struct SDNA *sdna;
|
|
|
|
ListBase structs;
|
|
|
|
ListBase allocs;
|
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.
2008-11-21 02:23:46 +00:00
|
|
|
struct StructRNA *laststruct;
|
2013-02-05 14:25:22 +00:00
|
|
|
int error, silent, preprocess, verify, animate;
|
2008-10-31 23:50:02 +00:00
|
|
|
} BlenderDefRNA;
|
|
|
|
|
|
|
|
extern BlenderDefRNA DefRNA;
|
|
|
|
|
|
|
|
/* Define functions for all types */
|
|
|
|
|
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.
2008-11-21 02:23:46 +00:00
|
|
|
extern BlenderRNA BLENDER_RNA;
|
2008-11-17 18:44:06 +00:00
|
|
|
|
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.
2008-11-21 02:23:46 +00:00
|
|
|
void RNA_def_ID(struct BlenderRNA *brna);
|
2009-02-13 01:51:33 +00:00
|
|
|
void RNA_def_action(struct BlenderRNA *brna);
|
2009-02-02 11:51:10 +00:00
|
|
|
void RNA_def_animation(struct BlenderRNA *brna);
|
2010-01-07 22:54:05 +00:00
|
|
|
void RNA_def_animviz(struct BlenderRNA *brna);
|
2008-12-09 11:29:40 +00:00
|
|
|
void RNA_def_armature(struct BlenderRNA *brna);
|
2008-11-30 19:52:21 +00:00
|
|
|
void RNA_def_actuator(struct BlenderRNA *brna);
|
2009-07-20 23:52:53 +00:00
|
|
|
void RNA_def_boid(struct BlenderRNA *brna);
|
2008-12-01 06:52:18 +00:00
|
|
|
void RNA_def_brush(struct BlenderRNA *brna);
|
2008-11-30 15:55:14 +00:00
|
|
|
void RNA_def_camera(struct BlenderRNA *brna);
|
2009-01-04 19:25:24 +00:00
|
|
|
void RNA_def_cloth(struct BlenderRNA *brna);
|
2008-11-29 14:35:50 +00:00
|
|
|
void RNA_def_color(struct BlenderRNA *brna);
|
2008-12-12 23:30:23 +00:00
|
|
|
void RNA_def_constraint(struct BlenderRNA *brna);
|
2009-03-19 19:03:38 +00:00
|
|
|
void RNA_def_context(struct BlenderRNA *brna);
|
2008-11-30 15:55:14 +00:00
|
|
|
void RNA_def_controller(struct BlenderRNA *brna);
|
2008-12-01 19:02:27 +00:00
|
|
|
void RNA_def_curve(struct BlenderRNA *brna);
|
2011-05-24 07:08:58 +00:00
|
|
|
void RNA_def_dynamic_paint(struct BlenderRNA *brna);
|
2008-12-29 17:36:06 +00:00
|
|
|
void RNA_def_fluidsim(struct BlenderRNA *brna);
|
2009-04-19 10:44:07 +00:00
|
|
|
void RNA_def_fcurve(struct BlenderRNA *brna);
|
2008-11-30 19:52:21 +00:00
|
|
|
void RNA_def_gameproperty(struct BlenderRNA *brna);
|
2009-08-27 06:03:41 +00:00
|
|
|
void RNA_def_gpencil(struct BlenderRNA *brna);
|
2008-11-30 15:55:14 +00:00
|
|
|
void RNA_def_group(struct BlenderRNA *brna);
|
2008-11-30 18:39:49 +00:00
|
|
|
void RNA_def_image(struct BlenderRNA *brna);
|
2008-12-03 21:18:10 +00:00
|
|
|
void RNA_def_key(struct BlenderRNA *brna);
|
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.
2008-11-21 02:23:46 +00:00
|
|
|
void RNA_def_lamp(struct BlenderRNA *brna);
|
2008-11-30 18:39:49 +00:00
|
|
|
void RNA_def_lattice(struct BlenderRNA *brna);
|
2010-06-25 22:45:42 +00:00
|
|
|
void RNA_def_linestyle(struct BlenderRNA *brna);
|
2008-11-07 02:58:25 +00:00
|
|
|
void RNA_def_main(struct BlenderRNA *brna);
|
2008-11-30 15:55:14 +00:00
|
|
|
void RNA_def_material(struct BlenderRNA *brna);
|
2008-11-07 02:58:25 +00:00
|
|
|
void RNA_def_mesh(struct BlenderRNA *brna);
|
2008-12-01 19:02:27 +00:00
|
|
|
void RNA_def_meta(struct BlenderRNA *brna);
|
2008-12-01 13:01:48 +00:00
|
|
|
void RNA_def_modifier(struct BlenderRNA *brna);
|
2009-06-07 06:49:04 +00:00
|
|
|
void RNA_def_nla(struct BlenderRNA *brna);
|
2008-11-27 00:23:22 +00:00
|
|
|
void RNA_def_nodetree(struct BlenderRNA *brna);
|
2008-11-30 15:55:14 +00:00
|
|
|
void RNA_def_object(struct BlenderRNA *brna);
|
2009-01-02 13:47:33 +00:00
|
|
|
void RNA_def_object_force(struct BlenderRNA *brna);
|
2008-12-01 21:23:58 +00:00
|
|
|
void RNA_def_packedfile(struct BlenderRNA *brna);
|
2009-01-02 13:47:33 +00:00
|
|
|
void RNA_def_particle(struct BlenderRNA *brna);
|
2009-01-07 04:06:52 +00:00
|
|
|
void RNA_def_pose(struct BlenderRNA *brna);
|
2009-07-21 14:11:51 +00:00
|
|
|
void RNA_def_render(struct BlenderRNA *brna);
|
2013-01-23 05:56:22 +00:00
|
|
|
void RNA_def_rigidbody(struct BlenderRNA *brna);
|
2008-11-14 14:34:19 +00:00
|
|
|
void RNA_def_rna(struct BlenderRNA *brna);
|
2008-10-31 23:50:02 +00:00
|
|
|
void RNA_def_scene(struct BlenderRNA *brna);
|
2008-11-29 01:04:15 +00:00
|
|
|
void RNA_def_screen(struct BlenderRNA *brna);
|
2009-07-25 22:31:02 +00:00
|
|
|
void RNA_def_sculpt_paint(struct BlenderRNA *brna);
|
2008-11-29 02:01:39 +00:00
|
|
|
void RNA_def_sensor(struct BlenderRNA *brna);
|
2009-12-13 15:48:57 +00:00
|
|
|
void RNA_def_sequencer(struct BlenderRNA *brna);
|
2009-07-30 15:00:26 +00:00
|
|
|
void RNA_def_smoke(struct BlenderRNA *brna);
|
2009-01-15 04:22:23 +00:00
|
|
|
void RNA_def_space(struct BlenderRNA *brna);
|
2011-08-01 11:44:20 +00:00
|
|
|
void RNA_def_speaker(struct BlenderRNA *brna);
|
2009-09-06 15:13:57 +00:00
|
|
|
void RNA_def_test(struct BlenderRNA *brna);
|
2008-12-31 15:02:40 +00:00
|
|
|
void RNA_def_text(struct BlenderRNA *brna);
|
2009-01-02 23:05:28 +00:00
|
|
|
void RNA_def_texture(struct BlenderRNA *brna);
|
2009-02-24 03:06:23 +00:00
|
|
|
void RNA_def_timeline_marker(struct BlenderRNA *brna);
|
2008-12-26 16:50:05 +00:00
|
|
|
void RNA_def_sound(struct BlenderRNA *brna);
|
2009-04-08 16:40:46 +00:00
|
|
|
void RNA_def_ui(struct BlenderRNA *brna);
|
2009-01-02 13:47:33 +00:00
|
|
|
void RNA_def_userdef(struct BlenderRNA *brna);
|
2008-12-01 19:02:27 +00:00
|
|
|
void RNA_def_vfont(struct BlenderRNA *brna);
|
2008-11-30 15:55:14 +00:00
|
|
|
void RNA_def_wm(struct BlenderRNA *brna);
|
2008-12-02 23:45:11 +00:00
|
|
|
void RNA_def_world(struct BlenderRNA *brna);
|
2011-11-07 12:55:18 +00:00
|
|
|
void RNA_def_movieclip(struct BlenderRNA *brna);
|
|
|
|
void RNA_def_tracking(struct BlenderRNA *brna);
|
2012-06-04 16:42:58 +00:00
|
|
|
void RNA_def_mask(struct BlenderRNA *brna);
|
2008-12-02 23:45:11 +00:00
|
|
|
|
2009-04-08 16:40:46 +00:00
|
|
|
/* Common Define functions */
|
|
|
|
|
2009-02-02 11:51:10 +00:00
|
|
|
void rna_def_animdata_common(struct StructRNA *srna);
|
|
|
|
|
2010-01-07 22:54:05 +00:00
|
|
|
void rna_def_animviz_common(struct StructRNA *srna);
|
|
|
|
void rna_def_motionpath_common(struct StructRNA *srna);
|
|
|
|
|
2008-12-02 23:45:11 +00:00
|
|
|
void rna_def_texmat_common(struct StructRNA *srna, const char *texspace_editable);
|
2012-03-18 09:27:36 +00:00
|
|
|
void rna_def_mtex_common(struct BlenderRNA *brna, struct StructRNA *srna, const char *begin, const char *activeget,
|
|
|
|
const char *activeset, const char *activeeditable, const char *structname,
|
|
|
|
const char *structname_slots, const char *update);
|
2009-07-21 14:11:51 +00:00
|
|
|
void rna_def_render_layer_common(struct StructRNA *srna, int scene);
|
2008-10-31 23:50:02 +00:00
|
|
|
|
2012-05-24 01:25:31 +00:00
|
|
|
void rna_def_actionbone_group_common(struct StructRNA *srna, int update_flag, const char *update_cb);
|
|
|
|
void rna_ActionGroup_colorset_set(struct PointerRNA *ptr, int value);
|
|
|
|
|
2009-01-08 13:57:29 +00:00
|
|
|
void rna_ID_name_get(struct PointerRNA *ptr, char *value);
|
|
|
|
int rna_ID_name_length(struct PointerRNA *ptr);
|
|
|
|
void rna_ID_name_set(struct PointerRNA *ptr, const char *value);
|
|
|
|
struct StructRNA *rna_ID_refine(struct PointerRNA *ptr);
|
2013-03-07 02:44:55 +00:00
|
|
|
struct IDProperty *rna_ID_idprops(struct PointerRNA *ptr, bool create);
|
2009-01-08 13:57:29 +00:00
|
|
|
void rna_ID_fake_user_set(struct PointerRNA *ptr, int value);
|
2013-03-07 02:44:55 +00:00
|
|
|
struct IDProperty *rna_PropertyGroup_idprops(struct PointerRNA *ptr, bool create);
|
2011-05-18 10:56:26 +00:00
|
|
|
void rna_PropertyGroup_unregister(struct Main *bmain, struct StructRNA *type);
|
2012-03-18 09:27:36 +00:00
|
|
|
struct StructRNA *rna_PropertyGroup_register(struct Main *bmain, struct ReportList *reports, void *data,
|
|
|
|
const char *identifier, StructValidateFunc validate,
|
|
|
|
StructCallbackFunc call, StructFreeFunc free);
|
2012-05-10 15:22:29 +00:00
|
|
|
struct StructRNA *rna_PropertyGroup_refine(struct PointerRNA *ptr);
|
2009-01-08 13:57:29 +00:00
|
|
|
|
2009-01-04 19:25:24 +00:00
|
|
|
void rna_object_vgroup_name_index_get(struct PointerRNA *ptr, char *value, int index);
|
|
|
|
int rna_object_vgroup_name_index_length(struct PointerRNA *ptr, int index);
|
|
|
|
void rna_object_vgroup_name_index_set(struct PointerRNA *ptr, const char *value, short *index);
|
|
|
|
void rna_object_vgroup_name_set(struct PointerRNA *ptr, const char *value, char *result, int maxlen);
|
|
|
|
void rna_object_uvlayer_name_set(struct PointerRNA *ptr, const char *value, char *result, int maxlen);
|
|
|
|
void rna_object_vcollayer_name_set(struct PointerRNA *ptr, const char *value, char *result, int maxlen);
|
2010-03-30 11:49:07 +00:00
|
|
|
PointerRNA rna_object_shapekey_index_get(struct ID *id, int value);
|
|
|
|
int rna_object_shapekey_index_set(struct ID *id, PointerRNA value, int current);
|
2009-01-04 19:25:24 +00:00
|
|
|
|
2010-06-09 08:24:31 +00:00
|
|
|
/* named internal so as not to conflict with obj.update() rna func */
|
|
|
|
void rna_Object_internal_update_data(struct Main *bmain, struct Scene *scene, struct PointerRNA *ptr);
|
2009-12-08 17:23:48 +00:00
|
|
|
void rna_Mesh_update_draw(struct Main *bmain, struct Scene *scene, struct PointerRNA *ptr);
|
|
|
|
void rna_TextureSlot_update(struct Main *bmain, struct Scene *scene, struct PointerRNA *ptr);
|
Paint refactoring commit, non-disruptive (in theory :p)
* Fix precision overflow issue with overlay previews,
* Expose alpha mask mapping to UI (still not functional but coming soon).
* More overlay refactoring:
Overlay now does minimal checking for texture refresh.
Instead, we now have invalidation flags to set an aspect of the brush
overlay as invalid. This is necessary because this way we will be able to
separate and preview different brush attributes on the overlays, using
different textures:
These attributes/aspects are:
Primary texture (main texture for sculpt, vertex, imapaint)
Secondary texture (mask/alpha texture for imapaint)
Cursor texture (cursor texture. It involves brush strength and curves)
Modified the relevant RNA property update functions and C update callback
functions to call the relevant cursor invalidation functions instead
of checking every frame for multiple properties.
Properties that affect this are:
Image changes, if image is used by current brush,
Texture slot changes, similarly
Curve changes,
Object mode change invalidates the cursor
Paint tool change invalidates the cursor.
These changes give slightly more invalidation cases than simply
comparing the relevant properties each frame, but these do not occur in
performance critical moments and it's a much more elegant system than
adding more variables to check per frame each time we add something on
the system.
2013-04-12 17:21:31 +00:00
|
|
|
void rna_TextureSlot_brush_update(struct Main *bmain, struct Scene *scene, struct PointerRNA *ptr);
|
2009-07-02 19:41:31 +00:00
|
|
|
|
2010-08-03 06:51:36 +00:00
|
|
|
/* basic poll functions for object types */
|
|
|
|
int rna_Armature_object_poll(struct PointerRNA *ptr, struct PointerRNA value);
|
|
|
|
int rna_Camera_object_poll(struct PointerRNA *ptr, struct PointerRNA value);
|
|
|
|
int rna_Curve_object_poll(struct PointerRNA *ptr, struct PointerRNA value);
|
|
|
|
int rna_Lattice_object_poll(struct PointerRNA *ptr, struct PointerRNA value);
|
|
|
|
int rna_Mesh_object_poll(struct PointerRNA *ptr, struct PointerRNA value);
|
|
|
|
|
2011-04-19 13:01:50 +00:00
|
|
|
/* basic poll functions for actions (to prevent actions getting set in wrong places) */
|
|
|
|
int rna_Action_id_poll(struct PointerRNA *ptr, struct PointerRNA value);
|
|
|
|
int rna_Action_actedit_assign_poll(struct PointerRNA *ptr, struct PointerRNA value);
|
2010-08-03 06:51:36 +00:00
|
|
|
|
2009-10-26 11:56:12 +00:00
|
|
|
char *rna_TextureSlot_path(struct PointerRNA *ptr);
|
2013-07-02 15:56:32 +00:00
|
|
|
char *rna_Node_ImageUser_path(struct PointerRNA *ptr);
|
2009-10-26 11:56:12 +00:00
|
|
|
|
2009-04-08 16:40:46 +00:00
|
|
|
/* API functions */
|
|
|
|
|
2009-08-19 09:52:13 +00:00
|
|
|
void RNA_api_action(StructRNA *srna);
|
2009-12-04 02:32:34 +00:00
|
|
|
void RNA_api_armature_edit_bone(StructRNA *srna);
|
2010-09-17 16:45:42 +00:00
|
|
|
void RNA_api_bone(StructRNA *srna);
|
2011-09-29 08:23:52 +00:00
|
|
|
void RNA_api_camera(StructRNA *srna);
|
2009-11-06 11:09:04 +00:00
|
|
|
void RNA_api_drivers(StructRNA *srna);
|
2009-08-19 09:52:13 +00:00
|
|
|
void RNA_api_image(struct StructRNA *srna);
|
2009-12-10 18:28:22 +00:00
|
|
|
void RNA_api_operator(struct StructRNA *srna);
|
2009-12-30 22:14:32 +00:00
|
|
|
void RNA_api_macro(struct StructRNA *srna);
|
Key Configuration
Keymaps are now saveable and configurable from the user preferences, note
that editing one item in a keymap means the whole keymap is now defined by
the user and will not be updated by Blender, an option for syncing might be
added later. The outliner interface is still there, but I will probably
remove it.
There's actually 3 levels now:
* Default builtin key configuration.
* Key configuration loaded from .py file, for configs like Blender 2.4x
or other 3D applications.
* Keymaps edited by the user and saved in .B.blend. These can be saved
to .py files as well to make creating distributable configurations
easier.
Also, user preferences sections were reorganized a bit, now there is:
Interface, Editing, Input, Files and System.
Implementation notes:
* wmKeyConfig was added which represents a key configuration containing
keymaps.
* wmKeymapItem was renamed to wmKeyMapItem for consistency with wmKeyMap.
* Modal maps are not wrapped yet.
* User preferences DNA file reading did not support newdataadr() yet,
added this now for reading keymaps.
* Key configuration related settings are now RNA wrapped.
* is_property_set and is_property_hidden python methods were added.
2009-10-08 18:40:03 +00:00
|
|
|
void RNA_api_keyconfig(struct StructRNA *srna);
|
KEYMAP REFACTORING
Diff Keymaps
User edited keymaps now no longer override the builtin keymaps entirely, but
rather save only the difference and reapply those changes. This means they can
stay better in sync when the builtin keymaps change. The diff/patch algorithm
is not perfect, but better for the common case where only a few items are changed
rather than entire keymaps The main weakness is that if a builtin keymap item
changes, user modification of that item may need to be redone in some cases.
Keymap Editor
The most noticeable change here is that there is no longer an "Edit" button for
keymaps, all are editable immediately, but a "Restore" buttons shows for keymaps
and items that have been edited. Shortcuts for addons can also be edited in the
keymap editor.
Addons
Addons now should only modify the new addon keyconfiguration, the keymap items
there will be added to the builtin ones for handling events, and not get lost
when starting new files. Example code of register/unregister:
km = wm.keyconfigs.addon.keymaps.new("3D View", space_type="VIEW_3D")
km.keymap_items.new('my.operator', 'ESC', 'PRESS')
km = wm.keyconfigs.addon.keymaps["3D View"]
km.keymap_items.remove(km.keymap_items["my.operator"])
Compatibility
The changes made are not forward compatible, i.e. if you save user preferences
with newer versions, older versions will not have key configuration changes that
were made.
2011-08-05 20:45:26 +00:00
|
|
|
void RNA_api_keyconfigs(struct StructRNA *srna);
|
2009-08-25 04:05:37 +00:00
|
|
|
void RNA_api_keyingset(struct StructRNA *srna);
|
Key Configuration
Keymaps are now saveable and configurable from the user preferences, note
that editing one item in a keymap means the whole keymap is now defined by
the user and will not be updated by Blender, an option for syncing might be
added later. The outliner interface is still there, but I will probably
remove it.
There's actually 3 levels now:
* Default builtin key configuration.
* Key configuration loaded from .py file, for configs like Blender 2.4x
or other 3D applications.
* Keymaps edited by the user and saved in .B.blend. These can be saved
to .py files as well to make creating distributable configurations
easier.
Also, user preferences sections were reorganized a bit, now there is:
Interface, Editing, Input, Files and System.
Implementation notes:
* wmKeyConfig was added which represents a key configuration containing
keymaps.
* wmKeymapItem was renamed to wmKeyMapItem for consistency with wmKeyMap.
* Modal maps are not wrapped yet.
* User preferences DNA file reading did not support newdataadr() yet,
added this now for reading keymaps.
* Key configuration related settings are now RNA wrapped.
* is_property_set and is_property_hidden python methods were added.
2009-10-08 18:40:03 +00:00
|
|
|
void RNA_api_keymap(struct StructRNA *srna);
|
KEYMAP REFACTORING
Diff Keymaps
User edited keymaps now no longer override the builtin keymaps entirely, but
rather save only the difference and reapply those changes. This means they can
stay better in sync when the builtin keymaps change. The diff/patch algorithm
is not perfect, but better for the common case where only a few items are changed
rather than entire keymaps The main weakness is that if a builtin keymap item
changes, user modification of that item may need to be redone in some cases.
Keymap Editor
The most noticeable change here is that there is no longer an "Edit" button for
keymaps, all are editable immediately, but a "Restore" buttons shows for keymaps
and items that have been edited. Shortcuts for addons can also be edited in the
keymap editor.
Addons
Addons now should only modify the new addon keyconfiguration, the keymap items
there will be added to the builtin ones for handling events, and not get lost
when starting new files. Example code of register/unregister:
km = wm.keyconfigs.addon.keymaps.new("3D View", space_type="VIEW_3D")
km.keymap_items.new('my.operator', 'ESC', 'PRESS')
km = wm.keyconfigs.addon.keymaps["3D View"]
km.keymap_items.remove(km.keymap_items["my.operator"])
Compatibility
The changes made are not forward compatible, i.e. if you save user preferences
with newer versions, older versions will not have key configuration changes that
were made.
2011-08-05 20:45:26 +00:00
|
|
|
void RNA_api_keymaps(struct StructRNA *srna);
|
Keymap conflict detection operator.
Takes into account the hierarchical structures of keymaps as well as wildcards (KM_ANY) in event definitions, user remaps (emulate numpad, action/select mouse buttons, ...) and event values that overlap (click, press and release)
For now, doesn't do anything other than print conflicts in the console.
As a result, I cleaned up a lot of keymaps that had double definitions, moved some keymap items in more appropriate places, fixed wrong definitions and removed kmi that were added for testing a long long time ago.
Out of all the remaining conflicts, after removing obvious non-issues, here's what remains: http://www.pasteall.org/9898
2009-12-17 22:14:43 +00:00
|
|
|
void RNA_api_keymapitem(struct StructRNA *srna);
|
KEYMAP REFACTORING
Diff Keymaps
User edited keymaps now no longer override the builtin keymaps entirely, but
rather save only the difference and reapply those changes. This means they can
stay better in sync when the builtin keymaps change. The diff/patch algorithm
is not perfect, but better for the common case where only a few items are changed
rather than entire keymaps The main weakness is that if a builtin keymap item
changes, user modification of that item may need to be redone in some cases.
Keymap Editor
The most noticeable change here is that there is no longer an "Edit" button for
keymaps, all are editable immediately, but a "Restore" buttons shows for keymaps
and items that have been edited. Shortcuts for addons can also be edited in the
keymap editor.
Addons
Addons now should only modify the new addon keyconfiguration, the keymap items
there will be added to the builtin ones for handling events, and not get lost
when starting new files. Example code of register/unregister:
km = wm.keyconfigs.addon.keymaps.new("3D View", space_type="VIEW_3D")
km.keymap_items.new('my.operator', 'ESC', 'PRESS')
km = wm.keyconfigs.addon.keymaps["3D View"]
km.keymap_items.remove(km.keymap_items["my.operator"])
Compatibility
The changes made are not forward compatible, i.e. if you save user preferences
with newer versions, older versions will not have key configuration changes that
were made.
2011-08-05 20:45:26 +00:00
|
|
|
void RNA_api_keymapitems(struct StructRNA *srna);
|
2009-06-18 19:48:55 +00:00
|
|
|
void RNA_api_main(struct StructRNA *srna);
|
2009-08-19 09:52:13 +00:00
|
|
|
void RNA_api_material(StructRNA *srna);
|
2009-06-18 19:48:55 +00:00
|
|
|
void RNA_api_mesh(struct StructRNA *srna);
|
2013-02-11 10:56:21 +00:00
|
|
|
void RNA_api_meta(struct StructRNA *srna);
|
2009-06-18 19:48:55 +00:00
|
|
|
void RNA_api_object(struct StructRNA *srna);
|
2010-05-23 12:14:07 +00:00
|
|
|
void RNA_api_object_base(struct StructRNA *srna);
|
2012-09-24 22:39:45 +00:00
|
|
|
void RNA_api_pose(struct StructRNA *srna);
|
2009-11-11 19:58:30 +00:00
|
|
|
void RNA_api_pose_channel(struct StructRNA *srna);
|
2010-01-08 13:52:38 +00:00
|
|
|
void RNA_api_scene(struct StructRNA *srna);
|
|
|
|
void RNA_api_scene_render(struct StructRNA *srna);
|
2010-06-21 22:05:34 +00:00
|
|
|
void RNA_api_sequence_strip(StructRNA *srna);
|
2009-09-16 06:02:56 +00:00
|
|
|
void RNA_api_text(struct StructRNA *srna);
|
2009-04-08 16:40:46 +00:00
|
|
|
void RNA_api_ui_layout(struct StructRNA *srna);
|
2009-06-18 19:48:55 +00:00
|
|
|
void RNA_api_wm(struct StructRNA *srna);
|
2010-07-10 21:15:10 +00:00
|
|
|
void RNA_api_sensor(struct StructRNA *srna);
|
|
|
|
void RNA_api_controller(struct StructRNA *srna);
|
|
|
|
void RNA_api_actuator(struct StructRNA *srna);
|
2011-09-06 10:49:55 +00:00
|
|
|
void RNA_api_texture(struct StructRNA *srna);
|
2011-08-28 23:24:34 +00:00
|
|
|
void RNA_api_environment_map(struct StructRNA *srna);
|
2012-05-10 15:10:51 +00:00
|
|
|
void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_api_sequence_elements(BlenderRNA *brna, PropertyRNA *cprop);
|
2009-04-08 16:40:46 +00:00
|
|
|
|
2010-01-09 23:44:01 +00:00
|
|
|
/* main collection functions */
|
|
|
|
void RNA_def_main_cameras(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_scenes(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_node_groups(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_meshes(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_lamps(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_libraries(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_screens(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_window_managers(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_images(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_lattices(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_curves(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_metaballs(BlenderRNA *brna, PropertyRNA *cprop);
|
2010-05-08 07:25:26 +00:00
|
|
|
void RNA_def_main_fonts(BlenderRNA *brna, PropertyRNA *cprop);
|
2010-01-09 23:44:01 +00:00
|
|
|
void RNA_def_main_textures(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_brushes(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_worlds(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop);
|
2011-08-01 11:44:20 +00:00
|
|
|
void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop);
|
2010-01-09 23:44:01 +00:00
|
|
|
void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_armatures(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_actions(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_particles(BlenderRNA *brna, PropertyRNA *cprop);
|
|
|
|
void RNA_def_main_gpencil(BlenderRNA *brna, PropertyRNA *cprop);
|
2011-11-07 12:55:18 +00:00
|
|
|
void RNA_def_main_movieclips(BlenderRNA *brna, PropertyRNA *cprop);
|
2012-06-04 16:42:58 +00:00
|
|
|
void RNA_def_main_masks(BlenderRNA *brna, PropertyRNA *cprop);
|
2010-06-25 22:45:42 +00:00
|
|
|
void RNA_def_main_linestyles(BlenderRNA *brna, PropertyRNA *cprop);
|
2010-01-09 23:44:01 +00:00
|
|
|
|
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.
2008-11-21 02:23:46 +00:00
|
|
|
/* ID Properties */
|
2008-11-17 18:44:06 +00:00
|
|
|
|
2011-02-16 02:51:56 +00:00
|
|
|
extern StringPropertyRNA rna_PropertyGroupItem_string;
|
|
|
|
extern IntPropertyRNA rna_PropertyGroupItem_int;
|
|
|
|
extern IntPropertyRNA rna_PropertyGroupItem_int_array;
|
|
|
|
extern FloatPropertyRNA rna_PropertyGroupItem_float;
|
|
|
|
extern FloatPropertyRNA rna_PropertyGroupItem_float_array;
|
|
|
|
extern PointerPropertyRNA rna_PropertyGroupItem_group;
|
|
|
|
extern CollectionPropertyRNA rna_PropertyGroupItem_collection;
|
|
|
|
extern CollectionPropertyRNA rna_PropertyGroupItem_idp_array;
|
|
|
|
extern FloatPropertyRNA rna_PropertyGroupItem_double;
|
|
|
|
extern FloatPropertyRNA rna_PropertyGroupItem_double_array;
|
|
|
|
|
|
|
|
extern StructRNA RNA_PropertyGroupItem;
|
|
|
|
extern StructRNA RNA_PropertyGroup;
|
2008-11-14 14:34:19 +00:00
|
|
|
|
2008-11-17 18:44:06 +00:00
|
|
|
struct IDProperty *rna_idproperty_check(struct PropertyRNA **prop, struct PointerRNA *ptr);
|
|
|
|
|
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.
2008-11-21 02:23:46 +00:00
|
|
|
/* Builtin Property Callbacks */
|
|
|
|
|
|
|
|
void rna_builtin_properties_begin(struct CollectionPropertyIterator *iter, struct PointerRNA *ptr);
|
|
|
|
void rna_builtin_properties_next(struct CollectionPropertyIterator *iter);
|
2009-02-02 19:57:57 +00:00
|
|
|
PointerRNA rna_builtin_properties_get(struct CollectionPropertyIterator *iter);
|
|
|
|
PointerRNA rna_builtin_type_get(struct PointerRNA *ptr);
|
2011-01-05 14:49:08 +00:00
|
|
|
int rna_builtin_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr);
|
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.
2008-11-21 02:23:46 +00:00
|
|
|
|
|
|
|
/* Iterators */
|
|
|
|
|
2008-11-24 12:12:24 +00:00
|
|
|
typedef int (*IteratorSkipFunc)(struct CollectionPropertyIterator *iter, void *data);
|
|
|
|
|
2008-11-17 18:44:06 +00:00
|
|
|
typedef struct ListBaseIterator {
|
|
|
|
Link *link;
|
|
|
|
int flag;
|
2008-11-24 12:12:24 +00:00
|
|
|
IteratorSkipFunc skip;
|
2008-11-17 18:44:06 +00:00
|
|
|
} ListBaseIterator;
|
2008-10-31 23:50:02 +00:00
|
|
|
|
2008-11-24 12:12:24 +00:00
|
|
|
void rna_iterator_listbase_begin(struct CollectionPropertyIterator *iter, struct ListBase *lb, IteratorSkipFunc skip);
|
2008-10-31 23:50:02 +00:00
|
|
|
void rna_iterator_listbase_next(struct CollectionPropertyIterator *iter);
|
|
|
|
void *rna_iterator_listbase_get(struct CollectionPropertyIterator *iter);
|
2008-11-17 18:44:06 +00:00
|
|
|
void rna_iterator_listbase_end(struct CollectionPropertyIterator *iter);
|
2010-03-14 22:30:57 +00:00
|
|
|
PointerRNA rna_listbase_lookup_int(PointerRNA *ptr, StructRNA *type, struct ListBase *lb, int index);
|
2008-10-31 23:50:02 +00:00
|
|
|
|
2008-11-07 02:58:25 +00:00
|
|
|
typedef struct ArrayIterator {
|
|
|
|
char *ptr;
|
2012-05-10 15:22:29 +00:00
|
|
|
char *endptr; /* past the last valid pointer, only for comparisons, ignores skipped values */
|
2012-03-09 00:41:09 +00:00
|
|
|
void *free_ptr; /* will be freed if set */
|
2008-11-07 02:58:25 +00:00
|
|
|
int itemsize;
|
2011-01-12 06:16:15 +00:00
|
|
|
|
2012-09-28 06:45:20 +00:00
|
|
|
/* array length with no skip functions applied, take care not to compare against index from animsys
|
2012-03-18 09:27:36 +00:00
|
|
|
* or python indices */
|
2011-01-01 13:49:22 +00:00
|
|
|
int length;
|
2011-01-12 06:16:15 +00:00
|
|
|
|
|
|
|
/* optional skip function, when set the array as viewed by rna can contain only a subset of the members.
|
2011-01-18 01:58:19 +00:00
|
|
|
* this changes indices so quick array index lookups are not possible when skip function is used. */
|
2008-11-24 12:12:24 +00:00
|
|
|
IteratorSkipFunc skip;
|
2008-11-07 02:58:25 +00:00
|
|
|
} ArrayIterator;
|
|
|
|
|
2012-03-18 09:27:36 +00:00
|
|
|
void rna_iterator_array_begin(struct CollectionPropertyIterator *iter, void *ptr, int itemsize, int length,
|
|
|
|
int free_ptr, IteratorSkipFunc skip);
|
2008-10-31 23:50:02 +00:00
|
|
|
void rna_iterator_array_next(struct CollectionPropertyIterator *iter);
|
|
|
|
void *rna_iterator_array_get(struct CollectionPropertyIterator *iter);
|
2008-11-26 22:24:26 +00:00
|
|
|
void *rna_iterator_array_dereference_get(struct CollectionPropertyIterator *iter);
|
2008-10-31 23:50:02 +00:00
|
|
|
void rna_iterator_array_end(struct CollectionPropertyIterator *iter);
|
2010-03-14 22:30:57 +00:00
|
|
|
PointerRNA rna_array_lookup_int(PointerRNA *ptr, StructRNA *type, void *data, int itemsize, int length, int index);
|
2008-10-31 23:50:02 +00:00
|
|
|
|
|
|
|
/* Duplicated code since we can't link in blenlib */
|
|
|
|
|
|
|
|
void rna_addtail(struct ListBase *listbase, void *vlink);
|
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.
2008-11-21 02:23:46 +00:00
|
|
|
void rna_freelinkN(struct ListBase *listbase, void *vlink);
|
2008-10-31 23:50:02 +00:00
|
|
|
void rna_freelistN(struct ListBase *listbase);
|
2009-08-09 10:05:33 +00:00
|
|
|
PropertyDefRNA *rna_findlink(ListBase *listbase, const char *identifier);
|
2008-10-31 23:50:02 +00:00
|
|
|
|
2009-04-07 00:49:39 +00:00
|
|
|
StructDefRNA *rna_find_struct_def(StructRNA *srna);
|
|
|
|
FunctionDefRNA *rna_find_function_def(FunctionRNA *func);
|
|
|
|
PropertyDefRNA *rna_find_parameter_def(PropertyRNA *parm);
|
2009-07-02 03:32:57 +00:00
|
|
|
PropertyDefRNA *rna_find_struct_property_def(StructRNA *srna, PropertyRNA *prop);
|
2009-04-07 00:49:39 +00:00
|
|
|
|
2009-02-02 19:57:57 +00:00
|
|
|
/* Pointer Handling */
|
|
|
|
|
|
|
|
PointerRNA rna_pointer_inherit_refine(struct PointerRNA *ptr, struct StructRNA *type, void *data);
|
|
|
|
|
2009-04-07 00:49:39 +00:00
|
|
|
/* Functions */
|
|
|
|
|
|
|
|
int rna_parameter_size(struct PropertyRNA *parm);
|
|
|
|
|
2013-02-10 13:44:18 +00:00
|
|
|
struct Mesh *rna_Main_meshes_new_from_object(
|
|
|
|
struct Main *bmain, struct ReportList *reports, struct Scene *sce,
|
2013-05-05 05:56:41 +00:00
|
|
|
struct Object *ob, int apply_modifiers, int settings, int calc_tessface, int calc_undeformed);
|
2013-02-05 12:46:15 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
/* XXX, these should not need to be defined here~! */
|
2011-01-17 23:30:28 +00:00
|
|
|
struct MTex *rna_mtex_texture_slots_add(struct ID *self, struct bContext *C, struct ReportList *reports);
|
|
|
|
struct MTex *rna_mtex_texture_slots_create(struct ID *self, struct bContext *C, struct ReportList *reports, int index);
|
|
|
|
void rna_mtex_texture_slots_clear(struct ID *self, struct bContext *C, struct ReportList *reports, int index);
|
2010-06-21 22:05:34 +00:00
|
|
|
|
2011-10-01 17:54:33 +00:00
|
|
|
|
2011-10-01 21:09:42 +00:00
|
|
|
int rna_IDMaterials_assign_int(struct PointerRNA *ptr, int key, const struct PointerRNA *assign_ptr);
|
2011-10-01 17:54:33 +00:00
|
|
|
|
2012-09-23 18:50:56 +00:00
|
|
|
|
|
|
|
/* Internal functions that cycles uses so we need to declare (tsk tsk) */
|
|
|
|
void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values);
|
|
|
|
void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values);
|
|
|
|
|
2013-03-07 02:44:55 +00:00
|
|
|
#endif /* __RNA_INTERNAL_H__ */
|