From 4e235c184b534d31b651ac0449a1b55a000639fc Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 27 Apr 2011 14:36:02 +0000 Subject: Blender modifications for Cycles integration. Some notes about code status: * The Blender modifications were fairly quickly put together, much more code polish and work is needed to get this to a state where it can be committed to trunk. Files created with this version may not work in future versions. * Only simple path tracing is supported currently, but we intend to provide finer control, and more options where it makes sense. * For GPU rendering, only CUDA works currently. The intention is to have the same kernel code compile for C++/OpenCL/CUDA, some more work is needed to get OpenCL functional. * There are two shading backends: GPU compatible and Open Shading Language. Unfortunately, OSL only runs on the CPU currently, getting this to run on the GPU would be a major undertaking, and is unlikely to be supported soon. Additionally, it's not possible yet to write custom OSL shaders. * There is some code for adaptive subdivision and displacement, but it's far from finished. The intention is to eventually have a nice unified bump and displacement system. * The code currently has a number of fairly heavy dependencies: Boost, OpenImageIO, GLEW, GLUT, and optionally OSL, Partio. This makes it difficult to compile, we'll try to eliminate some, it may take a while before it becomes easy to compile this. --- source/blender/makesrna/RNA_access.h | 1494 ++++++++++---------- source/blender/makesrna/RNA_define.h | 2 +- source/blender/makesrna/RNA_types.h | 7 + source/blender/makesrna/intern/CMakeLists.txt | 1 + source/blender/makesrna/intern/makesrna.c | 218 +-- source/blender/makesrna/intern/rna_ID.c | 12 +- source/blender/makesrna/intern/rna_access.c | 19 +- source/blender/makesrna/intern/rna_animation.c | 2 +- source/blender/makesrna/intern/rna_define.c | 3 +- source/blender/makesrna/intern/rna_internal.h | 10 +- .../blender/makesrna/intern/rna_internal_types.h | 1 + source/blender/makesrna/intern/rna_lamp.c | 20 + source/blender/makesrna/intern/rna_main_api.c | 2 +- source/blender/makesrna/intern/rna_material.c | 2 +- source/blender/makesrna/intern/rna_nodetree.c | 375 ++++- .../blender/makesrna/intern/rna_nodetree_types.h | 37 +- source/blender/makesrna/intern/rna_object_api.c | 8 +- source/blender/makesrna/intern/rna_render.c | 79 +- source/blender/makesrna/intern/rna_scene.c | 9 +- source/blender/makesrna/intern/rna_space.c | 52 +- source/blender/makesrna/intern/rna_ui.c | 6 +- source/blender/makesrna/intern/rna_ui_api.c | 21 + source/blender/makesrna/intern/rna_wm.c | 9 +- source/blender/makesrna/intern/rna_world.c | 21 + 24 files changed, 1530 insertions(+), 880 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 2816a8717c1..df777db211d 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -31,7 +31,6 @@ #include -#include "DNA_listBase.h" #include "RNA_types.h" #ifdef __cplusplus @@ -40,6 +39,7 @@ extern "C" { struct bContext; struct ID; +struct ListBase; struct Main; struct ReportList; struct Scene; @@ -47,531 +47,530 @@ struct Scene; /* Types */ extern BlenderRNA BLENDER_RNA; -extern StructRNA RNA_Action; -extern StructRNA RNA_ActionConstraint; -extern StructRNA RNA_ActionGroup; -extern StructRNA RNA_Actuator; -extern StructRNA RNA_ActuatorSensor; -extern StructRNA RNA_Addon; -extern StructRNA RNA_AlwaysSensor; -extern StructRNA RNA_AndController; -extern StructRNA RNA_AnimData; -extern StructRNA RNA_AnimViz; -extern StructRNA RNA_AnimVizMotionPaths; -extern StructRNA RNA_AnimVizOnionSkinning; -extern StructRNA RNA_AnyType; -extern StructRNA RNA_Area; -extern StructRNA RNA_AreaLamp; -extern StructRNA RNA_Armature; -extern StructRNA RNA_ArmatureModifier; -extern StructRNA RNA_ArmatureSensor; -extern StructRNA RNA_ArrayModifier; -extern StructRNA RNA_BackgroundImage; -extern StructRNA RNA_BevelModifier; -extern StructRNA RNA_BezierSplinePoint; -extern StructRNA RNA_BlendData; -extern StructRNA RNA_BlendTexture; -extern StructRNA RNA_BlenderRNA; -extern StructRNA RNA_BoidRule; -extern StructRNA RNA_BoidRuleAverageSpeed; -extern StructRNA RNA_BoidRuleAvoid; -extern StructRNA RNA_BoidRuleAvoidCollision; -extern StructRNA RNA_BoidRuleFight; -extern StructRNA RNA_BoidRuleFollowLeader; -extern StructRNA RNA_BoidRuleGoal; -extern StructRNA RNA_BoidSettings; -extern StructRNA RNA_BoidState; -extern StructRNA RNA_Bone; -extern StructRNA RNA_BoneGroup; -extern StructRNA RNA_BooleanModifier; -extern StructRNA RNA_BooleanProperty; -extern StructRNA RNA_Brush; -extern StructRNA RNA_BrushTextureSlot; -extern StructRNA RNA_BuildModifier; -extern StructRNA RNA_Camera; -extern StructRNA RNA_CastModifier; -extern StructRNA RNA_ChildOfConstraint; -extern StructRNA RNA_ChildParticle; -extern StructRNA RNA_ClampToConstraint; -extern StructRNA RNA_ClothCollisionSettings; -extern StructRNA RNA_ClothModifier; -extern StructRNA RNA_ClothSettings; -extern StructRNA RNA_CloudsTexture; -extern StructRNA RNA_CollectionProperty; -extern StructRNA RNA_CollisionModifier; -extern StructRNA RNA_CollisionSensor; -extern StructRNA RNA_CollisionSettings; -extern StructRNA RNA_ColorRamp; -extern StructRNA RNA_ColorRampElement; -extern StructRNA RNA_ColorSequence; -extern StructRNA RNA_CompositorNode; -extern StructRNA RNA_CompositorNodeAlphaOver; -extern StructRNA RNA_CompositorNodeBilateralblur; -extern StructRNA RNA_CompositorNodeBlur; -extern StructRNA RNA_CompositorNodeBrightContrast; -extern StructRNA RNA_CompositorNodeChannelMatte; -extern StructRNA RNA_CompositorNodeChromaMatte; -extern StructRNA RNA_CompositorNodeColorMatte; -extern StructRNA RNA_CompositorNodeColorSpill; -extern StructRNA RNA_CompositorNodeCombHSVA; -extern StructRNA RNA_CompositorNodeCombRGBA; -extern StructRNA RNA_CompositorNodeCombYCCA; -extern StructRNA RNA_CompositorNodeCombYUVA; -extern StructRNA RNA_CompositorNodeComposite; -extern StructRNA RNA_CompositorNodeCrop; -extern StructRNA RNA_CompositorNodeCurveRGB; -extern StructRNA RNA_CompositorNodeCurveVec; -extern StructRNA RNA_CompositorNodeDBlur; -extern StructRNA RNA_CompositorNodeDefocus; -extern StructRNA RNA_CompositorNodeDiffMatte; -extern StructRNA RNA_CompositorNodeDilateErode; -extern StructRNA RNA_CompositorNodeDisplace; -extern StructRNA RNA_CompositorNodeDistanceMatte; -extern StructRNA RNA_CompositorNodeFilter; -extern StructRNA RNA_CompositorNodeFlip; -extern StructRNA RNA_CompositorNodeGamma; -extern StructRNA RNA_CompositorNodeGlare; -extern StructRNA RNA_CompositorNodeHueSat; -extern StructRNA RNA_CompositorNodeIDMask; -extern StructRNA RNA_CompositorNodeImage; -extern StructRNA RNA_CompositorNodeInvert; -extern StructRNA RNA_CompositorNodeLensdist; -extern StructRNA RNA_CompositorNodeLevels; -extern StructRNA RNA_CompositorNodeLumaMatte; -extern StructRNA RNA_CompositorNodeMapUV; -extern StructRNA RNA_CompositorNodeMapValue; -extern StructRNA RNA_CompositorNodeMath; -extern StructRNA RNA_CompositorNodeMixRGB; -extern StructRNA RNA_CompositorNodeNormal; -extern StructRNA RNA_CompositorNodeNormalize; -extern StructRNA RNA_CompositorNodeOutputFile; -extern StructRNA RNA_CompositorNodePremulKey; -extern StructRNA RNA_CompositorNodeRGB; -extern StructRNA RNA_CompositorNodeRGBToBW; -extern StructRNA RNA_CompositorNodeRLayers; -extern StructRNA RNA_CompositorNodeRotate; -extern StructRNA RNA_CompositorNodeScale; -extern StructRNA RNA_CompositorNodeSepHSVA; -extern StructRNA RNA_CompositorNodeSepRGBA; -extern StructRNA RNA_CompositorNodeSepYCCA; -extern StructRNA RNA_CompositorNodeSepYUVA; -extern StructRNA RNA_CompositorNodeSetAlpha; -extern StructRNA RNA_CompositorNodeSplitViewer; -extern StructRNA RNA_CompositorNodeTexture; -extern StructRNA RNA_CompositorNodeTime; -extern StructRNA RNA_CompositorNodeTonemap; -extern StructRNA RNA_CompositorNodeTranslate; -extern StructRNA RNA_CompositorNodeTree; -extern StructRNA RNA_CompositorNodeValToRGB; -extern StructRNA RNA_CompositorNodeValue; -extern StructRNA RNA_CompositorNodeVecBlur; -extern StructRNA RNA_CompositorNodeViewer; -extern StructRNA RNA_CompositorNodeZcombine; -extern StructRNA RNA_ConsoleLine; -extern StructRNA RNA_Constraint; -extern StructRNA RNA_ConstraintTarget; -extern StructRNA RNA_Context; -extern StructRNA RNA_ControlFluidSettings; -extern StructRNA RNA_Controller; -extern StructRNA RNA_CopyLocationConstraint; -extern StructRNA RNA_CopyRotationConstraint; -extern StructRNA RNA_CopyScaleConstraint; -extern StructRNA RNA_CopyTransformsConstraint; -extern StructRNA RNA_Curve; -extern StructRNA RNA_CurveMap; -extern StructRNA RNA_CurveMapPoint; -extern StructRNA RNA_CurveMapping; -extern StructRNA RNA_CurveModifier; -extern StructRNA RNA_CurvePoint; -extern StructRNA RNA_DampedTrackConstraint; -extern StructRNA RNA_DecimateModifier; -extern StructRNA RNA_DelaySensor; -extern StructRNA RNA_DisplaceModifier; -extern StructRNA RNA_DistortedNoiseTexture; -extern StructRNA RNA_DomainFluidSettings; -extern StructRNA RNA_Driver; -extern StructRNA RNA_DriverTarget; -extern StructRNA RNA_DriverVariable; -extern StructRNA RNA_DupliObject; -extern StructRNA RNA_EdgeSplitModifier; -extern StructRNA RNA_EditBone; -extern StructRNA RNA_EffectSequence; -extern StructRNA RNA_EffectorWeights; -extern StructRNA RNA_EnumProperty; -extern StructRNA RNA_EnumPropertyItem; -extern StructRNA RNA_EnvironmentMap; -extern StructRNA RNA_EnvironmentMapTexture; -extern StructRNA RNA_Event; -extern StructRNA RNA_ExplodeModifier; -extern StructRNA RNA_ExpressionController; -extern StructRNA RNA_FCurve; -extern StructRNA RNA_FCurveSample; -extern StructRNA RNA_FModifier; -extern StructRNA RNA_FModifierCycles; -extern StructRNA RNA_FModifierEnvelope; -extern StructRNA RNA_FModifierEnvelopeControlPoint; -extern StructRNA RNA_FModifierFunctionGenerator; -extern StructRNA RNA_FModifierGenerator; -extern StructRNA RNA_FModifierLimits; -extern StructRNA RNA_FModifierNoise; -extern StructRNA RNA_FModifierPython; -extern StructRNA RNA_FModifierStepped; -extern StructRNA RNA_FieldSettings; -extern StructRNA RNA_FileSelectParams; -extern StructRNA RNA_FloatProperty; -extern StructRNA RNA_FloorConstraint; -extern StructRNA RNA_FluidFluidSettings; -extern StructRNA RNA_FluidSettings; -extern StructRNA RNA_FluidSimulationModifier; -extern StructRNA RNA_FollowPathConstraint; -extern StructRNA RNA_Function; -extern StructRNA RNA_GPencilFrame; -extern StructRNA RNA_GPencilLayer; -extern StructRNA RNA_GPencilStroke; -extern StructRNA RNA_GPencilStrokePoint; -extern StructRNA RNA_GameBooleanProperty; -extern StructRNA RNA_GameFloatProperty; -extern StructRNA RNA_GameIntProperty; -extern StructRNA RNA_GameObjectSettings; -extern StructRNA RNA_GameProperty; -extern StructRNA RNA_GameSoftBodySettings; -extern StructRNA RNA_GameStringProperty; -extern StructRNA RNA_GameTimerProperty; -extern StructRNA RNA_GlowSequence; -extern StructRNA RNA_GreasePencil; -extern StructRNA RNA_Group; -extern StructRNA RNA_Header; -extern StructRNA RNA_HemiLamp; -extern StructRNA RNA_Histogram; -extern StructRNA RNA_HookModifier; -extern StructRNA RNA_ID; -extern StructRNA RNA_IKParam; -extern StructRNA RNA_Image; -extern StructRNA RNA_ImagePaint; -extern StructRNA RNA_ImageSequence; -extern StructRNA RNA_ImageTexture; -extern StructRNA RNA_ImageUser; -extern StructRNA RNA_InflowFluidSettings; -extern StructRNA RNA_IntProperty; -extern StructRNA RNA_Itasc; -extern StructRNA RNA_JoystickSensor; -extern StructRNA RNA_Key; -extern StructRNA RNA_KeyConfig; -extern StructRNA RNA_KeyMap; -extern StructRNA RNA_KeyMapItem; -extern StructRNA RNA_KeyboardSensor; -extern StructRNA RNA_Keyframe; -extern StructRNA RNA_KeyingSet; -extern StructRNA RNA_KeyingSetInfo; -extern StructRNA RNA_KeyingSetPath; -extern StructRNA RNA_KinematicConstraint; -extern StructRNA RNA_Lamp; -extern StructRNA RNA_LampSkySettings; -extern StructRNA RNA_LampTextureSlot; -extern StructRNA RNA_Lattice; -extern StructRNA RNA_LatticeModifier; -extern StructRNA RNA_LatticePoint; -extern StructRNA RNA_Library; -extern StructRNA RNA_LimitDistanceConstraint; -extern StructRNA RNA_LimitLocationConstraint; -extern StructRNA RNA_LimitRotationConstraint; -extern StructRNA RNA_LimitScaleConstraint; -extern StructRNA RNA_LockedTrackConstraint; -extern StructRNA RNA_Macro; -extern StructRNA RNA_MagicTexture; -extern StructRNA RNA_MarbleTexture; -extern StructRNA RNA_MaskModifier; -extern StructRNA RNA_Material; -extern StructRNA RNA_MaterialHalo; -extern StructRNA RNA_MaterialPhysics; -extern StructRNA RNA_MaterialRaytraceMirror; -extern StructRNA RNA_MaterialRaytraceTransparency; -extern StructRNA RNA_MaterialSlot; -extern StructRNA RNA_MaterialStrand; -extern StructRNA RNA_MaterialSubsurfaceScattering; -extern StructRNA RNA_MaterialTextureSlot; -extern StructRNA RNA_MaterialVolume; -extern StructRNA RNA_Menu; -extern StructRNA RNA_Mesh; -extern StructRNA RNA_MeshColor; -extern StructRNA RNA_MeshColorLayer; -extern StructRNA RNA_MeshDeformModifier; -extern StructRNA RNA_MeshEdge; -extern StructRNA RNA_MeshFace; -extern StructRNA RNA_MeshFloatProperty; -extern StructRNA RNA_MeshFloatPropertyLayer; -extern StructRNA RNA_MeshIntProperty; -extern StructRNA RNA_MeshIntPropertyLayer; -extern StructRNA RNA_MeshSticky; -extern StructRNA RNA_MeshStringProperty; -extern StructRNA RNA_MeshStringPropertyLayer; -extern StructRNA RNA_MeshTextureFace; -extern StructRNA RNA_MeshTextureFaceLayer; -extern StructRNA RNA_MeshVertex; -extern StructRNA RNA_MessageSensor; -extern StructRNA RNA_MetaBall; -extern StructRNA RNA_MetaElement; -extern StructRNA RNA_MetaSequence; -extern StructRNA RNA_MirrorModifier; -extern StructRNA RNA_Modifier; -extern StructRNA RNA_MotionPath; -extern StructRNA RNA_MotionPathVert; -extern StructRNA RNA_MouseSensor; -extern StructRNA RNA_MovieSequence; -extern StructRNA RNA_MulticamSequence; -extern StructRNA RNA_MultiresModifier; -extern StructRNA RNA_MusgraveTexture; -extern StructRNA RNA_NandController; -extern StructRNA RNA_NearSensor; -extern StructRNA RNA_NlaStrip; -extern StructRNA RNA_NlaTrack; -extern StructRNA RNA_Node; -extern StructRNA RNA_NodeGroup; -extern StructRNA RNA_NodeLink; -extern StructRNA RNA_NodeSocket; -extern StructRNA RNA_NodeTree; -extern StructRNA RNA_NoiseTexture; -extern StructRNA RNA_NorController; -extern StructRNA RNA_Object; -extern StructRNA RNA_ObjectBase; -extern StructRNA RNA_ObstacleFluidSettings; -extern StructRNA RNA_Operator; -extern StructRNA RNA_OperatorFileListElement; -extern StructRNA RNA_OperatorMousePath; -extern StructRNA RNA_OperatorProperties; -extern StructRNA RNA_OperatorStrokeElement; -extern StructRNA RNA_OperatorTypeMacro; -extern StructRNA RNA_OrController; -extern StructRNA RNA_OutflowFluidSettings; -extern StructRNA RNA_PackedFile; -extern StructRNA RNA_Paint; -extern StructRNA RNA_Panel; -extern StructRNA RNA_Particle; -extern StructRNA RNA_ParticleBrush; -extern StructRNA RNA_ParticleDupliWeight; -extern StructRNA RNA_ParticleEdit; -extern StructRNA RNA_ParticleFluidSettings; -extern StructRNA RNA_ParticleHairKey; -extern StructRNA RNA_ParticleInstanceModifier; -extern StructRNA RNA_ParticleKey; -extern StructRNA RNA_ParticleSettings; -extern StructRNA RNA_ParticleSettingsTextureSlot; -extern StructRNA RNA_ParticleSystem; -extern StructRNA RNA_ParticleSystemModifier; -extern StructRNA RNA_ParticleTarget; -extern StructRNA RNA_PivotConstraint; -extern StructRNA RNA_PluginSequence; -extern StructRNA RNA_PluginTexture; -extern StructRNA RNA_PointCache; -extern StructRNA RNA_PointDensity; -extern StructRNA RNA_PointDensityTexture; -extern StructRNA RNA_PointLamp; -extern StructRNA RNA_PointerProperty; -extern StructRNA RNA_Pose; -extern StructRNA RNA_PoseBone; -extern StructRNA RNA_Property; -extern StructRNA RNA_PropertyGroup; -extern StructRNA RNA_PropertyGroupItem; -extern StructRNA RNA_PropertySensor; -extern StructRNA RNA_PythonConstraint; -extern StructRNA RNA_PythonController; -extern StructRNA RNA_RGBANodeSocket; -extern StructRNA RNA_RadarSensor; -extern StructRNA RNA_RandomSensor; -extern StructRNA RNA_RaySensor; -extern StructRNA RNA_Region; -extern StructRNA RNA_RenderEngine; -extern StructRNA RNA_RenderLayer; -extern StructRNA RNA_RenderPass; -extern StructRNA RNA_RenderResult; -extern StructRNA RNA_RenderSettings; -extern StructRNA RNA_RigidBodyJointConstraint; -extern StructRNA RNA_SPHFluidSettings; -extern StructRNA RNA_Scene; -extern StructRNA RNA_SceneGameData; -extern StructRNA RNA_SceneRenderLayer; -extern StructRNA RNA_SceneSequence; -extern StructRNA RNA_Scopes; -extern StructRNA RNA_Screen; -extern StructRNA RNA_ScrewModifier; -extern StructRNA RNA_Sculpt; -extern StructRNA RNA_Sensor; -extern StructRNA RNA_Sequence; -extern StructRNA RNA_SequenceColorBalance; -extern StructRNA RNA_SequenceCrop; -extern StructRNA RNA_SequenceEditor; -extern StructRNA RNA_SequenceElement; -extern StructRNA RNA_SequenceProxy; -extern StructRNA RNA_SequenceTransform; -extern StructRNA RNA_ShaderNode; -extern StructRNA RNA_ShaderNodeCameraData; -extern StructRNA RNA_ShaderNodeCombineRGB; -extern StructRNA RNA_ShaderNodeExtendedMaterial; -extern StructRNA RNA_ShaderNodeGeometry; -extern StructRNA RNA_ShaderNodeHueSaturation; -extern StructRNA RNA_ShaderNodeInvert; -extern StructRNA RNA_ShaderNodeMapping; -extern StructRNA RNA_ShaderNodeMaterial; -extern StructRNA RNA_ShaderNodeMath; -extern StructRNA RNA_ShaderNodeMixRGB; -extern StructRNA RNA_ShaderNodeNormal; -extern StructRNA RNA_ShaderNodeOutput; -extern StructRNA RNA_ShaderNodeRGB; -extern StructRNA RNA_ShaderNodeRGBCurve; -extern StructRNA RNA_ShaderNodeRGBToBW; -extern StructRNA RNA_ShaderNodeSeparateRGB; -extern StructRNA RNA_ShaderNodeSqueeze; -extern StructRNA RNA_ShaderNodeTexture; -extern StructRNA RNA_ShaderNodeTree; -extern StructRNA RNA_ShaderNodeValToRGB; -extern StructRNA RNA_ShaderNodeValue; -extern StructRNA RNA_ShaderNodeVectorCurve; -extern StructRNA RNA_ShaderNodeVectorMath; -extern StructRNA RNA_ShapeKey; -extern StructRNA RNA_ShapeKeyBezierPoint; -extern StructRNA RNA_ShapeKeyCurvePoint; -extern StructRNA RNA_ShapeKeyPoint; -extern StructRNA RNA_ShrinkwrapConstraint; -extern StructRNA RNA_ShrinkwrapModifier; -extern StructRNA RNA_SimpleDeformModifier; -extern StructRNA RNA_SmokeCollSettings; -extern StructRNA RNA_SmokeDomainSettings; -extern StructRNA RNA_SmokeFlowSettings; -extern StructRNA RNA_SmokeModifier; -extern StructRNA RNA_SmoothModifier; -extern StructRNA RNA_SoftBodyModifier; -extern StructRNA RNA_SoftBodySettings; -extern StructRNA RNA_SolidifyModifier; -extern StructRNA RNA_Sound; -extern StructRNA RNA_SoundSequence; -extern StructRNA RNA_Space; -extern StructRNA RNA_SpaceConsole; -extern StructRNA RNA_SpaceDopeSheetEditor; -extern StructRNA RNA_SpaceFileBrowser; -extern StructRNA RNA_SpaceGraphEditor; -extern StructRNA RNA_SpaceImageEditor; -extern StructRNA RNA_SpaceInfo; -extern StructRNA RNA_SpaceLogicEditor; -extern StructRNA RNA_SpaceNLA; -extern StructRNA RNA_SpaceNodeEditor; -extern StructRNA RNA_SpaceOutliner; -extern StructRNA RNA_SpaceProperties; -extern StructRNA RNA_SpaceSequenceEditor; -extern StructRNA RNA_SpaceTextEditor; -extern StructRNA RNA_SpaceTimeline; -extern StructRNA RNA_SpaceUVEditor; -extern StructRNA RNA_SpaceUserPreferences; -extern StructRNA RNA_SpaceView3D; -extern StructRNA RNA_SpeedControlSequence; -extern StructRNA RNA_Spline; -extern StructRNA RNA_SplineIKConstraint; -extern StructRNA RNA_SpotLamp; -extern StructRNA RNA_StretchToConstraint; -extern StructRNA RNA_StringProperty; -extern StructRNA RNA_Struct; -extern StructRNA RNA_StucciTexture; -extern StructRNA RNA_SubsurfModifier; -extern StructRNA RNA_SunLamp; -extern StructRNA RNA_SurfaceCurve; -extern StructRNA RNA_SurfaceModifier; -extern StructRNA RNA_TexMapping; -extern StructRNA RNA_Text; -extern StructRNA RNA_TextBox; -extern StructRNA RNA_TextCharacterFormat; -extern StructRNA RNA_TextCurve; -extern StructRNA RNA_TextLine; -extern StructRNA RNA_TextMarker; -extern StructRNA RNA_Texture; -extern StructRNA RNA_TextureNode; -extern StructRNA RNA_TextureNodeBricks; -extern StructRNA RNA_TextureNodeChecker; -extern StructRNA RNA_TextureNodeCompose; -extern StructRNA RNA_TextureNodeCoordinates; -extern StructRNA RNA_TextureNodeCurveRGB; -extern StructRNA RNA_TextureNodeCurveTime; -extern StructRNA RNA_TextureNodeDecompose; -extern StructRNA RNA_TextureNodeDistance; -extern StructRNA RNA_TextureNodeHueSaturation; -extern StructRNA RNA_TextureNodeImage; -extern StructRNA RNA_TextureNodeInvert; -extern StructRNA RNA_TextureNodeMath; -extern StructRNA RNA_TextureNodeMixRGB; -extern StructRNA RNA_TextureNodeOutput; -extern StructRNA RNA_TextureNodeRGBToBW; -extern StructRNA RNA_TextureNodeRotate; -extern StructRNA RNA_TextureNodeScale; -extern StructRNA RNA_TextureNodeTexture; -extern StructRNA RNA_TextureNodeTranslate; -extern StructRNA RNA_TextureNodeTree; -extern StructRNA RNA_TextureNodeValToNor; -extern StructRNA RNA_TextureNodeValToRGB; -extern StructRNA RNA_TextureNodeViewer; -extern StructRNA RNA_TextureSlot; -extern StructRNA RNA_Theme; -extern StructRNA RNA_ThemeAudioWindow; -extern StructRNA RNA_ThemeBoneColorSet; -extern StructRNA RNA_ThemeConsole; -extern StructRNA RNA_ThemeDopeSheet; -extern StructRNA RNA_ThemeFileBrowser; -extern StructRNA RNA_ThemeFontStyle; -extern StructRNA RNA_ThemeGraphEditor; -extern StructRNA RNA_ThemeImageEditor; -extern StructRNA RNA_ThemeInfo; -extern StructRNA RNA_ThemeLogicEditor; -extern StructRNA RNA_ThemeNLAEditor; -extern StructRNA RNA_ThemeNodeEditor; -extern StructRNA RNA_ThemeOutliner; -extern StructRNA RNA_ThemeProperties; -extern StructRNA RNA_ThemeSequenceEditor; -extern StructRNA RNA_ThemeStyle; -extern StructRNA RNA_ThemeTextEditor; -extern StructRNA RNA_ThemeTimeline; -extern StructRNA RNA_ThemeUserInterface; -extern StructRNA RNA_ThemeUserPreferences; -extern StructRNA RNA_ThemeView3D; -extern StructRNA RNA_ThemeWidgetColors; -extern StructRNA RNA_ThemeWidgetStateColors; -extern StructRNA RNA_TimelineMarker; -extern StructRNA RNA_Timer; -extern StructRNA RNA_ToolSettings; -extern StructRNA RNA_TouchSensor; -extern StructRNA RNA_TrackToConstraint; -extern StructRNA RNA_TransformConstraint; -extern StructRNA RNA_TransformSequence; -extern StructRNA RNA_UILayout; -extern StructRNA RNA_UIListItem; -extern StructRNA RNA_UVProjectModifier; -extern StructRNA RNA_UVProjector; -extern StructRNA RNA_UnitSettings; -extern StructRNA RNA_UnknownType; -extern StructRNA RNA_UserPreferences; -extern StructRNA RNA_UserPreferencesEdit; -extern StructRNA RNA_UserPreferencesFilePaths; -extern StructRNA RNA_UserPreferencesSystem; -extern StructRNA RNA_UserPreferencesView; -extern StructRNA RNA_UserSolidLight; -extern StructRNA RNA_ValueNodeSocket; -extern StructRNA RNA_VectorFont; -extern StructRNA RNA_VectorNodeSocket; -extern StructRNA RNA_VertexGroup; -extern StructRNA RNA_VertexGroupElement; -extern StructRNA RNA_VertexPaint; -extern StructRNA RNA_VoronoiTexture; -extern StructRNA RNA_VoxelData; -extern StructRNA RNA_VoxelDataTexture; -extern StructRNA RNA_WaveModifier; -extern StructRNA RNA_Window; -extern StructRNA RNA_WindowManager; -extern StructRNA RNA_WipeSequence; -extern StructRNA RNA_WoodTexture; -extern StructRNA RNA_World; -extern StructRNA RNA_WorldAmbientOcclusion; -extern StructRNA RNA_WorldMistSettings; -extern StructRNA RNA_WorldStarsSettings; -extern StructRNA RNA_WorldTextureSlot; -extern StructRNA RNA_XnorController; -extern StructRNA RNA_XorController; - +extern LIBEXPORT StructRNA RNA_Action; +extern LIBEXPORT StructRNA RNA_ActionConstraint; +extern LIBEXPORT StructRNA RNA_ActionGroup; +extern LIBEXPORT StructRNA RNA_Actuator; +extern LIBEXPORT StructRNA RNA_ActuatorSensor; +extern LIBEXPORT StructRNA RNA_Addon; +extern LIBEXPORT StructRNA RNA_AlwaysSensor; +extern LIBEXPORT StructRNA RNA_AndController; +extern LIBEXPORT StructRNA RNA_AnimData; +extern LIBEXPORT StructRNA RNA_AnimViz; +extern LIBEXPORT StructRNA RNA_AnimVizMotionPaths; +extern LIBEXPORT StructRNA RNA_AnimVizOnionSkinning; +extern LIBEXPORT StructRNA RNA_AnyType; +extern LIBEXPORT StructRNA RNA_Area; +extern LIBEXPORT StructRNA RNA_AreaLamp; +extern LIBEXPORT StructRNA RNA_Armature; +extern LIBEXPORT StructRNA RNA_ArmatureModifier; +extern LIBEXPORT StructRNA RNA_ArmatureSensor; +extern LIBEXPORT StructRNA RNA_ArrayModifier; +extern LIBEXPORT StructRNA RNA_BackgroundImage; +extern LIBEXPORT StructRNA RNA_BevelModifier; +extern LIBEXPORT StructRNA RNA_BezierSplinePoint; +extern LIBEXPORT StructRNA RNA_BlendData; +extern LIBEXPORT StructRNA RNA_BlendTexture; +extern LIBEXPORT StructRNA RNA_BlenderRNA; +extern LIBEXPORT StructRNA RNA_BoidRule; +extern LIBEXPORT StructRNA RNA_BoidRuleAverageSpeed; +extern LIBEXPORT StructRNA RNA_BoidRuleAvoid; +extern LIBEXPORT StructRNA RNA_BoidRuleAvoidCollision; +extern LIBEXPORT StructRNA RNA_BoidRuleFight; +extern LIBEXPORT StructRNA RNA_BoidRuleFollowLeader; +extern LIBEXPORT StructRNA RNA_BoidRuleGoal; +extern LIBEXPORT StructRNA RNA_BoidSettings; +extern LIBEXPORT StructRNA RNA_BoidState; +extern LIBEXPORT StructRNA RNA_Bone; +extern LIBEXPORT StructRNA RNA_BoneGroup; +extern LIBEXPORT StructRNA RNA_BooleanModifier; +extern LIBEXPORT StructRNA RNA_BooleanProperty; +extern LIBEXPORT StructRNA RNA_Brush; +extern LIBEXPORT StructRNA RNA_BrushTextureSlot; +extern LIBEXPORT StructRNA RNA_BuildModifier; +extern LIBEXPORT StructRNA RNA_Camera; +extern LIBEXPORT StructRNA RNA_CastModifier; +extern LIBEXPORT StructRNA RNA_ChildOfConstraint; +extern LIBEXPORT StructRNA RNA_ChildParticle; +extern LIBEXPORT StructRNA RNA_ClampToConstraint; +extern LIBEXPORT StructRNA RNA_ClothCollisionSettings; +extern LIBEXPORT StructRNA RNA_ClothModifier; +extern LIBEXPORT StructRNA RNA_ClothSettings; +extern LIBEXPORT StructRNA RNA_CloudsTexture; +extern LIBEXPORT StructRNA RNA_CollectionProperty; +extern LIBEXPORT StructRNA RNA_CollisionModifier; +extern LIBEXPORT StructRNA RNA_CollisionSensor; +extern LIBEXPORT StructRNA RNA_CollisionSettings; +extern LIBEXPORT StructRNA RNA_ColorRamp; +extern LIBEXPORT StructRNA RNA_ColorRampElement; +extern LIBEXPORT StructRNA RNA_ColorSequence; +extern LIBEXPORT StructRNA RNA_CompositorNode; +extern LIBEXPORT StructRNA RNA_CompositorNodeAlphaOver; +extern LIBEXPORT StructRNA RNA_CompositorNodeBilateralblur; +extern LIBEXPORT StructRNA RNA_CompositorNodeBlur; +extern LIBEXPORT StructRNA RNA_CompositorNodeBrightContrast; +extern LIBEXPORT StructRNA RNA_CompositorNodeChannelMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeChromaMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeColorMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeColorSpill; +extern LIBEXPORT StructRNA RNA_CompositorNodeCombHSVA; +extern LIBEXPORT StructRNA RNA_CompositorNodeCombRGBA; +extern LIBEXPORT StructRNA RNA_CompositorNodeCombYCCA; +extern LIBEXPORT StructRNA RNA_CompositorNodeCombYUVA; +extern LIBEXPORT StructRNA RNA_CompositorNodeComposite; +extern LIBEXPORT StructRNA RNA_CompositorNodeCrop; +extern LIBEXPORT StructRNA RNA_CompositorNodeCurveRGB; +extern LIBEXPORT StructRNA RNA_CompositorNodeCurveVec; +extern LIBEXPORT StructRNA RNA_CompositorNodeDBlur; +extern LIBEXPORT StructRNA RNA_CompositorNodeDefocus; +extern LIBEXPORT StructRNA RNA_CompositorNodeDiffMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeDilateErode; +extern LIBEXPORT StructRNA RNA_CompositorNodeDisplace; +extern LIBEXPORT StructRNA RNA_CompositorNodeDistanceMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeFilter; +extern LIBEXPORT StructRNA RNA_CompositorNodeFlip; +extern LIBEXPORT StructRNA RNA_CompositorNodeGamma; +extern LIBEXPORT StructRNA RNA_CompositorNodeGlare; +extern LIBEXPORT StructRNA RNA_CompositorNodeHueSat; +extern LIBEXPORT StructRNA RNA_CompositorNodeIDMask; +extern LIBEXPORT StructRNA RNA_CompositorNodeImage; +extern LIBEXPORT StructRNA RNA_CompositorNodeInvert; +extern LIBEXPORT StructRNA RNA_CompositorNodeLensdist; +extern LIBEXPORT StructRNA RNA_CompositorNodeLevels; +extern LIBEXPORT StructRNA RNA_CompositorNodeLumaMatte; +extern LIBEXPORT StructRNA RNA_CompositorNodeMapUV; +extern LIBEXPORT StructRNA RNA_CompositorNodeMapValue; +extern LIBEXPORT StructRNA RNA_CompositorNodeMath; +extern LIBEXPORT StructRNA RNA_CompositorNodeMixRGB; +extern LIBEXPORT StructRNA RNA_CompositorNodeNormal; +extern LIBEXPORT StructRNA RNA_CompositorNodeNormalize; +extern LIBEXPORT StructRNA RNA_CompositorNodeOutputFile; +extern LIBEXPORT StructRNA RNA_CompositorNodePremulKey; +extern LIBEXPORT StructRNA RNA_CompositorNodeRGB; +extern LIBEXPORT StructRNA RNA_CompositorNodeRGBToBW; +extern LIBEXPORT StructRNA RNA_CompositorNodeRLayers; +extern LIBEXPORT StructRNA RNA_CompositorNodeRotate; +extern LIBEXPORT StructRNA RNA_CompositorNodeScale; +extern LIBEXPORT StructRNA RNA_CompositorNodeSepHSVA; +extern LIBEXPORT StructRNA RNA_CompositorNodeSepRGBA; +extern LIBEXPORT StructRNA RNA_CompositorNodeSepYCCA; +extern LIBEXPORT StructRNA RNA_CompositorNodeSepYUVA; +extern LIBEXPORT StructRNA RNA_CompositorNodeSetAlpha; +extern LIBEXPORT StructRNA RNA_CompositorNodeSplitViewer; +extern LIBEXPORT StructRNA RNA_CompositorNodeTexture; +extern LIBEXPORT StructRNA RNA_CompositorNodeTime; +extern LIBEXPORT StructRNA RNA_CompositorNodeTonemap; +extern LIBEXPORT StructRNA RNA_CompositorNodeTranslate; +extern LIBEXPORT StructRNA RNA_CompositorNodeTree; +extern LIBEXPORT StructRNA RNA_CompositorNodeValToRGB; +extern LIBEXPORT StructRNA RNA_CompositorNodeValue; +extern LIBEXPORT StructRNA RNA_CompositorNodeVecBlur; +extern LIBEXPORT StructRNA RNA_CompositorNodeViewer; +extern LIBEXPORT StructRNA RNA_CompositorNodeZcombine; +extern LIBEXPORT StructRNA RNA_ConsoleLine; +extern LIBEXPORT StructRNA RNA_Constraint; +extern LIBEXPORT StructRNA RNA_ConstraintTarget; +extern LIBEXPORT StructRNA RNA_Context; +extern LIBEXPORT StructRNA RNA_ControlFluidSettings; +extern LIBEXPORT StructRNA RNA_Controller; +extern LIBEXPORT StructRNA RNA_CopyLocationConstraint; +extern LIBEXPORT StructRNA RNA_CopyRotationConstraint; +extern LIBEXPORT StructRNA RNA_CopyScaleConstraint; +extern LIBEXPORT StructRNA RNA_CopyTransformsConstraint; +extern LIBEXPORT StructRNA RNA_Curve; +extern LIBEXPORT StructRNA RNA_CurveMap; +extern LIBEXPORT StructRNA RNA_CurveMapPoint; +extern LIBEXPORT StructRNA RNA_CurveMapping; +extern LIBEXPORT StructRNA RNA_CurveModifier; +extern LIBEXPORT StructRNA RNA_CurvePoint; +extern LIBEXPORT StructRNA RNA_DampedTrackConstraint; +extern LIBEXPORT StructRNA RNA_DecimateModifier; +extern LIBEXPORT StructRNA RNA_DelaySensor; +extern LIBEXPORT StructRNA RNA_DisplaceModifier; +extern LIBEXPORT StructRNA RNA_DistortedNoiseTexture; +extern LIBEXPORT StructRNA RNA_DomainFluidSettings; +extern LIBEXPORT StructRNA RNA_Driver; +extern LIBEXPORT StructRNA RNA_DriverTarget; +extern LIBEXPORT StructRNA RNA_DriverVariable; +extern LIBEXPORT StructRNA RNA_DupliObject; +extern LIBEXPORT StructRNA RNA_EdgeSplitModifier; +extern LIBEXPORT StructRNA RNA_EditBone; +extern LIBEXPORT StructRNA RNA_EffectSequence; +extern LIBEXPORT StructRNA RNA_EffectorWeights; +extern LIBEXPORT StructRNA RNA_EnumProperty; +extern LIBEXPORT StructRNA RNA_EnumPropertyItem; +extern LIBEXPORT StructRNA RNA_EnvironmentMap; +extern LIBEXPORT StructRNA RNA_EnvironmentMapTexture; +extern LIBEXPORT StructRNA RNA_Event; +extern LIBEXPORT StructRNA RNA_ExplodeModifier; +extern LIBEXPORT StructRNA RNA_ExpressionController; +extern LIBEXPORT StructRNA RNA_FCurve; +extern LIBEXPORT StructRNA RNA_FCurveSample; +extern LIBEXPORT StructRNA RNA_FModifier; +extern LIBEXPORT StructRNA RNA_FModifierCycles; +extern LIBEXPORT StructRNA RNA_FModifierEnvelope; +extern LIBEXPORT StructRNA RNA_FModifierEnvelopeControlPoint; +extern LIBEXPORT StructRNA RNA_FModifierFunctionGenerator; +extern LIBEXPORT StructRNA RNA_FModifierGenerator; +extern LIBEXPORT StructRNA RNA_FModifierLimits; +extern LIBEXPORT StructRNA RNA_FModifierNoise; +extern LIBEXPORT StructRNA RNA_FModifierPython; +extern LIBEXPORT StructRNA RNA_FModifierStepped; +extern LIBEXPORT StructRNA RNA_FieldSettings; +extern LIBEXPORT StructRNA RNA_FileSelectParams; +extern LIBEXPORT StructRNA RNA_FloatProperty; +extern LIBEXPORT StructRNA RNA_FloorConstraint; +extern LIBEXPORT StructRNA RNA_FluidFluidSettings; +extern LIBEXPORT StructRNA RNA_FluidSettings; +extern LIBEXPORT StructRNA RNA_FluidSimulationModifier; +extern LIBEXPORT StructRNA RNA_FollowPathConstraint; +extern LIBEXPORT StructRNA RNA_Function; +extern LIBEXPORT StructRNA RNA_GPencilFrame; +extern LIBEXPORT StructRNA RNA_GPencilLayer; +extern LIBEXPORT StructRNA RNA_GPencilStroke; +extern LIBEXPORT StructRNA RNA_GPencilStrokePoint; +extern LIBEXPORT StructRNA RNA_GameBooleanProperty; +extern LIBEXPORT StructRNA RNA_GameFloatProperty; +extern LIBEXPORT StructRNA RNA_GameIntProperty; +extern LIBEXPORT StructRNA RNA_GameObjectSettings; +extern LIBEXPORT StructRNA RNA_GameProperty; +extern LIBEXPORT StructRNA RNA_GameSoftBodySettings; +extern LIBEXPORT StructRNA RNA_GameStringProperty; +extern LIBEXPORT StructRNA RNA_GameTimerProperty; +extern LIBEXPORT StructRNA RNA_GlowSequence; +extern LIBEXPORT StructRNA RNA_GreasePencil; +extern LIBEXPORT StructRNA RNA_Group; +extern LIBEXPORT StructRNA RNA_Header; +extern LIBEXPORT StructRNA RNA_HemiLamp; +extern LIBEXPORT StructRNA RNA_Histogram; +extern LIBEXPORT StructRNA RNA_HookModifier; +extern LIBEXPORT StructRNA RNA_ID; +extern LIBEXPORT StructRNA RNA_IKParam; +extern LIBEXPORT StructRNA RNA_Image; +extern LIBEXPORT StructRNA RNA_ImagePaint; +extern LIBEXPORT StructRNA RNA_ImageSequence; +extern LIBEXPORT StructRNA RNA_ImageTexture; +extern LIBEXPORT StructRNA RNA_ImageUser; +extern LIBEXPORT StructRNA RNA_InflowFluidSettings; +extern LIBEXPORT StructRNA RNA_IntProperty; +extern LIBEXPORT StructRNA RNA_Itasc; +extern LIBEXPORT StructRNA RNA_JoystickSensor; +extern LIBEXPORT StructRNA RNA_Key; +extern LIBEXPORT StructRNA RNA_KeyConfig; +extern LIBEXPORT StructRNA RNA_KeyMap; +extern LIBEXPORT StructRNA RNA_KeyMapItem; +extern LIBEXPORT StructRNA RNA_KeyboardSensor; +extern LIBEXPORT StructRNA RNA_Keyframe; +extern LIBEXPORT StructRNA RNA_KeyingSet; +extern LIBEXPORT StructRNA RNA_KeyingSetInfo; +extern LIBEXPORT StructRNA RNA_KeyingSetPath; +extern LIBEXPORT StructRNA RNA_KinematicConstraint; +extern LIBEXPORT StructRNA RNA_Lamp; +extern LIBEXPORT StructRNA RNA_LampSkySettings; +extern LIBEXPORT StructRNA RNA_LampTextureSlot; +extern LIBEXPORT StructRNA RNA_Lattice; +extern LIBEXPORT StructRNA RNA_LatticeModifier; +extern LIBEXPORT StructRNA RNA_LatticePoint; +extern LIBEXPORT StructRNA RNA_Library; +extern LIBEXPORT StructRNA RNA_LimitDistanceConstraint; +extern LIBEXPORT StructRNA RNA_LimitLocationConstraint; +extern LIBEXPORT StructRNA RNA_LimitRotationConstraint; +extern LIBEXPORT StructRNA RNA_LimitScaleConstraint; +extern LIBEXPORT StructRNA RNA_LockedTrackConstraint; +extern LIBEXPORT StructRNA RNA_Macro; +extern LIBEXPORT StructRNA RNA_MagicTexture; +extern LIBEXPORT StructRNA RNA_MarbleTexture; +extern LIBEXPORT StructRNA RNA_MaskModifier; +extern LIBEXPORT StructRNA RNA_Material; +extern LIBEXPORT StructRNA RNA_MaterialHalo; +extern LIBEXPORT StructRNA RNA_MaterialPhysics; +extern LIBEXPORT StructRNA RNA_MaterialRaytraceMirror; +extern LIBEXPORT StructRNA RNA_MaterialRaytraceTransparency; +extern LIBEXPORT StructRNA RNA_MaterialSlot; +extern LIBEXPORT StructRNA RNA_MaterialStrand; +extern LIBEXPORT StructRNA RNA_MaterialSubsurfaceScattering; +extern LIBEXPORT StructRNA RNA_MaterialTextureSlot; +extern LIBEXPORT StructRNA RNA_MaterialVolume; +extern LIBEXPORT StructRNA RNA_Menu; +extern LIBEXPORT StructRNA RNA_Mesh; +extern LIBEXPORT StructRNA RNA_MeshColor; +extern LIBEXPORT StructRNA RNA_MeshColorLayer; +extern LIBEXPORT StructRNA RNA_MeshDeformModifier; +extern LIBEXPORT StructRNA RNA_MeshEdge; +extern LIBEXPORT StructRNA RNA_MeshFace; +extern LIBEXPORT StructRNA RNA_MeshFloatProperty; +extern LIBEXPORT StructRNA RNA_MeshFloatPropertyLayer; +extern LIBEXPORT StructRNA RNA_MeshIntProperty; +extern LIBEXPORT StructRNA RNA_MeshIntPropertyLayer; +extern LIBEXPORT StructRNA RNA_MeshSticky; +extern LIBEXPORT StructRNA RNA_MeshStringProperty; +extern LIBEXPORT StructRNA RNA_MeshStringPropertyLayer; +extern LIBEXPORT StructRNA RNA_MeshTextureFace; +extern LIBEXPORT StructRNA RNA_MeshTextureFaceLayer; +extern LIBEXPORT StructRNA RNA_MeshVertex; +extern LIBEXPORT StructRNA RNA_MessageSensor; +extern LIBEXPORT StructRNA RNA_MetaBall; +extern LIBEXPORT StructRNA RNA_MetaElement; +extern LIBEXPORT StructRNA RNA_MetaSequence; +extern LIBEXPORT StructRNA RNA_MirrorModifier; +extern LIBEXPORT StructRNA RNA_Modifier; +extern LIBEXPORT StructRNA RNA_MotionPath; +extern LIBEXPORT StructRNA RNA_MotionPathVert; +extern LIBEXPORT StructRNA RNA_MouseSensor; +extern LIBEXPORT StructRNA RNA_MovieSequence; +extern LIBEXPORT StructRNA RNA_MulticamSequence; +extern LIBEXPORT StructRNA RNA_MultiresModifier; +extern LIBEXPORT StructRNA RNA_MusgraveTexture; +extern LIBEXPORT StructRNA RNA_NandController; +extern LIBEXPORT StructRNA RNA_NearSensor; +extern LIBEXPORT StructRNA RNA_NlaStrip; +extern LIBEXPORT StructRNA RNA_NlaTrack; +extern LIBEXPORT StructRNA RNA_Node; +extern LIBEXPORT StructRNA RNA_NodeGroup; +extern LIBEXPORT StructRNA RNA_NodeLink; +extern LIBEXPORT StructRNA RNA_NodeSocket; +extern LIBEXPORT StructRNA RNA_NodeTree; +extern LIBEXPORT StructRNA RNA_NoiseTexture; +extern LIBEXPORT StructRNA RNA_NorController; +extern LIBEXPORT StructRNA RNA_Object; +extern LIBEXPORT StructRNA RNA_ObjectBase; +extern LIBEXPORT StructRNA RNA_ObstacleFluidSettings; +extern LIBEXPORT StructRNA RNA_Operator; +extern LIBEXPORT StructRNA RNA_OperatorFileListElement; +extern LIBEXPORT StructRNA RNA_OperatorMousePath; +extern LIBEXPORT StructRNA RNA_OperatorProperties; +extern LIBEXPORT StructRNA RNA_OperatorStrokeElement; +extern LIBEXPORT StructRNA RNA_OperatorTypeMacro; +extern LIBEXPORT StructRNA RNA_OrController; +extern LIBEXPORT StructRNA RNA_OutflowFluidSettings; +extern LIBEXPORT StructRNA RNA_PackedFile; +extern LIBEXPORT StructRNA RNA_Paint; +extern LIBEXPORT StructRNA RNA_Panel; +extern LIBEXPORT StructRNA RNA_Particle; +extern LIBEXPORT StructRNA RNA_ParticleBrush; +extern LIBEXPORT StructRNA RNA_ParticleDupliWeight; +extern LIBEXPORT StructRNA RNA_ParticleEdit; +extern LIBEXPORT StructRNA RNA_ParticleFluidSettings; +extern LIBEXPORT StructRNA RNA_ParticleHairKey; +extern LIBEXPORT StructRNA RNA_ParticleInstanceModifier; +extern LIBEXPORT StructRNA RNA_ParticleKey; +extern LIBEXPORT StructRNA RNA_ParticleSettings; +extern LIBEXPORT StructRNA RNA_ParticleSettingsTextureSlot; +extern LIBEXPORT StructRNA RNA_ParticleSystem; +extern LIBEXPORT StructRNA RNA_ParticleSystemModifier; +extern LIBEXPORT StructRNA RNA_ParticleTarget; +extern LIBEXPORT StructRNA RNA_PivotConstraint; +extern LIBEXPORT StructRNA RNA_PluginSequence; +extern LIBEXPORT StructRNA RNA_PluginTexture; +extern LIBEXPORT StructRNA RNA_PointCache; +extern LIBEXPORT StructRNA RNA_PointDensity; +extern LIBEXPORT StructRNA RNA_PointDensityTexture; +extern LIBEXPORT StructRNA RNA_PointLamp; +extern LIBEXPORT StructRNA RNA_PointerProperty; +extern LIBEXPORT StructRNA RNA_Pose; +extern LIBEXPORT StructRNA RNA_PoseBone; +extern LIBEXPORT StructRNA RNA_Property; +extern LIBEXPORT StructRNA RNA_PropertyGroup; +extern LIBEXPORT StructRNA RNA_PropertyGroupItem; +extern LIBEXPORT StructRNA RNA_PropertySensor; +extern LIBEXPORT StructRNA RNA_PythonConstraint; +extern LIBEXPORT StructRNA RNA_PythonController; +extern LIBEXPORT StructRNA RNA_RGBANodeSocket; +extern LIBEXPORT StructRNA RNA_RadarSensor; +extern LIBEXPORT StructRNA RNA_RandomSensor; +extern LIBEXPORT StructRNA RNA_RaySensor; +extern LIBEXPORT StructRNA RNA_Region; +extern LIBEXPORT StructRNA RNA_RenderEngine; +extern LIBEXPORT StructRNA RNA_RenderLayer; +extern LIBEXPORT StructRNA RNA_RenderPass; +extern LIBEXPORT StructRNA RNA_RenderResult; +extern LIBEXPORT StructRNA RNA_RenderSettings; +extern LIBEXPORT StructRNA RNA_RigidBodyJointConstraint; +extern LIBEXPORT StructRNA RNA_SPHFluidSettings; +extern LIBEXPORT StructRNA RNA_Scene; +extern LIBEXPORT StructRNA RNA_SceneGameData; +extern LIBEXPORT StructRNA RNA_SceneRenderLayer; +extern LIBEXPORT StructRNA RNA_SceneSequence; +extern LIBEXPORT StructRNA RNA_Scopes; +extern LIBEXPORT StructRNA RNA_Screen; +extern LIBEXPORT StructRNA RNA_ScrewModifier; +extern LIBEXPORT StructRNA RNA_Sculpt; +extern LIBEXPORT StructRNA RNA_Sensor; +extern LIBEXPORT StructRNA RNA_Sequence; +extern LIBEXPORT StructRNA RNA_SequenceColorBalance; +extern LIBEXPORT StructRNA RNA_SequenceCrop; +extern LIBEXPORT StructRNA RNA_SequenceEditor; +extern LIBEXPORT StructRNA RNA_SequenceElement; +extern LIBEXPORT StructRNA RNA_SequenceProxy; +extern LIBEXPORT StructRNA RNA_SequenceTransform; +extern LIBEXPORT StructRNA RNA_ShaderNode; +extern LIBEXPORT StructRNA RNA_ShaderNodeCameraData; +extern LIBEXPORT StructRNA RNA_ShaderNodeCombineRGB; +extern LIBEXPORT StructRNA RNA_ShaderNodeExtendedMaterial; +extern LIBEXPORT StructRNA RNA_ShaderNodeGeometry; +extern LIBEXPORT StructRNA RNA_ShaderNodeHueSaturation; +extern LIBEXPORT StructRNA RNA_ShaderNodeInvert; +extern LIBEXPORT StructRNA RNA_ShaderNodeMapping; +extern LIBEXPORT StructRNA RNA_ShaderNodeMaterial; +extern LIBEXPORT StructRNA RNA_ShaderNodeMath; +extern LIBEXPORT StructRNA RNA_ShaderNodeMixRGB; +extern LIBEXPORT StructRNA RNA_ShaderNodeNormal; +extern LIBEXPORT StructRNA RNA_ShaderNodeOutput; +extern LIBEXPORT StructRNA RNA_ShaderNodeRGB; +extern LIBEXPORT StructRNA RNA_ShaderNodeRGBCurve; +extern LIBEXPORT StructRNA RNA_ShaderNodeRGBToBW; +extern LIBEXPORT StructRNA RNA_ShaderNodeSeparateRGB; +extern LIBEXPORT StructRNA RNA_ShaderNodeSqueeze; +extern LIBEXPORT StructRNA RNA_ShaderNodeTexture; +extern LIBEXPORT StructRNA RNA_ShaderNodeTree; +extern LIBEXPORT StructRNA RNA_ShaderNodeValToRGB; +extern LIBEXPORT StructRNA RNA_ShaderNodeValue; +extern LIBEXPORT StructRNA RNA_ShaderNodeVectorCurve; +extern LIBEXPORT StructRNA RNA_ShaderNodeVectorMath; +extern LIBEXPORT StructRNA RNA_ShapeKey; +extern LIBEXPORT StructRNA RNA_ShapeKeyBezierPoint; +extern LIBEXPORT StructRNA RNA_ShapeKeyCurvePoint; +extern LIBEXPORT StructRNA RNA_ShapeKeyPoint; +extern LIBEXPORT StructRNA RNA_ShrinkwrapConstraint; +extern LIBEXPORT StructRNA RNA_ShrinkwrapModifier; +extern LIBEXPORT StructRNA RNA_SimpleDeformModifier; +extern LIBEXPORT StructRNA RNA_SmokeCollSettings; +extern LIBEXPORT StructRNA RNA_SmokeDomainSettings; +extern LIBEXPORT StructRNA RNA_SmokeFlowSettings; +extern LIBEXPORT StructRNA RNA_SmokeModifier; +extern LIBEXPORT StructRNA RNA_SmoothModifier; +extern LIBEXPORT StructRNA RNA_SoftBodyModifier; +extern LIBEXPORT StructRNA RNA_SoftBodySettings; +extern LIBEXPORT StructRNA RNA_SolidifyModifier; +extern LIBEXPORT StructRNA RNA_Sound; +extern LIBEXPORT StructRNA RNA_SoundSequence; +extern LIBEXPORT StructRNA RNA_Space; +extern LIBEXPORT StructRNA RNA_SpaceConsole; +extern LIBEXPORT StructRNA RNA_SpaceDopeSheetEditor; +extern LIBEXPORT StructRNA RNA_SpaceFileBrowser; +extern LIBEXPORT StructRNA RNA_SpaceGraphEditor; +extern LIBEXPORT StructRNA RNA_SpaceImageEditor; +extern LIBEXPORT StructRNA RNA_SpaceInfo; +extern LIBEXPORT StructRNA RNA_SpaceLogicEditor; +extern LIBEXPORT StructRNA RNA_SpaceNLA; +extern LIBEXPORT StructRNA RNA_SpaceNodeEditor; +extern LIBEXPORT StructRNA RNA_SpaceOutliner; +extern LIBEXPORT StructRNA RNA_SpaceProperties; +extern LIBEXPORT StructRNA RNA_SpaceSequenceEditor; +extern LIBEXPORT StructRNA RNA_SpaceTextEditor; +extern LIBEXPORT StructRNA RNA_SpaceTimeline; +extern LIBEXPORT StructRNA RNA_SpaceUVEditor; +extern LIBEXPORT StructRNA RNA_SpaceUserPreferences; +extern LIBEXPORT StructRNA RNA_SpaceView3D; +extern LIBEXPORT StructRNA RNA_SpeedControlSequence; +extern LIBEXPORT StructRNA RNA_Spline; +extern LIBEXPORT StructRNA RNA_SplineIKConstraint; +extern LIBEXPORT StructRNA RNA_SpotLamp; +extern LIBEXPORT StructRNA RNA_StretchToConstraint; +extern LIBEXPORT StructRNA RNA_StringProperty; +extern LIBEXPORT StructRNA RNA_Struct; +extern LIBEXPORT StructRNA RNA_StucciTexture; +extern LIBEXPORT StructRNA RNA_SubsurfModifier; +extern LIBEXPORT StructRNA RNA_SunLamp; +extern LIBEXPORT StructRNA RNA_SurfaceCurve; +extern LIBEXPORT StructRNA RNA_SurfaceModifier; +extern LIBEXPORT StructRNA RNA_TexMapping; +extern LIBEXPORT StructRNA RNA_Text; +extern LIBEXPORT StructRNA RNA_TextBox; +extern LIBEXPORT StructRNA RNA_TextCharacterFormat; +extern LIBEXPORT StructRNA RNA_TextCurve; +extern LIBEXPORT StructRNA RNA_TextLine; +extern LIBEXPORT StructRNA RNA_TextMarker; +extern LIBEXPORT StructRNA RNA_Texture; +extern LIBEXPORT StructRNA RNA_TextureNode; +extern LIBEXPORT StructRNA RNA_TextureNodeBricks; +extern LIBEXPORT StructRNA RNA_TextureNodeChecker; +extern LIBEXPORT StructRNA RNA_TextureNodeCompose; +extern LIBEXPORT StructRNA RNA_TextureNodeCoordinates; +extern LIBEXPORT StructRNA RNA_TextureNodeCurveRGB; +extern LIBEXPORT StructRNA RNA_TextureNodeCurveTime; +extern LIBEXPORT StructRNA RNA_TextureNodeDecompose; +extern LIBEXPORT StructRNA RNA_TextureNodeDistance; +extern LIBEXPORT StructRNA RNA_TextureNodeHueSaturation; +extern LIBEXPORT StructRNA RNA_TextureNodeImage; +extern LIBEXPORT StructRNA RNA_TextureNodeInvert; +extern LIBEXPORT StructRNA RNA_TextureNodeMath; +extern LIBEXPORT StructRNA RNA_TextureNodeMixRGB; +extern LIBEXPORT StructRNA RNA_TextureNodeOutput; +extern LIBEXPORT StructRNA RNA_TextureNodeRGBToBW; +extern LIBEXPORT StructRNA RNA_TextureNodeRotate; +extern LIBEXPORT StructRNA RNA_TextureNodeScale; +extern LIBEXPORT StructRNA RNA_TextureNodeTexture; +extern LIBEXPORT StructRNA RNA_TextureNodeTranslate; +extern LIBEXPORT StructRNA RNA_TextureNodeTree; +extern LIBEXPORT StructRNA RNA_TextureNodeValToNor; +extern LIBEXPORT StructRNA RNA_TextureNodeValToRGB; +extern LIBEXPORT StructRNA RNA_TextureNodeViewer; +extern LIBEXPORT StructRNA RNA_TextureSlot; +extern LIBEXPORT StructRNA RNA_Theme; +extern LIBEXPORT StructRNA RNA_ThemeAudioWindow; +extern LIBEXPORT StructRNA RNA_ThemeBoneColorSet; +extern LIBEXPORT StructRNA RNA_ThemeConsole; +extern LIBEXPORT StructRNA RNA_ThemeDopeSheet; +extern LIBEXPORT StructRNA RNA_ThemeFileBrowser; +extern LIBEXPORT StructRNA RNA_ThemeFontStyle; +extern LIBEXPORT StructRNA RNA_ThemeGraphEditor; +extern LIBEXPORT StructRNA RNA_ThemeImageEditor; +extern LIBEXPORT StructRNA RNA_ThemeInfo; +extern LIBEXPORT StructRNA RNA_ThemeLogicEditor; +extern LIBEXPORT StructRNA RNA_ThemeNLAEditor; +extern LIBEXPORT StructRNA RNA_ThemeNodeEditor; +extern LIBEXPORT StructRNA RNA_ThemeOutliner; +extern LIBEXPORT StructRNA RNA_ThemeProperties; +extern LIBEXPORT StructRNA RNA_ThemeSequenceEditor; +extern LIBEXPORT StructRNA RNA_ThemeStyle; +extern LIBEXPORT StructRNA RNA_ThemeTextEditor; +extern LIBEXPORT StructRNA RNA_ThemeTimeline; +extern LIBEXPORT StructRNA RNA_ThemeUserInterface; +extern LIBEXPORT StructRNA RNA_ThemeUserPreferences; +extern LIBEXPORT StructRNA RNA_ThemeView3D; +extern LIBEXPORT StructRNA RNA_ThemeWidgetColors; +extern LIBEXPORT StructRNA RNA_ThemeWidgetStateColors; +extern LIBEXPORT StructRNA RNA_TimelineMarker; +extern LIBEXPORT StructRNA RNA_Timer; +extern LIBEXPORT StructRNA RNA_ToolSettings; +extern LIBEXPORT StructRNA RNA_TouchSensor; +extern LIBEXPORT StructRNA RNA_TrackToConstraint; +extern LIBEXPORT StructRNA RNA_TransformConstraint; +extern LIBEXPORT StructRNA RNA_TransformSequence; +extern LIBEXPORT StructRNA RNA_UILayout; +extern LIBEXPORT StructRNA RNA_UIListItem; +extern LIBEXPORT StructRNA RNA_UVProjectModifier; +extern LIBEXPORT StructRNA RNA_UVProjector; +extern LIBEXPORT StructRNA RNA_UnitSettings; +extern LIBEXPORT StructRNA RNA_UnknownType; +extern LIBEXPORT StructRNA RNA_UserPreferences; +extern LIBEXPORT StructRNA RNA_UserPreferencesEdit; +extern LIBEXPORT StructRNA RNA_UserPreferencesFilePaths; +extern LIBEXPORT StructRNA RNA_UserPreferencesSystem; +extern LIBEXPORT StructRNA RNA_UserPreferencesView; +extern LIBEXPORT StructRNA RNA_UserSolidLight; +extern LIBEXPORT StructRNA RNA_ValueNodeSocket; +extern LIBEXPORT StructRNA RNA_VectorFont; +extern LIBEXPORT StructRNA RNA_VectorNodeSocket; +extern LIBEXPORT StructRNA RNA_VertexGroup; +extern LIBEXPORT StructRNA RNA_VertexGroupElement; +extern LIBEXPORT StructRNA RNA_VertexPaint; +extern LIBEXPORT StructRNA RNA_VoronoiTexture; +extern LIBEXPORT StructRNA RNA_VoxelData; +extern LIBEXPORT StructRNA RNA_VoxelDataTexture; +extern LIBEXPORT StructRNA RNA_WaveModifier; +extern LIBEXPORT StructRNA RNA_Window; +extern LIBEXPORT StructRNA RNA_WindowManager; +extern LIBEXPORT StructRNA RNA_WipeSequence; +extern LIBEXPORT StructRNA RNA_WoodTexture; +extern LIBEXPORT StructRNA RNA_World; +extern LIBEXPORT StructRNA RNA_WorldAmbientOcclusion; +extern LIBEXPORT StructRNA RNA_WorldMistSettings; +extern LIBEXPORT StructRNA RNA_WorldStarsSettings; +extern LIBEXPORT StructRNA RNA_WorldTextureSlot; +extern LIBEXPORT StructRNA RNA_XnorController; +extern LIBEXPORT StructRNA RNA_XorController; /* Pointer * @@ -584,54 +583,55 @@ extern StructRNA RNA_XorController; * There is also a way to get a pointer with the information about all structs. */ -void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr); -void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr); -void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr); +LIBEXPORT void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr); +LIBEXPORT void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr); +LIBEXPORT void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr); -void RNA_blender_rna_pointer_create(PointerRNA *r_ptr); -void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr); +LIBEXPORT void RNA_blender_rna_pointer_create(PointerRNA *r_ptr); +LIBEXPORT void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr); -extern const PointerRNA PointerRNA_NULL; +extern LIBEXPORT const PointerRNA PointerRNA_NULL; /* Structs */ -const char *RNA_struct_identifier(StructRNA *type); -const char *RNA_struct_ui_name(StructRNA *type); -const char *RNA_struct_ui_description(StructRNA *type); -int RNA_struct_ui_icon(StructRNA *type); +LIBEXPORT const char *RNA_struct_identifier(StructRNA *type); +LIBEXPORT const char *RNA_struct_ui_name(StructRNA *type); +LIBEXPORT const char *RNA_struct_ui_description(StructRNA *type); +LIBEXPORT int RNA_struct_ui_icon(StructRNA *type); -PropertyRNA *RNA_struct_name_property(StructRNA *type); -PropertyRNA *RNA_struct_iterator_property(StructRNA *type); -StructRNA *RNA_struct_base(StructRNA *type); +LIBEXPORT PropertyRNA *RNA_struct_name_property(StructRNA *type); +LIBEXPORT PropertyRNA *RNA_struct_iterator_property(StructRNA *type); +LIBEXPORT StructRNA *RNA_struct_base(StructRNA *type); -int RNA_struct_is_ID(StructRNA *type); -int RNA_struct_is_a(StructRNA *type, StructRNA *srna); +LIBEXPORT int RNA_struct_is_ID(StructRNA *type); +LIBEXPORT int RNA_struct_is_a(StructRNA *type, StructRNA *srna); -StructRegisterFunc RNA_struct_register(StructRNA *type); -StructUnregisterFunc RNA_struct_unregister(StructRNA *type); +LIBEXPORT StructRegisterFunc RNA_struct_register(StructRNA *type); +LIBEXPORT StructUnregisterFunc RNA_struct_unregister(StructRNA *type); +LIBEXPORT void **RNA_struct_instance(PointerRNA *ptr); -void *RNA_struct_py_type_get(StructRNA *srna); -void RNA_struct_py_type_set(StructRNA *srna, void *py_type); +LIBEXPORT void *RNA_struct_py_type_get(StructRNA *srna); +LIBEXPORT void RNA_struct_py_type_set(StructRNA *srna, void *py_type); -void *RNA_struct_blender_type_get(StructRNA *srna); -void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type); +LIBEXPORT void *RNA_struct_blender_type_get(StructRNA *srna); +LIBEXPORT void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type); -struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create); -int RNA_struct_idprops_check(StructRNA *srna); -int RNA_struct_idprops_register_check(StructRNA *type); +LIBEXPORT struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create); +LIBEXPORT int RNA_struct_idprops_check(StructRNA *srna); +LIBEXPORT int RNA_struct_idprops_register_check(StructRNA *type); -PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier); -int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test); +LIBEXPORT PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier); +LIBEXPORT int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test); /* lower level functions for access to type properties */ -const struct ListBase *RNA_struct_type_properties(StructRNA *srna); -PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier); +LIBEXPORT const struct ListBase *RNA_struct_type_properties(StructRNA *srna); +LIBEXPORT PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier); -FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier); -const struct ListBase *RNA_struct_type_functions(StructRNA *srna); +LIBEXPORT FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier); +LIBEXPORT const struct ListBase *RNA_struct_type_functions(StructRNA *srna); -char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen); +LIBEXPORT char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen); /* Properties * @@ -640,139 +640,139 @@ char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen); /* Property Information */ -const char *RNA_property_identifier(PropertyRNA *prop); -const char *RNA_property_description(PropertyRNA *prop); +LIBEXPORT const char *RNA_property_identifier(PropertyRNA *prop); +LIBEXPORT const char *RNA_property_description(PropertyRNA *prop); -PropertyType RNA_property_type(PropertyRNA *prop); -PropertySubType RNA_property_subtype(PropertyRNA *prop); -PropertyUnit RNA_property_unit(PropertyRNA *prop); -int RNA_property_flag(PropertyRNA *prop); +LIBEXPORT PropertyType RNA_property_type(PropertyRNA *prop); +LIBEXPORT PropertySubType RNA_property_subtype(PropertyRNA *prop); +LIBEXPORT PropertyUnit RNA_property_unit(PropertyRNA *prop); +LIBEXPORT int RNA_property_flag(PropertyRNA *prop); -int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension); -int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[]); -char RNA_property_array_item_char(PropertyRNA *prop, int index); -int RNA_property_array_item_index(PropertyRNA *prop, char name); +LIBEXPORT int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension); +LIBEXPORT int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[]); +LIBEXPORT char RNA_property_array_item_char(PropertyRNA *prop, int index); +LIBEXPORT int RNA_property_array_item_index(PropertyRNA *prop, char name); -int RNA_property_string_maxlength(PropertyRNA *prop); +LIBEXPORT int RNA_property_string_maxlength(PropertyRNA *prop); -const char *RNA_property_ui_name(PropertyRNA *prop); -const char *RNA_property_ui_description(PropertyRNA *prop); -int RNA_property_ui_icon(PropertyRNA *prop); +LIBEXPORT const char *RNA_property_ui_name(PropertyRNA *prop); +LIBEXPORT const char *RNA_property_ui_description(PropertyRNA *prop); +LIBEXPORT int RNA_property_ui_icon(PropertyRNA *prop); /* Dynamic Property Information */ -void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax); -void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step); +LIBEXPORT void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax); +LIBEXPORT void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step); -void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax); -void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision); +LIBEXPORT void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax); +LIBEXPORT void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision); -int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value); -int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value); +LIBEXPORT int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value); +LIBEXPORT int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value); -int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier); -int RNA_enum_bitflag_identifiers(EnumPropertyItem *item, const int value, const char **identifier); -int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name); -int RNA_enum_description(EnumPropertyItem *item, const int value, const char **description); +LIBEXPORT int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier); +LIBEXPORT int RNA_enum_bitflag_identifiers(EnumPropertyItem *item, const int value, const char **identifier); +LIBEXPORT int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name); +LIBEXPORT int RNA_enum_description(EnumPropertyItem *item, const int value, const char **description); -void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, EnumPropertyItem **item, int *totitem, int *free); -int RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value); -int RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); -int RNA_property_enum_name(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name); -int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); +LIBEXPORT void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, EnumPropertyItem **item, int *totitem, int *free); +LIBEXPORT int RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value); +LIBEXPORT int RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); +LIBEXPORT int RNA_property_enum_name(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name); +LIBEXPORT int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); -StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value); +LIBEXPORT StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value); -int RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, int index); -int RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop); /* without lib check, only checks the flag */ -int RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */ +LIBEXPORT int RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, int index); +LIBEXPORT int RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop); /* without lib check, only checks the flag */ +LIBEXPORT int RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */ -void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_update_check(struct PropertyRNA *prop); +LIBEXPORT void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_update_check(struct PropertyRNA *prop); /* Property Data */ -int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value); -void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); -void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); -int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value); -void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); -void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); -int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value); -void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values); -float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values); -void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value); -float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values); -float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value); -char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); -void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value); -int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_string_get_default(PointerRNA *ptr, PropertyRNA *prop, char *value); -char *RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); -int RNA_property_string_default_length(PointerRNA *ptr, PropertyRNA *prop); - -int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value); -int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop); - -PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value); -PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop); - -void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter); -void RNA_property_collection_next(CollectionPropertyIterator *iter); -void RNA_property_collection_end(CollectionPropertyIterator *iter); -int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *t_ptr); -int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr); -int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr); -int RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); +LIBEXPORT int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value); +LIBEXPORT void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +LIBEXPORT int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +LIBEXPORT void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); +LIBEXPORT void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +LIBEXPORT int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +LIBEXPORT int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +LIBEXPORT int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value); +LIBEXPORT void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +LIBEXPORT int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +LIBEXPORT void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); +LIBEXPORT void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +LIBEXPORT int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +LIBEXPORT int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +LIBEXPORT float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value); +LIBEXPORT void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values); +LIBEXPORT float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +LIBEXPORT void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values); +LIBEXPORT void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value); +LIBEXPORT float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values); +LIBEXPORT float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +LIBEXPORT void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value); +LIBEXPORT char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); +LIBEXPORT void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value); +LIBEXPORT int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_string_get_default(PointerRNA *ptr, PropertyRNA *prop, char *value); +LIBEXPORT char *RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); +LIBEXPORT int RNA_property_string_default_length(PointerRNA *ptr, PropertyRNA *prop); + +LIBEXPORT int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value); +LIBEXPORT int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop); + +LIBEXPORT PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value); +LIBEXPORT PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop); + +LIBEXPORT void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter); +LIBEXPORT void RNA_property_collection_next(CollectionPropertyIterator *iter); +LIBEXPORT void RNA_property_collection_end(CollectionPropertyIterator *iter); +LIBEXPORT int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *t_ptr); +LIBEXPORT int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr); +LIBEXPORT int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr); +LIBEXPORT int RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); /* efficient functions to set properties for arrays */ -int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array); -int RNA_property_collection_raw_get(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); -int RNA_property_collection_raw_set(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); -int RNA_raw_type_sizeof(RawPropertyType type); +LIBEXPORT int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array); +LIBEXPORT int RNA_property_collection_raw_get(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); +LIBEXPORT int RNA_property_collection_raw_set(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); +LIBEXPORT int RNA_raw_type_sizeof(RawPropertyType type); RawPropertyType RNA_property_raw_type(PropertyRNA *prop); /* to create ID property groups */ -void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); -int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key); -void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop); -int RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos); +LIBEXPORT void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); +LIBEXPORT int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key); +LIBEXPORT void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT int RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos); /* copy/reset */ -int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index); -int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); +LIBEXPORT int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index); +LIBEXPORT int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); /* Path * @@ -783,32 +783,18 @@ int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); * particular pointers, which is useful in a number of applications, like * UI code or Actions, though efficiency is a concern. */ -char *RNA_path_append(const char *path, PointerRNA *ptr, PropertyRNA *prop, +LIBEXPORT char *RNA_path_append(const char *path, PointerRNA *ptr, PropertyRNA *prop, int intkey, const char *strkey); -char *RNA_path_back(const char *path); +LIBEXPORT char *RNA_path_back(const char *path); -int RNA_path_resolve(PointerRNA *ptr, const char *path, +LIBEXPORT int RNA_path_resolve(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop); -int RNA_path_resolve_full(PointerRNA *ptr, const char *path, +LIBEXPORT int RNA_path_resolve_full(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *index); -char *RNA_path_from_ID_to_struct(PointerRNA *ptr); -char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop); - -#if 0 -/* Dependency - * - * Experimental code that will generate callbacks for each dependency - * between ID types. This may end up being useful for UI - * and evaluation code that needs to know such dependencies for correct - * redraws and re-evaluations. */ - -typedef void (*PropDependencyCallback)(void *udata, PointerRNA *from, PointerRNA *to); -void RNA_test_dependencies_cb(void *udata, PointerRNA *from, PointerRNA *to); - -void RNA_generate_dependencies(PointerRNA *mainptr, void *udata, PropDependencyCallback cb); -#endif +LIBEXPORT char *RNA_path_from_ID_to_struct(PointerRNA *ptr); +LIBEXPORT char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop); /* Quick name based property access * @@ -819,48 +805,48 @@ void RNA_generate_dependencies(PointerRNA *mainptr, void *udata, PropDependencyC * There is no support for pointers and collections here yet, these can be * added when ID properties support them. */ -int RNA_boolean_get(PointerRNA *ptr, const char *name); -void RNA_boolean_set(PointerRNA *ptr, const char *name, int value); -void RNA_boolean_get_array(PointerRNA *ptr, const char *name, int *values); -void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const int *values); +LIBEXPORT int RNA_boolean_get(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_boolean_set(PointerRNA *ptr, const char *name, int value); +LIBEXPORT void RNA_boolean_get_array(PointerRNA *ptr, const char *name, int *values); +LIBEXPORT void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const int *values); -int RNA_int_get(PointerRNA *ptr, const char *name); -void RNA_int_set(PointerRNA *ptr, const char *name, int value); -void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values); -void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values); +LIBEXPORT int RNA_int_get(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_int_set(PointerRNA *ptr, const char *name, int value); +LIBEXPORT void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values); +LIBEXPORT void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values); -float RNA_float_get(PointerRNA *ptr, const char *name); -void RNA_float_set(PointerRNA *ptr, const char *name, float value); -void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values); -void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values); +LIBEXPORT float RNA_float_get(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_float_set(PointerRNA *ptr, const char *name, float value); +LIBEXPORT void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values); +LIBEXPORT void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values); -int RNA_enum_get(PointerRNA *ptr, const char *name); -void RNA_enum_set(PointerRNA *ptr, const char *name, int value); -void RNA_enum_set_identifier(PointerRNA *ptr, const char *name, const char *id); -int RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname); +LIBEXPORT int RNA_enum_get(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_enum_set(PointerRNA *ptr, const char *name, int value); +LIBEXPORT void RNA_enum_set_identifier(PointerRNA *ptr, const char *name, const char *id); +LIBEXPORT int RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname); /* lower level functions that don't use a PointerRNA */ -int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value); -int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier); -int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon); +LIBEXPORT int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value); +LIBEXPORT int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier); +LIBEXPORT int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon); -void RNA_string_get(PointerRNA *ptr, const char *name, char *value); -char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen); -int RNA_string_length(PointerRNA *ptr, const char *name); -void RNA_string_set(PointerRNA *ptr, const char *name, const char *value); +LIBEXPORT void RNA_string_get(PointerRNA *ptr, const char *name, char *value); +LIBEXPORT char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen); +LIBEXPORT int RNA_string_length(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_string_set(PointerRNA *ptr, const char *name, const char *value); /** * Retrieve the named property from PointerRNA. */ -PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name); +LIBEXPORT PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name); /* Set the property name of PointerRNA ptr to ptr_value */ -void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value); -void RNA_pointer_add(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value); +LIBEXPORT void RNA_pointer_add(PointerRNA *ptr, const char *name); -void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter); -int RNA_collection_length(PointerRNA *ptr, const char *name); -void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value); -void RNA_collection_clear(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter); +LIBEXPORT int RNA_collection_length(PointerRNA *ptr, const char *name); +LIBEXPORT void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value); +LIBEXPORT void RNA_collection_clear(PointerRNA *ptr, const char *name); #define RNA_BEGIN(sptr, itemptr, propname) \ { \ @@ -896,65 +882,65 @@ void RNA_collection_clear(PointerRNA *ptr, const char *name); } /* check if the idproperty exists, for operators */ -int RNA_property_is_set(PointerRNA *ptr, const char *name); -int RNA_property_is_idprop(PropertyRNA *prop); +LIBEXPORT int RNA_property_is_set(PointerRNA *ptr, const char *name); +LIBEXPORT int RNA_property_is_idprop(PropertyRNA *prop); /* python compatible string representation of this property, (must be freed!) */ -char *RNA_property_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); -char *RNA_pointer_as_string(PointerRNA *ptr); +LIBEXPORT char *RNA_property_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); +LIBEXPORT char *RNA_pointer_as_string(PointerRNA *ptr); /* Function */ -const char *RNA_function_identifier(FunctionRNA *func); -const char *RNA_function_ui_description(FunctionRNA *func); -int RNA_function_flag(FunctionRNA *func); -int RNA_function_defined(FunctionRNA *func); +LIBEXPORT const char *RNA_function_identifier(FunctionRNA *func); +LIBEXPORT const char *RNA_function_ui_description(FunctionRNA *func); +LIBEXPORT int RNA_function_flag(FunctionRNA *func); +LIBEXPORT int RNA_function_defined(FunctionRNA *func); -PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index); -PropertyRNA *RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier); -const struct ListBase *RNA_function_defined_parameters(FunctionRNA *func); +LIBEXPORT PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index); +LIBEXPORT PropertyRNA *RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier); +LIBEXPORT const struct ListBase *RNA_function_defined_parameters(FunctionRNA *func); /* Utility */ -ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *ptr, FunctionRNA *func); -void RNA_parameter_list_free(ParameterList *parms); -int RNA_parameter_list_size(ParameterList *parms); -int RNA_parameter_list_arg_count(ParameterList *parms); -int RNA_parameter_list_ret_count(ParameterList *parms); - -void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter); -void RNA_parameter_list_next(ParameterIterator *iter); -void RNA_parameter_list_end(ParameterIterator *iter); - -void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value); -void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value); -void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value); -void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value); -int RNA_parameter_length_get(ParameterList *parms, PropertyRNA *parm); -int RNA_parameter_length_get_data(ParameterList *parms, PropertyRNA *parm, void *data); -void RNA_parameter_length_set(ParameterList *parms, PropertyRNA *parm, int length); -void RNA_parameter_length_set_data(ParameterList *parms, PropertyRNA *parm, void *data, int length); - -int RNA_function_call(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms); -int RNA_function_call_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms); - -int RNA_function_call_direct(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, ...) +LIBEXPORT ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *ptr, FunctionRNA *func); +LIBEXPORT void RNA_parameter_list_free(ParameterList *parms); +LIBEXPORT int RNA_parameter_list_size(ParameterList *parms); +LIBEXPORT int RNA_parameter_list_arg_count(ParameterList *parms); +LIBEXPORT int RNA_parameter_list_ret_count(ParameterList *parms); + +LIBEXPORT void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter); +LIBEXPORT void RNA_parameter_list_next(ParameterIterator *iter); +LIBEXPORT void RNA_parameter_list_end(ParameterIterator *iter); + +LIBEXPORT void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value); +LIBEXPORT void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value); +LIBEXPORT void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value); +LIBEXPORT void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value); +LIBEXPORT int RNA_parameter_length_get(ParameterList *parms, PropertyRNA *parm); +LIBEXPORT int RNA_parameter_length_get_data(ParameterList *parms, PropertyRNA *parm, void *data); +LIBEXPORT void RNA_parameter_length_set(ParameterList *parms, PropertyRNA *parm, int length); +LIBEXPORT void RNA_parameter_length_set_data(ParameterList *parms, PropertyRNA *parm, void *data, int length); + +LIBEXPORT int RNA_function_call(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms); +LIBEXPORT int RNA_function_call_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms); + +LIBEXPORT int RNA_function_call_direct(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, ...) #ifdef __GNUC__ __attribute__ ((format (printf, 5, 6))) #endif ; -int RNA_function_call_direct_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, ...) +LIBEXPORT int RNA_function_call_direct_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, ...) #ifdef __GNUC__ __attribute__ ((format (printf, 5, 6))) #endif ; -int RNA_function_call_direct_va(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args); -int RNA_function_call_direct_va_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args); +LIBEXPORT int RNA_function_call_direct_va(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args); +LIBEXPORT int RNA_function_call_direct_va_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args); /* ID */ -short RNA_type_to_ID_code(StructRNA *type); -StructRNA *ID_code_to_RNA_type(short idcode); +LIBEXPORT short RNA_type_to_ID_code(StructRNA *type); +LIBEXPORT StructRNA *ID_code_to_RNA_type(short idcode); void RNA_warning(const char *format, ...) #ifdef __GNUC__ diff --git a/source/blender/makesrna/RNA_define.h b/source/blender/makesrna/RNA_define.h index f131f7c9ebe..f52a69182b5 100644 --- a/source/blender/makesrna/RNA_define.h +++ b/source/blender/makesrna/RNA_define.h @@ -60,7 +60,7 @@ void RNA_def_struct_flag(StructRNA *srna, int flag); void RNA_def_struct_clear_flag(StructRNA *srna, int flag); void RNA_def_struct_refine_func(StructRNA *srna, const char *refine); void RNA_def_struct_idprops_func(StructRNA *srna, const char *refine); -void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg); +void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg, const char *instance); void RNA_def_struct_path_func(StructRNA *srna, const char *path); void RNA_def_struct_identifier(StructRNA *srna, const char *identifier); void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description); diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 3a15146770f..63cc0bb737c 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -36,6 +36,12 @@ extern "C" { #endif +#ifdef _WIN32 +#define LIBEXPORT __declspec(dllexport) +#else +#define LIBEXPORT +#endif + struct ParameterList; struct FunctionRNA; struct PropertyRNA; @@ -332,6 +338,7 @@ typedef void (*StructFreeFunc)(void *data); typedef struct StructRNA *(*StructRegisterFunc)(struct bContext *C, struct ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free); typedef void (*StructUnregisterFunc)(const struct bContext *C, struct StructRNA *type); +typedef void **(*StructInstanceFunc)(PointerRNA *ptr); typedef struct StructRNA StructRNA; diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index 9cafca3532f..473e57daf93 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -248,3 +248,4 @@ set(SRC ) blender_add_lib(bf_rna "${SRC}" "${INC}") + diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 97d0f535a5b..e056c545ead 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -193,7 +193,17 @@ static int replace_if_different(char *tmpfile, const char *dep_files[]) #undef REN_IF_DIFF } +/* Helper to solve keyword problems with C/C++ */ +static const char *rna_safe_id(const char *id) +{ + if(strcmp(id, "default") == 0) + return "default_value"; + else if(strcmp(id, "operator") == 0) + return "operator_value"; + + return id; +} /* Sorting */ @@ -501,12 +511,12 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr } - func= rna_alloc_function_name(srna->identifier, prop->identifier, "get"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "get"); switch(prop->type) { case PROP_STRING: { StringPropertyRNA *sprop= (StringPropertyRNA*)prop; - fprintf(f, "void %s(PointerRNA *ptr, char *value)\n", func); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, char *value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -522,7 +532,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr break; } case PROP_POINTER: { - fprintf(f, "PointerRNA %s(PointerRNA *ptr)\n", func); + fprintf(f, "LIBEXPORT PointerRNA %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -557,9 +567,9 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr default: if(prop->arraydimension) { if(prop->flag & PROP_DYNAMIC) - fprintf(f, "void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop)); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop)); else - fprintf(f, "void %s(PointerRNA *ptr, %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); fprintf(f, "{\n"); if(manualfunc) { @@ -569,7 +579,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr rna_print_data_get(f, dp); if(prop->flag & PROP_DYNAMIC) { - char *lenfunc= rna_alloc_function_name(srna->identifier, prop->identifier, "get_length"); + char *lenfunc= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "get_length"); fprintf(f, " int i, arraylen[RNA_MAX_ARRAY_DIMENSION];\n"); fprintf(f, " int len= %s(ptr, arraylen);\n\n", lenfunc); fprintf(f, " for(i=0; iidentifier, prop->identifier, "set"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "set"); switch(prop->type) { case PROP_STRING: { StringPropertyRNA *sprop= (StringPropertyRNA*)prop; - fprintf(f, "void %s(PointerRNA *ptr, const char *value)\n", func); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const char *value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -705,7 +715,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr break; } case PROP_POINTER: { - fprintf(f, "void %s(PointerRNA *ptr, PointerRNA value)\n", func); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, PointerRNA value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -742,9 +752,9 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr default: if(prop->arraydimension) { if(prop->flag & PROP_DYNAMIC) - fprintf(f, "void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop)); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop)); else - fprintf(f, "void %s(PointerRNA *ptr, const %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); + fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); fprintf(f, "{\n"); if(manualfunc) { @@ -754,7 +764,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr rna_print_data_get(f, dp); if(prop->flag & PROP_DYNAMIC) { - char *lenfunc= rna_alloc_function_name(srna->identifier, prop->identifier, "set_length"); + char *lenfunc= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "set_length"); fprintf(f, " int i, arraylen[RNA_MAX_ARRAY_DIMENSION];\n"); fprintf(f, " int len= %s(ptr, arraylen);\n\n", lenfunc); fprintf(f, " for(i=0; iidentifier, prop->identifier, "length"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length"); - fprintf(f, "int %s(PointerRNA *ptr)\n", func); + fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -873,9 +883,9 @@ static char *rna_def_property_length_func(FILE *f, StructRNA *srna, PropertyRNA } } - func= rna_alloc_function_name(srna->identifier, prop->identifier, "length"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length"); - fprintf(f, "int %s(PointerRNA *ptr)\n", func); + fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -908,9 +918,9 @@ static char *rna_def_property_begin_func(FILE *f, StructRNA *srna, PropertyRNA * } } - func= rna_alloc_function_name(srna->identifier, prop->identifier, "begin"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "begin"); - fprintf(f, "void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func); + fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(!manualfunc) @@ -940,7 +950,7 @@ static char *rna_def_property_begin_func(FILE *f, StructRNA *srna, PropertyRNA * fprintf(f, "\n rna_iterator_listbase_begin(iter, data->%s, NULL);\n", dp->dnaname); } - getfunc= rna_alloc_function_name(srna->identifier, prop->identifier, "get"); + getfunc= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "get"); fprintf(f, "\n if(iter->valid)\n"); fprintf(f, " iter->ptr= %s(iter);\n", getfunc); @@ -970,9 +980,9 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property else return NULL; } - func= rna_alloc_function_name(srna->identifier, prop->identifier, "lookup_int"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "lookup_int"); - fprintf(f, "int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func); + fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { @@ -984,7 +994,7 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property fprintf(f, " int found= 0;\n"); fprintf(f, " CollectionPropertyIterator iter;\n\n"); - fprintf(f, " %s_%s_begin(&iter, ptr);\n\n", srna->identifier, prop->identifier); + fprintf(f, " %s_%s_begin(&iter, ptr);\n\n", srna->identifier, rna_safe_id(prop->identifier)); fprintf(f, " if(iter.valid){\n"); if(strcmp(nextfunc, "rna_iterator_array_next") == 0) { @@ -1022,9 +1032,9 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property fprintf(f, " }\n"); } - fprintf(f, " if(found) *r_ptr = %s_%s_get(&iter);\n", srna->identifier, prop->identifier); + fprintf(f, " if(found) *r_ptr = %s_%s_get(&iter);\n", srna->identifier, rna_safe_id(prop->identifier)); fprintf(f, " }\n\n"); - fprintf(f, " %s_%s_end(&iter);\n\n", srna->identifier, prop->identifier); + fprintf(f, " %s_%s_end(&iter);\n\n", srna->identifier, rna_safe_id(prop->identifier)); fprintf(f, " return found;\n"); @@ -1061,13 +1071,13 @@ static char *rna_def_property_next_func(FILE *f, StructRNA *srna, PropertyRNA *p if(!manualfunc) return NULL; - func= rna_alloc_function_name(srna->identifier, prop->identifier, "next"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "next"); - fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func); + fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter)\n", func); fprintf(f, "{\n"); fprintf(f, " %s(iter);\n", manualfunc); - getfunc= rna_alloc_function_name(srna->identifier, prop->identifier, "get"); + getfunc= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "get"); fprintf(f, "\n if(iter->valid)\n"); fprintf(f, " iter->ptr= %s(iter);\n", getfunc); @@ -1084,9 +1094,9 @@ static char *rna_def_property_end_func(FILE *f, StructRNA *srna, PropertyRNA *pr if(prop->flag & PROP_IDPROPERTY && manualfunc==NULL) return NULL; - func= rna_alloc_function_name(srna->identifier, prop->identifier, "end"); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "end"); - fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func); + fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter)\n", func); fprintf(f, "{\n"); if(manualfunc) fprintf(f, " %s(iter);\n", manualfunc); @@ -1272,29 +1282,37 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR if(prop->flag & (PROP_IDPROPERTY|PROP_BUILTIN)) return; - func= rna_alloc_function_name(srna->identifier, prop->identifier, ""); + func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), ""); switch(prop->type) { case PROP_BOOLEAN: case PROP_INT: { if(!prop->arraydimension) { - fprintf(f, "int %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func); + fprintf(f, "LIBEXPORT int %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, int value);\n", func); + } + else if(prop->arraydimension && prop->totarraylength) { + fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, int values[%d]);\n", func, prop->totarraylength); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const int values[%d]);\n", func, prop->arraylength); } else { - fprintf(f, "void %sget(PointerRNA *ptr, int values[%d]);\n", func, prop->totarraylength); - //fprintf(f, "void %sset(PointerRNA *ptr, const int values[%d]);\n", func, prop->arraylength); + fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, int values[]);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const int values[]);\n", func); } break; } case PROP_FLOAT: { if(!prop->arraydimension) { - fprintf(f, "float %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "void %sset(PointerRNA *ptr, float value);\n", func); + fprintf(f, "LIBEXPORT float %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, float value);\n", func); + } + else if(prop->arraydimension && prop->totarraylength) { + fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, float values[%d]);\n", func, prop->totarraylength); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const float values[%d]);\n", func, prop->arraylength); } else { - fprintf(f, "void %sget(PointerRNA *ptr, float values[%d]);\n", func, prop->totarraylength); - //fprintf(f, "void %sset(PointerRNA *ptr, const float values[%d]);\n", func, prop->arraylength); + fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, float values[]);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const float values[]);\n", func); } break; } @@ -1312,8 +1330,8 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR fprintf(f, "};\n\n"); } - fprintf(f, "int %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func); + fprintf(f, "LIBEXPORT int %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, int value);\n", func); break; } @@ -1324,24 +1342,24 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR fprintf(f, "#define %s_%s_MAX %d\n\n", srna->identifier, prop->identifier, sprop->maxlength); } - fprintf(f, "void %sget(PointerRNA *ptr, char *value);\n", func); - fprintf(f, "int %slength(PointerRNA *ptr);\n", func); - //fprintf(f, "void %sset(PointerRNA *ptr, const char *value);\n", func); + fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, char *value);\n", func); + fprintf(f, "LIBEXPORT int %slength(PointerRNA *ptr);\n", func); + //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const char *value);\n", func); break; } case PROP_POINTER: { - fprintf(f, "PointerRNA %sget(PointerRNA *ptr);\n", func); + fprintf(f, "LIBEXPORT PointerRNA %sget(PointerRNA *ptr);\n", func); //fprintf(f, "void %sset(PointerRNA *ptr, PointerRNA value);\n", func); break; } case PROP_COLLECTION: { - fprintf(f, "void %sbegin(CollectionPropertyIterator *iter, PointerRNA *ptr);\n", func); - fprintf(f, "void %snext(CollectionPropertyIterator *iter);\n", func); - fprintf(f, "void %send(CollectionPropertyIterator *iter);\n", func); - //fprintf(f, "int %slength(PointerRNA *ptr);\n", func); - //fprintf(f, "void %slookup_int(PointerRNA *ptr, int key, StructRNA **type);\n", func); - //fprintf(f, "void %slookup_string(PointerRNA *ptr, const char *key, StructRNA **type);\n", func); + fprintf(f, "LIBEXPORT void %sbegin(CollectionPropertyIterator *iter, PointerRNA *ptr);\n", func); + fprintf(f, "LIBEXPORT void %snext(CollectionPropertyIterator *iter);\n", func); + fprintf(f, "LIBEXPORT void %send(CollectionPropertyIterator *iter);\n", func); + //fprintf(f, "LIBEXPORT int %slength(PointerRNA *ptr);\n", func); + //fprintf(f, "LIBEXPORT void %slookup_int(PointerRNA *ptr, int key, StructRNA **type);\n", func); + //fprintf(f, "LIBEXPORT void %slookup_string(PointerRNA *ptr, const char *key, StructRNA **type);\n", func); break; } } @@ -1368,23 +1386,23 @@ static void rna_def_property_funcs_header_cpp(FILE *f, StructRNA *srna, Property switch(prop->type) { case PROP_BOOLEAN: { if(!prop->arraydimension) - fprintf(f, "\tbool %s(void);", prop->identifier); + fprintf(f, "\tinline bool %s(void);", rna_safe_id(prop->identifier)); else - fprintf(f, "\tArray %s(void);", prop->totarraylength, prop->identifier); + fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_INT: { if(!prop->arraydimension) - fprintf(f, "\tint %s(void);", prop->identifier); + fprintf(f, "\tinline int %s(void);", rna_safe_id(prop->identifier)); else - fprintf(f, "\tArray %s(void);", prop->totarraylength, prop->identifier); + fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_FLOAT: { if(!prop->arraydimension) - fprintf(f, "\tfloat %s(void);", prop->identifier); + fprintf(f, "\tinline float %s(void);", rna_safe_id(prop->identifier)); else - fprintf(f, "\tArray %s(void);", prop->totarraylength, prop->identifier); + fprintf(f, "\tinline Array %s(void);", prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_ENUM: { @@ -1392,38 +1410,38 @@ static void rna_def_property_funcs_header_cpp(FILE *f, StructRNA *srna, Property int i; if(eprop->item) { - fprintf(f, "\tenum %s_enum {\n", prop->identifier); + fprintf(f, "\tenum %s_enum {\n", rna_safe_id(prop->identifier)); for(i=0; itotitem; i++) if(eprop->item[i].identifier[0]) - fprintf(f, "\t\t%s_%s = %d,\n", prop->identifier, eprop->item[i].identifier, eprop->item[i].value); + fprintf(f, "\t\t%s_%s = %d,\n", rna_safe_id(prop->identifier), eprop->item[i].identifier, eprop->item[i].value); fprintf(f, "\t};\n"); } - fprintf(f, "\t%s_enum %s(void);", prop->identifier, prop->identifier); + fprintf(f, "\tinline %s_enum %s(void);", rna_safe_id(prop->identifier), rna_safe_id(prop->identifier)); break; } case PROP_STRING: { - fprintf(f, "\tstd::string %s(void);", prop->identifier); + fprintf(f, "\tinline std::string %s(void);", rna_safe_id(prop->identifier)); break; } case PROP_POINTER: { PointerPropertyRNA *pprop= (PointerPropertyRNA*)dp->prop; if(pprop->type) - fprintf(f, "\t%s %s(void);", (char*)pprop->type, prop->identifier); + fprintf(f, "\tinline %s %s(void);", (char*)pprop->type, rna_safe_id(prop->identifier)); else - fprintf(f, "\t%s %s(void);", "UnknownType", prop->identifier); + fprintf(f, "\tinline %s %s(void);", "UnknownType", rna_safe_id(prop->identifier)); break; } case PROP_COLLECTION: { CollectionPropertyRNA *cprop= (CollectionPropertyRNA*)dp->prop; if(cprop->item_type) - fprintf(f, "\tCOLLECTION_PROPERTY(%s, %s, %s)", (char*)cprop->item_type, srna->identifier, prop->identifier); + fprintf(f, "\tCOLLECTION_PROPERTY(%s, %s, %s)", (char*)cprop->item_type, srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tCOLLECTION_PROPERTY(%s, %s, %s)", "UnknownType", srna->identifier, prop->identifier); + fprintf(f, "\tCOLLECTION_PROPERTY(%s, %s, %s)", "UnknownType", srna->identifier, rna_safe_id(prop->identifier)); break; } } @@ -1443,41 +1461,41 @@ static void rna_def_property_funcs_impl_cpp(FILE *f, StructRNA *srna, PropertyDe switch(prop->type) { case PROP_BOOLEAN: { if(!prop->arraydimension) - fprintf(f, "\tBOOLEAN_PROPERTY(%s, %s)", srna->identifier, prop->identifier); + fprintf(f, "\tBOOLEAN_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tBOOLEAN_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, prop->identifier); + fprintf(f, "\tBOOLEAN_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_INT: { if(!prop->arraydimension) - fprintf(f, "\tINT_PROPERTY(%s, %s)", srna->identifier, prop->identifier); + fprintf(f, "\tINT_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tINT_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, prop->identifier); + fprintf(f, "\tINT_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_FLOAT: { if(!prop->arraydimension) - fprintf(f, "\tFLOAT_PROPERTY(%s, %s)", srna->identifier, prop->identifier); + fprintf(f, "\tFLOAT_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tFLOAT_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, prop->identifier); + fprintf(f, "\tFLOAT_ARRAY_PROPERTY(%s, %d, %s)", srna->identifier, prop->totarraylength, rna_safe_id(prop->identifier)); break; } case PROP_ENUM: { - fprintf(f, "\tENUM_PROPERTY(%s_enum, %s, %s)", prop->identifier, srna->identifier, prop->identifier); + fprintf(f, "\tENUM_PROPERTY(%s_enum, %s, %s)", rna_safe_id(prop->identifier), srna->identifier, rna_safe_id(prop->identifier)); break; } case PROP_STRING: { - fprintf(f, "\tSTRING_PROPERTY(%s, %s)", srna->identifier, prop->identifier); + fprintf(f, "\tSTRING_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier)); break; } case PROP_POINTER: { PointerPropertyRNA *pprop= (PointerPropertyRNA*)dp->prop; if(pprop->type) - fprintf(f, "\tPOINTER_PROPERTY(%s, %s, %s)", (char*)pprop->type, srna->identifier, prop->identifier); + fprintf(f, "\tPOINTER_PROPERTY(%s, %s, %s)", (char*)pprop->type, srna->identifier, rna_safe_id(prop->identifier)); else - fprintf(f, "\tPOINTER_PROPERTY(%s, %s, %s)", "UnknownType", srna->identifier, prop->identifier); + fprintf(f, "\tPOINTER_PROPERTY(%s, %s, %s)", "UnknownType", srna->identifier, rna_safe_id(prop->identifier)); break; } case PROP_COLLECTION: { @@ -1812,7 +1830,7 @@ static void rna_generate_prototypes(BlenderRNA *brna, FILE *f) StructRNA *srna; for(srna=brna->structs.first; srna; srna=srna->cont.next) - fprintf(f, "extern StructRNA RNA_%s;\n", srna->identifier); + fprintf(f, "extern LIBEXPORT StructRNA RNA_%s;\n", srna->identifier); fprintf(f, "\n"); } @@ -2286,7 +2304,7 @@ static void rna_generate_struct(BlenderRNA *brna, StructRNA *srna, FILE *f) fprintf(f, "\n"); } - fprintf(f, "StructRNA RNA_%s = {\n", srna->identifier); + fprintf(f, "LIBEXPORT StructRNA RNA_%s = {\n", srna->identifier); if(srna->cont.next) fprintf(f, "\t{(ContainerRNA *)&RNA_%s, ", ((StructRNA*)srna->cont.next)->identifier); else fprintf(f, "\t{NULL, "); @@ -2337,6 +2355,7 @@ static void rna_generate_struct(BlenderRNA *brna, StructRNA *srna, FILE *f) fprintf(f, "\t%s,\n", rna_function_string(srna->path)); fprintf(f, "\t%s,\n", rna_function_string(srna->reg)); fprintf(f, "\t%s,\n", rna_function_string(srna->unreg)); + fprintf(f, "\t%s,\n", rna_function_string(srna->instance)); fprintf(f, "\t%s,\n", rna_function_string(srna->idproperties)); if(srna->reg && !srna->refine) { @@ -2431,6 +2450,12 @@ static void rna_generate(BlenderRNA *brna, FILE *f, const char *filename, const " Do not edit manually, changes will be overwritten. */\n\n" "#define RNA_RUNTIME\n\n"); + fprintf(f, "#ifdef _WIN32\n"); + fprintf(f, "#define LIBEXPORT __declspec(dllexport)\n"); + fprintf(f, "#else\n"); + fprintf(f, "#define LIBEXPORT\n"); + fprintf(f, "#endif\n\n"); + fprintf(f, "#include \n"); fprintf(f, "#include \n"); fprintf(f, "#include \n"); @@ -2507,6 +2532,12 @@ static void rna_generate_header(BlenderRNA *brna, FILE *f) fprintf(f, "/* Automatically generated function declarations for the Data API.\n" " Do not edit manually, changes will be overwritten. */\n\n"); + fprintf(f, "#ifdef _WIN32\n"); + fprintf(f, "#define LIBEXPORT __declspec(dllimport)\n"); + fprintf(f, "#else\n"); + fprintf(f, "#define LIBEXPORT\n"); + fprintf(f, "#endif\n\n"); + fprintf(f, "#include \"RNA_types.h\"\n\n"); fprintf(f, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n"); @@ -2528,7 +2559,7 @@ static void rna_generate_header(BlenderRNA *brna, FILE *f) fprintf(f, "/**************** %s ****************/\n\n", srna->name); while(srna) { - fprintf(f, "extern StructRNA RNA_%s;\n", srna->identifier); + fprintf(f, "extern LIBEXPORT StructRNA RNA_%s;\n", srna->identifier); srna= srna->base; } fprintf(f, "\n"); @@ -2546,40 +2577,40 @@ static const char *cpp_classes = "" "\n" "#include \n" "\n" -"namespace RNA {\n" +"namespace BL {\n" "\n" "#define BOOLEAN_PROPERTY(sname, identifier) \\\n" -" bool sname::identifier(void) { return (bool)sname##_##identifier##_get(&ptr); }\n" +" inline bool sname::identifier(void) { return (bool)sname##_##identifier##_get(&ptr); }\n" "\n" "#define BOOLEAN_ARRAY_PROPERTY(sname, size, identifier) \\\n" -" Array sname::identifier(void) \\\n" +" inline Array sname::identifier(void) \\\n" " { Array ar; sname##_##identifier##_get(&ptr, ar.data); return ar; }\n" "\n" "#define INT_PROPERTY(sname, identifier) \\\n" -" int sname::identifier(void) { return sname##_##identifier##_get(&ptr); }\n" +" inline int sname::identifier(void) { return sname##_##identifier##_get(&ptr); }\n" "\n" "#define INT_ARRAY_PROPERTY(sname, size, identifier) \\\n" -" Array sname::identifier(void) \\\n" +" inline Array sname::identifier(void) \\\n" " { Array ar; sname##_##identifier##_get(&ptr, ar.data); return ar; }\n" "\n" "#define FLOAT_PROPERTY(sname, identifier) \\\n" -" float sname::identifier(void) { return sname##_##identifier##_get(&ptr); }\n" +" inline float sname::identifier(void) { return sname##_##identifier##_get(&ptr); }\n" "\n" "#define FLOAT_ARRAY_PROPERTY(sname, size, identifier) \\\n" -" Array sname::identifier(void) \\\n" +" inline Array sname::identifier(void) \\\n" " { Array ar; sname##_##identifier##_get(&ptr, ar.data); return ar; }\n" "\n" "#define ENUM_PROPERTY(type, sname, identifier) \\\n" -" sname::type sname::identifier(void) { return (type)sname##_##identifier##_get(&ptr); }\n" +" inline sname::type sname::identifier(void) { return (type)sname##_##identifier##_get(&ptr); }\n" "\n" "#define STRING_PROPERTY(sname, identifier) \\\n" -" std::string sname::identifier(void) { \\\n" +" inline std::string sname::identifier(void) { \\\n" " int len= sname##_##identifier##_length(&ptr); \\\n" " std::string str; str.resize(len); \\\n" " sname##_##identifier##_get(&ptr, &str[0]); return str; } \\\n" "\n" "#define POINTER_PROPERTY(type, sname, identifier) \\\n" -" type sname::identifier(void) { return type(sname##_##identifier##_get(&ptr)); }\n" +" inline type sname::identifier(void) { return type(sname##_##identifier##_get(&ptr)); }\n" "\n" "#define COLLECTION_PROPERTY(type, sname, identifier) \\\n" " typedef CollectionIterator& operator=(const CollectionIterator& copy)\n" -" { if(init) Tend(&iter); iter= copy.iter; if(iter.internal) iter.internal= MEM_dupallocN(iter.internal); t= copy.t; init= copy.init; return *this; }\n" "\n" " operator bool(void)\n" " { return iter.valid != 0; }\n" " const CollectionIterator& operator++() { Tnext(&iter); t = T(iter.ptr); return *this; }\n" +" const CollectionIterator& operator=(const CollectionIterator& copy)\n" +" { if(init) Tend(&iter); iter= copy.iter; if(iter.internal) iter.internal= MEM_dupallocN(iter.internal); t= copy.t; init= copy.init; return *this; }\n" +"\n" " T& operator*(void) { return t; }\n" " T* operator->(void) { return &t; }\n" " bool operator==(const CollectionIterator& other) { return iter.valid == other.iter.valid; }\n" @@ -2661,7 +2693,7 @@ static void rna_generate_header_cpp(BlenderRNA *brna, FILE *f) fprintf(f, "/* Automatically generated classes for the Data API.\n" " Do not edit manually, changes will be overwritten. */\n\n"); - + fprintf(f, "#include \"RNA_blender.h\"\n"); fprintf(f, "#include \"RNA_types.h\"\n"); diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index bde7c99c7df..fbf9ffa01d9 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -384,7 +384,7 @@ static void rna_def_ID_properties(BlenderRNA *brna) RNA_def_struct_sdna(srna, "IDPropertyGroup"); RNA_def_struct_ui_text(srna, "ID Property Group", "Group of ID properties"); RNA_def_struct_idprops_func(srna, "rna_PropertyGroup_idprops"); - RNA_def_struct_register_funcs(srna, "rna_PropertyGroup_register", "rna_PropertyGroup_unregister"); + RNA_def_struct_register_funcs(srna, "rna_PropertyGroup_register", "rna_PropertyGroup_unregister", NULL); RNA_def_struct_refine_func(srna, "rna_PropertyGroup_refine"); /* important so python types can have their name used in list views @@ -463,6 +463,16 @@ static void rna_def_ID(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION); RNA_def_property_ui_text(prop, "Tag", "Tools can use this to tag data, (initial state is undefined)"); + prop= RNA_def_property(srna, "recalc", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Recalc", "Datablock is tagged for recalculation."); + + prop= RNA_def_property(srna, "recalc_data", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC_DATA); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Recalc Data", "Datablock data is tagged for recalculation."); + prop= RNA_def_property(srna, "library", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "lib"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index cd9b23da5d3..264396fd873 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -62,7 +62,7 @@ #include "rna_internal.h" -const PointerRNA PointerRNA_NULL= {{NULL}}; +LIBEXPORT const PointerRNA PointerRNA_NULL= {{NULL}}; /* Init/Exit */ @@ -663,6 +663,18 @@ StructUnregisterFunc RNA_struct_unregister(StructRNA *type) return NULL; } +void **RNA_struct_instance(PointerRNA *ptr) +{ + StructRNA *type= ptr->type; + + do { + if(type->instance) + return type->instance(ptr); + } while((type=type->base)); + + return NULL; +} + void *RNA_struct_py_type_get(StructRNA *srna) { return srna->py_type; @@ -1314,6 +1326,11 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR else prop->update(bmain, scene, ptr); } + else if(!(prop->flag & PROP_BUILTIN)) { + DAG_id_tag_update(ptr->id.data, OB_RECALC_ALL); + WM_main_add_notifier(NC_WINDOW, NULL); + } + if(prop->noteflag) WM_main_add_notifier(prop->noteflag, ptr->id.data); } diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index fb23e5ac63d..f53c61d36cc 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -509,7 +509,7 @@ static void rna_def_keyingset_info(BlenderRNA *brna) RNA_def_struct_sdna(srna, "KeyingSetInfo"); RNA_def_struct_ui_text(srna, "Keying Set Info", "Callback function defines for builtin Keying Sets"); RNA_def_struct_refine_func(srna, "rna_KeyingSetInfo_refine"); - RNA_def_struct_register_funcs(srna, "rna_KeyingSetInfo_register", "rna_KeyingSetInfo_unregister"); + RNA_def_struct_register_funcs(srna, "rna_KeyingSetInfo_register", "rna_KeyingSetInfo_unregister", NULL); /* Properties --------------------- */ diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c index 3afec03a13f..d66f0042d88 100644 --- a/source/blender/makesrna/intern/rna_define.c +++ b/source/blender/makesrna/intern/rna_define.c @@ -813,7 +813,7 @@ void RNA_def_struct_idprops_func(StructRNA *srna, const char *idproperties) if(idproperties) srna->idproperties= (IDPropertiesFunc)idproperties; } -void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg) +void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg, const char *instance) { if(!DefRNA.preprocess) { fprintf(stderr, "RNA_def_struct_register_funcs: only during preprocessing.\n"); @@ -822,6 +822,7 @@ void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char if(reg) srna->reg= (StructRegisterFunc)reg; if(unreg) srna->unreg= (StructUnregisterFunc)unreg; + if(instance) srna->instance= (StructInstanceFunc)instance; } void RNA_def_struct_path_func(StructRNA *srna, const char *path) diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 1d060c8a362..568a09dd4bd 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -30,6 +30,12 @@ #ifndef RNA_INTERNAL_H #define RNA_INTERNAL_H +#ifdef _WIN32 +#define LIBEXPORT __declspec(dllexport) +#else +#define LIBEXPORT +#endif + #include "UI_resources.h" #include "rna_internal_types.h" @@ -298,8 +304,8 @@ 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; +extern LIBEXPORT StructRNA RNA_PropertyGroupItem; +extern LIBEXPORT StructRNA RNA_PropertyGroup; struct IDProperty *rna_idproperty_check(struct PropertyRNA **prop, struct PointerRNA *ptr); diff --git a/source/blender/makesrna/intern/rna_internal_types.h b/source/blender/makesrna/intern/rna_internal_types.h index eb1beb90567..a59db183453 100644 --- a/source/blender/makesrna/intern/rna_internal_types.h +++ b/source/blender/makesrna/intern/rna_internal_types.h @@ -330,6 +330,7 @@ struct StructRNA { /* function to register/unregister subclasses */ StructRegisterFunc reg; StructUnregisterFunc unreg; + StructInstanceFunc instance; /* callback to get id properties */ IDPropertiesFunc idproperties; diff --git a/source/blender/makesrna/intern/rna_lamp.c b/source/blender/makesrna/intern/rna_lamp.c index d1679a19d8c..cd6ff4dad16 100644 --- a/source/blender/makesrna/intern/rna_lamp.c +++ b/source/blender/makesrna/intern/rna_lamp.c @@ -48,6 +48,7 @@ #include "BKE_main.h" #include "BKE_texture.h" +#include "ED_node.h" #include "WM_api.h" #include "WM_types.h" @@ -147,6 +148,14 @@ static void rna_Lamp_spot_size_set(PointerRNA *ptr, float value) la->spotsize= RAD2DEGF(value); } +static void rna_Lamp_use_nodes_set(PointerRNA *ptr, int value) +{ + Lamp *la= (Lamp*)ptr->data; + + la->use_nodes= value; + if(la->use_nodes && la->nodetree==NULL) + ED_node_shader_default(&la->id); +} #else @@ -368,6 +377,17 @@ static void rna_def_lamp(BlenderRNA *brna) RNA_def_property_boolean_negative_sdna(prop, NULL, "mode", LA_NO_DIFF); RNA_def_property_ui_text(prop, "Diffuse", "Lamp does diffuse shading"); RNA_def_property_update(prop, 0, "rna_Lamp_update"); + + /* nodes */ + prop= RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "nodetree"); + RNA_def_property_ui_text(prop, "Node Tree", "Node tree for node based lamps"); + + prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Lamp_use_nodes_set"); + RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the lamp"); + RNA_def_property_update(prop, 0, "rna_Lamp_update"); /* common */ rna_def_animdata_common(srna); diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index f5cbc6b2e87..454c456e051 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -231,7 +231,7 @@ Mesh *rna_Main_meshes_new(Main *bmain, const char *name) id_us_min(&me->id); return me; } -void rna_Main_meshes_remove(Main *bmain, ReportList *reports, Mesh *mesh) +LIBEXPORT void rna_Main_meshes_remove(Main *bmain, ReportList *reports, Mesh *mesh) { if(ID_REAL_USERS(mesh) <= 0) free_libblock(&bmain->mesh, mesh); diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index 909c824074e..81afac6caec 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -269,7 +269,7 @@ static void rna_Material_use_nodes_set(PointerRNA *ptr, int value) ma->use_nodes= value; if(ma->use_nodes && ma->nodetree==NULL) - ED_node_shader_default(ma); + ED_node_shader_default(&ma->id); } static EnumPropertyItem *rna_Material_texture_coordinates_itemf(bContext *C, PointerRNA *ptr, int *free) diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index b6d0f77c5a5..7c5c947c21d 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -99,6 +99,28 @@ EnumPropertyItem node_filter_items[] = { {6, "SHADOW", 0, "Shadow", ""}, {0, NULL, 0, NULL, NULL}}; +EnumPropertyItem prop_noise_basis_items[] = { + {SHD_NOISE_PERLIN, "PERLIN", 0, "Perlin", ""}, + {SHD_NOISE_VORONOI_F1, "VORONOI_F1", 0, "Voronoi F1", ""}, + {SHD_NOISE_VORONOI_F2, "VORONOI_F2", 0, "Voronoi F2", ""}, + {SHD_NOISE_VORONOI_F3, "VORONOI_F3", 0, "Voronoi F3", ""}, + {SHD_NOISE_VORONOI_F4, "VORONOI_F4", 0, "Voronoi F4", ""}, + {SHD_NOISE_VORONOI_F2_F1, "VORONOI_F2_F1", 0, "Voronoi F2-F1", ""}, + {SHD_NOISE_VORONOI_CRACKLE, "VORONOI_CRACKLE", 0, "Voronoi Crackle", ""}, + {SHD_NOISE_CELL_NOISE, "CELL_NOISE", 0, "Cell Noise", ""}, + {0, NULL, 0, NULL, NULL}}; + +EnumPropertyItem prop_noise_type_items[] = { + {SHD_NOISE_SOFT, "SOFT", 0, "Soft", ""}, + {SHD_NOISE_HARD, "HARD", 0, "Hard", ""}, + {0, NULL, 0, NULL, NULL}}; + +EnumPropertyItem prop_wave_items[] = { + {SHD_WAVE_SINE, "SINE", 0, "Sine", "Uses a sine wave to produce bands"}, + {SHD_WAVE_SAW, "SAW", 0, "Saw", "Uses a saw wave to produce bands"}, + {SHD_WAVE_TRI, "TRI", 0, "Tri", "Uses a triangle wave to produce bands"}, + {0, NULL, 0, NULL, NULL}}; + #ifdef RNA_RUNTIME #include "BLI_linklist.h" @@ -142,8 +164,10 @@ static StructRNA *rna_NodeSocketType_refine(struct PointerRNA *ptr) return &RNA_VectorNodeSocket; case SOCK_RGBA: return &RNA_RGBANodeSocket; + case SOCK_CLOSURE: + return &RNA_ClosureNodeSocket; default: - return &RNA_UnknownType; + return &RNA_NodeSocket; } } @@ -159,7 +183,7 @@ static StructRNA *rna_NodeTree_refine(struct PointerRNA *ptr) case NTREE_TEXTURE: return &RNA_TextureNodeTree; default: - return &RNA_UnknownType; + return &RNA_NodeTree; } } @@ -668,6 +692,12 @@ static EnumPropertyItem node_ycc_items[] = { { 2, "JFIF", 0, "Jpeg", ""}, {0, NULL, 0, NULL, NULL}}; +static EnumPropertyItem node_glossy_items[] = { +{SHD_GLOSSY_SHARP, "SHARP", 0, "Sharp", ""}, +{SHD_GLOSSY_BECKMANN, "BECKMANN", 0, "Beckmann", ""}, +{SHD_GLOSSY_GGX, "GGX", 0, "GGX", ""}, +{0, NULL, 0, NULL, NULL}}; + #define MaxNodes 1000 enum @@ -997,6 +1027,325 @@ static void def_sh_geometry(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); } +static void def_sh_tex_sky(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexSky", "storage"); + + prop = RNA_def_property(srna, "sun_direction", PROP_FLOAT, PROP_DIRECTION); + RNA_def_property_ui_text(prop, "Sun Direction", "Direction from where the sun is shining"); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + + prop = RNA_def_property(srna, "turbidity", PROP_FLOAT, PROP_NONE); + RNA_def_property_ui_text(prop, "Turbidity", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); +} + +static void def_sh_tex_environment(StructRNA *srna) +{ + PropertyRNA *prop; + + prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "id"); + RNA_def_property_struct_type(prop, "Image"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Image", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + + RNA_def_struct_sdna_from(srna, "NodeTexEnvironment", "storage"); +} + +static void def_sh_tex_image(StructRNA *srna) +{ + PropertyRNA *prop; + + prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "id"); + RNA_def_property_struct_type(prop, "Image"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Image", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + + RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); +} + +static void def_sh_tex_blend(StructRNA *srna) +{ + static EnumPropertyItem prop_blend_progression[] = { + {SHD_BLEND_LINEAR, "LINEAR", 0, "Linear", "Creates a linear progression"}, + {SHD_BLEND_QUADRATIC, "QUADRATIC", 0, "Quadratic", "Creates a quadratic progression"}, + {SHD_BLEND_EASING, "EASING", 0, "Easing", "Creates a progression easing from one step to the next"}, + {SHD_BLEND_DIAGONAL, "DIAGONAL", 0, "Diagonal", "Creates a diagonal progression"}, + {SHD_BLEND_SPHERICAL, "SPHERICAL", 0, "Spherical", "Creates a spherical progression"}, + {SHD_BLEND_QUADRATIC_SPHERE, "QUADRATIC_SPHERE", 0, "Quadratic sphere", "Creates a quadratic progression in the shape of a sphere"}, + {SHD_BLEND_RADIAL, "RADIAL", 0, "Radial", "Creates a radial progression"}, + {0, NULL, 0, NULL, NULL}}; + + static const EnumPropertyItem prop_axis_items[]= { + {SHD_BLEND_HORIZONTAL, "HORIZONTAL", 0, "Horizontal", "Flips the texture's X and Y axis"}, + {SHD_BLEND_VERTICAL, "VERTICAL", 0, "Vertical", "Flips the texture's X and Y axis"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexBlend", "storage"); + + prop= RNA_def_property(srna, "progression", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "progression"); + RNA_def_property_enum_items(prop, prop_blend_progression); + RNA_def_property_ui_text(prop, "Progression", "Sets the style of the color blending"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_bitflag_sdna(prop, NULL, "axis"); + RNA_def_property_enum_items(prop, prop_axis_items); + RNA_def_property_ui_text(prop, "Axis", "Flips the texture's X and Y axis"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_clouds(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexClouds", "storage"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "hard"); + RNA_def_property_enum_items(prop, prop_noise_type_items); + RNA_def_property_ui_text(prop, "Noise Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "depth"); + RNA_def_property_range(prop, 0, 30); + RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_distnoise(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexDistortedNoise", "storage"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_distortion", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "distortion_basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Distortion", "Sets the noise basis used for distortion"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_magic(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexMagic", "storage"); + + prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "depth"); + RNA_def_property_range(prop, 0, 10); + RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_marble(StructRNA *srna) +{ + static EnumPropertyItem prop_marble_stype[] = { + {SHD_MARBLE_SOFT, "SOFT", 0, "Soft", "Uses soft marble"}, + {SHD_MARBLE_SHARP, "SHARP", 0, "Sharp", "Uses more clearly defined marble"}, + {SHD_MARBLE_SHARPER, "SHARPER", 0, "Sharper", "Uses very clearly defined marble"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexMarble", "storage"); + + prop= RNA_def_property(srna, "marble_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_items(prop, prop_marble_stype); + RNA_def_property_ui_text(prop, "Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "hard"); + RNA_def_property_enum_items(prop, prop_noise_type_items); + RNA_def_property_ui_text(prop, "Noise Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "depth"); + RNA_def_property_range(prop, 0, 30); + RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "wave_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "wave"); + RNA_def_property_enum_items(prop, prop_wave_items); + RNA_def_property_ui_text(prop, "Wave Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_musgrave(StructRNA *srna) +{ + static EnumPropertyItem prop_musgrave_type[] = { + {SHD_MUSGRAVE_MULTIFRACTAL, "MULTIFRACTAL", 0, "Multifractal", ""}, + {SHD_MUSGRAVE_RIDGED_MULTIFRACTAL, "RIDGED_MULTIFRACTAL", 0, "Ridged Multifractal", ""}, + {SHD_MUSGRAVE_HYBRID_MULTIFRACTAL, "HYBRID_MULTIFRACTAL", 0, "Hybrid Multifractal", ""}, + {SHD_MUSGRAVE_FBM, "FBM", 0, "fBM", ""}, + {SHD_MUSGRAVE_HETERO_TERRAIN, "HETERO_TERRAIN", 0, "Hetero Terrain", ""}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexMusgrave", "storage"); + + prop= RNA_def_property(srna, "musgrave_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_items(prop, prop_musgrave_type); + RNA_def_property_ui_text(prop, "Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_stucci(StructRNA *srna) +{ + static EnumPropertyItem prop_stucci_stype[] = { + {SHD_STUCCI_PLASTIC, "PLASTIC", 0, "Plastic", "Uses standard stucci"}, + {SHD_STUCCI_WALL_IN, "WALL_IN", 0, "Wall in", "Creates Dimples"}, + {SHD_STUCCI_WALL_OUT, "WALL_OUT", 0, "Wall out", "Creates Ridges"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexStucci", "storage"); + + prop= RNA_def_property(srna, "stucci_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_items(prop, prop_stucci_stype); + RNA_def_property_ui_text(prop, "Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "hard"); + RNA_def_property_enum_items(prop, prop_noise_type_items); + RNA_def_property_ui_text(prop, "Noise Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_voronoi(StructRNA *srna) +{ + static EnumPropertyItem prop_distance_metric_items[] = { + {SHD_VORONOI_ACTUAL_DISTANCE, "DISTANCE", 0, "Actual Distance", ""}, + {SHD_VORONOI_DISTANCE_SQUARED, "DISTANCE_SQUARED", 0, "Distance Squared", ""}, + {SHD_VORONOI_MANHATTAN, "MANHATTAN", 0, "Manhattan", ""}, + {SHD_VORONOI_CHEBYCHEV, "CHEBYCHEV", 0, "Chebychev", ""}, + {SHD_VORONOI_MINKOVSKY_H, "MINKOVSKY_HALF", 0, "Minkovsky 1/2", ""}, + {SHD_VORONOI_MINKOVSKY_4, "MINKOVSKY_FOUR", 0, "Minkovsky 4", ""}, + {SHD_VORONOI_MINKOVSKY, "MINKOVSKY", 0, "Minkovsky", ""}, + {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem prop_coloring_items[] = { + {SHD_VORONOI_INTENSITY, "INTENSITY", 0, "Intensity", "Only calculate intensity"}, + {SHD_VORONOI_POSITION, "POSITION", 0, "Position", "Color cells by position"}, + {SHD_VORONOI_POSITION_OUTLINE, "POSITION_OUTLINE", 0, "Position and Outline", "Use position plus an outline based on F2-F.1"}, + {SHD_VORONOI_POSITION_OUTLINE_INTENSITY, "POSITION_OUTLINE_INTENSITY", 0, "Position, Outline, and Intensity", "Multiply position and outline by intensity"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexVoronoi", "storage"); + + prop= RNA_def_property(srna, "distance_metric", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "distance_metric"); + RNA_def_property_enum_items(prop, prop_distance_metric_items); + RNA_def_property_ui_text(prop, "Distance Metric", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "coloring", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "coloring"); + RNA_def_property_enum_items(prop, prop_coloring_items); + RNA_def_property_ui_text(prop, "Coloring", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_sh_tex_wood(StructRNA *srna) +{ + static EnumPropertyItem prop_wood_type_items[] = { + {SHD_WOOD_BANDS, "BANDS", 0, "Bands", "Uses standard wood texture in bands"}, + {SHD_WOOD_RINGS, "RINGS", 0, "Rings", "Uses wood texture in rings"}, + {SHD_WOOD_BAND_NOISE, "BAND_NOISE", 0, "Band Noise", "Adds noise to standard wood"}, + {SHD_WOOD_RING_NOISE, "RING_NOISE", 0, "Ring Noise", "Adds noise to rings"}, + {0, NULL, 0, NULL, NULL}}; + + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeTexWood", "storage"); + + prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "basis"); + RNA_def_property_enum_items(prop, prop_noise_basis_items); + RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "hard"); + RNA_def_property_enum_items(prop, prop_noise_type_items); + RNA_def_property_ui_text(prop, "Noise Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "wood_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_items(prop, prop_wood_type_items); + RNA_def_property_ui_text(prop, "Wood Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); + + prop= RNA_def_property(srna, "wave_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "wave"); + RNA_def_property_enum_items(prop, prop_wave_items); + RNA_def_property_ui_text(prop, "Wave Type", ""); + RNA_def_property_update(prop, 0, "rna_Node_update"); +} + +static void def_glossy(StructRNA *srna) +{ + PropertyRNA *prop; + + prop = RNA_def_property(srna, "distribution", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "custom1"); + RNA_def_property_enum_items(prop, node_glossy_items); + RNA_def_property_ui_text(prop, "Distribution", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); +} /* -- Compositor Nodes ------------------------------------------------------ */ @@ -2536,6 +2885,16 @@ static void rna_def_node_socket(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_enum_items(prop, node_socket_type_items); RNA_def_property_ui_text(prop, "Type", "Node Socket type"); + + prop = RNA_def_property(srna, "group_socket", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "groupsock"); + RNA_def_property_struct_type(prop, "NodeSocket"); + RNA_def_property_ui_text(prop, "Group Socket", "For group nodes, the group input or output socket this corresponds to"); + + prop = RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SOCK_COLLAPSED); + RNA_def_property_ui_text(prop, "Expanded", "Socket links are expanded in the user interface"); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, NULL); } static void rna_def_node_socket_value(BlenderRNA *brna) @@ -2595,6 +2954,17 @@ static void rna_def_node_socket_rgba(BlenderRNA *brna) RNA_def_property_float_funcs(prop, NULL, NULL, "rna_NodeSocket_defvalue_range"); } +static void rna_def_node_socket_closure(BlenderRNA *brna) +{ + StructRNA *srna; + + srna = RNA_def_struct(brna, "ClosureNodeSocket", "NodeSocket"); + RNA_def_struct_ui_text(srna, "Closure Node Socket", "Input or output socket of a node"); + RNA_def_struct_sdna(srna, "bNodeSocket"); + RNA_def_struct_ui_icon(srna, ICON_PLUG); + RNA_def_struct_path_func(srna, "rna_NodeSocket_path"); +} + static void rna_def_node(BlenderRNA *brna) { StructRNA *srna; @@ -2824,6 +3194,7 @@ void RNA_def_nodetree(BlenderRNA *brna) rna_def_node_socket_value(brna); rna_def_node_socket_vector(brna); rna_def_node_socket_rgba(brna); + rna_def_node_socket_closure(brna); rna_def_node(brna); rna_def_node_link(brna); rna_def_shader_node(brna); diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index d48df85697a..1170df281f2 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -37,7 +37,7 @@ DefNode( ShaderNode, SH_NODE_VALTORGB, def_colorramp, "VALTO DefNode( ShaderNode, SH_NODE_RGBTOBW, 0, "RGBTOBW", RGBToBW, "RGB to BW", "" ) DefNode( ShaderNode, SH_NODE_TEXTURE, def_texture, "TEXTURE", Texture, "Texture", "" ) DefNode( ShaderNode, SH_NODE_NORMAL, 0, "NORMAL", Normal, "Normal", "" ) -DefNode( ShaderNode, SH_NODE_GEOMETRY, def_sh_geometry, "GEOMETRY", Geometry, "Geometry", "" ) +DefNode( ShaderNode, SH_NODE_GEOM, def_sh_geometry, "GEOM", Geom, "Geometry", "" ) DefNode( ShaderNode, SH_NODE_MAPPING, def_sh_mapping, "MAPPING", Mapping, "Mapping", "" ) DefNode( ShaderNode, SH_NODE_CURVE_VEC, def_vector_curve, "CURVE_VEC", VectorCurve, "Vector Curve", "" ) DefNode( ShaderNode, SH_NODE_CURVE_RGB, def_rgb_curve, "CURVE_RGB", RGBCurve, "RGB Curve", "" ) @@ -50,7 +50,40 @@ DefNode( ShaderNode, SH_NODE_INVERT, 0, "INVER DefNode( ShaderNode, SH_NODE_SEPRGB, 0, "SEPRGB", SeparateRGB, "Separate RGB", "" ) DefNode( ShaderNode, SH_NODE_COMBRGB, 0, "COMBRGB", CombineRGB, "Combine RGB", "" ) DefNode( ShaderNode, SH_NODE_HUE_SAT, 0, "HUE_SAT", HueSaturation, "Hue/Saturation", "" ) - +DefNode( ShaderNode, SH_NODE_OUTPUT_MATERIAL, 0, "OUTPUT_MATERIAL",OutputMaterial, "Material Output", "" ) +DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPUT_LAMP", OutputLamp, "Lamp Output", "" ) +DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) +DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) +DefNode( ShaderNode, SH_NODE_MIX_CLOSURE, 0, "MIX_CLOSURE", MixClosure, "Mix Closure", "" ) +DefNode( ShaderNode, SH_NODE_ADD_CLOSURE, 0, "ADD_CLOSURE", AddClosure, "Add Closure", "" ) + +DefNode( ShaderNode, SH_NODE_ATTRIBUTE, 0, "ATTRIBUTE", Attribute, "Attribute", "") +DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "") +DefNode( ShaderNode, SH_NODE_BSDF_ANISOTROPIC, 0, "BSDF_ANISOTROPIC", BsdfAnisotropic, "Bsdf Anisotropic", "") +DefNode( ShaderNode, SH_NODE_BSDF_DIFFUSE, 0, "BSDF_DIFFUSE", BsdfDiffuse, "Diffuse Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_GLOSSY, def_glossy, "BSDF_GLOSSY", BsdfGlossy, "Glossy Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_GLASS, def_glossy, "BSDF_GLASS", BsdfGlass, "Glass Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_TRANSLUCENT, 0, "BSDF_TRANSLUCENT", BsdfTranslucent, "Translucent Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_TRANSPARENT, 0, "BSDF_TRANSPARENT", BsdfTransparent, "Transparent Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_VELVET, 0, "BSDF_VELVET", BsdfVelvet, "Velvet Bsdf", "") +DefNode( ShaderNode, SH_NODE_EMISSION, 0, "EMISSION", Emission, "Emission", "") +DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GEOMETRY", Geometry, "Geometry", "") +DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") +DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_NOISE, 0, "TEX_NOISE", TexNoise, "Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_BLEND, def_sh_tex_blend, "TEX_BLEND", TexBlend, "Blend Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_CLOUDS, def_sh_tex_clouds, "TEX_CLOUDS", TexClouds, "Clouds Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_DISTNOISE, def_sh_tex_distnoise, "TEX_DISTORTED_NOISE", TexDistortedNoise, "Distorted Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MAGIC, def_sh_tex_magic, "TEX_MAGIC", TexMagic, "Magic Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MARBLE, def_sh_tex_marble, "TEX_MARBLE", TexMarble, "Marble Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MUSGRAVE, def_sh_tex_musgrave, "TEX_MUSGRAVE", TexMusgrave, "Musgrave Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_STUCCI, def_sh_tex_stucci, "TEX_STUCCI", TexStucci, "Stucci Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_VORONOI, def_sh_tex_voronoi, "TEX_VORONOI", TexVoronoi, "Voronoi Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_WOOD, def_sh_tex_wood, "TEX_WOOD", TexWood, "Wood Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_COORD, 0, "TEX_COORD", TexCoord, "Texture Coordinate", "") + DefNode( CompositorNode, CMP_NODE_VIEWER, 0, "VIEWER", Viewer, "Viewer", "" ) DefNode( CompositorNode, CMP_NODE_RGB, 0, "RGB", RGB, "RGB", "" ) DefNode( CompositorNode, CMP_NODE_VALUE, 0, "VALUE", Value, "Value", "" ) diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index d6af04f2475..e64e024c530 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -78,7 +78,7 @@ /* copied from Mesh_getFromObject and adapted to RNA interface */ /* settings: 0 - preview, 1 - render */ -static Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_modifiers, int settings) +LIBEXPORT Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_modifiers, int settings) { Mesh *tmpmesh; Curve *tmpcu = NULL; @@ -286,7 +286,7 @@ static void dupli_render_particle_set(Scene *scene, Object *ob, int level, int e dupli_render_particle_set(scene, go->ob, level+1, enable); } /* When no longer needed, duplilist should be freed with Object.free_duplilist */ -static void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce) +LIBEXPORT void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce) { if (!(ob->transflag & OB_DUPLI)) { BKE_report(reports, RPT_ERROR, "Object does not have duplis."); @@ -308,7 +308,7 @@ static void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene * /* ob->duplilist should now be freed with Object.free_duplilist */ } -static void rna_Object_free_duplilist(Object *ob) +LIBEXPORT void rna_Object_free_duplilist(Object *ob) { if (ob->duplilist) { free_object_duplilist(ob->duplilist); @@ -422,7 +422,7 @@ void rna_ObjectBase_layers_from_view(Base *base, View3D *v3d) base->lay= base->object->lay= v3d->lay; } -int rna_Object_is_modified(Object *ob, Scene *scene, int settings) +LIBEXPORT int rna_Object_is_modified(Object *ob, Scene *scene, int settings) { return object_is_modified(scene, ob) & settings; } diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 93754d324df..85e1ec159cd 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -51,10 +51,10 @@ /* RenderEngine */ static RenderEngineType internal_render_type = { - NULL, NULL, "BLENDER_RENDER", "Blender Render", RE_INTERNAL, NULL, {NULL, NULL, NULL, NULL}}; + NULL, NULL, "BLENDER_RENDER", "Blender Render", RE_INTERNAL, NULL, NULL, NULL, {NULL, NULL, NULL}}; #ifdef WITH_GAMEENGINE static RenderEngineType internal_game_type = { - NULL, NULL, "BLENDER_GAME", "Blender Game", RE_INTERNAL|RE_GAME, NULL, {NULL, NULL, NULL, NULL}}; + NULL, NULL, "BLENDER_GAME", "Blender Game", RE_INTERNAL|RE_GAME, NULL, NULL, NULL, {NULL, NULL, NULL}}; #endif ListBase R_engines = {NULL, NULL}; @@ -85,6 +85,16 @@ void RE_engines_exit(void) } } +LIBEXPORT void engine_tag_redraw(RenderEngine *engine) +{ + engine->do_draw = 1; +} + +LIBEXPORT void engine_tag_update(RenderEngine *engine) +{ + engine->do_update = 1; +} + static void engine_render(RenderEngine *engine, struct Scene *scene) { PointerRNA ptr; @@ -101,6 +111,38 @@ static void engine_render(RenderEngine *engine, struct Scene *scene) RNA_parameter_list_free(&list); } +static void engine_draw(RenderEngine *engine, struct Scene *scene) +{ + PointerRNA ptr; + ParameterList list; + FunctionRNA *func; + + RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); + func= RNA_struct_find_function(&ptr, "draw"); + + RNA_parameter_list_create(&list, &ptr, func); + RNA_parameter_set_lookup(&list, "scene", &scene); + engine->type->ext.call(NULL, &ptr, func, &list); + + RNA_parameter_list_free(&list); +} + +static void engine_update(RenderEngine *engine, struct Scene *scene) +{ + PointerRNA ptr; + ParameterList list; + FunctionRNA *func; + + RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); + func= RNA_struct_find_function(&ptr, "update"); + + RNA_parameter_list_create(&list, &ptr, func); + RNA_parameter_set_lookup(&list, "scene", &scene); + engine->type->ext.call(NULL, &ptr, func, &list); + + RNA_parameter_list_free(&list); +} + static void rna_RenderEngine_unregister(const bContext *C, StructRNA *type) { RenderEngineType *et= RNA_struct_blender_type_get(type); @@ -118,7 +160,7 @@ static StructRNA *rna_RenderEngine_register(bContext *C, ReportList *reports, vo RenderEngineType *et, dummyet = {NULL}; RenderEngine dummyengine= {NULL}; PointerRNA dummyptr; - int have_function[1]; + int have_function[3]; /* setup dummy engine & engine type to store static properties in */ dummyengine.type= &dummyet; @@ -153,12 +195,20 @@ static StructRNA *rna_RenderEngine_register(bContext *C, ReportList *reports, vo RNA_struct_blender_type_set(et->ext.srna, et); et->render= (have_function[0])? engine_render: NULL; + et->draw= (have_function[1])? engine_draw: NULL; + et->update= (have_function[2])? engine_update: NULL; BLI_addtail(&R_engines, et); return et->ext.srna; } +static void **rna_RenderEngine_instance(PointerRNA *ptr) +{ + RenderEngine *engine = ptr->data; + return &engine->py_instance; +} + static StructRNA* rna_RenderEngine_refine(PointerRNA *ptr) { RenderEngine *engine= (RenderEngine*)ptr->data; @@ -193,7 +243,7 @@ static void rna_RenderLayer_rect_get(PointerRNA *ptr, float *values) memcpy(values, rl->rectf, sizeof(float)*rl->rectx*rl->recty*4); } -static void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values) +LIBEXPORT void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values) { RenderLayer *rl= (RenderLayer*)ptr->data; memcpy(rl->rectf, values, sizeof(float)*rl->rectx*rl->recty*4); @@ -215,7 +265,7 @@ static void rna_RenderPass_rect_get(PointerRNA *ptr, float *values) memcpy(values, rpass->rect, sizeof(float)*rpass->rectx*rpass->recty*rpass->channels); } -static void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values) +LIBEXPORT void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values) { RenderPass *rpass= (RenderPass*)ptr->data; memcpy(rpass->rect, values, sizeof(float)*rpass->rectx*rpass->recty*rpass->channels); @@ -233,7 +283,7 @@ static void rna_def_render_engine(BlenderRNA *brna) RNA_def_struct_sdna(srna, "RenderEngine"); RNA_def_struct_ui_text(srna, "Render Engine", "Render engine"); RNA_def_struct_refine_func(srna, "rna_RenderEngine_refine"); - RNA_def_struct_register_funcs(srna, "rna_RenderEngine_register", "rna_RenderEngine_unregister"); + RNA_def_struct_register_funcs(srna, "rna_RenderEngine_register", "rna_RenderEngine_unregister", "rna_RenderEngine_instance"); /* render */ func= RNA_def_function(srna, "render", NULL); @@ -241,6 +291,23 @@ static void rna_def_render_engine(BlenderRNA *brna) RNA_def_function_flag(func, FUNC_REGISTER); RNA_def_pointer(func, "scene", "Scene", "", ""); + /* draw */ + func= RNA_def_function(srna, "draw", NULL); + RNA_def_function_ui_description(func, "Draw progressive render into viewport."); + RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "scene", "Scene", "", ""); + + func= RNA_def_function(srna, "update", NULL); + RNA_def_function_ui_description(func, "Notify data has changed for progressive viewport render."); + RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "scene", "Scene", "", ""); + + /* tag for redraw */ + RNA_def_function(srna, "tag_redraw", "engine_tag_redraw"); + + /* tag for update */ + RNA_def_function(srna, "tag_update", "engine_tag_update"); + func= RNA_def_function(srna, "begin_result", "RE_engine_begin_result"); prop= RNA_def_int(func, "x", 0, 0, INT_MAX, "X", "", 0, INT_MAX); RNA_def_property_flag(prop, PROP_REQUIRED); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index acb0ffa3be2..294062c2ed3 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -54,6 +54,8 @@ #include #endif +#include "ED_render.h" + #include "WM_api.h" #include "WM_types.h" @@ -740,6 +742,11 @@ static int rna_RenderSettings_engine_get(PointerRNA *ptr) return 0; } +static void rna_RenderSettings_engine_update(Main *bmain, Scene *unused, PointerRNA *ptr) +{ + ED_render_engine_changed(bmain); +} + static void rna_Scene_glsl_update(Main *bmain, Scene *unused, PointerRNA *ptr) { Scene *scene= (Scene*)ptr->id.data; @@ -2927,7 +2934,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_enum_items(prop, engine_items); RNA_def_property_enum_funcs(prop, "rna_RenderSettings_engine_get", "rna_RenderSettings_engine_set", "rna_RenderSettings_engine_itemf"); RNA_def_property_ui_text(prop, "Engine", "Engine to use for rendering"); - RNA_def_property_update(prop, NC_WINDOW, NULL); + RNA_def_property_update(prop, NC_WINDOW, "rna_RenderSettings_engine_update"); prop= RNA_def_property(srna, "has_multiple_engines", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_multiple_engines_get", NULL); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 5e261fa2d18..9addb982645 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -48,6 +48,8 @@ #include "WM_api.h" #include "WM_types.h" +#include "RE_pipeline.h" + EnumPropertyItem space_type_items[] = { {SPACE_EMPTY, "EMPTY", 0, "Empty", ""}, {SPACE_VIEW3D, "VIEW_3D", 0, "3D View", ""}, @@ -103,6 +105,7 @@ EnumPropertyItem viewport_shade_items[] = { {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display the object solid, lit with default OpenGL lights"}, //{OB_SHADED, "SHADED", ICON_SMOOTH, "Shaded", "Display the object solid, with preview shading interpolated at vertices"}, {OB_TEXTURE, "TEXTURED", ICON_POTATO, "Textured", "Display the object solid, with face-assigned textures"}, + {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display progressive render preview"}, {0, NULL, 0, NULL, NULL}}; #ifdef RNA_RUNTIME @@ -319,6 +322,25 @@ static void rna_SpaceView3D_layer_update(Main *bmain, Scene *scene, PointerRNA * DAG_on_visible_update(bmain, FALSE); } +static void rna_SpaceView3D_viewport_shade_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + View3D *v3d= (View3D*)(ptr->data); + ScrArea *sa= rna_area_from_space(ptr); + + if(v3d->drawtype != OB_RENDER) { + ARegion *ar; + + for(ar=sa->regionbase.first; ar; ar=ar->next) { + RegionView3D *rv3d = ar->regiondata; + + if(rv3d && rv3d->render_engine) { + RE_engine_free(rv3d->render_engine); + rv3d->render_engine= NULL; + } + } + } +} + static PointerRNA rna_SpaceView3D_region_3d_get(PointerRNA *ptr) { View3D *v3d= (View3D*)(ptr->data); @@ -1162,7 +1184,7 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "drawtype"); RNA_def_property_enum_items(prop, viewport_shade_items); RNA_def_property_ui_text(prop, "Viewport Shading", "Method to display/shade objects in the 3D View"); - RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, "rna_SpaceView3D_viewport_shade_update"); prop= RNA_def_property(srna, "local_view", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "localvd"); @@ -1417,6 +1439,17 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_float_sdna(prop, NULL, "dist"); RNA_def_property_ui_text(prop, "Distance", "Distance to the view location"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + + prop= RNA_def_property(srna, "view_camera_zoom", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "camzoom"); + RNA_def_property_ui_text(prop, "Camera Zoom", "Zoom factor in camera view"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + + prop= RNA_def_property(srna, "view_camera_offset", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "camdx"); + RNA_def_property_array(prop, 2); + RNA_def_property_ui_text(prop, "Camera Offset", "View shift in camera view"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); } static void rna_def_space_buttons(BlenderRNA *brna) @@ -2291,9 +2324,9 @@ static void rna_def_space_filebrowser(BlenderRNA *brna) RNA_def_property_pointer_sdna(prop, NULL, "params"); RNA_def_property_ui_text(prop, "Filebrowser Parameter", "Parameters and Settings for the Filebrowser"); - prop= RNA_def_property(srna, "operator", PROP_POINTER, PROP_NONE); + prop= RNA_def_property(srna, "active_operator", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "op"); - RNA_def_property_ui_text(prop, "Operator", ""); + RNA_def_property_ui_text(prop, "Active Operator", ""); } static void rna_def_space_info(BlenderRNA *brna) @@ -2353,7 +2386,7 @@ static void rna_def_space_node(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem tree_type_items[] = { - {NTREE_SHADER, "MATERIAL", ICON_MATERIAL, "Material", "Material nodes"}, + {NTREE_SHADER, "SHADER", ICON_MATERIAL, "Shader", "Shader nodes"}, {NTREE_TEXTURE, "TEXTURE", ICON_TEXTURE, "Texture", "Texture nodes"}, {NTREE_COMPOSIT, "COMPOSITING", ICON_RENDERLAYERS, "Compositing", "Compositing nodes"}, {0, NULL, 0, NULL, NULL}}; @@ -2364,6 +2397,11 @@ static void rna_def_space_node(BlenderRNA *brna) {SNODE_TEX_BRUSH, "BRUSH", ICON_BRUSH_DATA, "Brush", "Edit texture nodes from Brush"}, {0, NULL, 0, NULL, NULL}}; + static EnumPropertyItem shader_type_items[] = { + {SNODE_SHADER_OBJECT, "OBJECT", ICON_OBJECT_DATA, "Object", "Edit shader nodes from Object"}, + {SNODE_SHADER_WORLD, "WORLD", ICON_WORLD_DATA, "World", "Edit shader nodes from World"}, + {0, NULL, 0, NULL, NULL}}; + static EnumPropertyItem backdrop_channels_items[] = { {0, "COLOR", ICON_IMAGE_RGB, "Color", "Draw image with RGB colors"}, {SNODE_USE_ALPHA, "COLOR_ALPHA", ICON_IMAGE_RGB_ALPHA, "Color and Alpha", "Draw image with RGB colors and alpha transparency"}, @@ -2386,6 +2424,12 @@ static void rna_def_space_node(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Texture Type", "Type of data to take texture from"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NODE, NULL); + prop= RNA_def_property(srna, "shader_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "shaderfrom"); + RNA_def_property_enum_items(prop, shader_type_items); + RNA_def_property_ui_text(prop, "Shader Type", "Type of data to take shader from"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NODE, NULL); + prop= RNA_def_property(srna, "id", PROP_POINTER, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "ID", "Datablock whose nodes are being edited"); diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c index d48c1d35c13..d8ea8b3df48 100644 --- a/source/blender/makesrna/intern/rna_ui.c +++ b/source/blender/makesrna/intern/rna_ui.c @@ -617,7 +617,7 @@ static void rna_def_panel(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Panel", "Panel containing UI elements"); RNA_def_struct_sdna(srna, "Panel"); RNA_def_struct_refine_func(srna, "rna_Panel_refine"); - RNA_def_struct_register_funcs(srna, "rna_Panel_register", "rna_Panel_unregister"); + RNA_def_struct_register_funcs(srna, "rna_Panel_register", "rna_Panel_unregister", NULL); /* poll */ func= RNA_def_function(srna, "poll", NULL); @@ -694,7 +694,7 @@ static void rna_def_header(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Header", "Editor header containing UI elements."); RNA_def_struct_sdna(srna, "Header"); RNA_def_struct_refine_func(srna, "rna_Header_refine"); - RNA_def_struct_register_funcs(srna, "rna_Header_register", "rna_Header_unregister"); + RNA_def_struct_register_funcs(srna, "rna_Header_register", "rna_Header_unregister", NULL); /* draw */ func= RNA_def_function(srna, "draw", NULL); @@ -736,7 +736,7 @@ static void rna_def_menu(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Menu", "Editor menu containing buttons"); RNA_def_struct_sdna(srna, "Menu"); RNA_def_struct_refine_func(srna, "rna_Menu_refine"); - RNA_def_struct_register_funcs(srna, "rna_Menu_register", "rna_Menu_unregister"); + RNA_def_struct_register_funcs(srna, "rna_Menu_register", "rna_Menu_unregister", NULL); /* poll */ func= RNA_def_function(srna, "poll", NULL); diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 2ee19b07d86..8d6da415be4 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -418,6 +418,27 @@ void RNA_api_ui_layout(StructRNA *srna) func= RNA_def_function(srna, "template_reports_banner", "uiTemplateReportsBanner"); RNA_def_function_flag(func, FUNC_USE_CONTEXT); + func= RNA_def_function(srna, "template_node_link", "uiTemplateNodeLink"); + parm= RNA_def_pointer(func, "id", "ID", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "ntree", "NodeTree", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "node", "Node", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "socket", "NodeSocket", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + + func= RNA_def_function(srna, "template_node_view", "uiTemplateNodeView"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + parm= RNA_def_pointer(func, "id", "ID", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "ntree", "NodeTree", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "node", "Node", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "socket", "NodeSocket", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + func= RNA_def_function(srna, "introspect", "uiLayoutIntrospect"); parm= RNA_def_string(func, "string", "", 1024*1024, "Descr", "DESCR"); RNA_def_function_return(func, parm); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 4c79c27e0de..346acc522a1 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -961,6 +961,11 @@ static StructRNA *rna_Operator_register(bContext *C, ReportList *reports, void * return dummyot.ext.srna; } +void **rna_Operator_instance(PointerRNA *ptr) +{ + wmOperator *op = ptr->data; + return &op->py_instance; +} static StructRNA *rna_MacroOperator_register(bContext *C, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free) { @@ -1161,7 +1166,7 @@ static void rna_def_operator(BlenderRNA *brna) RNA_def_struct_sdna(srna, "wmOperator"); RNA_def_struct_refine_func(srna, "rna_Operator_refine"); #ifdef WITH_PYTHON - RNA_def_struct_register_funcs(srna, "rna_Operator_register", "rna_Operator_unregister"); + RNA_def_struct_register_funcs(srna, "rna_Operator_register", "rna_Operator_unregister", "rna_Operator_instance"); #endif prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); @@ -1230,7 +1235,7 @@ static void rna_def_macro_operator(BlenderRNA *brna) RNA_def_struct_sdna(srna, "wmOperator"); RNA_def_struct_refine_func(srna, "rna_MacroOperator_refine"); #ifdef WITH_PYTHON - RNA_def_struct_register_funcs(srna, "rna_MacroOperator_register", "rna_Operator_unregister"); + RNA_def_struct_register_funcs(srna, "rna_MacroOperator_register", "rna_Operator_unregister", "rna_Operator_instance"); #endif prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_world.c b/source/blender/makesrna/intern/rna_world.c index 7166d51da5a..eb9cb5c2270 100644 --- a/source/blender/makesrna/intern/rna_world.c +++ b/source/blender/makesrna/intern/rna_world.c @@ -48,6 +48,8 @@ #include "BKE_main.h" #include "BKE_texture.h" +#include "ED_node.h" + #include "WM_api.h" static PointerRNA rna_World_lighting_get(PointerRNA *ptr) @@ -121,6 +123,14 @@ static void rna_World_stars_update(Main *bmain, Scene *scene, PointerRNA *ptr) WM_main_add_notifier(NC_WORLD|ND_WORLD_STARS, wo); } +static void rna_World_use_nodes_set(PointerRNA *ptr, int value) +{ + World *wrld= (World*)ptr->data; + + wrld->use_nodes= value; + if(wrld->use_nodes && wrld->nodetree==NULL) + ED_node_shader_default(&wrld->id); +} #else @@ -566,6 +576,17 @@ void RNA_def_world(BlenderRNA *brna) RNA_def_property_pointer_funcs(prop, "rna_World_stars_get", NULL, NULL, NULL); RNA_def_property_ui_text(prop, "Stars", "World stars settings"); + /* nodes */ + prop= RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "nodetree"); + RNA_def_property_ui_text(prop, "Node Tree", "Node tree for node based worlds"); + + prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); + RNA_def_property_boolean_funcs(prop, NULL, "rna_World_use_nodes_set"); + RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the world"); + RNA_def_property_update(prop, 0, "rna_World_update"); + rna_def_lighting(brna); rna_def_world_mist(brna); rna_def_world_stars(brna); -- cgit v1.2.3 From 2996f08f845c4b67b0231d5832668da5ddb2d227 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 3 May 2011 18:29:11 +0000 Subject: Cycles: first batch of windows build fixes, not quite there yet. --- source/blender/makesrna/RNA_types.h | 6 ++++++ source/blender/makesrna/intern/makesrna.c | 12 +++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 63cc0bb737c..229d0fdb020 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -36,11 +36,17 @@ extern "C" { #endif +#ifndef LIBEXPORT #ifdef _WIN32 +#ifdef BLENDER_PLUGIN +#define LIBEXPORT __declspec(dllimport) +#else #define LIBEXPORT __declspec(dllexport) +#endif #else #define LIBEXPORT #endif +#endif struct ParameterList; struct FunctionRNA; diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index e056c545ead..49f2969f72d 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -2450,11 +2450,17 @@ static void rna_generate(BlenderRNA *brna, FILE *f, const char *filename, const " Do not edit manually, changes will be overwritten. */\n\n" "#define RNA_RUNTIME\n\n"); + fprintf(f, "#ifndef LIBEXPORT\n"); fprintf(f, "#ifdef _WIN32\n"); + fprintf(f, "#ifdef BLENDER_PLUGIN\n"); + fprintf(f, "#define LIBEXPORT __declspec(dllimport)\n"); + fprintf(f, "#else\n"); fprintf(f, "#define LIBEXPORT __declspec(dllexport)\n"); + fprintf(f, "#endif\n"); fprintf(f, "#else\n"); fprintf(f, "#define LIBEXPORT\n"); - fprintf(f, "#endif\n\n"); + fprintf(f, "#endif\n"); + fprintf(f, "#endif\n"); fprintf(f, "#include \n"); fprintf(f, "#include \n"); @@ -2580,7 +2586,7 @@ static const char *cpp_classes = "" "namespace BL {\n" "\n" "#define BOOLEAN_PROPERTY(sname, identifier) \\\n" -" inline bool sname::identifier(void) { return (bool)sname##_##identifier##_get(&ptr); }\n" +" inline bool sname::identifier(void) { return sname##_##identifier##_get(&ptr)? true: false; }\n" "\n" "#define BOOLEAN_ARRAY_PROPERTY(sname, size, identifier) \\\n" " inline Array sname::identifier(void) \\\n" @@ -2622,7 +2628,7 @@ static const char *cpp_classes = "" "public:\n" " Pointer(const PointerRNA& p) : ptr(p) { }\n" " operator const PointerRNA&() { return ptr; }\n" -" bool is_a(StructRNA *type) { return RNA_struct_is_a(ptr.type, type); }\n" +" bool is_a(StructRNA *type) { return RNA_struct_is_a(ptr.type, type)? true: false; }\n" " operator void*() { return ptr.data; }\n" " operator bool() { return ptr.data != NULL; }\n" "\n" -- cgit v1.2.3 From 61fdadbb2e67fcd3dbae08a22c2c64983cca2f5d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 5 May 2011 09:43:45 +0000 Subject: Cycles refactoring: put external engine code into separate file. --- source/blender/makesrna/intern/rna_render.c | 1 + source/blender/makesrna/intern/rna_scene.c | 1 + 2 files changed, 2 insertions(+) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 85e1ec159cd..842a5f49998 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -35,6 +35,7 @@ #include "rna_internal.h" +#include "RE_engine.h" #include "RE_pipeline.h" #include "BKE_utildefines.h" diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 294062c2ed3..327dd21b7c7 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -41,6 +41,7 @@ #include "DNA_userdef_types.h" /* Include for Bake Options */ +#include "RE_engine.h" #include "RE_pipeline.h" #ifdef WITH_QUICKTIME -- cgit v1.2.3 From d5929b452e449daaa55b7bf305abcd37847c4fef Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 6 May 2011 09:19:29 +0000 Subject: Cycles: fix missing #include. --- source/blender/makesrna/intern/rna_space.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index c6d36d206be..1dcee4bf726 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -48,6 +48,7 @@ #include "WM_api.h" #include "WM_types.h" +#include "RE_engine.h" #include "RE_pipeline.h" EnumPropertyItem space_type_items[] = { -- cgit v1.2.3 From 922bb24865f451aabb1a3112ab8ffb592e3ff875 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 13 May 2011 14:32:08 +0000 Subject: Cycles: color space control for image/environment texture nodes. Ideally would be automated but need to think about how to do this, not so simply in a node system. But guideline for now is, for color textures set to sRGB, for things like bump or roughness map, set to Linear. --- source/blender/makesrna/intern/rna_nodetree.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 8601a986c3f..63241c339f6 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -1044,6 +1044,11 @@ static void def_sh_tex_sky(StructRNA *srna) static void def_sh_tex_environment(StructRNA *srna) { + static const EnumPropertyItem prop_color_space_items[]= { + {SHD_COLORSPACE_SRGB, "SRGB", 0, "sRGB", "Image is in sRGB color space"}, + {SHD_COLORSPACE_LINEAR, "LINEAR", 0, "Linear", "Image is in scene linear color space"}, + {0, NULL, 0, NULL, NULL}}; + PropertyRNA *prop; prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); @@ -1053,11 +1058,21 @@ static void def_sh_tex_environment(StructRNA *srna) RNA_def_property_ui_text(prop, "Image", ""); RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - RNA_def_struct_sdna_from(srna, "NodeTexEnvironment", "storage"); + RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); + + prop= RNA_def_property(srna, "color_space", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_color_space_items); + RNA_def_property_ui_text(prop, "Color Space", "Image file color space"); + RNA_def_property_update(prop, 0, "rna_Node_update"); } static void def_sh_tex_image(StructRNA *srna) { + static const EnumPropertyItem prop_color_space_items[]= { + {SHD_COLORSPACE_LINEAR, "LINEAR", 0, "Linear", "Image is in scene linear color space"}, + {SHD_COLORSPACE_SRGB, "SRGB", 0, "sRGB", "Image is in sRGB color space"}, + {0, NULL, 0, NULL, NULL}}; + PropertyRNA *prop; prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); @@ -1068,6 +1083,11 @@ static void def_sh_tex_image(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); + + prop= RNA_def_property(srna, "color_space", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_color_space_items); + RNA_def_property_ui_text(prop, "Color Space", "Image file color space"); + RNA_def_property_update(prop, 0, "rna_Node_update"); } static void def_sh_tex_blend(StructRNA *srna) -- cgit v1.2.3 From 8da594c8613ddcf4195c4429c81b48e24ae3dc94 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 May 2011 14:26:45 +0000 Subject: Render API: first step in updating RenderEngine to work according to: http://wiki.blender.org/index.php/Dev:2.5/Source/Render/RenderEngineAPI --- source/blender/makesrna/intern/rna_render.c | 146 +++++++++++++++---------- source/blender/makesrna/intern/rna_scene_api.c | 1 + 2 files changed, 91 insertions(+), 56 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 842a5f49998..ed7e99b9cb5 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -49,102 +49,117 @@ #include "BKE_context.h" #include "BKE_report.h" -/* RenderEngine */ - -static RenderEngineType internal_render_type = { - NULL, NULL, "BLENDER_RENDER", "Blender Render", RE_INTERNAL, NULL, NULL, NULL, {NULL, NULL, NULL}}; -#ifdef WITH_GAMEENGINE -static RenderEngineType internal_game_type = { - NULL, NULL, "BLENDER_GAME", "Blender Game", RE_INTERNAL|RE_GAME, NULL, NULL, NULL, {NULL, NULL, NULL}}; -#endif - -ListBase R_engines = {NULL, NULL}; - -void RE_engines_init(void) +LIBEXPORT void engine_tag_redraw(RenderEngine *engine) { - BLI_addtail(&R_engines, &internal_render_type); -#ifdef WITH_GAMEENGINE - BLI_addtail(&R_engines, &internal_game_type); -#endif + engine->do_draw = 1; } -void RE_engines_exit(void) +LIBEXPORT void engine_tag_update(RenderEngine *engine) { - RenderEngineType *type, *next; + engine->do_update = 1; +} - for(type=R_engines.first; type; type=next) { - next= type->next; +/* RenderEngine Callbacks */ - BLI_remlink(&R_engines, type); +static void engine_update(RenderEngine *engine, Main *bmain, Scene *scene) +{ + PointerRNA ptr; + ParameterList list; + FunctionRNA *func; - if(!(type->flag & RE_INTERNAL)) { - if(type->ext.free) - type->ext.free(type->ext.data); + RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); + func= RNA_struct_find_function(&ptr, "update"); - MEM_freeN(type); - } - } + RNA_parameter_list_create(&list, &ptr, func); + RNA_parameter_set_lookup(&list, "data", &bmain); + RNA_parameter_set_lookup(&list, "scene", &scene); + engine->type->ext.call(NULL, &ptr, func, &list); + + RNA_parameter_list_free(&list); } -LIBEXPORT void engine_tag_redraw(RenderEngine *engine) +static void engine_render(RenderEngine *engine) { - engine->do_draw = 1; + PointerRNA ptr; + ParameterList list; + FunctionRNA *func; + + RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); + func= RNA_struct_find_function(&ptr, "render"); + + RNA_parameter_list_create(&list, &ptr, func); + engine->type->ext.call(NULL, &ptr, func, &list); + + RNA_parameter_list_free(&list); } -LIBEXPORT void engine_tag_update(RenderEngine *engine) +static void engine_preview_update(RenderEngine *engine, const struct bContext *context, struct ID *id) { - engine->do_update = 1; + PointerRNA ptr; + ParameterList list; + FunctionRNA *func; + + RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); + func= RNA_struct_find_function(&ptr, "preview_update"); + + RNA_parameter_list_create(&list, &ptr, func); + RNA_parameter_set_lookup(&list, "context", &context); + RNA_parameter_set_lookup(&list, "id", &id); + engine->type->ext.call(NULL, &ptr, func, &list); + + RNA_parameter_list_free(&list); } -static void engine_render(RenderEngine *engine, struct Scene *scene) +static void engine_preview_render(RenderEngine *engine) { PointerRNA ptr; ParameterList list; FunctionRNA *func; RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); - func= RNA_struct_find_function(&ptr, "render"); + func= RNA_struct_find_function(&ptr, "preview_render"); RNA_parameter_list_create(&list, &ptr, func); - RNA_parameter_set_lookup(&list, "scene", &scene); engine->type->ext.call(NULL, &ptr, func, &list); RNA_parameter_list_free(&list); } -static void engine_draw(RenderEngine *engine, struct Scene *scene) +static void engine_view_update(RenderEngine *engine, const struct bContext *context) { PointerRNA ptr; ParameterList list; FunctionRNA *func; RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); - func= RNA_struct_find_function(&ptr, "draw"); + func= RNA_struct_find_function(&ptr, "view_update"); RNA_parameter_list_create(&list, &ptr, func); - RNA_parameter_set_lookup(&list, "scene", &scene); + RNA_parameter_set_lookup(&list, "context", &context); engine->type->ext.call(NULL, &ptr, func, &list); RNA_parameter_list_free(&list); } -static void engine_update(RenderEngine *engine, struct Scene *scene) +static void engine_view_draw(RenderEngine *engine, const struct bContext *context) { PointerRNA ptr; ParameterList list; FunctionRNA *func; RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr); - func= RNA_struct_find_function(&ptr, "update"); + func= RNA_struct_find_function(&ptr, "view_draw"); RNA_parameter_list_create(&list, &ptr, func); - RNA_parameter_set_lookup(&list, "scene", &scene); + RNA_parameter_set_lookup(&list, "context", &context); engine->type->ext.call(NULL, &ptr, func, &list); RNA_parameter_list_free(&list); } -static void rna_RenderEngine_unregister(const bContext *C, StructRNA *type) +/* RenderEngine registration */ + +static void rna_RenderEngine_unregister(const struct bContext *C, StructRNA *type) { RenderEngineType *et= RNA_struct_blender_type_get(type); @@ -161,7 +176,7 @@ static StructRNA *rna_RenderEngine_register(bContext *C, ReportList *reports, vo RenderEngineType *et, dummyet = {NULL}; RenderEngine dummyengine= {NULL}; PointerRNA dummyptr; - int have_function[3]; + int have_function[6]; /* setup dummy engine & engine type to store static properties in */ dummyengine.type= &dummyet; @@ -186,7 +201,7 @@ static StructRNA *rna_RenderEngine_register(bContext *C, ReportList *reports, vo } /* create a new engine type */ - et= MEM_callocN(sizeof(RenderEngineType), "python buttons engine"); + et= MEM_callocN(sizeof(RenderEngineType), "python render engine"); memcpy(et, &dummyet, sizeof(dummyet)); et->ext.srna= RNA_def_struct(&BLENDER_RNA, et->idname, "RenderEngine"); @@ -195,9 +210,12 @@ static StructRNA *rna_RenderEngine_register(bContext *C, ReportList *reports, vo et->ext.free= free; RNA_struct_blender_type_set(et->ext.srna, et); - et->render= (have_function[0])? engine_render: NULL; - et->draw= (have_function[1])? engine_draw: NULL; - et->update= (have_function[2])? engine_update: NULL; + et->update= (have_function[0])? engine_update: NULL; + et->render= (have_function[1])? engine_render: NULL; + et->preview_update= (have_function[2])? engine_preview_update: NULL; + et->preview_render= (have_function[3])? engine_preview_render: NULL; + et->view_update= (have_function[4])? engine_view_update: NULL; + et->view_draw= (have_function[5])? engine_view_draw: NULL; BLI_addtail(&R_engines, et); @@ -286,22 +304,38 @@ static void rna_def_render_engine(BlenderRNA *brna) RNA_def_struct_refine_func(srna, "rna_RenderEngine_refine"); RNA_def_struct_register_funcs(srna, "rna_RenderEngine_register", "rna_RenderEngine_unregister", "rna_RenderEngine_instance"); - /* render */ - func= RNA_def_function(srna, "render", NULL); - RNA_def_function_ui_description(func, "Render scene into an image."); + /* final render callbacks */ + func= RNA_def_function(srna, "update", NULL); + RNA_def_function_ui_description(func, "Export scene data for render"); RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "data", "BlendData", "", ""); RNA_def_pointer(func, "scene", "Scene", "", ""); - /* draw */ - func= RNA_def_function(srna, "draw", NULL); - RNA_def_function_ui_description(func, "Draw progressive render into viewport."); + func= RNA_def_function(srna, "render", NULL); + RNA_def_function_ui_description(func, "Execute render"); RNA_def_function_flag(func, FUNC_REGISTER); - RNA_def_pointer(func, "scene", "Scene", "", ""); - func= RNA_def_function(srna, "update", NULL); - RNA_def_function_ui_description(func, "Notify data has changed for progressive viewport render."); + /* preview render callbacks */ + func= RNA_def_function(srna, "preview_update", NULL); + RNA_def_function_ui_description(func, "Export scene data for preview render of the given datablock"); RNA_def_function_flag(func, FUNC_REGISTER); - RNA_def_pointer(func, "scene", "Scene", "", ""); + RNA_def_pointer(func, "context", "Context", "", ""); + RNA_def_pointer(func, "id", "ID", "", ""); + + func= RNA_def_function(srna, "preview_render", NULL); + RNA_def_function_ui_description(func, "Execute preview render"); + RNA_def_function_flag(func, FUNC_REGISTER); + + /* viewport render callbacks */ + func= RNA_def_function(srna, "view_update", NULL); + RNA_def_function_ui_description(func, "Update on data changes for viewport render"); + RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "context", "Context", "", ""); + + func= RNA_def_function(srna, "view_draw", NULL); + RNA_def_function_ui_description(func, "Draw viewport render"); + RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "context", "Context", "", ""); /* tag for redraw */ RNA_def_function(srna, "tag_redraw", "engine_tag_redraw"); diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c index c2194636cd3..23d34074ff4 100644 --- a/source/blender/makesrna/intern/rna_scene_api.c +++ b/source/blender/makesrna/intern/rna_scene_api.c @@ -71,6 +71,7 @@ static void rna_Scene_frame_set(Scene *scene, int frame, float subframe) static void rna_Scene_update_tagged(Scene *scene) { scene_update_tagged(G.main, scene); + scene_clear_tagged(G.main, scene); } static void rna_SceneRender_get_frame_path(RenderData *rd, int frame, char *name) -- cgit v1.2.3 From 0a1223c87e2bc9557351630292bbae52ce38b4cf Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 May 2011 15:20:12 +0000 Subject: Render API: add self.report() function for RenderEngine, for reporting warnings and errors. --- source/blender/makesrna/intern/rna_render.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index ed7e99b9cb5..9c7076012ce 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -32,6 +32,7 @@ #include "DNA_scene_types.h" #include "RNA_define.h" +#include "RNA_enum_types.h" #include "rna_internal.h" @@ -373,6 +374,12 @@ static void rna_def_render_engine(BlenderRNA *brna) prop= RNA_def_string(func, "info", "", 0, "Info", ""); RNA_def_property_flag(prop, PROP_REQUIRED); + func= RNA_def_function(srna, "report", "RE_engine_report"); + prop= RNA_def_enum_flag(func, "type", wm_report_items, 0, "Type", ""); + RNA_def_property_flag(prop, PROP_REQUIRED); + prop= RNA_def_string(func, "message", "", 0, "Report Message", ""); + RNA_def_property_flag(prop, PROP_REQUIRED); + /* registration */ RNA_define_verify_sdna(0); -- cgit v1.2.3 From 0365e38c0620daec25865fa2b8f31a525690ddab Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 May 2011 15:39:40 +0000 Subject: Render API: RenderEngine.update_progress function to set progress percentage. --- source/blender/makesrna/intern/rna_render.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 9c7076012ce..9c41f458de8 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -374,6 +374,10 @@ static void rna_def_render_engine(BlenderRNA *brna) prop= RNA_def_string(func, "info", "", 0, "Info", ""); RNA_def_property_flag(prop, PROP_REQUIRED); + func= RNA_def_function(srna, "update_progress", "RE_engine_update_progress"); + prop= RNA_def_float(func, "progress", 0, 0.0f, 1.0f, "", "Percentage of render that's done.", 0.0f, 1.0f); + RNA_def_property_flag(prop, PROP_REQUIRED); + func= RNA_def_function(srna, "report", "RE_engine_report"); prop= RNA_def_enum_flag(func, "type", wm_report_items, 0, "Type", ""); RNA_def_property_flag(prop, PROP_REQUIRED); -- cgit v1.2.3 From 77c2266d7b3e6cd00abb3a81ac4c4c939b68d7a7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 8 Jun 2011 23:36:06 +0000 Subject: Cycles: texture tab in properties editor now shows dropdown for selecting texture users in the context. It's only useful for modifiers and brushes at the moment, not for shading nodes as using texture datablocks there is not yet supported. --- source/blender/makesrna/intern/rna_ui_api.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 765cee9e6d1..4e36c509c3b 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -442,6 +442,9 @@ void RNA_api_ui_layout(StructRNA *srna) parm= RNA_def_pointer(func, "socket", "NodeSocket", "", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + func= RNA_def_function(srna, "template_texture_user", "uiTemplateTextureUser"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + func= RNA_def_function(srna, "introspect", "uiLayoutIntrospect"); parm= RNA_def_string(func, "string", "", 1024*1024, "Descr", "DESCR"); RNA_def_function_return(func, parm); -- cgit v1.2.3 From a5c6f3d53b8c25500395dd1ab1c556c4f502c214 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 14 Jun 2011 16:05:21 +0000 Subject: Cycles: more work on texturing UI, now texture nodes use same nodes as shading, only rough implementation for design proposal. --- source/blender/makesrna/intern/rna_nodetree_types.h | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index 1170df281f2..41f1bf2d383 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -52,6 +52,7 @@ DefNode( ShaderNode, SH_NODE_COMBRGB, 0, "COMBR DefNode( ShaderNode, SH_NODE_HUE_SAT, 0, "HUE_SAT", HueSaturation, "Hue/Saturation", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_MATERIAL, 0, "OUTPUT_MATERIAL",OutputMaterial, "Material Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPUT_LAMP", OutputLamp, "Lamp Output", "" ) +DefNode( ShaderNode, SH_NODE_OUTPUT_TEXTURE, 0, "OUTPUT_TEXTURE", OutputTexture, "Texture Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) DefNode( ShaderNode, SH_NODE_MIX_CLOSURE, 0, "MIX_CLOSURE", MixClosure, "Mix Closure", "" ) -- cgit v1.2.3 From 1cf0af703d0a7c18e0d03e5fd4fb9f0a0597b629 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 27 Jun 2011 17:10:50 +0000 Subject: Cycles: working towards texture workflow design http://wiki.blender.org/index.php/Dev:2.5/Source/Render/TextureWorkflow * Added "active texture node" in shading node trees. * Texture draw mode draw active texture node now, and new Material draw mode shows GLSL material. * GLSL materials now match solid draw mode lighting better. * Texture properties can now texture nodes from material/world/lamp. --- source/blender/makesrna/intern/rna_nodetree.c | 5 +++++ source/blender/makesrna/intern/rna_space.c | 10 +++------- source/blender/makesrna/intern/rna_ui_api.c | 4 ---- 3 files changed, 8 insertions(+), 11 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 4cacf83808e..5270184dee0 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -3029,6 +3029,11 @@ static void rna_def_node(BlenderRNA *brna) RNA_def_property_string_sdna(prop, NULL, "label"); RNA_def_property_ui_text(prop, "Label", "Optional custom node label"); RNA_def_property_update(prop, NC_NODE, "rna_Node_update"); + + prop = RNA_def_property(srna, "show_texture", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", NODE_ACTIVE_TEXTURE); + RNA_def_property_ui_text(prop, "Show Texture", "Draw node in viewport textured draw mode"); + RNA_def_property_update(prop, 0, "rna_Node_update"); } static void rna_def_node_link(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index dde91bf5e04..0f64107e990 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -102,8 +102,9 @@ EnumPropertyItem viewport_shade_items[] = { {OB_WIRE, "WIREFRAME", ICON_WIRE, "Wireframe", "Display the object as wire edges"}, {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display the object solid, lit with default OpenGL lights"}, //{OB_SHADED, "SHADED", ICON_SMOOTH, "Shaded", "Display the object solid, with preview shading interpolated at vertices"}, - {OB_TEXTURE, "TEXTURED", ICON_POTATO, "Textured", "Display the object solid, with face-assigned textures"}, - {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display progressive render preview"}, + {OB_TEXTURE, "TEXTURE", ICON_POTATO, "Texture", "Display the object solid, with a texture"}, + {OB_MATERIAL, "MATERIAL", ICON_MATERIAL_DATA, "Material", "Display objects solid, with GLSL material"}, + {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display render preview"}, {0, NULL, 0, NULL, NULL}}; #ifdef RNA_RUNTIME @@ -1305,11 +1306,6 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Relationship Lines", "Show dashed lines indicating parent or constraint relationships"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); - prop= RNA_def_property(srna, "show_textured_solid", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SOLID_TEX); - RNA_def_property_ui_text(prop, "Textured Solid", "Display face-assigned textures in solid view"); - RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); - prop= RNA_def_property(srna, "lock_camera", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_LOCK_CAMERA); RNA_def_property_ui_text(prop, "Lock Camera to View", "Enable view navigation within the camera view"); diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 4e36c509c3b..99f4cb429e9 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -422,8 +422,6 @@ void RNA_api_ui_layout(StructRNA *srna) RNA_def_function_flag(func, FUNC_USE_CONTEXT); func= RNA_def_function(srna, "template_node_link", "uiTemplateNodeLink"); - parm= RNA_def_pointer(func, "id", "ID", "", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_pointer(func, "ntree", "NodeTree", "", ""); RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_pointer(func, "node", "Node", "", ""); @@ -433,8 +431,6 @@ void RNA_api_ui_layout(StructRNA *srna) func= RNA_def_function(srna, "template_node_view", "uiTemplateNodeView"); RNA_def_function_flag(func, FUNC_USE_CONTEXT); - parm= RNA_def_pointer(func, "id", "ID", "", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_pointer(func, "ntree", "NodeTree", "", ""); RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_pointer(func, "node", "Node", "", ""); -- cgit v1.2.3 From 27a99869aa4220b6e8fd15defca3e14c9e96f1e4 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 28 Jun 2011 13:43:18 +0000 Subject: Cycles: fix alt+Z shortcut not working in 3d view. --- source/blender/makesrna/intern/rna_space.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 0f64107e990..7188a5a7c05 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -102,7 +102,7 @@ EnumPropertyItem viewport_shade_items[] = { {OB_WIRE, "WIREFRAME", ICON_WIRE, "Wireframe", "Display the object as wire edges"}, {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display the object solid, lit with default OpenGL lights"}, //{OB_SHADED, "SHADED", ICON_SMOOTH, "Shaded", "Display the object solid, with preview shading interpolated at vertices"}, - {OB_TEXTURE, "TEXTURE", ICON_POTATO, "Texture", "Display the object solid, with a texture"}, + {OB_TEXTURE, "TEXTURED", ICON_POTATO, "Texture", "Display the object solid, with a texture"}, {OB_MATERIAL, "MATERIAL", ICON_MATERIAL_DATA, "Material", "Display objects solid, with GLSL material"}, {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display render preview"}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From b4343da77fb32c370e087ed71dd14d73178e0dba Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 11 Aug 2011 16:48:13 +0000 Subject: Cycles: fix missing update when removing or hiding objects. --- source/blender/makesrna/intern/rna_main_api.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index d9bb1619ca5..7d6e1dd0567 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -63,6 +63,7 @@ #include "BKE_particle.h" #include "BKE_font.h" #include "BKE_node.h" +#include "BKE_depsgraph.h" #include "DNA_armature_types.h" #include "DNA_camera_types.h" @@ -508,6 +509,8 @@ void rna_Main_actions_tag(Main *bmain, int value) { tag_main_lb(&bmain->action, void rna_Main_particles_tag(Main *bmain, int value) { tag_main_lb(&bmain->particle, value); } void rna_Main_gpencil_tag(Main *bmain, int value) { tag_main_lb(&bmain->gpencil, value); } +static int rna_Main_objects_recalc_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_OB); } + #else void RNA_api_main(StructRNA *srna) @@ -590,6 +593,7 @@ void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataObjects"); srna= RNA_def_struct(brna, "BlendDataObjects", NULL); @@ -617,6 +621,10 @@ void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_objects_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "recalc", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_objects_recalc_get", NULL); } void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop) -- cgit v1.2.3 From 84d917dc6c9e9ff33d3490142e1e542331827b1a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 12 Aug 2011 18:29:21 +0000 Subject: Cycles: clean up some unnecessary changes compared to trunk. --- source/blender/makesrna/intern/rna_access.c | 5 ----- 1 file changed, 5 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index e91b9d892a5..4e4bb46669b 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1361,11 +1361,6 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR else prop->update(bmain, scene, ptr); } - else if(!(prop->flag & PROP_BUILTIN)) { - DAG_id_tag_update(ptr->id.data, OB_RECALC_ALL); - WM_main_add_notifier(NC_WINDOW, NULL); - } - if(prop->noteflag) WM_main_add_notifier(prop->noteflag, ptr->id.data); } -- cgit v1.2.3 From c7fce6be2ea6dcc1ecdf52a8f5d1608d45117e8f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 16 Aug 2011 18:59:45 +0000 Subject: Cycles: svn merge -r39132:39457 https://svn.blender.org/svnroot/bf-blender/trunk/blender --- source/blender/makesrna/RNA_access.h | 1483 ++++++++++++----------- source/blender/makesrna/RNA_types.h | 14 +- source/blender/makesrna/intern/makesrna.c | 104 +- source/blender/makesrna/intern/rna_access.c | 36 +- source/blender/makesrna/intern/rna_constraint.c | 2 +- source/blender/makesrna/intern/rna_curve.c | 2 +- source/blender/makesrna/intern/rna_internal.h | 10 +- source/blender/makesrna/intern/rna_main_api.c | 2 +- source/blender/makesrna/intern/rna_modifier.c | 7 + source/blender/makesrna/intern/rna_object.c | 9 +- source/blender/makesrna/intern/rna_object_api.c | 8 +- source/blender/makesrna/intern/rna_render.c | 8 +- source/blender/makesrna/intern/rna_userdef.c | 2 +- source/blender/makesrna/intern/rna_wm.c | 1 + 14 files changed, 847 insertions(+), 841 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 963b3de3b4d..c1427ca0e79 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -47,532 +47,534 @@ struct Scene; /* Types */ extern BlenderRNA BLENDER_RNA; -extern LIBEXPORT StructRNA RNA_Action; -extern LIBEXPORT StructRNA RNA_ActionConstraint; -extern LIBEXPORT StructRNA RNA_ActionGroup; -extern LIBEXPORT StructRNA RNA_Actuator; -extern LIBEXPORT StructRNA RNA_ActuatorSensor; -extern LIBEXPORT StructRNA RNA_Addon; -extern LIBEXPORT StructRNA RNA_AdjustmentSequence; -extern LIBEXPORT StructRNA RNA_AlwaysSensor; -extern LIBEXPORT StructRNA RNA_AndController; -extern LIBEXPORT StructRNA RNA_AnimData; -extern LIBEXPORT StructRNA RNA_AnimViz; -extern LIBEXPORT StructRNA RNA_AnimVizMotionPaths; -extern LIBEXPORT StructRNA RNA_AnimVizOnionSkinning; -extern LIBEXPORT StructRNA RNA_AnyType; -extern LIBEXPORT StructRNA RNA_Area; -extern LIBEXPORT StructRNA RNA_AreaLamp; -extern LIBEXPORT StructRNA RNA_Armature; -extern LIBEXPORT StructRNA RNA_ArmatureModifier; -extern LIBEXPORT StructRNA RNA_ArmatureSensor; -extern LIBEXPORT StructRNA RNA_ArrayModifier; -extern LIBEXPORT StructRNA RNA_BackgroundImage; -extern LIBEXPORT StructRNA RNA_BevelModifier; -extern LIBEXPORT StructRNA RNA_BezierSplinePoint; -extern LIBEXPORT StructRNA RNA_BlendData; -extern LIBEXPORT StructRNA RNA_BlendTexture; -extern LIBEXPORT StructRNA RNA_BlenderRNA; -extern LIBEXPORT StructRNA RNA_BoidRule; -extern LIBEXPORT StructRNA RNA_BoidRuleAverageSpeed; -extern LIBEXPORT StructRNA RNA_BoidRuleAvoid; -extern LIBEXPORT StructRNA RNA_BoidRuleAvoidCollision; -extern LIBEXPORT StructRNA RNA_BoidRuleFight; -extern LIBEXPORT StructRNA RNA_BoidRuleFollowLeader; -extern LIBEXPORT StructRNA RNA_BoidRuleGoal; -extern LIBEXPORT StructRNA RNA_BoidSettings; -extern LIBEXPORT StructRNA RNA_BoidState; -extern LIBEXPORT StructRNA RNA_Bone; -extern LIBEXPORT StructRNA RNA_BoneGroup; -extern LIBEXPORT StructRNA RNA_BooleanModifier; -extern LIBEXPORT StructRNA RNA_BooleanProperty; -extern LIBEXPORT StructRNA RNA_Brush; -extern LIBEXPORT StructRNA RNA_BrushTextureSlot; -extern LIBEXPORT StructRNA RNA_BuildModifier; -extern LIBEXPORT StructRNA RNA_Camera; -extern LIBEXPORT StructRNA RNA_CastModifier; -extern LIBEXPORT StructRNA RNA_ChildOfConstraint; -extern LIBEXPORT StructRNA RNA_ChildParticle; -extern LIBEXPORT StructRNA RNA_ClampToConstraint; -extern LIBEXPORT StructRNA RNA_ClothCollisionSettings; -extern LIBEXPORT StructRNA RNA_ClothModifier; -extern LIBEXPORT StructRNA RNA_ClothSettings; -extern LIBEXPORT StructRNA RNA_CloudsTexture; -extern LIBEXPORT StructRNA RNA_CollectionProperty; -extern LIBEXPORT StructRNA RNA_CollisionModifier; -extern LIBEXPORT StructRNA RNA_CollisionSensor; -extern LIBEXPORT StructRNA RNA_CollisionSettings; -extern LIBEXPORT StructRNA RNA_ColorRamp; -extern LIBEXPORT StructRNA RNA_ColorRampElement; -extern LIBEXPORT StructRNA RNA_ColorSequence; -extern LIBEXPORT StructRNA RNA_CompositorNode; -extern LIBEXPORT StructRNA RNA_CompositorNodeAlphaOver; -extern LIBEXPORT StructRNA RNA_CompositorNodeBilateralblur; -extern LIBEXPORT StructRNA RNA_CompositorNodeBlur; -extern LIBEXPORT StructRNA RNA_CompositorNodeBrightContrast; -extern LIBEXPORT StructRNA RNA_CompositorNodeChannelMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeChromaMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeColorMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeColorSpill; -extern LIBEXPORT StructRNA RNA_CompositorNodeCombHSVA; -extern LIBEXPORT StructRNA RNA_CompositorNodeCombRGBA; -extern LIBEXPORT StructRNA RNA_CompositorNodeCombYCCA; -extern LIBEXPORT StructRNA RNA_CompositorNodeCombYUVA; -extern LIBEXPORT StructRNA RNA_CompositorNodeComposite; -extern LIBEXPORT StructRNA RNA_CompositorNodeCrop; -extern LIBEXPORT StructRNA RNA_CompositorNodeCurveRGB; -extern LIBEXPORT StructRNA RNA_CompositorNodeCurveVec; -extern LIBEXPORT StructRNA RNA_CompositorNodeDBlur; -extern LIBEXPORT StructRNA RNA_CompositorNodeDefocus; -extern LIBEXPORT StructRNA RNA_CompositorNodeDiffMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeDilateErode; -extern LIBEXPORT StructRNA RNA_CompositorNodeDisplace; -extern LIBEXPORT StructRNA RNA_CompositorNodeDistanceMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeFilter; -extern LIBEXPORT StructRNA RNA_CompositorNodeFlip; -extern LIBEXPORT StructRNA RNA_CompositorNodeGamma; -extern LIBEXPORT StructRNA RNA_CompositorNodeGlare; -extern LIBEXPORT StructRNA RNA_CompositorNodeHueSat; -extern LIBEXPORT StructRNA RNA_CompositorNodeIDMask; -extern LIBEXPORT StructRNA RNA_CompositorNodeImage; -extern LIBEXPORT StructRNA RNA_CompositorNodeInvert; -extern LIBEXPORT StructRNA RNA_CompositorNodeLensdist; -extern LIBEXPORT StructRNA RNA_CompositorNodeLevels; -extern LIBEXPORT StructRNA RNA_CompositorNodeLumaMatte; -extern LIBEXPORT StructRNA RNA_CompositorNodeMapUV; -extern LIBEXPORT StructRNA RNA_CompositorNodeMapValue; -extern LIBEXPORT StructRNA RNA_CompositorNodeMath; -extern LIBEXPORT StructRNA RNA_CompositorNodeMixRGB; -extern LIBEXPORT StructRNA RNA_CompositorNodeNormal; -extern LIBEXPORT StructRNA RNA_CompositorNodeNormalize; -extern LIBEXPORT StructRNA RNA_CompositorNodeOutputFile; -extern LIBEXPORT StructRNA RNA_CompositorNodePremulKey; -extern LIBEXPORT StructRNA RNA_CompositorNodeRGB; -extern LIBEXPORT StructRNA RNA_CompositorNodeRGBToBW; -extern LIBEXPORT StructRNA RNA_CompositorNodeRLayers; -extern LIBEXPORT StructRNA RNA_CompositorNodeRotate; -extern LIBEXPORT StructRNA RNA_CompositorNodeScale; -extern LIBEXPORT StructRNA RNA_CompositorNodeSepHSVA; -extern LIBEXPORT StructRNA RNA_CompositorNodeSepRGBA; -extern LIBEXPORT StructRNA RNA_CompositorNodeSepYCCA; -extern LIBEXPORT StructRNA RNA_CompositorNodeSepYUVA; -extern LIBEXPORT StructRNA RNA_CompositorNodeSetAlpha; -extern LIBEXPORT StructRNA RNA_CompositorNodeSplitViewer; -extern LIBEXPORT StructRNA RNA_CompositorNodeTexture; -extern LIBEXPORT StructRNA RNA_CompositorNodeTime; -extern LIBEXPORT StructRNA RNA_CompositorNodeTonemap; -extern LIBEXPORT StructRNA RNA_CompositorNodeTranslate; -extern LIBEXPORT StructRNA RNA_CompositorNodeTree; -extern LIBEXPORT StructRNA RNA_CompositorNodeValToRGB; -extern LIBEXPORT StructRNA RNA_CompositorNodeValue; -extern LIBEXPORT StructRNA RNA_CompositorNodeVecBlur; -extern LIBEXPORT StructRNA RNA_CompositorNodeViewer; -extern LIBEXPORT StructRNA RNA_CompositorNodeZcombine; -extern LIBEXPORT StructRNA RNA_ConsoleLine; -extern LIBEXPORT StructRNA RNA_Constraint; -extern LIBEXPORT StructRNA RNA_ConstraintTarget; -extern LIBEXPORT StructRNA RNA_Context; -extern LIBEXPORT StructRNA RNA_ControlFluidSettings; -extern LIBEXPORT StructRNA RNA_Controller; -extern LIBEXPORT StructRNA RNA_CopyLocationConstraint; -extern LIBEXPORT StructRNA RNA_CopyRotationConstraint; -extern LIBEXPORT StructRNA RNA_CopyScaleConstraint; -extern LIBEXPORT StructRNA RNA_CopyTransformsConstraint; -extern LIBEXPORT StructRNA RNA_Curve; -extern LIBEXPORT StructRNA RNA_CurveMap; -extern LIBEXPORT StructRNA RNA_CurveMapPoint; -extern LIBEXPORT StructRNA RNA_CurveMapping; -extern LIBEXPORT StructRNA RNA_CurveModifier; -extern LIBEXPORT StructRNA RNA_CurvePoint; -extern LIBEXPORT StructRNA RNA_DampedTrackConstraint; -extern LIBEXPORT StructRNA RNA_DecimateModifier; -extern LIBEXPORT StructRNA RNA_DelaySensor; -extern LIBEXPORT StructRNA RNA_DisplaceModifier; -extern LIBEXPORT StructRNA RNA_DistortedNoiseTexture; -extern LIBEXPORT StructRNA RNA_DomainFluidSettings; -extern LIBEXPORT StructRNA RNA_Driver; -extern LIBEXPORT StructRNA RNA_DriverTarget; -extern LIBEXPORT StructRNA RNA_DriverVariable; -extern LIBEXPORT StructRNA RNA_DupliObject; -extern LIBEXPORT StructRNA RNA_EdgeSplitModifier; -extern LIBEXPORT StructRNA RNA_EditBone; -extern LIBEXPORT StructRNA RNA_EffectSequence; -extern LIBEXPORT StructRNA RNA_EffectorWeights; -extern LIBEXPORT StructRNA RNA_EnumProperty; -extern LIBEXPORT StructRNA RNA_EnumPropertyItem; -extern LIBEXPORT StructRNA RNA_EnvironmentMap; -extern LIBEXPORT StructRNA RNA_EnvironmentMapTexture; -extern LIBEXPORT StructRNA RNA_Event; -extern LIBEXPORT StructRNA RNA_ExplodeModifier; -extern LIBEXPORT StructRNA RNA_ExpressionController; -extern LIBEXPORT StructRNA RNA_FCurve; -extern LIBEXPORT StructRNA RNA_FCurveSample; -extern LIBEXPORT StructRNA RNA_FModifier; -extern LIBEXPORT StructRNA RNA_FModifierCycles; -extern LIBEXPORT StructRNA RNA_FModifierEnvelope; -extern LIBEXPORT StructRNA RNA_FModifierEnvelopeControlPoint; -extern LIBEXPORT StructRNA RNA_FModifierFunctionGenerator; -extern LIBEXPORT StructRNA RNA_FModifierGenerator; -extern LIBEXPORT StructRNA RNA_FModifierLimits; -extern LIBEXPORT StructRNA RNA_FModifierNoise; -extern LIBEXPORT StructRNA RNA_FModifierPython; -extern LIBEXPORT StructRNA RNA_FModifierStepped; -extern LIBEXPORT StructRNA RNA_FieldSettings; -extern LIBEXPORT StructRNA RNA_FileSelectParams; -extern LIBEXPORT StructRNA RNA_FloatProperty; -extern LIBEXPORT StructRNA RNA_FloorConstraint; -extern LIBEXPORT StructRNA RNA_FluidFluidSettings; -extern LIBEXPORT StructRNA RNA_FluidSettings; -extern LIBEXPORT StructRNA RNA_FluidSimulationModifier; -extern LIBEXPORT StructRNA RNA_FollowPathConstraint; -extern LIBEXPORT StructRNA RNA_Function; -extern LIBEXPORT StructRNA RNA_GPencilFrame; -extern LIBEXPORT StructRNA RNA_GPencilLayer; -extern LIBEXPORT StructRNA RNA_GPencilStroke; -extern LIBEXPORT StructRNA RNA_GPencilStrokePoint; -extern LIBEXPORT StructRNA RNA_GameBooleanProperty; -extern LIBEXPORT StructRNA RNA_GameFloatProperty; -extern LIBEXPORT StructRNA RNA_GameIntProperty; -extern LIBEXPORT StructRNA RNA_GameObjectSettings; -extern LIBEXPORT StructRNA RNA_GameProperty; -extern LIBEXPORT StructRNA RNA_GameSoftBodySettings; -extern LIBEXPORT StructRNA RNA_GameStringProperty; -extern LIBEXPORT StructRNA RNA_GameTimerProperty; -extern LIBEXPORT StructRNA RNA_GlowSequence; -extern LIBEXPORT StructRNA RNA_GreasePencil; -extern LIBEXPORT StructRNA RNA_Group; -extern LIBEXPORT StructRNA RNA_Header; -extern LIBEXPORT StructRNA RNA_HemiLamp; -extern LIBEXPORT StructRNA RNA_Histogram; -extern LIBEXPORT StructRNA RNA_HookModifier; -extern LIBEXPORT StructRNA RNA_ID; -extern LIBEXPORT StructRNA RNA_IKParam; -extern LIBEXPORT StructRNA RNA_Image; -extern LIBEXPORT StructRNA RNA_ImagePaint; -extern LIBEXPORT StructRNA RNA_ImageSequence; -extern LIBEXPORT StructRNA RNA_ImageTexture; -extern LIBEXPORT StructRNA RNA_ImageUser; -extern LIBEXPORT StructRNA RNA_InflowFluidSettings; -extern LIBEXPORT StructRNA RNA_IntProperty; -extern LIBEXPORT StructRNA RNA_Itasc; -extern LIBEXPORT StructRNA RNA_JoystickSensor; -extern LIBEXPORT StructRNA RNA_Key; -extern LIBEXPORT StructRNA RNA_KeyConfig; -extern LIBEXPORT StructRNA RNA_KeyMap; -extern LIBEXPORT StructRNA RNA_KeyMapItem; -extern LIBEXPORT StructRNA RNA_KeyboardSensor; -extern LIBEXPORT StructRNA RNA_Keyframe; -extern LIBEXPORT StructRNA RNA_KeyingSet; -extern LIBEXPORT StructRNA RNA_KeyingSetInfo; -extern LIBEXPORT StructRNA RNA_KeyingSetPath; -extern LIBEXPORT StructRNA RNA_KinematicConstraint; -extern LIBEXPORT StructRNA RNA_Lamp; -extern LIBEXPORT StructRNA RNA_LampSkySettings; -extern LIBEXPORT StructRNA RNA_LampTextureSlot; -extern LIBEXPORT StructRNA RNA_Lattice; -extern LIBEXPORT StructRNA RNA_LatticeModifier; -extern LIBEXPORT StructRNA RNA_LatticePoint; -extern LIBEXPORT StructRNA RNA_Library; -extern LIBEXPORT StructRNA RNA_LimitDistanceConstraint; -extern LIBEXPORT StructRNA RNA_LimitLocationConstraint; -extern LIBEXPORT StructRNA RNA_LimitRotationConstraint; -extern LIBEXPORT StructRNA RNA_LimitScaleConstraint; -extern LIBEXPORT StructRNA RNA_LockedTrackConstraint; -extern LIBEXPORT StructRNA RNA_Macro; -extern LIBEXPORT StructRNA RNA_MagicTexture; -extern LIBEXPORT StructRNA RNA_MarbleTexture; -extern LIBEXPORT StructRNA RNA_MaskModifier; -extern LIBEXPORT StructRNA RNA_Material; -extern LIBEXPORT StructRNA RNA_MaterialHalo; -extern LIBEXPORT StructRNA RNA_MaterialPhysics; -extern LIBEXPORT StructRNA RNA_MaterialRaytraceMirror; -extern LIBEXPORT StructRNA RNA_MaterialRaytraceTransparency; -extern LIBEXPORT StructRNA RNA_MaterialSlot; -extern LIBEXPORT StructRNA RNA_MaterialStrand; -extern LIBEXPORT StructRNA RNA_MaterialSubsurfaceScattering; -extern LIBEXPORT StructRNA RNA_MaterialTextureSlot; -extern LIBEXPORT StructRNA RNA_MaterialVolume; -extern LIBEXPORT StructRNA RNA_Menu; -extern LIBEXPORT StructRNA RNA_Mesh; -extern LIBEXPORT StructRNA RNA_MeshColor; -extern LIBEXPORT StructRNA RNA_MeshColorLayer; -extern LIBEXPORT StructRNA RNA_MeshDeformModifier; -extern LIBEXPORT StructRNA RNA_MeshEdge; -extern LIBEXPORT StructRNA RNA_MeshFace; -extern LIBEXPORT StructRNA RNA_MeshFloatProperty; -extern LIBEXPORT StructRNA RNA_MeshFloatPropertyLayer; -extern LIBEXPORT StructRNA RNA_MeshIntProperty; -extern LIBEXPORT StructRNA RNA_MeshIntPropertyLayer; -extern LIBEXPORT StructRNA RNA_MeshSticky; -extern LIBEXPORT StructRNA RNA_MeshStringProperty; -extern LIBEXPORT StructRNA RNA_MeshStringPropertyLayer; -extern LIBEXPORT StructRNA RNA_MeshTextureFace; -extern LIBEXPORT StructRNA RNA_MeshTextureFaceLayer; -extern LIBEXPORT StructRNA RNA_MeshVertex; -extern LIBEXPORT StructRNA RNA_MessageSensor; -extern LIBEXPORT StructRNA RNA_MetaBall; -extern LIBEXPORT StructRNA RNA_MetaElement; -extern LIBEXPORT StructRNA RNA_MetaSequence; -extern LIBEXPORT StructRNA RNA_MirrorModifier; -extern LIBEXPORT StructRNA RNA_Modifier; -extern LIBEXPORT StructRNA RNA_MotionPath; -extern LIBEXPORT StructRNA RNA_MotionPathVert; -extern LIBEXPORT StructRNA RNA_MouseSensor; -extern LIBEXPORT StructRNA RNA_MovieSequence; -extern LIBEXPORT StructRNA RNA_MulticamSequence; -extern LIBEXPORT StructRNA RNA_MultiresModifier; -extern LIBEXPORT StructRNA RNA_MusgraveTexture; -extern LIBEXPORT StructRNA RNA_NandController; -extern LIBEXPORT StructRNA RNA_NearSensor; -extern LIBEXPORT StructRNA RNA_NlaStrip; -extern LIBEXPORT StructRNA RNA_NlaTrack; -extern LIBEXPORT StructRNA RNA_Node; -extern LIBEXPORT StructRNA RNA_NodeGroup; -extern LIBEXPORT StructRNA RNA_NodeLink; -extern LIBEXPORT StructRNA RNA_NodeSocket; -extern LIBEXPORT StructRNA RNA_NodeTree; -extern LIBEXPORT StructRNA RNA_NoiseTexture; -extern LIBEXPORT StructRNA RNA_NorController; -extern LIBEXPORT StructRNA RNA_Object; -extern LIBEXPORT StructRNA RNA_ObjectBase; -extern LIBEXPORT StructRNA RNA_ObstacleFluidSettings; -extern LIBEXPORT StructRNA RNA_Operator; -extern LIBEXPORT StructRNA RNA_OperatorFileListElement; -extern LIBEXPORT StructRNA RNA_OperatorMousePath; -extern LIBEXPORT StructRNA RNA_OperatorProperties; -extern LIBEXPORT StructRNA RNA_OperatorStrokeElement; -extern LIBEXPORT StructRNA RNA_OperatorTypeMacro; -extern LIBEXPORT StructRNA RNA_OrController; -extern LIBEXPORT StructRNA RNA_OutflowFluidSettings; -extern LIBEXPORT StructRNA RNA_PackedFile; -extern LIBEXPORT StructRNA RNA_Paint; -extern LIBEXPORT StructRNA RNA_Panel; -extern LIBEXPORT StructRNA RNA_Particle; -extern LIBEXPORT StructRNA RNA_ParticleBrush; -extern LIBEXPORT StructRNA RNA_ParticleDupliWeight; -extern LIBEXPORT StructRNA RNA_ParticleEdit; -extern LIBEXPORT StructRNA RNA_ParticleFluidSettings; -extern LIBEXPORT StructRNA RNA_ParticleHairKey; -extern LIBEXPORT StructRNA RNA_ParticleInstanceModifier; -extern LIBEXPORT StructRNA RNA_ParticleKey; -extern LIBEXPORT StructRNA RNA_ParticleSettings; -extern LIBEXPORT StructRNA RNA_ParticleSettingsTextureSlot; -extern LIBEXPORT StructRNA RNA_ParticleSystem; -extern LIBEXPORT StructRNA RNA_ParticleSystemModifier; -extern LIBEXPORT StructRNA RNA_ParticleTarget; -extern LIBEXPORT StructRNA RNA_PivotConstraint; -extern LIBEXPORT StructRNA RNA_PluginSequence; -extern LIBEXPORT StructRNA RNA_PluginTexture; -extern LIBEXPORT StructRNA RNA_PointCache; -extern LIBEXPORT StructRNA RNA_PointDensity; -extern LIBEXPORT StructRNA RNA_PointDensityTexture; -extern LIBEXPORT StructRNA RNA_PointLamp; -extern LIBEXPORT StructRNA RNA_PointerProperty; -extern LIBEXPORT StructRNA RNA_Pose; -extern LIBEXPORT StructRNA RNA_PoseBone; -extern LIBEXPORT StructRNA RNA_Property; -extern LIBEXPORT StructRNA RNA_PropertyGroup; -extern LIBEXPORT StructRNA RNA_PropertyGroupItem; -extern LIBEXPORT StructRNA RNA_PropertySensor; -extern LIBEXPORT StructRNA RNA_PythonConstraint; -extern LIBEXPORT StructRNA RNA_PythonController; -extern LIBEXPORT StructRNA RNA_RGBANodeSocket; -extern LIBEXPORT StructRNA RNA_RadarSensor; -extern LIBEXPORT StructRNA RNA_RandomSensor; -extern LIBEXPORT StructRNA RNA_RaySensor; -extern LIBEXPORT StructRNA RNA_Region; -extern LIBEXPORT StructRNA RNA_RenderEngine; -extern LIBEXPORT StructRNA RNA_RenderLayer; -extern LIBEXPORT StructRNA RNA_RenderPass; -extern LIBEXPORT StructRNA RNA_RenderResult; -extern LIBEXPORT StructRNA RNA_RenderSettings; -extern LIBEXPORT StructRNA RNA_RigidBodyJointConstraint; -extern LIBEXPORT StructRNA RNA_SPHFluidSettings; -extern LIBEXPORT StructRNA RNA_Scene; -extern LIBEXPORT StructRNA RNA_SceneGameData; -extern LIBEXPORT StructRNA RNA_SceneRenderLayer; -extern LIBEXPORT StructRNA RNA_SceneSequence; -extern LIBEXPORT StructRNA RNA_Scopes; -extern LIBEXPORT StructRNA RNA_Screen; -extern LIBEXPORT StructRNA RNA_ScrewModifier; -extern LIBEXPORT StructRNA RNA_Sculpt; -extern LIBEXPORT StructRNA RNA_Sensor; -extern LIBEXPORT StructRNA RNA_Sequence; -extern LIBEXPORT StructRNA RNA_SequenceColorBalance; -extern LIBEXPORT StructRNA RNA_SequenceCrop; -extern LIBEXPORT StructRNA RNA_SequenceEditor; -extern LIBEXPORT StructRNA RNA_SequenceElement; -extern LIBEXPORT StructRNA RNA_SequenceProxy; -extern LIBEXPORT StructRNA RNA_SequenceTransform; -extern LIBEXPORT StructRNA RNA_ShaderNode; -extern LIBEXPORT StructRNA RNA_ShaderNodeCameraData; -extern LIBEXPORT StructRNA RNA_ShaderNodeCombineRGB; -extern LIBEXPORT StructRNA RNA_ShaderNodeExtendedMaterial; -extern LIBEXPORT StructRNA RNA_ShaderNodeGeometry; -extern LIBEXPORT StructRNA RNA_ShaderNodeHueSaturation; -extern LIBEXPORT StructRNA RNA_ShaderNodeInvert; -extern LIBEXPORT StructRNA RNA_ShaderNodeMapping; -extern LIBEXPORT StructRNA RNA_ShaderNodeMaterial; -extern LIBEXPORT StructRNA RNA_ShaderNodeMath; -extern LIBEXPORT StructRNA RNA_ShaderNodeMixRGB; -extern LIBEXPORT StructRNA RNA_ShaderNodeNormal; -extern LIBEXPORT StructRNA RNA_ShaderNodeOutput; -extern LIBEXPORT StructRNA RNA_ShaderNodeRGB; -extern LIBEXPORT StructRNA RNA_ShaderNodeRGBCurve; -extern LIBEXPORT StructRNA RNA_ShaderNodeRGBToBW; -extern LIBEXPORT StructRNA RNA_ShaderNodeSeparateRGB; -extern LIBEXPORT StructRNA RNA_ShaderNodeSqueeze; -extern LIBEXPORT StructRNA RNA_ShaderNodeTexture; -extern LIBEXPORT StructRNA RNA_ShaderNodeTree; -extern LIBEXPORT StructRNA RNA_ShaderNodeValToRGB; -extern LIBEXPORT StructRNA RNA_ShaderNodeValue; -extern LIBEXPORT StructRNA RNA_ShaderNodeVectorCurve; -extern LIBEXPORT StructRNA RNA_ShaderNodeVectorMath; -extern LIBEXPORT StructRNA RNA_ShapeKey; -extern LIBEXPORT StructRNA RNA_ShapeKeyBezierPoint; -extern LIBEXPORT StructRNA RNA_ShapeKeyCurvePoint; -extern LIBEXPORT StructRNA RNA_ShapeKeyPoint; -extern LIBEXPORT StructRNA RNA_ShrinkwrapConstraint; -extern LIBEXPORT StructRNA RNA_ShrinkwrapModifier; -extern LIBEXPORT StructRNA RNA_SimpleDeformModifier; -extern LIBEXPORT StructRNA RNA_SmokeCollSettings; -extern LIBEXPORT StructRNA RNA_SmokeDomainSettings; -extern LIBEXPORT StructRNA RNA_SmokeFlowSettings; -extern LIBEXPORT StructRNA RNA_SmokeModifier; -extern LIBEXPORT StructRNA RNA_SmoothModifier; -extern LIBEXPORT StructRNA RNA_SoftBodyModifier; -extern LIBEXPORT StructRNA RNA_SoftBodySettings; -extern LIBEXPORT StructRNA RNA_SolidifyModifier; -extern LIBEXPORT StructRNA RNA_Sound; -extern LIBEXPORT StructRNA RNA_SoundSequence; -extern LIBEXPORT StructRNA RNA_Space; -extern LIBEXPORT StructRNA RNA_SpaceConsole; -extern LIBEXPORT StructRNA RNA_SpaceDopeSheetEditor; -extern LIBEXPORT StructRNA RNA_SpaceFileBrowser; -extern LIBEXPORT StructRNA RNA_SpaceGraphEditor; -extern LIBEXPORT StructRNA RNA_SpaceImageEditor; -extern LIBEXPORT StructRNA RNA_SpaceInfo; -extern LIBEXPORT StructRNA RNA_SpaceLogicEditor; -extern LIBEXPORT StructRNA RNA_SpaceNLA; -extern LIBEXPORT StructRNA RNA_SpaceNodeEditor; -extern LIBEXPORT StructRNA RNA_SpaceOutliner; -extern LIBEXPORT StructRNA RNA_SpaceProperties; -extern LIBEXPORT StructRNA RNA_SpaceSequenceEditor; -extern LIBEXPORT StructRNA RNA_SpaceTextEditor; -extern LIBEXPORT StructRNA RNA_SpaceTimeline; -extern LIBEXPORT StructRNA RNA_SpaceUVEditor; -extern LIBEXPORT StructRNA RNA_SpaceUserPreferences; -extern LIBEXPORT StructRNA RNA_SpaceView3D; -extern LIBEXPORT StructRNA RNA_SpeedControlSequence; -extern LIBEXPORT StructRNA RNA_Spline; -extern LIBEXPORT StructRNA RNA_SplineIKConstraint; -extern LIBEXPORT StructRNA RNA_SpotLamp; -extern LIBEXPORT StructRNA RNA_StretchToConstraint; -extern LIBEXPORT StructRNA RNA_StringProperty; -extern LIBEXPORT StructRNA RNA_Struct; -extern LIBEXPORT StructRNA RNA_StucciTexture; -extern LIBEXPORT StructRNA RNA_SubsurfModifier; -extern LIBEXPORT StructRNA RNA_SunLamp; -extern LIBEXPORT StructRNA RNA_SurfaceCurve; -extern LIBEXPORT StructRNA RNA_SurfaceModifier; -extern LIBEXPORT StructRNA RNA_TexMapping; -extern LIBEXPORT StructRNA RNA_Text; -extern LIBEXPORT StructRNA RNA_TextBox; -extern LIBEXPORT StructRNA RNA_TextCharacterFormat; -extern LIBEXPORT StructRNA RNA_TextCurve; -extern LIBEXPORT StructRNA RNA_TextLine; -extern LIBEXPORT StructRNA RNA_TextMarker; -extern LIBEXPORT StructRNA RNA_Texture; -extern LIBEXPORT StructRNA RNA_TextureNode; -extern LIBEXPORT StructRNA RNA_TextureNodeBricks; -extern LIBEXPORT StructRNA RNA_TextureNodeChecker; -extern LIBEXPORT StructRNA RNA_TextureNodeCompose; -extern LIBEXPORT StructRNA RNA_TextureNodeCoordinates; -extern LIBEXPORT StructRNA RNA_TextureNodeCurveRGB; -extern LIBEXPORT StructRNA RNA_TextureNodeCurveTime; -extern LIBEXPORT StructRNA RNA_TextureNodeDecompose; -extern LIBEXPORT StructRNA RNA_TextureNodeDistance; -extern LIBEXPORT StructRNA RNA_TextureNodeHueSaturation; -extern LIBEXPORT StructRNA RNA_TextureNodeImage; -extern LIBEXPORT StructRNA RNA_TextureNodeInvert; -extern LIBEXPORT StructRNA RNA_TextureNodeMath; -extern LIBEXPORT StructRNA RNA_TextureNodeMixRGB; -extern LIBEXPORT StructRNA RNA_TextureNodeOutput; -extern LIBEXPORT StructRNA RNA_TextureNodeRGBToBW; -extern LIBEXPORT StructRNA RNA_TextureNodeRotate; -extern LIBEXPORT StructRNA RNA_TextureNodeScale; -extern LIBEXPORT StructRNA RNA_TextureNodeTexture; -extern LIBEXPORT StructRNA RNA_TextureNodeTranslate; -extern LIBEXPORT StructRNA RNA_TextureNodeTree; -extern LIBEXPORT StructRNA RNA_TextureNodeValToNor; -extern LIBEXPORT StructRNA RNA_TextureNodeValToRGB; -extern LIBEXPORT StructRNA RNA_TextureNodeViewer; -extern LIBEXPORT StructRNA RNA_TextureSlot; -extern LIBEXPORT StructRNA RNA_Theme; -extern LIBEXPORT StructRNA RNA_ThemeAudioWindow; -extern LIBEXPORT StructRNA RNA_ThemeBoneColorSet; -extern LIBEXPORT StructRNA RNA_ThemeConsole; -extern LIBEXPORT StructRNA RNA_ThemeDopeSheet; -extern LIBEXPORT StructRNA RNA_ThemeFileBrowser; -extern LIBEXPORT StructRNA RNA_ThemeFontStyle; -extern LIBEXPORT StructRNA RNA_ThemeGraphEditor; -extern LIBEXPORT StructRNA RNA_ThemeImageEditor; -extern LIBEXPORT StructRNA RNA_ThemeInfo; -extern LIBEXPORT StructRNA RNA_ThemeLogicEditor; -extern LIBEXPORT StructRNA RNA_ThemeNLAEditor; -extern LIBEXPORT StructRNA RNA_ThemeNodeEditor; -extern LIBEXPORT StructRNA RNA_ThemeOutliner; -extern LIBEXPORT StructRNA RNA_ThemeProperties; -extern LIBEXPORT StructRNA RNA_ThemeSequenceEditor; -extern LIBEXPORT StructRNA RNA_ThemeStyle; -extern LIBEXPORT StructRNA RNA_ThemeTextEditor; -extern LIBEXPORT StructRNA RNA_ThemeTimeline; -extern LIBEXPORT StructRNA RNA_ThemeUserInterface; -extern LIBEXPORT StructRNA RNA_ThemeUserPreferences; -extern LIBEXPORT StructRNA RNA_ThemeView3D; -extern LIBEXPORT StructRNA RNA_ThemeWidgetColors; -extern LIBEXPORT StructRNA RNA_ThemeWidgetStateColors; -extern LIBEXPORT StructRNA RNA_TimelineMarker; -extern LIBEXPORT StructRNA RNA_Timer; -extern LIBEXPORT StructRNA RNA_ToolSettings; -extern LIBEXPORT StructRNA RNA_TouchSensor; -extern LIBEXPORT StructRNA RNA_TrackToConstraint; -extern LIBEXPORT StructRNA RNA_TransformConstraint; -extern LIBEXPORT StructRNA RNA_TransformSequence; -extern LIBEXPORT StructRNA RNA_UILayout; -extern LIBEXPORT StructRNA RNA_UIListItem; -extern LIBEXPORT StructRNA RNA_UVProjectModifier; -extern LIBEXPORT StructRNA RNA_UVProjector; -extern LIBEXPORT StructRNA RNA_UnitSettings; -extern LIBEXPORT StructRNA RNA_UnknownType; -extern LIBEXPORT StructRNA RNA_UserPreferences; -extern LIBEXPORT StructRNA RNA_UserPreferencesEdit; -extern LIBEXPORT StructRNA RNA_UserPreferencesFilePaths; -extern LIBEXPORT StructRNA RNA_UserPreferencesSystem; -extern LIBEXPORT StructRNA RNA_UserPreferencesView; -extern LIBEXPORT StructRNA RNA_UserSolidLight; -extern LIBEXPORT StructRNA RNA_ValueNodeSocket; -extern LIBEXPORT StructRNA RNA_VectorFont; -extern LIBEXPORT StructRNA RNA_VectorNodeSocket; -extern LIBEXPORT StructRNA RNA_VertexGroup; -extern LIBEXPORT StructRNA RNA_VertexGroupElement; -extern LIBEXPORT StructRNA RNA_VertexPaint; -extern LIBEXPORT StructRNA RNA_VoronoiTexture; -extern LIBEXPORT StructRNA RNA_VoxelData; -extern LIBEXPORT StructRNA RNA_VoxelDataTexture; -extern LIBEXPORT StructRNA RNA_WarpModifier; -extern LIBEXPORT StructRNA RNA_WaveModifier; -extern LIBEXPORT StructRNA RNA_Window; -extern LIBEXPORT StructRNA RNA_WindowManager; -extern LIBEXPORT StructRNA RNA_WipeSequence; -extern LIBEXPORT StructRNA RNA_WoodTexture; -extern LIBEXPORT StructRNA RNA_World; -extern LIBEXPORT StructRNA RNA_WorldAmbientOcclusion; -extern LIBEXPORT StructRNA RNA_WorldMistSettings; -extern LIBEXPORT StructRNA RNA_WorldStarsSettings; -extern LIBEXPORT StructRNA RNA_WorldTextureSlot; -extern LIBEXPORT StructRNA RNA_XnorController; -extern LIBEXPORT StructRNA RNA_XorController; +extern StructRNA RNA_Action; +extern StructRNA RNA_ActionConstraint; +extern StructRNA RNA_ActionGroup; +extern StructRNA RNA_Actuator; +extern StructRNA RNA_ActuatorSensor; +extern StructRNA RNA_Addon; +extern StructRNA RNA_AdjustmentSequence; +extern StructRNA RNA_AlwaysSensor; +extern StructRNA RNA_AndController; +extern StructRNA RNA_AnimData; +extern StructRNA RNA_AnimViz; +extern StructRNA RNA_AnimVizMotionPaths; +extern StructRNA RNA_AnimVizOnionSkinning; +extern StructRNA RNA_AnyType; +extern StructRNA RNA_Area; +extern StructRNA RNA_AreaLamp; +extern StructRNA RNA_Armature; +extern StructRNA RNA_ArmatureModifier; +extern StructRNA RNA_ArmatureSensor; +extern StructRNA RNA_ArrayModifier; +extern StructRNA RNA_BackgroundImage; +extern StructRNA RNA_BevelModifier; +extern StructRNA RNA_BezierSplinePoint; +extern StructRNA RNA_BlendData; +extern StructRNA RNA_BlendTexture; +extern StructRNA RNA_BlenderRNA; +extern StructRNA RNA_BoidRule; +extern StructRNA RNA_BoidRuleAverageSpeed; +extern StructRNA RNA_BoidRuleAvoid; +extern StructRNA RNA_BoidRuleAvoidCollision; +extern StructRNA RNA_BoidRuleFight; +extern StructRNA RNA_BoidRuleFollowLeader; +extern StructRNA RNA_BoidRuleGoal; +extern StructRNA RNA_BoidSettings; +extern StructRNA RNA_BoidState; +extern StructRNA RNA_Bone; +extern StructRNA RNA_BoneGroup; +extern StructRNA RNA_BooleanModifier; +extern StructRNA RNA_BooleanProperty; +extern StructRNA RNA_Brush; +extern StructRNA RNA_BrushTextureSlot; +extern StructRNA RNA_BuildModifier; +extern StructRNA RNA_Camera; +extern StructRNA RNA_CastModifier; +extern StructRNA RNA_ChildOfConstraint; +extern StructRNA RNA_ChildParticle; +extern StructRNA RNA_ClampToConstraint; +extern StructRNA RNA_ClothCollisionSettings; +extern StructRNA RNA_ClothModifier; +extern StructRNA RNA_ClothSettings; +extern StructRNA RNA_CloudsTexture; +extern StructRNA RNA_CollectionProperty; +extern StructRNA RNA_CollisionModifier; +extern StructRNA RNA_CollisionSensor; +extern StructRNA RNA_CollisionSettings; +extern StructRNA RNA_ColorRamp; +extern StructRNA RNA_ColorRampElement; +extern StructRNA RNA_ColorSequence; +extern StructRNA RNA_CompositorNode; +extern StructRNA RNA_CompositorNodeAlphaOver; +extern StructRNA RNA_CompositorNodeBilateralblur; +extern StructRNA RNA_CompositorNodeBlur; +extern StructRNA RNA_CompositorNodeBrightContrast; +extern StructRNA RNA_CompositorNodeChannelMatte; +extern StructRNA RNA_CompositorNodeChromaMatte; +extern StructRNA RNA_CompositorNodeColorMatte; +extern StructRNA RNA_CompositorNodeColorSpill; +extern StructRNA RNA_CompositorNodeCombHSVA; +extern StructRNA RNA_CompositorNodeCombRGBA; +extern StructRNA RNA_CompositorNodeCombYCCA; +extern StructRNA RNA_CompositorNodeCombYUVA; +extern StructRNA RNA_CompositorNodeComposite; +extern StructRNA RNA_CompositorNodeCrop; +extern StructRNA RNA_CompositorNodeCurveRGB; +extern StructRNA RNA_CompositorNodeCurveVec; +extern StructRNA RNA_CompositorNodeDBlur; +extern StructRNA RNA_CompositorNodeDefocus; +extern StructRNA RNA_CompositorNodeDiffMatte; +extern StructRNA RNA_CompositorNodeDilateErode; +extern StructRNA RNA_CompositorNodeDisplace; +extern StructRNA RNA_CompositorNodeDistanceMatte; +extern StructRNA RNA_CompositorNodeFilter; +extern StructRNA RNA_CompositorNodeFlip; +extern StructRNA RNA_CompositorNodeGamma; +extern StructRNA RNA_CompositorNodeGlare; +extern StructRNA RNA_CompositorNodeHueSat; +extern StructRNA RNA_CompositorNodeIDMask; +extern StructRNA RNA_CompositorNodeImage; +extern StructRNA RNA_CompositorNodeInvert; +extern StructRNA RNA_CompositorNodeLensdist; +extern StructRNA RNA_CompositorNodeLevels; +extern StructRNA RNA_CompositorNodeLumaMatte; +extern StructRNA RNA_CompositorNodeMapUV; +extern StructRNA RNA_CompositorNodeMapValue; +extern StructRNA RNA_CompositorNodeMath; +extern StructRNA RNA_CompositorNodeMixRGB; +extern StructRNA RNA_CompositorNodeNormal; +extern StructRNA RNA_CompositorNodeNormalize; +extern StructRNA RNA_CompositorNodeOutputFile; +extern StructRNA RNA_CompositorNodePremulKey; +extern StructRNA RNA_CompositorNodeRGB; +extern StructRNA RNA_CompositorNodeRGBToBW; +extern StructRNA RNA_CompositorNodeRLayers; +extern StructRNA RNA_CompositorNodeRotate; +extern StructRNA RNA_CompositorNodeScale; +extern StructRNA RNA_CompositorNodeSepHSVA; +extern StructRNA RNA_CompositorNodeSepRGBA; +extern StructRNA RNA_CompositorNodeSepYCCA; +extern StructRNA RNA_CompositorNodeSepYUVA; +extern StructRNA RNA_CompositorNodeSetAlpha; +extern StructRNA RNA_CompositorNodeSplitViewer; +extern StructRNA RNA_CompositorNodeTexture; +extern StructRNA RNA_CompositorNodeTime; +extern StructRNA RNA_CompositorNodeTonemap; +extern StructRNA RNA_CompositorNodeTranslate; +extern StructRNA RNA_CompositorNodeTree; +extern StructRNA RNA_CompositorNodeValToRGB; +extern StructRNA RNA_CompositorNodeValue; +extern StructRNA RNA_CompositorNodeVecBlur; +extern StructRNA RNA_CompositorNodeViewer; +extern StructRNA RNA_CompositorNodeZcombine; +extern StructRNA RNA_ConsoleLine; +extern StructRNA RNA_Constraint; +extern StructRNA RNA_ConstraintTarget; +extern StructRNA RNA_Context; +extern StructRNA RNA_ControlFluidSettings; +extern StructRNA RNA_Controller; +extern StructRNA RNA_CopyLocationConstraint; +extern StructRNA RNA_CopyRotationConstraint; +extern StructRNA RNA_CopyScaleConstraint; +extern StructRNA RNA_CopyTransformsConstraint; +extern StructRNA RNA_Curve; +extern StructRNA RNA_CurveMap; +extern StructRNA RNA_CurveMapPoint; +extern StructRNA RNA_CurveMapping; +extern StructRNA RNA_CurveModifier; +extern StructRNA RNA_CurvePoint; +extern StructRNA RNA_DampedTrackConstraint; +extern StructRNA RNA_DecimateModifier; +extern StructRNA RNA_DelaySensor; +extern StructRNA RNA_DisplaceModifier; +extern StructRNA RNA_DistortedNoiseTexture; +extern StructRNA RNA_DomainFluidSettings; +extern StructRNA RNA_Driver; +extern StructRNA RNA_DriverTarget; +extern StructRNA RNA_DriverVariable; +extern StructRNA RNA_DupliObject; +extern StructRNA RNA_EdgeSplitModifier; +extern StructRNA RNA_EditBone; +extern StructRNA RNA_EffectSequence; +extern StructRNA RNA_EffectorWeights; +extern StructRNA RNA_EnumProperty; +extern StructRNA RNA_EnumPropertyItem; +extern StructRNA RNA_EnvironmentMap; +extern StructRNA RNA_EnvironmentMapTexture; +extern StructRNA RNA_Event; +extern StructRNA RNA_ExplodeModifier; +extern StructRNA RNA_ExpressionController; +extern StructRNA RNA_FCurve; +extern StructRNA RNA_FCurveSample; +extern StructRNA RNA_FModifier; +extern StructRNA RNA_FModifierCycles; +extern StructRNA RNA_FModifierEnvelope; +extern StructRNA RNA_FModifierEnvelopeControlPoint; +extern StructRNA RNA_FModifierFunctionGenerator; +extern StructRNA RNA_FModifierGenerator; +extern StructRNA RNA_FModifierLimits; +extern StructRNA RNA_FModifierNoise; +extern StructRNA RNA_FModifierPython; +extern StructRNA RNA_FModifierStepped; +extern StructRNA RNA_FieldSettings; +extern StructRNA RNA_FileSelectParams; +extern StructRNA RNA_FloatProperty; +extern StructRNA RNA_FloorConstraint; +extern StructRNA RNA_FluidFluidSettings; +extern StructRNA RNA_FluidSettings; +extern StructRNA RNA_FluidSimulationModifier; +extern StructRNA RNA_FollowPathConstraint; +extern StructRNA RNA_Function; +extern StructRNA RNA_GPencilFrame; +extern StructRNA RNA_GPencilLayer; +extern StructRNA RNA_GPencilStroke; +extern StructRNA RNA_GPencilStrokePoint; +extern StructRNA RNA_GameBooleanProperty; +extern StructRNA RNA_GameFloatProperty; +extern StructRNA RNA_GameIntProperty; +extern StructRNA RNA_GameObjectSettings; +extern StructRNA RNA_GameProperty; +extern StructRNA RNA_GameSoftBodySettings; +extern StructRNA RNA_GameStringProperty; +extern StructRNA RNA_GameTimerProperty; +extern StructRNA RNA_GlowSequence; +extern StructRNA RNA_GreasePencil; +extern StructRNA RNA_Group; +extern StructRNA RNA_Header; +extern StructRNA RNA_HemiLamp; +extern StructRNA RNA_Histogram; +extern StructRNA RNA_HookModifier; +extern StructRNA RNA_ID; +extern StructRNA RNA_IKParam; +extern StructRNA RNA_Image; +extern StructRNA RNA_ImagePaint; +extern StructRNA RNA_ImageSequence; +extern StructRNA RNA_ImageTexture; +extern StructRNA RNA_ImageUser; +extern StructRNA RNA_InflowFluidSettings; +extern StructRNA RNA_IntProperty; +extern StructRNA RNA_Itasc; +extern StructRNA RNA_JoystickSensor; +extern StructRNA RNA_Key; +extern StructRNA RNA_KeyConfig; +extern StructRNA RNA_KeyMap; +extern StructRNA RNA_KeyMapItem; +extern StructRNA RNA_KeyboardSensor; +extern StructRNA RNA_Keyframe; +extern StructRNA RNA_KeyingSet; +extern StructRNA RNA_KeyingSetInfo; +extern StructRNA RNA_KeyingSetPath; +extern StructRNA RNA_KinematicConstraint; +extern StructRNA RNA_Lamp; +extern StructRNA RNA_LampSkySettings; +extern StructRNA RNA_LampTextureSlot; +extern StructRNA RNA_Lattice; +extern StructRNA RNA_LatticeModifier; +extern StructRNA RNA_LatticePoint; +extern StructRNA RNA_Library; +extern StructRNA RNA_LimitDistanceConstraint; +extern StructRNA RNA_LimitLocationConstraint; +extern StructRNA RNA_LimitRotationConstraint; +extern StructRNA RNA_LimitScaleConstraint; +extern StructRNA RNA_LockedTrackConstraint; +extern StructRNA RNA_Macro; +extern StructRNA RNA_MagicTexture; +extern StructRNA RNA_MarbleTexture; +extern StructRNA RNA_MaskModifier; +extern StructRNA RNA_Material; +extern StructRNA RNA_MaterialHalo; +extern StructRNA RNA_MaterialPhysics; +extern StructRNA RNA_MaterialRaytraceMirror; +extern StructRNA RNA_MaterialRaytraceTransparency; +extern StructRNA RNA_MaterialSlot; +extern StructRNA RNA_MaterialStrand; +extern StructRNA RNA_MaterialSubsurfaceScattering; +extern StructRNA RNA_MaterialTextureSlot; +extern StructRNA RNA_MaterialVolume; +extern StructRNA RNA_Menu; +extern StructRNA RNA_Mesh; +extern StructRNA RNA_MeshColor; +extern StructRNA RNA_MeshColorLayer; +extern StructRNA RNA_MeshDeformModifier; +extern StructRNA RNA_MeshEdge; +extern StructRNA RNA_MeshFace; +extern StructRNA RNA_MeshFloatProperty; +extern StructRNA RNA_MeshFloatPropertyLayer; +extern StructRNA RNA_MeshIntProperty; +extern StructRNA RNA_MeshIntPropertyLayer; +extern StructRNA RNA_MeshSticky; +extern StructRNA RNA_MeshStringProperty; +extern StructRNA RNA_MeshStringPropertyLayer; +extern StructRNA RNA_MeshTextureFace; +extern StructRNA RNA_MeshTextureFaceLayer; +extern StructRNA RNA_MeshVertex; +extern StructRNA RNA_MessageSensor; +extern StructRNA RNA_MetaBall; +extern StructRNA RNA_MetaElement; +extern StructRNA RNA_MetaSequence; +extern StructRNA RNA_MirrorModifier; +extern StructRNA RNA_Modifier; +extern StructRNA RNA_MotionPath; +extern StructRNA RNA_MotionPathVert; +extern StructRNA RNA_MouseSensor; +extern StructRNA RNA_MovieSequence; +extern StructRNA RNA_MulticamSequence; +extern StructRNA RNA_MultiresModifier; +extern StructRNA RNA_MusgraveTexture; +extern StructRNA RNA_NandController; +extern StructRNA RNA_NearSensor; +extern StructRNA RNA_NlaStrip; +extern StructRNA RNA_NlaTrack; +extern StructRNA RNA_Node; +extern StructRNA RNA_NodeGroup; +extern StructRNA RNA_NodeLink; +extern StructRNA RNA_NodeSocket; +extern StructRNA RNA_NodeTree; +extern StructRNA RNA_NoiseTexture; +extern StructRNA RNA_NorController; +extern StructRNA RNA_Object; +extern StructRNA RNA_ObjectBase; +extern StructRNA RNA_ObstacleFluidSettings; +extern StructRNA RNA_Operator; +extern StructRNA RNA_OperatorFileListElement; +extern StructRNA RNA_OperatorMousePath; +extern StructRNA RNA_OperatorProperties; +extern StructRNA RNA_OperatorStrokeElement; +extern StructRNA RNA_OperatorTypeMacro; +extern StructRNA RNA_OrController; +extern StructRNA RNA_OutflowFluidSettings; +extern StructRNA RNA_PackedFile; +extern StructRNA RNA_Paint; +extern StructRNA RNA_Panel; +extern StructRNA RNA_Particle; +extern StructRNA RNA_ParticleBrush; +extern StructRNA RNA_ParticleDupliWeight; +extern StructRNA RNA_ParticleEdit; +extern StructRNA RNA_ParticleFluidSettings; +extern StructRNA RNA_ParticleHairKey; +extern StructRNA RNA_ParticleInstanceModifier; +extern StructRNA RNA_ParticleKey; +extern StructRNA RNA_ParticleSettings; +extern StructRNA RNA_ParticleSettingsTextureSlot; +extern StructRNA RNA_ParticleSystem; +extern StructRNA RNA_ParticleSystemModifier; +extern StructRNA RNA_ParticleTarget; +extern StructRNA RNA_PivotConstraint; +extern StructRNA RNA_PluginSequence; +extern StructRNA RNA_PluginTexture; +extern StructRNA RNA_PointCache; +extern StructRNA RNA_PointDensity; +extern StructRNA RNA_PointDensityTexture; +extern StructRNA RNA_PointLamp; +extern StructRNA RNA_PointerProperty; +extern StructRNA RNA_Pose; +extern StructRNA RNA_PoseBone; +extern StructRNA RNA_Property; +extern StructRNA RNA_PropertyGroup; +extern StructRNA RNA_PropertyGroupItem; +extern StructRNA RNA_PropertySensor; +extern StructRNA RNA_PythonConstraint; +extern StructRNA RNA_PythonController; +extern StructRNA RNA_RGBANodeSocket; +extern StructRNA RNA_RadarSensor; +extern StructRNA RNA_RandomSensor; +extern StructRNA RNA_RaySensor; +extern StructRNA RNA_Region; +extern StructRNA RNA_RenderEngine; +extern StructRNA RNA_RenderLayer; +extern StructRNA RNA_RenderPass; +extern StructRNA RNA_RenderResult; +extern StructRNA RNA_RenderSettings; +extern StructRNA RNA_RigidBodyJointConstraint; +extern StructRNA RNA_SPHFluidSettings; +extern StructRNA RNA_Scene; +extern StructRNA RNA_SceneGameData; +extern StructRNA RNA_SceneRenderLayer; +extern StructRNA RNA_SceneSequence; +extern StructRNA RNA_SceneObjects; +extern StructRNA RNA_Scopes; +extern StructRNA RNA_Screen; +extern StructRNA RNA_ScrewModifier; +extern StructRNA RNA_Sculpt; +extern StructRNA RNA_Sensor; +extern StructRNA RNA_Sequence; +extern StructRNA RNA_SequenceColorBalance; +extern StructRNA RNA_SequenceCrop; +extern StructRNA RNA_SequenceEditor; +extern StructRNA RNA_SequenceElement; +extern StructRNA RNA_SequenceProxy; +extern StructRNA RNA_SequenceTransform; +extern StructRNA RNA_ShaderNode; +extern StructRNA RNA_ShaderNodeCameraData; +extern StructRNA RNA_ShaderNodeCombineRGB; +extern StructRNA RNA_ShaderNodeExtendedMaterial; +extern StructRNA RNA_ShaderNodeGeometry; +extern StructRNA RNA_ShaderNodeHueSaturation; +extern StructRNA RNA_ShaderNodeInvert; +extern StructRNA RNA_ShaderNodeMapping; +extern StructRNA RNA_ShaderNodeMaterial; +extern StructRNA RNA_ShaderNodeMath; +extern StructRNA RNA_ShaderNodeMixRGB; +extern StructRNA RNA_ShaderNodeNormal; +extern StructRNA RNA_ShaderNodeOutput; +extern StructRNA RNA_ShaderNodeRGB; +extern StructRNA RNA_ShaderNodeRGBCurve; +extern StructRNA RNA_ShaderNodeRGBToBW; +extern StructRNA RNA_ShaderNodeSeparateRGB; +extern StructRNA RNA_ShaderNodeSqueeze; +extern StructRNA RNA_ShaderNodeTexture; +extern StructRNA RNA_ShaderNodeTree; +extern StructRNA RNA_ShaderNodeValToRGB; +extern StructRNA RNA_ShaderNodeValue; +extern StructRNA RNA_ShaderNodeVectorCurve; +extern StructRNA RNA_ShaderNodeVectorMath; +extern StructRNA RNA_ShapeKey; +extern StructRNA RNA_ShapeKeyBezierPoint; +extern StructRNA RNA_ShapeKeyCurvePoint; +extern StructRNA RNA_ShapeKeyPoint; +extern StructRNA RNA_ShrinkwrapConstraint; +extern StructRNA RNA_ShrinkwrapModifier; +extern StructRNA RNA_SimpleDeformModifier; +extern StructRNA RNA_SmokeCollSettings; +extern StructRNA RNA_SmokeDomainSettings; +extern StructRNA RNA_SmokeFlowSettings; +extern StructRNA RNA_SmokeModifier; +extern StructRNA RNA_SmoothModifier; +extern StructRNA RNA_SoftBodyModifier; +extern StructRNA RNA_SoftBodySettings; +extern StructRNA RNA_SolidifyModifier; +extern StructRNA RNA_Sound; +extern StructRNA RNA_SoundSequence; +extern StructRNA RNA_Space; +extern StructRNA RNA_SpaceConsole; +extern StructRNA RNA_SpaceDopeSheetEditor; +extern StructRNA RNA_SpaceFileBrowser; +extern StructRNA RNA_SpaceGraphEditor; +extern StructRNA RNA_SpaceImageEditor; +extern StructRNA RNA_SpaceInfo; +extern StructRNA RNA_SpaceLogicEditor; +extern StructRNA RNA_SpaceNLA; +extern StructRNA RNA_SpaceNodeEditor; +extern StructRNA RNA_SpaceOutliner; +extern StructRNA RNA_SpaceProperties; +extern StructRNA RNA_SpaceSequenceEditor; +extern StructRNA RNA_SpaceTextEditor; +extern StructRNA RNA_SpaceTimeline; +extern StructRNA RNA_SpaceUVEditor; +extern StructRNA RNA_SpaceUserPreferences; +extern StructRNA RNA_SpaceView3D; +extern StructRNA RNA_SpeedControlSequence; +extern StructRNA RNA_Spline; +extern StructRNA RNA_SplineIKConstraint; +extern StructRNA RNA_SpotLamp; +extern StructRNA RNA_StretchToConstraint; +extern StructRNA RNA_StringProperty; +extern StructRNA RNA_Struct; +extern StructRNA RNA_StucciTexture; +extern StructRNA RNA_SubsurfModifier; +extern StructRNA RNA_SunLamp; +extern StructRNA RNA_SurfaceCurve; +extern StructRNA RNA_SurfaceModifier; +extern StructRNA RNA_TexMapping; +extern StructRNA RNA_Text; +extern StructRNA RNA_TextBox; +extern StructRNA RNA_TextCharacterFormat; +extern StructRNA RNA_TextCurve; +extern StructRNA RNA_TextLine; +extern StructRNA RNA_TextMarker; +extern StructRNA RNA_Texture; +extern StructRNA RNA_TextureNode; +extern StructRNA RNA_TextureNodeBricks; +extern StructRNA RNA_TextureNodeChecker; +extern StructRNA RNA_TextureNodeCompose; +extern StructRNA RNA_TextureNodeCoordinates; +extern StructRNA RNA_TextureNodeCurveRGB; +extern StructRNA RNA_TextureNodeCurveTime; +extern StructRNA RNA_TextureNodeDecompose; +extern StructRNA RNA_TextureNodeDistance; +extern StructRNA RNA_TextureNodeHueSaturation; +extern StructRNA RNA_TextureNodeImage; +extern StructRNA RNA_TextureNodeInvert; +extern StructRNA RNA_TextureNodeMath; +extern StructRNA RNA_TextureNodeMixRGB; +extern StructRNA RNA_TextureNodeOutput; +extern StructRNA RNA_TextureNodeRGBToBW; +extern StructRNA RNA_TextureNodeRotate; +extern StructRNA RNA_TextureNodeScale; +extern StructRNA RNA_TextureNodeTexture; +extern StructRNA RNA_TextureNodeTranslate; +extern StructRNA RNA_TextureNodeTree; +extern StructRNA RNA_TextureNodeValToNor; +extern StructRNA RNA_TextureNodeValToRGB; +extern StructRNA RNA_TextureNodeViewer; +extern StructRNA RNA_TextureSlot; +extern StructRNA RNA_Theme; +extern StructRNA RNA_ThemeAudioWindow; +extern StructRNA RNA_ThemeBoneColorSet; +extern StructRNA RNA_ThemeConsole; +extern StructRNA RNA_ThemeDopeSheet; +extern StructRNA RNA_ThemeFileBrowser; +extern StructRNA RNA_ThemeFontStyle; +extern StructRNA RNA_ThemeGraphEditor; +extern StructRNA RNA_ThemeImageEditor; +extern StructRNA RNA_ThemeInfo; +extern StructRNA RNA_ThemeLogicEditor; +extern StructRNA RNA_ThemeNLAEditor; +extern StructRNA RNA_ThemeNodeEditor; +extern StructRNA RNA_ThemeOutliner; +extern StructRNA RNA_ThemeProperties; +extern StructRNA RNA_ThemeSequenceEditor; +extern StructRNA RNA_ThemeStyle; +extern StructRNA RNA_ThemeTextEditor; +extern StructRNA RNA_ThemeTimeline; +extern StructRNA RNA_ThemeUserInterface; +extern StructRNA RNA_ThemeUserPreferences; +extern StructRNA RNA_ThemeView3D; +extern StructRNA RNA_ThemeWidgetColors; +extern StructRNA RNA_ThemeWidgetStateColors; +extern StructRNA RNA_TimelineMarker; +extern StructRNA RNA_Timer; +extern StructRNA RNA_ToolSettings; +extern StructRNA RNA_TouchSensor; +extern StructRNA RNA_TrackToConstraint; +extern StructRNA RNA_TransformConstraint; +extern StructRNA RNA_TransformSequence; +extern StructRNA RNA_UILayout; +extern StructRNA RNA_UIListItem; +extern StructRNA RNA_UVProjectModifier; +extern StructRNA RNA_UVProjector; +extern StructRNA RNA_UnitSettings; +extern StructRNA RNA_UnknownType; +extern StructRNA RNA_UserPreferences; +extern StructRNA RNA_UserPreferencesEdit; +extern StructRNA RNA_UserPreferencesFilePaths; +extern StructRNA RNA_UserPreferencesSystem; +extern StructRNA RNA_UserPreferencesView; +extern StructRNA RNA_UserSolidLight; +extern StructRNA RNA_ValueNodeSocket; +extern StructRNA RNA_VectorFont; +extern StructRNA RNA_VectorNodeSocket; +extern StructRNA RNA_VertexGroup; +extern StructRNA RNA_VertexGroupElement; +extern StructRNA RNA_VertexPaint; +extern StructRNA RNA_VoronoiTexture; +extern StructRNA RNA_VoxelData; +extern StructRNA RNA_VoxelDataTexture; +extern StructRNA RNA_WarpModifier; +extern StructRNA RNA_WaveModifier; +extern StructRNA RNA_Window; +extern StructRNA RNA_WindowManager; +extern StructRNA RNA_WipeSequence; +extern StructRNA RNA_WoodTexture; +extern StructRNA RNA_World; +extern StructRNA RNA_WorldAmbientOcclusion; +extern StructRNA RNA_WorldMistSettings; +extern StructRNA RNA_WorldStarsSettings; +extern StructRNA RNA_WorldTextureSlot; +extern StructRNA RNA_XnorController; +extern StructRNA RNA_XorController; + /* Pointer * @@ -585,56 +587,55 @@ extern LIBEXPORT StructRNA RNA_XorController; * There is also a way to get a pointer with the information about all structs. */ -LIBEXPORT void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr); -LIBEXPORT void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr); -LIBEXPORT void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr); +void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr); +void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr); +void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr); -LIBEXPORT void RNA_blender_rna_pointer_create(PointerRNA *r_ptr); -LIBEXPORT void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr); +void RNA_blender_rna_pointer_create(PointerRNA *r_ptr); +void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr); -extern LIBEXPORT const PointerRNA PointerRNA_NULL; +extern const PointerRNA PointerRNA_NULL; /* Structs */ -LIBEXPORT const char *RNA_struct_identifier(StructRNA *type); -LIBEXPORT const char *RNA_struct_ui_name(StructRNA *type); -LIBEXPORT const char *RNA_struct_ui_description(StructRNA *type); -LIBEXPORT int RNA_struct_ui_icon(StructRNA *type); +const char *RNA_struct_identifier(StructRNA *type); +const char *RNA_struct_ui_name(StructRNA *type); +const char *RNA_struct_ui_description(StructRNA *type); +int RNA_struct_ui_icon(StructRNA *type); -LIBEXPORT PropertyRNA *RNA_struct_name_property(StructRNA *type); -LIBEXPORT PropertyRNA *RNA_struct_iterator_property(StructRNA *type); -LIBEXPORT StructRNA *RNA_struct_base(StructRNA *type); +PropertyRNA *RNA_struct_name_property(StructRNA *type); +PropertyRNA *RNA_struct_iterator_property(StructRNA *type); +StructRNA *RNA_struct_base(StructRNA *type); -LIBEXPORT int RNA_struct_is_ID(StructRNA *type); -LIBEXPORT int RNA_struct_is_a(StructRNA *type, StructRNA *srna); +int RNA_struct_is_ID(StructRNA *type); +int RNA_struct_is_a(StructRNA *type, StructRNA *srna); -LIBEXPORT StructRegisterFunc RNA_struct_register(StructRNA *type); -LIBEXPORT StructUnregisterFunc RNA_struct_unregister(StructRNA *type); -LIBEXPORT void **RNA_struct_instance(PointerRNA *ptr); +StructRegisterFunc RNA_struct_register(StructRNA *type); +StructUnregisterFunc RNA_struct_unregister(StructRNA *type); void **RNA_struct_instance(PointerRNA *ptr); -LIBEXPORT void *RNA_struct_py_type_get(StructRNA *srna); -LIBEXPORT void RNA_struct_py_type_set(StructRNA *srna, void *py_type); +void *RNA_struct_py_type_get(StructRNA *srna); +void RNA_struct_py_type_set(StructRNA *srna, void *py_type); -LIBEXPORT void *RNA_struct_blender_type_get(StructRNA *srna); -LIBEXPORT void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type); +void *RNA_struct_blender_type_get(StructRNA *srna); +void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type); -LIBEXPORT struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create); -LIBEXPORT int RNA_struct_idprops_check(StructRNA *srna); -LIBEXPORT int RNA_struct_idprops_register_check(StructRNA *type); +struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create); +int RNA_struct_idprops_check(StructRNA *srna); +int RNA_struct_idprops_register_check(StructRNA *type); int RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier); -LIBEXPORT PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier); -LIBEXPORT int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test); +PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier); +int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test); /* lower level functions for access to type properties */ -LIBEXPORT const struct ListBase *RNA_struct_type_properties(StructRNA *srna); -LIBEXPORT PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier); +const struct ListBase *RNA_struct_type_properties(StructRNA *srna); +PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier); -LIBEXPORT FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier); -LIBEXPORT const struct ListBase *RNA_struct_type_functions(StructRNA *srna); +FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier); +const struct ListBase *RNA_struct_type_functions(StructRNA *srna); -LIBEXPORT char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen); +char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen); /* Properties * @@ -643,143 +644,143 @@ LIBEXPORT char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int f /* Property Information */ -LIBEXPORT const char *RNA_property_identifier(PropertyRNA *prop); -LIBEXPORT const char *RNA_property_description(PropertyRNA *prop); +const char *RNA_property_identifier(PropertyRNA *prop); +const char *RNA_property_description(PropertyRNA *prop); -LIBEXPORT PropertyType RNA_property_type(PropertyRNA *prop); -LIBEXPORT PropertySubType RNA_property_subtype(PropertyRNA *prop); -LIBEXPORT PropertyUnit RNA_property_unit(PropertyRNA *prop); -LIBEXPORT int RNA_property_flag(PropertyRNA *prop); +PropertyType RNA_property_type(PropertyRNA *prop); +PropertySubType RNA_property_subtype(PropertyRNA *prop); +PropertyUnit RNA_property_unit(PropertyRNA *prop); +int RNA_property_flag(PropertyRNA *prop); void *RNA_property_py_data_get(PropertyRNA *prop); -LIBEXPORT int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension); -LIBEXPORT int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[]); -LIBEXPORT char RNA_property_array_item_char(PropertyRNA *prop, int index); -LIBEXPORT int RNA_property_array_item_index(PropertyRNA *prop, char name); +int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_array_check(PropertyRNA *prop); +int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension); +int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[]); +char RNA_property_array_item_char(PropertyRNA *prop, int index); +int RNA_property_array_item_index(PropertyRNA *prop, char name); -LIBEXPORT int RNA_property_string_maxlength(PropertyRNA *prop); +int RNA_property_string_maxlength(PropertyRNA *prop); -LIBEXPORT const char *RNA_property_ui_name(PropertyRNA *prop); -LIBEXPORT const char *RNA_property_ui_description(PropertyRNA *prop); -LIBEXPORT int RNA_property_ui_icon(PropertyRNA *prop); +const char *RNA_property_ui_name(PropertyRNA *prop); +const char *RNA_property_ui_description(PropertyRNA *prop); +int RNA_property_ui_icon(PropertyRNA *prop); /* Dynamic Property Information */ -LIBEXPORT void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax); -LIBEXPORT void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step); +void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax); +void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step); -LIBEXPORT void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax); -LIBEXPORT void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision); +void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax); +void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision); -LIBEXPORT int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value); -LIBEXPORT int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value); +int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value); +int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value); -LIBEXPORT int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier); -LIBEXPORT int RNA_enum_bitflag_identifiers(EnumPropertyItem *item, const int value, const char **identifier); -LIBEXPORT int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name); -LIBEXPORT int RNA_enum_description(EnumPropertyItem *item, const int value, const char **description); +int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier); +int RNA_enum_bitflag_identifiers(EnumPropertyItem *item, const int value, const char **identifier); +int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name); +int RNA_enum_description(EnumPropertyItem *item, const int value, const char **description); -LIBEXPORT void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, EnumPropertyItem **item, int *totitem, int *free); -LIBEXPORT int RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value); -LIBEXPORT int RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); -LIBEXPORT int RNA_property_enum_name(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name); -LIBEXPORT int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); +void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, EnumPropertyItem **item, int *totitem, int *free); +int RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value); +int RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); +int RNA_property_enum_name(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name); +int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); -LIBEXPORT StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value); +StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value); -LIBEXPORT int RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, int index); -LIBEXPORT int RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop); /* without lib check, only checks the flag */ -LIBEXPORT int RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */ +int RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, int index); +int RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop); /* without lib check, only checks the flag */ +int RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */ -LIBEXPORT void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_update_check(struct PropertyRNA *prop); +void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_update_check(struct PropertyRNA *prop); /* Property Data */ -LIBEXPORT int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value); -LIBEXPORT void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -LIBEXPORT int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -LIBEXPORT void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); -LIBEXPORT void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); -LIBEXPORT int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -LIBEXPORT int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -LIBEXPORT int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value); -LIBEXPORT void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -LIBEXPORT void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2]); -LIBEXPORT int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -LIBEXPORT void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); -LIBEXPORT void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); -LIBEXPORT int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); -LIBEXPORT int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -LIBEXPORT float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value); -LIBEXPORT void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values); -LIBEXPORT void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2]); -LIBEXPORT float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); -LIBEXPORT void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values); -LIBEXPORT void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value); -LIBEXPORT float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values); -LIBEXPORT float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); - -LIBEXPORT void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value); -LIBEXPORT char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); -LIBEXPORT void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value); -LIBEXPORT int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_string_get_default(PointerRNA *ptr, PropertyRNA *prop, char *value); -LIBEXPORT char *RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); -LIBEXPORT int RNA_property_string_default_length(PointerRNA *ptr, PropertyRNA *prop); - -LIBEXPORT int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value); -LIBEXPORT int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value); +void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); +void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value); +void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2]); +int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); +void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value); +void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values); +void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2]); +float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); +void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values); +void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value); +float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values); +float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); + +void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value); +char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); +void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value); +int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_string_get_default(PointerRNA *ptr, PropertyRNA *prop, char *value); +char *RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); +int RNA_property_string_default_length(PointerRNA *ptr, PropertyRNA *prop); + +int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value); +int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop); void *RNA_property_enum_py_data_get(PropertyRNA *prop); -LIBEXPORT PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value); -LIBEXPORT PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop); +PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value); +PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter); -LIBEXPORT void RNA_property_collection_next(CollectionPropertyIterator *iter); -LIBEXPORT void RNA_property_collection_end(CollectionPropertyIterator *iter); -LIBEXPORT int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *t_ptr); -LIBEXPORT int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr); -LIBEXPORT int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr); -LIBEXPORT int RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); +void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter); +void RNA_property_collection_next(CollectionPropertyIterator *iter); +void RNA_property_collection_end(CollectionPropertyIterator *iter); +int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *t_ptr); +int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr); +int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr); +int RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); /* efficient functions to set properties for arrays */ -LIBEXPORT int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array); -LIBEXPORT int RNA_property_collection_raw_get(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); -LIBEXPORT int RNA_property_collection_raw_set(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); -LIBEXPORT int RNA_raw_type_sizeof(RawPropertyType type); +int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array); +int RNA_property_collection_raw_get(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); +int RNA_property_collection_raw_set(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len); +int RNA_raw_type_sizeof(RawPropertyType type); RawPropertyType RNA_property_raw_type(PropertyRNA *prop); /* to create ID property groups */ -LIBEXPORT void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); -LIBEXPORT int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key); -LIBEXPORT void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT int RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos); +void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr); +int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key); +void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop); +int RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos); /* copy/reset */ -LIBEXPORT int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index); -LIBEXPORT int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); +int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index); +int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); /* Path * @@ -790,18 +791,18 @@ LIBEXPORT int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); * particular pointers, which is useful in a number of applications, like * UI code or Actions, though efficiency is a concern. */ -LIBEXPORT char *RNA_path_append(const char *path, PointerRNA *ptr, PropertyRNA *prop, +char *RNA_path_append(const char *path, PointerRNA *ptr, PropertyRNA *prop, int intkey, const char *strkey); -LIBEXPORT char *RNA_path_back(const char *path); +char *RNA_path_back(const char *path); -LIBEXPORT int RNA_path_resolve(PointerRNA *ptr, const char *path, +int RNA_path_resolve(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop); -LIBEXPORT int RNA_path_resolve_full(PointerRNA *ptr, const char *path, +int RNA_path_resolve_full(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *index); -LIBEXPORT char *RNA_path_from_ID_to_struct(PointerRNA *ptr); -LIBEXPORT char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop); +char *RNA_path_from_ID_to_struct(PointerRNA *ptr); +char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop); /* Quick name based property access * @@ -812,48 +813,48 @@ LIBEXPORT char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop) * There is no support for pointers and collections here yet, these can be * added when ID properties support them. */ -LIBEXPORT int RNA_boolean_get(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_boolean_set(PointerRNA *ptr, const char *name, int value); -LIBEXPORT void RNA_boolean_get_array(PointerRNA *ptr, const char *name, int *values); -LIBEXPORT void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const int *values); +int RNA_boolean_get(PointerRNA *ptr, const char *name); +void RNA_boolean_set(PointerRNA *ptr, const char *name, int value); +void RNA_boolean_get_array(PointerRNA *ptr, const char *name, int *values); +void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const int *values); -LIBEXPORT int RNA_int_get(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_int_set(PointerRNA *ptr, const char *name, int value); -LIBEXPORT void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values); -LIBEXPORT void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values); +int RNA_int_get(PointerRNA *ptr, const char *name); +void RNA_int_set(PointerRNA *ptr, const char *name, int value); +void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values); +void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values); -LIBEXPORT float RNA_float_get(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_float_set(PointerRNA *ptr, const char *name, float value); -LIBEXPORT void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values); -LIBEXPORT void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values); +float RNA_float_get(PointerRNA *ptr, const char *name); +void RNA_float_set(PointerRNA *ptr, const char *name, float value); +void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values); +void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values); -LIBEXPORT int RNA_enum_get(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_enum_set(PointerRNA *ptr, const char *name, int value); -LIBEXPORT void RNA_enum_set_identifier(PointerRNA *ptr, const char *name, const char *id); -LIBEXPORT int RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname); +int RNA_enum_get(PointerRNA *ptr, const char *name); +void RNA_enum_set(PointerRNA *ptr, const char *name, int value); +void RNA_enum_set_identifier(PointerRNA *ptr, const char *name, const char *id); +int RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname); /* lower level functions that don't use a PointerRNA */ -LIBEXPORT int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value); -LIBEXPORT int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier); -LIBEXPORT int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon); +int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value); +int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier); +int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon); -LIBEXPORT void RNA_string_get(PointerRNA *ptr, const char *name, char *value); -LIBEXPORT char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen); -LIBEXPORT int RNA_string_length(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_string_set(PointerRNA *ptr, const char *name, const char *value); +void RNA_string_get(PointerRNA *ptr, const char *name, char *value); +char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen); +int RNA_string_length(PointerRNA *ptr, const char *name); +void RNA_string_set(PointerRNA *ptr, const char *name, const char *value); /** * Retrieve the named property from PointerRNA. */ -LIBEXPORT PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name); +PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name); /* Set the property name of PointerRNA ptr to ptr_value */ -LIBEXPORT void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value); -LIBEXPORT void RNA_pointer_add(PointerRNA *ptr, const char *name); +void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value); +void RNA_pointer_add(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter); -LIBEXPORT int RNA_collection_length(PointerRNA *ptr, const char *name); -LIBEXPORT void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value); -LIBEXPORT void RNA_collection_clear(PointerRNA *ptr, const char *name); +void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter); +int RNA_collection_length(PointerRNA *ptr, const char *name); +void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value); +void RNA_collection_clear(PointerRNA *ptr, const char *name); #define RNA_BEGIN(sptr, itemptr, propname) \ { \ @@ -889,65 +890,65 @@ LIBEXPORT void RNA_collection_clear(PointerRNA *ptr, const char *name); } /* check if the idproperty exists, for operators */ -LIBEXPORT int RNA_property_is_set(PointerRNA *ptr, const char *name); -LIBEXPORT int RNA_property_is_idprop(PropertyRNA *prop); +int RNA_property_is_set(PointerRNA *ptr, const char *name); +int RNA_property_is_idprop(PropertyRNA *prop); /* python compatible string representation of this property, (must be freed!) */ -LIBEXPORT char *RNA_property_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); -LIBEXPORT char *RNA_pointer_as_string(struct bContext *C, PointerRNA *ptr); +char *RNA_property_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); +char *RNA_pointer_as_string(struct bContext *C, PointerRNA *ptr); /* Function */ -LIBEXPORT const char *RNA_function_identifier(FunctionRNA *func); -LIBEXPORT const char *RNA_function_ui_description(FunctionRNA *func); -LIBEXPORT int RNA_function_flag(FunctionRNA *func); -LIBEXPORT int RNA_function_defined(FunctionRNA *func); +const char *RNA_function_identifier(FunctionRNA *func); +const char *RNA_function_ui_description(FunctionRNA *func); +int RNA_function_flag(FunctionRNA *func); +int RNA_function_defined(FunctionRNA *func); -LIBEXPORT PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index); -LIBEXPORT PropertyRNA *RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier); -LIBEXPORT const struct ListBase *RNA_function_defined_parameters(FunctionRNA *func); +PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index); +PropertyRNA *RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier); +const struct ListBase *RNA_function_defined_parameters(FunctionRNA *func); /* Utility */ -LIBEXPORT ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *ptr, FunctionRNA *func); -LIBEXPORT void RNA_parameter_list_free(ParameterList *parms); -LIBEXPORT int RNA_parameter_list_size(ParameterList *parms); -LIBEXPORT int RNA_parameter_list_arg_count(ParameterList *parms); -LIBEXPORT int RNA_parameter_list_ret_count(ParameterList *parms); - -LIBEXPORT void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter); -LIBEXPORT void RNA_parameter_list_next(ParameterIterator *iter); -LIBEXPORT void RNA_parameter_list_end(ParameterIterator *iter); - -LIBEXPORT void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value); -LIBEXPORT void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value); -LIBEXPORT void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value); -LIBEXPORT void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value); -LIBEXPORT int RNA_parameter_length_get(ParameterList *parms, PropertyRNA *parm); -LIBEXPORT int RNA_parameter_length_get_data(ParameterList *parms, PropertyRNA *parm, void *data); -LIBEXPORT void RNA_parameter_length_set(ParameterList *parms, PropertyRNA *parm, int length); -LIBEXPORT void RNA_parameter_length_set_data(ParameterList *parms, PropertyRNA *parm, void *data, int length); - -LIBEXPORT int RNA_function_call(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms); -LIBEXPORT int RNA_function_call_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms); - -LIBEXPORT int RNA_function_call_direct(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, ...) +ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *ptr, FunctionRNA *func); +void RNA_parameter_list_free(ParameterList *parms); +int RNA_parameter_list_size(ParameterList *parms); +int RNA_parameter_list_arg_count(ParameterList *parms); +int RNA_parameter_list_ret_count(ParameterList *parms); + +void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter); +void RNA_parameter_list_next(ParameterIterator *iter); +void RNA_parameter_list_end(ParameterIterator *iter); + +void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value); +void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value); +void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value); +void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value); +int RNA_parameter_length_get(ParameterList *parms, PropertyRNA *parm); +int RNA_parameter_length_get_data(ParameterList *parms, PropertyRNA *parm, void *data); +void RNA_parameter_length_set(ParameterList *parms, PropertyRNA *parm, int length); +void RNA_parameter_length_set_data(ParameterList *parms, PropertyRNA *parm, void *data, int length); + +int RNA_function_call(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms); +int RNA_function_call_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms); + +int RNA_function_call_direct(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, ...) #ifdef __GNUC__ __attribute__ ((format (printf, 5, 6))) #endif ; -LIBEXPORT int RNA_function_call_direct_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, ...) +int RNA_function_call_direct_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, ...) #ifdef __GNUC__ __attribute__ ((format (printf, 5, 6))) #endif ; -LIBEXPORT int RNA_function_call_direct_va(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args); -LIBEXPORT int RNA_function_call_direct_va_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args); +int RNA_function_call_direct_va(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args); +int RNA_function_call_direct_va_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args); /* ID */ -LIBEXPORT short RNA_type_to_ID_code(StructRNA *type); -LIBEXPORT StructRNA *ID_code_to_RNA_type(short idcode); +short RNA_type_to_ID_code(StructRNA *type); +StructRNA *ID_code_to_RNA_type(short idcode); void RNA_warning(const char *format, ...) #ifdef __GNUC__ diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 3053a1c33bc..f8199074f27 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -36,18 +36,6 @@ extern "C" { #endif -#ifndef LIBEXPORT -#ifdef _WIN32 -#ifdef BLENDER_PLUGIN -#define LIBEXPORT __declspec(dllimport) -#else -#define LIBEXPORT __declspec(dllexport) -#endif -#else -#define LIBEXPORT -#endif -#endif - struct ParameterList; struct FunctionRNA; struct PropertyRNA; @@ -293,7 +281,7 @@ typedef struct ParameterList { typedef struct ParameterIterator { struct ParameterList *parms; - PointerRNA funcptr; + /* PointerRNA funcptr; */ /*UNUSED*/ void *data; int size, offset; diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 0ebe73dfe36..7da538e171b 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -516,7 +516,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr switch(prop->type) { case PROP_STRING: { StringPropertyRNA *sprop= (StringPropertyRNA*)prop; - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, char *value)\n", func); + fprintf(f, "void %s(PointerRNA *ptr, char *value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -532,7 +532,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr break; } case PROP_POINTER: { - fprintf(f, "LIBEXPORT PointerRNA %s(PointerRNA *ptr)\n", func); + fprintf(f, "PointerRNA %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -567,9 +567,9 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr default: if(prop->arraydimension) { if(prop->flag & PROP_DYNAMIC) - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop)); + fprintf(f, "void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop)); else - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); + fprintf(f, "void %s(PointerRNA *ptr, %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); fprintf(f, "{\n"); if(manualfunc) { @@ -614,7 +614,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr fprintf(f, "}\n\n"); } else { - fprintf(f, "LIBEXPORT %s %s(PointerRNA *ptr)\n", rna_type_type(prop), func); + fprintf(f, "%s %s(PointerRNA *ptr)\n", rna_type_type(prop), func); fprintf(f, "{\n"); if(manualfunc) { @@ -728,7 +728,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr switch(prop->type) { case PROP_STRING: { StringPropertyRNA *sprop= (StringPropertyRNA*)prop; - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const char *value)\n", func); + fprintf(f, "void %s(PointerRNA *ptr, const char *value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -744,7 +744,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr break; } case PROP_POINTER: { - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, PointerRNA value)\n", func); + fprintf(f, "void %s(PointerRNA *ptr, PointerRNA value)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " %s(ptr, value);\n", manualfunc); @@ -781,9 +781,9 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr default: if(prop->arraydimension) { if(prop->flag & PROP_DYNAMIC) - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop)); + fprintf(f, "void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop)); else - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); + fprintf(f, "void %s(PointerRNA *ptr, const %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength); fprintf(f, "{\n"); if(manualfunc) { @@ -841,7 +841,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr fprintf(f, "}\n\n"); } else { - fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s value)\n", func, rna_type_type(prop)); + fprintf(f, "void %s(PointerRNA *ptr, %s value)\n", func, rna_type_type(prop)); fprintf(f, "{\n"); if(manualfunc) { @@ -895,7 +895,7 @@ static char *rna_def_property_length_func(FILE *f, StructRNA *srna, PropertyRNA func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length"); - fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr)\n", func); + fprintf(f, "int %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -917,7 +917,7 @@ static char *rna_def_property_length_func(FILE *f, StructRNA *srna, PropertyRNA func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length"); - fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr)\n", func); + fprintf(f, "int %s(PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { fprintf(f, " return %s(ptr);\n", manualfunc); @@ -952,7 +952,7 @@ static char *rna_def_property_begin_func(FILE *f, StructRNA *srna, PropertyRNA * func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "begin"); - fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func); + fprintf(f, "void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func); fprintf(f, "{\n"); if(!manualfunc) @@ -1014,7 +1014,7 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "lookup_int"); - fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func); + fprintf(f, "int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func); fprintf(f, "{\n"); if(manualfunc) { @@ -1105,7 +1105,7 @@ static char *rna_def_property_next_func(FILE *f, StructRNA *srna, PropertyRNA *p func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "next"); - fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter)\n", func); + fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func); fprintf(f, "{\n"); fprintf(f, " %s(iter);\n", manualfunc); @@ -1128,7 +1128,7 @@ static char *rna_def_property_end_func(FILE *f, StructRNA *srna, PropertyRNA *pr func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "end"); - fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter)\n", func); + fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func); fprintf(f, "{\n"); if(manualfunc) fprintf(f, " %s(iter);\n", manualfunc); @@ -1320,31 +1320,31 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR case PROP_BOOLEAN: case PROP_INT: { if(!prop->arraydimension) { - fprintf(f, "LIBEXPORT int %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, int value);\n", func); + fprintf(f, "int %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func); } else if(prop->arraydimension && prop->totarraylength) { - fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, int values[%d]);\n", func, prop->totarraylength); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const int values[%d]);\n", func, prop->arraylength); + fprintf(f, "void %sget(PointerRNA *ptr, int values[%d]);\n", func, prop->totarraylength); + //fprintf(f, "void %sset(PointerRNA *ptr, const int values[%d]);\n", func, prop->arraylength); } else { - fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, int values[]);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const int values[]);\n", func); + fprintf(f, "void %sget(PointerRNA *ptr, int values[]);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, const int values[]);\n", func); } break; } case PROP_FLOAT: { if(!prop->arraydimension) { - fprintf(f, "LIBEXPORT float %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, float value);\n", func); + fprintf(f, "float %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, float value);\n", func); } else if(prop->arraydimension && prop->totarraylength) { - fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, float values[%d]);\n", func, prop->totarraylength); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const float values[%d]);\n", func, prop->arraylength); + fprintf(f, "void %sget(PointerRNA *ptr, float values[%d]);\n", func, prop->totarraylength); + //fprintf(f, "void %sset(PointerRNA *ptr, const float values[%d]);\n", func, prop->arraylength); } else { - fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, float values[]);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const float values[]);\n", func); + fprintf(f, "void %sget(PointerRNA *ptr, float values[]);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, const float values[]);\n", func); } break; } @@ -1362,8 +1362,8 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR fprintf(f, "};\n\n"); } - fprintf(f, "LIBEXPORT int %sget(PointerRNA *ptr);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, int value);\n", func); + fprintf(f, "int %sget(PointerRNA *ptr);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func); break; } @@ -1374,24 +1374,24 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR fprintf(f, "#define %s_%s_MAX %d\n\n", srna->identifier, prop->identifier, sprop->maxlength); } - fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, char *value);\n", func); - fprintf(f, "LIBEXPORT int %slength(PointerRNA *ptr);\n", func); - //fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const char *value);\n", func); + fprintf(f, "void %sget(PointerRNA *ptr, char *value);\n", func); + fprintf(f, "int %slength(PointerRNA *ptr);\n", func); + //fprintf(f, "void %sset(PointerRNA *ptr, const char *value);\n", func); break; } case PROP_POINTER: { - fprintf(f, "LIBEXPORT PointerRNA %sget(PointerRNA *ptr);\n", func); + fprintf(f, "PointerRNA %sget(PointerRNA *ptr);\n", func); //fprintf(f, "void %sset(PointerRNA *ptr, PointerRNA value);\n", func); break; } case PROP_COLLECTION: { - fprintf(f, "LIBEXPORT void %sbegin(CollectionPropertyIterator *iter, PointerRNA *ptr);\n", func); - fprintf(f, "LIBEXPORT void %snext(CollectionPropertyIterator *iter);\n", func); - fprintf(f, "LIBEXPORT void %send(CollectionPropertyIterator *iter);\n", func); - //fprintf(f, "LIBEXPORT int %slength(PointerRNA *ptr);\n", func); - //fprintf(f, "LIBEXPORT void %slookup_int(PointerRNA *ptr, int key, StructRNA **type);\n", func); - //fprintf(f, "LIBEXPORT void %slookup_string(PointerRNA *ptr, const char *key, StructRNA **type);\n", func); + fprintf(f, "void %sbegin(CollectionPropertyIterator *iter, PointerRNA *ptr);\n", func); + fprintf(f, "void %snext(CollectionPropertyIterator *iter);\n", func); + fprintf(f, "void %send(CollectionPropertyIterator *iter);\n", func); + //fprintf(f, "int %slength(PointerRNA *ptr);\n", func); + //fprintf(f, "void %slookup_int(PointerRNA *ptr, int key, StructRNA **type);\n", func); + //fprintf(f, "void %slookup_string(PointerRNA *ptr, const char *key, StructRNA **type);\n", func); break; } } @@ -1862,7 +1862,7 @@ static void rna_generate_prototypes(BlenderRNA *brna, FILE *f) StructRNA *srna; for(srna=brna->structs.first; srna; srna=srna->cont.next) - fprintf(f, "extern LIBEXPORT StructRNA RNA_%s;\n", srna->identifier); + fprintf(f, "extern StructRNA RNA_%s;\n", srna->identifier); fprintf(f, "\n"); } @@ -2336,7 +2336,7 @@ static void rna_generate_struct(BlenderRNA *brna, StructRNA *srna, FILE *f) fprintf(f, "\n"); } - fprintf(f, "LIBEXPORT StructRNA RNA_%s = {\n", srna->identifier); + fprintf(f, "StructRNA RNA_%s = {\n", srna->identifier); if(srna->cont.next) fprintf(f, "\t{(ContainerRNA *)&RNA_%s, ", ((StructRNA*)srna->cont.next)->identifier); else fprintf(f, "\t{NULL, "); @@ -2482,18 +2482,6 @@ static void rna_generate(BlenderRNA *brna, FILE *f, const char *filename, const " Do not edit manually, changes will be overwritten. */\n\n" "#define RNA_RUNTIME\n\n"); - fprintf(f, "#ifndef LIBEXPORT\n"); - fprintf(f, "#ifdef _WIN32\n"); - fprintf(f, "#ifdef BLENDER_PLUGIN\n"); - fprintf(f, "#define LIBEXPORT __declspec(dllimport)\n"); - fprintf(f, "#else\n"); - fprintf(f, "#define LIBEXPORT __declspec(dllexport)\n"); - fprintf(f, "#endif\n"); - fprintf(f, "#else\n"); - fprintf(f, "#define LIBEXPORT\n"); - fprintf(f, "#endif\n"); - fprintf(f, "#endif\n"); - fprintf(f, "#include \n"); fprintf(f, "#include \n"); fprintf(f, "#include \n"); @@ -2570,12 +2558,6 @@ static void rna_generate_header(BlenderRNA *brna, FILE *f) fprintf(f, "/* Automatically generated function declarations for the Data API.\n" " Do not edit manually, changes will be overwritten. */\n\n"); - fprintf(f, "#ifdef _WIN32\n"); - fprintf(f, "#define LIBEXPORT __declspec(dllimport)\n"); - fprintf(f, "#else\n"); - fprintf(f, "#define LIBEXPORT\n"); - fprintf(f, "#endif\n\n"); - fprintf(f, "#include \"RNA_types.h\"\n\n"); fprintf(f, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n"); @@ -2597,7 +2579,7 @@ static void rna_generate_header(BlenderRNA *brna, FILE *f) fprintf(f, "/**************** %s ****************/\n\n", srna->name); while(srna) { - fprintf(f, "extern LIBEXPORT StructRNA RNA_%s;\n", srna->identifier); + fprintf(f, "extern StructRNA RNA_%s;\n", srna->identifier); srna= srna->base; } fprintf(f, "\n"); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 4e4bb46669b..88447f6dd77 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -62,7 +62,7 @@ #include "rna_internal.h" -LIBEXPORT const PointerRNA PointerRNA_NULL= {{NULL}}; +const PointerRNA PointerRNA_NULL= {{NULL}}; /* Init/Exit */ @@ -288,7 +288,7 @@ static int rna_ensure_property_array_length(PointerRNA *ptr, PropertyRNA *prop) } } -static int rna_ensure_property_array_check(PointerRNA *UNUSED(ptr), PropertyRNA *prop) +static int rna_ensure_property_array_check(PropertyRNA *prop) { if(prop->magic == RNA_MAGIC) { return (prop->getlength || prop->totarraylength) ? 1:0; @@ -765,9 +765,9 @@ int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop) return rna_ensure_property_array_length(ptr, prop); } -int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop) +int RNA_property_array_check(PropertyRNA *prop) { - return rna_ensure_property_array_check(ptr, prop); + return rna_ensure_property_array_check(prop); } /* used by BPY to make an array from the python object */ @@ -1399,6 +1399,7 @@ int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) == 0); if((idprop=rna_idproperty_check(&prop, ptr))) return IDP_Int(idprop); @@ -1414,6 +1415,7 @@ void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) == 0); /* just incase other values are passed */ if(value) value= 1; @@ -1440,6 +1442,7 @@ void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *val IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1463,6 +1466,7 @@ int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_boolean_get_array(ptr, prop, tmp); @@ -1486,6 +1490,7 @@ void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const in IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1519,6 +1524,7 @@ void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int inde int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_boolean_get_array(ptr, prop, tmp); @@ -1541,6 +1547,7 @@ int RNA_property_boolean_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop) BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) == 0); return bprop->defaultvalue; } @@ -1550,6 +1557,7 @@ void RNA_property_boolean_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(prop->arraydimension == 0) values[0]= bprop->defaultvalue; @@ -1565,6 +1573,7 @@ int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, i int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_boolean_get_default_array(ptr, prop, tmp); @@ -1588,6 +1597,7 @@ int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) == 0); if((idprop=rna_idproperty_check(&prop, ptr))) return IDP_Int(idprop); @@ -1603,6 +1613,7 @@ void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) == 0); /* useful to check on bad values but set function should clamp */ /* BLI_assert(RNA_property_int_clamp(ptr, prop, &value) == 0); */ @@ -1628,6 +1639,7 @@ void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1688,6 +1700,7 @@ int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index) int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_int_get_array(ptr, prop, tmp); @@ -1711,6 +1724,7 @@ void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *v IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1744,6 +1758,7 @@ void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, i int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_int_get_array(ptr, prop, tmp); @@ -1772,6 +1787,7 @@ void RNA_property_int_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA *pr IntPropertyRNA *iprop= (IntPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_INT); + BLI_assert(RNA_property_array_check(prop) != 0); if(prop->arraydimension == 0) values[0]= iprop->defaultvalue; @@ -1808,6 +1824,7 @@ float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) == 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(idprop->type == IDP_FLOAT) @@ -1827,6 +1844,7 @@ void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value) IDProperty *idprop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) == 0); /* useful to check on bad values but set function should clamp */ /* BLI_assert(RNA_property_float_clamp(ptr, prop, &value) == 0); */ @@ -1858,6 +1876,7 @@ void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *val int i; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) @@ -1923,6 +1942,7 @@ float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_float_get_array(ptr, prop, tmp); @@ -1948,6 +1968,7 @@ void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const floa int i; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if((idprop=rna_idproperty_check(&prop, ptr))) { if(prop->arraydimension == 0) { @@ -1991,6 +2012,7 @@ void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_float_get_array(ptr, prop, tmp); @@ -2013,6 +2035,7 @@ float RNA_property_float_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop) FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) == 0); return fprop->defaultvalue; } @@ -2022,6 +2045,7 @@ void RNA_property_float_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA * FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop; BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(prop->arraydimension == 0) values[0]= fprop->defaultvalue; @@ -2037,6 +2061,7 @@ float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, i int len= rna_ensure_property_array_length(ptr, prop); BLI_assert(RNA_property_type(prop) == PROP_FLOAT); + BLI_assert(RNA_property_array_check(prop) != 0); if(len <= RNA_MAX_ARRAY_LENGTH) { RNA_property_float_get_default_array(ptr, prop, tmp); @@ -4484,7 +4509,8 @@ int RNA_parameter_list_ret_count(ParameterList *parms) void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter) { - RNA_pointer_create(NULL, &RNA_Function, parms->func, &iter->funcptr); + /* may be useful but unused now */ + /* RNA_pointer_create(NULL, &RNA_Function, parms->func, &iter->funcptr); */ /*UNUSED*/ iter->parms= parms; iter->parm= parms->func->cont.properties.first; diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index 0163dd5db32..8127c180706 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -85,7 +85,7 @@ static EnumPropertyItem target_space_pchan_items[] = { static EnumPropertyItem owner_space_pchan_items[] = { {0, "WORLD", 0, "World Space", "The constraint is applied relative to the world coordinate system"}, {2, "POSE", 0, "Pose Space", "The constraint is applied in Pose Space, the object transformation is ignored"}, - {3, "LOCAL_WITH_PARENT", 0, "The constraint is applied relative to the local coordinate system of the object, with the parent transformation added"}, + {3, "LOCAL_WITH_PARENT", 0, "Local With Parent", "The constraint is applied relative to the local coordinate system of the object, with the parent transformation added"}, {1, "LOCAL", 0, "Local Space", "The constraint is applied relative to the local coordinate sytem of the object"}, {0, NULL, 0, NULL, NULL}}; diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index 260d483b9d2..599d36ec8b8 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -651,7 +651,7 @@ static char *rna_TextBox_path(PointerRNA *ptr) int index= (int)(tb - cu->tb); if (index >= 0 && index < cu->totbox) - return BLI_sprintfN("textboxes[%d]", index); + return BLI_sprintfN("text_boxes[%d]", index); else return BLI_strdup(""); } diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index d20033a5967..c0ae7b02b1a 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -30,12 +30,6 @@ #ifndef RNA_INTERNAL_H #define RNA_INTERNAL_H -#ifdef _WIN32 -#define LIBEXPORT __declspec(dllexport) -#else -#define LIBEXPORT -#endif - #include "UI_resources.h" #include "rna_internal_types.h" @@ -307,8 +301,8 @@ extern CollectionPropertyRNA rna_PropertyGroupItem_idp_array; extern FloatPropertyRNA rna_PropertyGroupItem_double; extern FloatPropertyRNA rna_PropertyGroupItem_double_array; -extern LIBEXPORT StructRNA RNA_PropertyGroupItem; -extern LIBEXPORT StructRNA RNA_PropertyGroup; +extern StructRNA RNA_PropertyGroupItem; +extern StructRNA RNA_PropertyGroup; struct IDProperty *rna_idproperty_check(struct PropertyRNA **prop, struct PointerRNA *ptr); diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index 7d6e1dd0567..05665ea077a 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -232,7 +232,7 @@ Mesh *rna_Main_meshes_new(Main *UNUSED(bmain), const char *name) id_us_min(&me->id); return me; } -LIBEXPORT void rna_Main_meshes_remove(Main *bmain, ReportList *reports, Mesh *mesh) +void rna_Main_meshes_remove(Main *bmain, ReportList *reports, Mesh *mesh) { if(ID_REAL_USERS(mesh) <= 0) free_libblock(&bmain->mesh, mesh); diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index ba655915fb6..5c5391b0bba 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -2265,6 +2265,13 @@ static void rna_def_modifier_solidify(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Thickness", "Thickness of the shell"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); + prop= RNA_def_property(srna, "thickness_vertex_group", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, NULL, "offset_fac_vg"); + RNA_def_property_range(prop, 0.0, 1.0); + RNA_def_property_ui_range(prop, 0, 1, 0.1, 3); + RNA_def_property_ui_text(prop, "Vertex Group Factor", "Thickness factor to use for zero vertex group influence"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_FACTOR); RNA_def_property_float_sdna(prop, NULL, "offset_fac"); RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 76bbfcbed41..55e1119f58e 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -2025,7 +2025,14 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Input Matrix", "Matrix access to location, rotation and scale (including deltas), before constraints and parenting are applied."); RNA_def_property_float_funcs(prop, "rna_Object_matrix_basis_get", "rna_Object_matrix_basis_set", NULL); RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update"); - + + /*parent_inverse*/ + prop= RNA_def_property(srna, "matrix_parent_inverse", PROP_FLOAT, PROP_MATRIX); + RNA_def_property_float_sdna(prop, NULL, "parentinv"); + RNA_def_property_multi_array(prop, 2, rna_matrix_dimsize_4x4); + RNA_def_property_ui_text(prop, "Matrix", "Inverse of object's parent matrix at time of parenting"); + RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update"); + /* collections */ prop= RNA_def_property(srna, "constraints", PROP_COLLECTION, PROP_NONE); RNA_def_property_struct_type(prop, "Constraint"); diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index b99b5f3dc26..53c71c42f7c 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -78,7 +78,7 @@ /* copied from Mesh_getFromObject and adapted to RNA interface */ /* settings: 0 - preview, 1 - render */ -LIBEXPORT Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_modifiers, int settings) +Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_modifiers, int settings) { Mesh *tmpmesh; Curve *tmpcu = NULL; @@ -286,7 +286,7 @@ static void dupli_render_particle_set(Scene *scene, Object *ob, int level, int e dupli_render_particle_set(scene, go->ob, level+1, enable); } /* When no longer needed, duplilist should be freed with Object.free_duplilist */ -LIBEXPORT void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce) +void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce) { if (!(ob->transflag & OB_DUPLI)) { BKE_report(reports, RPT_ERROR, "Object does not have duplis."); @@ -308,7 +308,7 @@ LIBEXPORT void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scen /* ob->duplilist should now be freed with Object.free_duplilist */ } -LIBEXPORT void rna_Object_free_duplilist(Object *ob) +void rna_Object_free_duplilist(Object *ob) { if (ob->duplilist) { free_object_duplilist(ob->duplilist); @@ -457,7 +457,7 @@ void rna_ObjectBase_layers_from_view(Base *base, View3D *v3d) base->lay= base->object->lay= v3d->lay; } -LIBEXPORT int rna_Object_is_modified(Object *ob, Scene *scene, int settings) +int rna_Object_is_modified(Object *ob, Scene *scene, int settings) { return object_is_modified(scene, ob) & settings; } diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index a0744a5b6a0..4337f3c4de6 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -50,12 +50,12 @@ #include "BKE_context.h" #include "BKE_report.h" -LIBEXPORT void engine_tag_redraw(RenderEngine *engine) +void engine_tag_redraw(RenderEngine *engine) { engine->do_draw = 1; } -LIBEXPORT void engine_tag_update(RenderEngine *engine) +void engine_tag_update(RenderEngine *engine) { engine->do_update = 1; } @@ -263,7 +263,7 @@ static void rna_RenderLayer_rect_get(PointerRNA *ptr, float *values) memcpy(values, rl->rectf, sizeof(float)*rl->rectx*rl->recty*4); } -LIBEXPORT void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values) +void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values) { RenderLayer *rl= (RenderLayer*)ptr->data; memcpy(rl->rectf, values, sizeof(float)*rl->rectx*rl->recty*4); @@ -285,7 +285,7 @@ static void rna_RenderPass_rect_get(PointerRNA *ptr, float *values) memcpy(values, rpass->rect, sizeof(float)*rpass->rectx*rpass->recty*rpass->channels); } -LIBEXPORT void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values) +void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values) { RenderPass *rpass= (RenderPass*)ptr->data; memcpy(rpass->rect, values, sizeof(float)*rpass->rectx*rpass->recty*rpass->channels); diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 57044188dd9..a685c6deb34 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2769,7 +2769,7 @@ static void rna_def_userdef_input(BlenderRNA *brna) prop= RNA_def_property(srna, "ndof_orbit_invert_axes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_ORBIT_INVERT_AXES); RNA_def_property_ui_text(prop, "Invert Axes", "Toggle between moving the viewpoint or moving the scene being viewed"); - /* in 3Dx docs, this is called 'object mode' vs. 'target camera mode' + /* in 3Dx docs, this is called 'object mode' vs. 'target camera mode' */ /* 3D view: fly */ prop= RNA_def_property(srna, "ndof_lock_horizon", PROP_BOOLEAN, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 307cf0e175a..93adf808f83 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -1746,6 +1746,7 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", KMI_INACTIVE); RNA_def_property_ui_text(prop, "Active", "Activate or deactivate item"); RNA_def_property_ui_icon(prop, ICON_CHECKBOX_DEHLT, 1); + RNA_def_property_update(prop, 0, "rna_KeyMapItem_update"); prop= RNA_def_property(srna, "is_user_modified", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", KMI_USER_MODIFIED); -- cgit v1.2.3 From f7b9c85871ad4e68dbd578556f3ae8ef55d6dc98 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 21 Aug 2011 10:32:15 +0000 Subject: Cycles: fix some invalid memory access problems found by running the windows build in debug mode. --- source/blender/makesrna/intern/makesrna.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 7da538e171b..f96111d7a62 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -2670,8 +2670,6 @@ static const char *cpp_classes = "" " operator bool(void)\n" " { return iter.valid != 0; }\n" " const CollectionIterator& operator++() { Tnext(&iter); t = T(iter.ptr); return *this; }\n" -" const CollectionIterator& operator=(const CollectionIterator& copy)\n" -" { if(init) Tend(&iter); iter= copy.iter; if(iter.internal) iter.internal= MEM_dupallocN(iter.internal); t= copy.t; init= copy.init; return *this; }\n" "\n" " T& operator*(void) { return t; }\n" " T* operator->(void) { return &t; }\n" @@ -2682,6 +2680,8 @@ static const char *cpp_classes = "" " { if(init) Tend(&iter); Tbegin(&iter, (PointerRNA*)&ptr.ptr); t = T(iter.ptr); init = true; }\n" "\n" "private:\n" +" const CollectionIterator& operator=(const CollectionIterator& copy) {}\n" +"" " CollectionPropertyIterator iter;\n" " T t;\n" " bool init;\n" @@ -2692,8 +2692,8 @@ static const char *cpp_classes = "" "public:\n" " Collection(const PointerRNA& p) : ptr(p) {}\n" "\n" -" CollectionIterator begin()\n" -" { CollectionIterator iter; iter.begin(ptr); return iter; }\n" +" void begin(CollectionIterator& iter)\n" +" { iter.begin(ptr); }\n" " CollectionIterator end()\n" " { return CollectionIterator(); } /* test */ \n" "\n" -- cgit v1.2.3 From bae896691aa3d7bb2a75292da3cc490894996b01 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 28 Aug 2011 13:55:59 +0000 Subject: Cycles: * Add alpha pass output, to use set Transparent option in Film panel. * Add Holdout closure (OSL terminology), this is like the Sky option in the internal renderer, objects with this closure show the background / zero alpha. * Add option to use Gaussian instead of Box pixel filter in the UI. * Remove camera response curves for now, they don't really belong here in the pipeline, should be moved to compositor. * Output full float values for rendering now, previously was only byte precision. * Add a patch from Thomas to get a preview passes option, but still disabled because it isn't quite working right yet. * CUDA: don't compile shader graph evaluation inline. * Convert tabs to spaces in python files. --- source/blender/makesrna/intern/rna_nodetree_types.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index 41f1bf2d383..d14e4cd76f2 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -52,7 +52,7 @@ DefNode( ShaderNode, SH_NODE_COMBRGB, 0, "COMBR DefNode( ShaderNode, SH_NODE_HUE_SAT, 0, "HUE_SAT", HueSaturation, "Hue/Saturation", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_MATERIAL, 0, "OUTPUT_MATERIAL",OutputMaterial, "Material Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPUT_LAMP", OutputLamp, "Lamp Output", "" ) -DefNode( ShaderNode, SH_NODE_OUTPUT_TEXTURE, 0, "OUTPUT_TEXTURE", OutputTexture, "Texture Output", "" ) +//DefNode( ShaderNode, SH_NODE_OUTPUT_TEXTURE, 0, "OUTPUT_TEXTURE", OutputTexture, "Texture Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) DefNode( ShaderNode, SH_NODE_MIX_CLOSURE, 0, "MIX_CLOSURE", MixClosure, "Mix Closure", "" ) @@ -60,6 +60,7 @@ DefNode( ShaderNode, SH_NODE_ADD_CLOSURE, 0, "ADD_C DefNode( ShaderNode, SH_NODE_ATTRIBUTE, 0, "ATTRIBUTE", Attribute, "Attribute", "") DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "") +DefNode( ShaderNode, SH_NODE_HOLDOUT, 0, "HOLDOUT", Holdout, "Holdout", "") DefNode( ShaderNode, SH_NODE_BSDF_ANISOTROPIC, 0, "BSDF_ANISOTROPIC", BsdfAnisotropic, "Bsdf Anisotropic", "") DefNode( ShaderNode, SH_NODE_BSDF_DIFFUSE, 0, "BSDF_DIFFUSE", BsdfDiffuse, "Diffuse Bsdf", "") DefNode( ShaderNode, SH_NODE_BSDF_GLOSSY, def_glossy, "BSDF_GLOSSY", BsdfGlossy, "Glossy Bsdf", "") -- cgit v1.2.3 From cf9d1e23c8e458b3e0d7d41abffdc34987656583 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 1 Sep 2011 16:27:40 +0000 Subject: Cycles: fix missing update when setting integrator preset. --- source/blender/makesrna/intern/rna_access.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 88447f6dd77..bb61d34b404 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1378,7 +1378,7 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR * but this isnt likely to be a performance problem. */ int RNA_property_update_check(PropertyRNA *prop) { - return (prop->magic != RNA_MAGIC || prop->update || prop->noteflag); + return ((prop->magic != RNA_MAGIC) || (prop->flag & PROP_IDPROPERTY)|| prop->update || prop->noteflag); } void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop) -- cgit v1.2.3 From 5feb921eba6b954c838724880aeda2576106089d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 1 Sep 2011 22:53:11 +0000 Subject: Cycles: revert fix for integrator preset refresh, it causes continuous redraw leading to high cpu usage, need to find better solution. --- source/blender/makesrna/intern/rna_access.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index bb61d34b404..59e92ee4619 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1378,7 +1378,7 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR * but this isnt likely to be a performance problem. */ int RNA_property_update_check(PropertyRNA *prop) { - return ((prop->magic != RNA_MAGIC) || (prop->flag & PROP_IDPROPERTY)|| prop->update || prop->noteflag); + return ((prop->magic != RNA_MAGIC) || prop->update || prop->noteflag); } void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop) -- cgit v1.2.3 From 255f9794586f05352876a73f451e4df7399b30aa Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sun, 11 Sep 2011 21:41:30 +0000 Subject: * Remove last occurrences of the OB_SHADED flag. --- source/blender/makesrna/intern/rna_object.c | 1 - source/blender/makesrna/intern/rna_space.c | 1 - 2 files changed, 2 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index ad323b0aba4..420a7ac9ba2 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1739,7 +1739,6 @@ static void rna_def_object(BlenderRNA *brna) {OB_BOUNDBOX, "BOUNDS", 0, "Bounds", "Draw the bounding box of the object"}, {OB_WIRE, "WIRE", 0, "Wire", "Draw the object as a wireframe"}, {OB_SOLID, "SOLID", 0, "Solid", "Draw the object as a solid (If solid drawing is enabled in the viewport)"}, - // disabled {OB_SHADED, "SHADED", 0, "Shaded", ""}, {OB_TEXTURE, "TEXTURED", 0, "Textured", "Draw the object with textures (If textures are enabled in the viewport)"}, {0, NULL, 0, NULL, NULL}}; diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 108434ee4a8..4a66cde31a5 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -101,7 +101,6 @@ EnumPropertyItem viewport_shade_items[] = { {OB_BOUNDBOX, "BOUNDBOX", ICON_BBOX, "Bounding Box", "Display the object's local bounding boxes only"}, {OB_WIRE, "WIREFRAME", ICON_WIRE, "Wireframe", "Display the object as wire edges"}, {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display the object solid, lit with default OpenGL lights"}, - //{OB_SHADED, "SHADED", ICON_SMOOTH, "Shaded", "Display the object solid, with preview shading interpolated at vertices"}, {OB_TEXTURE, "TEXTURED", ICON_POTATO, "Texture", "Display the object solid, with a texture"}, {OB_MATERIAL, "MATERIAL", ICON_MATERIAL_DATA, "Material", "Display objects solid, with GLSL material"}, {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display render preview"}, -- cgit v1.2.3 From bf4f793b55fb773549f0830317c65d6d17627520 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sun, 11 Sep 2011 23:44:20 +0000 Subject: Cycles Render API: * Show Rendered Viewport Shading only when the engine supports it. Only enabled for Cycles now. * Added RenderEngine flag RE_DO_RENDERED, which is an optional flag. Exposed as bl_use_rendered in Python. ToDo: When you are in Rendered mode and change to a engine which does not support it, the enum doesn't set properly to OB_SOLID. --- source/blender/makesrna/intern/rna_render.c | 4 ++++ source/blender/makesrna/intern/rna_space.c | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 4337f3c4de6..0933dafcf22 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -402,6 +402,10 @@ static void rna_def_render_engine(BlenderRNA *brna) prop= RNA_def_property(srna, "bl_use_postprocess", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "type->flag", RE_DO_ALL); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); + + prop= RNA_def_property(srna, "bl_use_rendered", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "type->flag", RE_DO_RENDERED); + RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); RNA_define_verify_sdna(1); } diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 4a66cde31a5..b3a40ccef3c 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -450,6 +450,30 @@ static void rna_RegionView3D_view_matrix_set(PointerRNA *ptr, const float *value ED_view3d_from_m4((float (*)[4])values, rv3d->ofs, rv3d->viewquat, &rv3d->dist); } +static EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(bContext *UNUSED(C), PointerRNA *ptr, PropertyRNA *UNUSED(prop), int *free) +{ + Scene *scene = ((bScreen*)ptr->id.data)->scene; + RenderEngineType *type = RE_engines_find(scene->r.engine); + + EnumPropertyItem *item= NULL; + int totitem= 0; + + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_BOUNDBOX); + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_WIRE); + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_SOLID); + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_TEXTURE); + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_MATERIAL); + + if(type->flag & RE_DO_RENDERED) { + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_RENDER); + } + + RNA_enum_item_end(&item, &totitem); + *free= 1; + + return item; +} + /* Space Image Editor */ static PointerRNA rna_SpaceImageEditor_uvedit_get(PointerRNA *ptr) @@ -1226,6 +1250,7 @@ static void rna_def_space_view3d(BlenderRNA *brna) prop= RNA_def_property(srna, "viewport_shade", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "drawtype"); RNA_def_property_enum_items(prop, viewport_shade_items); + RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_SpaceView3D_viewport_shade_itemf"); RNA_def_property_ui_text(prop, "Viewport Shading", "Method to display/shade objects in the 3D View"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, "rna_SpaceView3D_viewport_shade_update"); -- cgit v1.2.3 From c40492205b4369de3babe63b43d127ca622773ec Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 12 Sep 2011 11:59:13 +0000 Subject: Cycles: * Remove RE_DO_RENDERED again, check for view_draw callback is sufficient. --- source/blender/makesrna/intern/rna_render.c | 4 ---- source/blender/makesrna/intern/rna_space.c | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 0933dafcf22..4337f3c4de6 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -402,10 +402,6 @@ static void rna_def_render_engine(BlenderRNA *brna) prop= RNA_def_property(srna, "bl_use_postprocess", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "type->flag", RE_DO_ALL); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); - - prop= RNA_def_property(srna, "bl_use_rendered", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "type->flag", RE_DO_RENDERED); - RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); RNA_define_verify_sdna(1); } diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index b3a40ccef3c..651fb848f4c 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -464,7 +464,7 @@ static EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(bContext *UNUSED(C RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_TEXTURE); RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_MATERIAL); - if(type->flag & RE_DO_RENDERED) { + if(type->view_draw) { RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_RENDER); } -- cgit v1.2.3 From 5f13b52c67c0ff49d0b49eb3d07697fb2b5700bd Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 15 Sep 2011 16:09:42 +0000 Subject: Cycles: fix preview render in 3d view not working on OS X. --- source/blender/makesrna/intern/makesrna.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 39599957a9a..ef51239d57d 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -2655,6 +2655,11 @@ static const char *cpp_classes = "" "class Array {\n" "public:\n" " T data[Tsize];\n" +"\n" +" Array() {}\n" +" Array(const Array& other) { memcpy(data, other.data, sizeof(T)*Tsize); }\n" +" const Array& operator=(const Array& other) { memcpy(data, other.data, sizeof(T)*Tsize); return *this; }\n" +"\n" " operator T*() { return data; }\n" "};\n" "\n" -- cgit v1.2.3 From 66b1dfae89cc44953bd51c5da962cab437e76972 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 16 Sep 2011 13:14:02 +0000 Subject: Cycles: tweaks to properties and nodes * Passes renamed to samples * Camera lens radius renamed to aperature size/blades/rotation * Glass and fresnel nodes input is now index of refraction * Glossy and velvet fresnel socket removed * Mix/add closure node renamed to mix/add shader node * Blend weight node added for shader mixing weights There is some version patching code for reading existing files, but it's not perfect, so shaders may work a bit different. --- source/blender/makesrna/intern/rna_nodetree.c | 12 ++++++------ source/blender/makesrna/intern/rna_nodetree_types.h | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 5eabbe72373..e56d848f29f 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -164,8 +164,8 @@ static StructRNA *rna_NodeSocketType_refine(struct PointerRNA *ptr) return &RNA_VectorNodeSocket; case SOCK_RGBA: return &RNA_RGBANodeSocket; - case SOCK_CLOSURE: - return &RNA_ClosureNodeSocket; + case SOCK_SHADER: + return &RNA_ShaderNodeSocket; default: return &RNA_NodeSocket; } @@ -2979,12 +2979,12 @@ static void rna_def_node_socket_rgba(BlenderRNA *brna) RNA_def_property_float_funcs(prop, NULL, NULL, "rna_NodeSocket_defvalue_range"); } -static void rna_def_node_socket_closure(BlenderRNA *brna) +static void rna_def_node_socket_shader(BlenderRNA *brna) { StructRNA *srna; - srna = RNA_def_struct(brna, "ClosureNodeSocket", "NodeSocket"); - RNA_def_struct_ui_text(srna, "Closure Node Socket", "Input or output socket of a node"); + srna = RNA_def_struct(brna, "ShaderNodeSocket", "NodeSocket"); + RNA_def_struct_ui_text(srna, "Shader Node Socket", "Input or output socket of a node"); RNA_def_struct_sdna(srna, "bNodeSocket"); RNA_def_struct_ui_icon(srna, ICON_PLUG); RNA_def_struct_path_func(srna, "rna_NodeSocket_path"); @@ -3224,7 +3224,7 @@ void RNA_def_nodetree(BlenderRNA *brna) rna_def_node_socket_value(brna); rna_def_node_socket_vector(brna); rna_def_node_socket_rgba(brna); - rna_def_node_socket_closure(brna); + rna_def_node_socket_shader(brna); rna_def_node(brna); rna_def_node_link(brna); rna_def_shader_node(brna); diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index d14e4cd76f2..abf421a2b79 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -55,8 +55,9 @@ DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPU //DefNode( ShaderNode, SH_NODE_OUTPUT_TEXTURE, 0, "OUTPUT_TEXTURE", OutputTexture, "Texture Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) -DefNode( ShaderNode, SH_NODE_MIX_CLOSURE, 0, "MIX_CLOSURE", MixClosure, "Mix Closure", "" ) -DefNode( ShaderNode, SH_NODE_ADD_CLOSURE, 0, "ADD_CLOSURE", AddClosure, "Add Closure", "" ) +DefNode( ShaderNode, SH_NODE_BLEND_WEIGHT, 0, "BLEND_WEIGHT", BlendWeight, "BlendWeight", "" ) +DefNode( ShaderNode, SH_NODE_MIX_SHADER, 0, "MIX_SHADER", MixShader, "Mix Shader", "" ) +DefNode( ShaderNode, SH_NODE_ADD_SHADER, 0, "ADD_SHADER", AddShader, "Add Shader", "" ) DefNode( ShaderNode, SH_NODE_ATTRIBUTE, 0, "ATTRIBUTE", Attribute, "Attribute", "") DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "") -- cgit v1.2.3 From 18f2cd74ab7204a65687d368eac4fb53ca188bf5 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sat, 17 Sep 2011 15:27:52 +0000 Subject: Cycles: * Fix node tree identifier. MATERIAL > SHADER. This fixes some of the node buttons not showing up after recent merge. --- source/blender/makesrna/intern/rna_nodetree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 36a5fd9c322..64086e76e5e 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -58,7 +58,7 @@ #include "MEM_guardedalloc.h" EnumPropertyItem nodetree_type_items[] = { - {NTREE_SHADER, "MATERIAL", ICON_MATERIAL, "Material", "Material nodes" }, + {NTREE_SHADER, "SHADER", ICON_MATERIAL, "Shader", "Shader nodes" }, {NTREE_TEXTURE, "TEXTURE", ICON_TEXTURE, "Texture", "Texture nodes" }, {NTREE_COMPOSIT, "COMPOSITING", ICON_RENDERLAYERS, "Compositing", "Compositing nodes" }, {0, NULL, 0, NULL, NULL} -- cgit v1.2.3 From e9b967d05b366783a93d92d6935e970c1ea42edd Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 19 Sep 2011 11:57:31 +0000 Subject: Cycles: remove deprecated strict aliasing flag for opencl, fix missing update modifying object layer in properties editor, and add memarena utility. --- source/blender/makesrna/intern/rna_object.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index a27b6b2d72c..790c24ba2d7 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -284,6 +284,8 @@ static void rna_Object_layer_update__internal(Main *bmain, Scene *scene, Base *b else { DAG_scene_sort(bmain, scene); } + + DAG_id_type_tag(bmain, ID_OB); } static void rna_Object_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) -- cgit v1.2.3 From 136d27b350355232ebe4d0a13427777445334b05 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 27 Sep 2011 20:03:16 +0000 Subject: Cycles: add some volume nodes, they don't actually do anything, this is just to give other developers who may want to work on this to get a starting point. --- source/blender/makesrna/intern/rna_nodetree_types.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index 03873a514e1..f837a2f6898 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -74,6 +74,8 @@ DefNode( ShaderNode, SH_NODE_BSDF_GLASS, def_glossy, "BSDF_GLASS", BsdfGlass DefNode( ShaderNode, SH_NODE_BSDF_TRANSLUCENT, 0, "BSDF_TRANSLUCENT", BsdfTranslucent, "Translucent Bsdf", "") DefNode( ShaderNode, SH_NODE_BSDF_TRANSPARENT, 0, "BSDF_TRANSPARENT", BsdfTransparent, "Transparent Bsdf", "") DefNode( ShaderNode, SH_NODE_BSDF_VELVET, 0, "BSDF_VELVET", BsdfVelvet, "Velvet Bsdf", "") +DefNode( ShaderNode, SH_NODE_VOLUME_TRANSPARENT, 0, "VOLUME_TRANSPARENT", VolumeTransparent, "Transparent Volume", "") +DefNode( ShaderNode, SH_NODE_VOLUME_ISOTROPIC, 0, "VOLUME_ISOTROPIC", VolumeIsotropic, "Isotropic Volume", "") DefNode( ShaderNode, SH_NODE_EMISSION, 0, "EMISSION", Emission, "Emission", "") DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GEOMETRY", Geometry, "Geometry", "") DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") -- cgit v1.2.3 From 85818c8209bc6df4f60c7e86173521f5fa1a5a96 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 11 Oct 2011 17:19:55 +0000 Subject: Cycles: add python render engine option to use new shading nodes or not, instead of hardcoded check for cycles. Also some other minor code cleaning tweaks. --- source/blender/makesrna/intern/rna_access.c | 2 +- source/blender/makesrna/intern/rna_render.c | 8 ++++++-- source/blender/makesrna/intern/rna_scene.c | 11 +++++++++++ source/blender/makesrna/intern/rna_space.c | 5 +++++ 4 files changed, 23 insertions(+), 3 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index e64c5fd670d..8047b2df226 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1454,7 +1454,7 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR * but this isnt likely to be a performance problem. */ int RNA_property_update_check(PropertyRNA *prop) { - return ((prop->magic != RNA_MAGIC) || prop->update || prop->noteflag); + return (prop->magic != RNA_MAGIC || prop->update || prop->noteflag); } void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop) diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 460d7ce1c45..ef2e97c4427 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -397,11 +397,15 @@ static void rna_def_render_engine(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_REGISTER); prop= RNA_def_property(srna, "bl_use_preview", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "type->flag", RE_DO_PREVIEW); + RNA_def_property_boolean_sdna(prop, NULL, "type->flag", RE_USE_PREVIEW); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); prop= RNA_def_property(srna, "bl_use_postprocess", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_negative_sdna(prop, NULL, "type->flag", RE_DO_ALL); + RNA_def_property_boolean_negative_sdna(prop, NULL, "type->flag", RE_USE_POSTPROCESS); + RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); + + prop= RNA_def_property(srna, "bl_use_shading_nodes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "type->flag", RE_USE_SHADING_NODES); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); RNA_define_verify_sdna(1); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index c7a5d2c8f65..42ebdcbc582 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -841,6 +841,12 @@ static int rna_RenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr)) return (BLI_countlist(&R_engines) > 1); } +static int rna_RenderSettings_use_shading_nodes_get(PointerRNA *ptr) +{ + Scene *scene= (Scene*)ptr->id.data; + return scene_use_new_shading_nodes(scene); +} + static int rna_RenderSettings_use_game_engine_get(PointerRNA *ptr) { RenderData *rd= (RenderData*)ptr->data; @@ -3230,6 +3236,11 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Multiple Engines", "More than one rendering engine is available"); + prop= RNA_def_property(srna, "use_shading_nodes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_use_shading_nodes_get", NULL); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Use Shading Nodes", "Active render engine uses new shading nodes system"); + prop= RNA_def_property(srna, "use_game_engine", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_use_game_engine_get", NULL); RNA_def_property_clear_flag(prop, PROP_EDITABLE); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index b4bda045a70..8279bdc4a91 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1373,6 +1373,11 @@ static void rna_def_space_view3d(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Relationship Lines", "Show dashed lines indicating parent or constraint relationships"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + prop= RNA_def_property(srna, "show_textured_solid", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SOLID_TEX); + RNA_def_property_ui_text(prop, "Textured Solid", "Display face-assigned textures in solid view"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + prop= RNA_def_property(srna, "lock_camera", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_LOCK_CAMERA); RNA_def_property_ui_text(prop, "Lock Camera to View", "Enable view navigation within the camera view"); -- cgit v1.2.3 From 9c959d98fe5b873f2538882e041f00b6cd90d7cf Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 15 Oct 2011 20:13:35 +0000 Subject: Cycles: make Attribute node work, code for it was implemented in kernel, only missing was the ability to specify the attribute name in the node. This makes it possible to use multiple uv or vertex color layers now. --- .../blender/makesrna/intern/rna_nodetree_types.h | 60 +++++++++++----------- 1 file changed, 30 insertions(+), 30 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index f837a2f6898..669be37931a 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -42,7 +42,7 @@ DefNode( ShaderNode, SH_NODE_VALTORGB, def_colorramp, "VALTO DefNode( ShaderNode, SH_NODE_RGBTOBW, 0, "RGBTOBW", RGBToBW, "RGB to BW", "" ) DefNode( ShaderNode, SH_NODE_TEXTURE, def_texture, "TEXTURE", Texture, "Texture", "" ) DefNode( ShaderNode, SH_NODE_NORMAL, 0, "NORMAL", Normal, "Normal", "" ) -DefNode( ShaderNode, SH_NODE_GEOM, def_sh_geometry, "GEOM", Geom, "Geometry", "" ) +DefNode( ShaderNode, SH_NODE_GEOM, def_sh_geometry, "GEOM", Geom, "Geometry", "" ) DefNode( ShaderNode, SH_NODE_MAPPING, def_sh_mapping, "MAPPING", Mapping, "Mapping", "" ) DefNode( ShaderNode, SH_NODE_CURVE_VEC, def_vector_curve, "CURVE_VEC", VectorCurve, "Vector Curve", "" ) DefNode( ShaderNode, SH_NODE_CURVE_RGB, def_rgb_curve, "CURVE_RGB", RGBCurve, "RGB Curve", "" ) @@ -64,35 +64,35 @@ DefNode( ShaderNode, SH_NODE_BLEND_WEIGHT, 0, "BLEND DefNode( ShaderNode, SH_NODE_MIX_SHADER, 0, "MIX_SHADER", MixShader, "Mix Shader", "" ) DefNode( ShaderNode, SH_NODE_ADD_SHADER, 0, "ADD_SHADER", AddShader, "Add Shader", "" ) -DefNode( ShaderNode, SH_NODE_ATTRIBUTE, 0, "ATTRIBUTE", Attribute, "Attribute", "") -DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "") -DefNode( ShaderNode, SH_NODE_HOLDOUT, 0, "HOLDOUT", Holdout, "Holdout", "") -DefNode( ShaderNode, SH_NODE_BSDF_ANISOTROPIC, 0, "BSDF_ANISOTROPIC", BsdfAnisotropic, "Bsdf Anisotropic", "") -DefNode( ShaderNode, SH_NODE_BSDF_DIFFUSE, 0, "BSDF_DIFFUSE", BsdfDiffuse, "Diffuse Bsdf", "") -DefNode( ShaderNode, SH_NODE_BSDF_GLOSSY, def_glossy, "BSDF_GLOSSY", BsdfGlossy, "Glossy Bsdf", "") -DefNode( ShaderNode, SH_NODE_BSDF_GLASS, def_glossy, "BSDF_GLASS", BsdfGlass, "Glass Bsdf", "") -DefNode( ShaderNode, SH_NODE_BSDF_TRANSLUCENT, 0, "BSDF_TRANSLUCENT", BsdfTranslucent, "Translucent Bsdf", "") -DefNode( ShaderNode, SH_NODE_BSDF_TRANSPARENT, 0, "BSDF_TRANSPARENT", BsdfTransparent, "Transparent Bsdf", "") -DefNode( ShaderNode, SH_NODE_BSDF_VELVET, 0, "BSDF_VELVET", BsdfVelvet, "Velvet Bsdf", "") -DefNode( ShaderNode, SH_NODE_VOLUME_TRANSPARENT, 0, "VOLUME_TRANSPARENT", VolumeTransparent, "Transparent Volume", "") -DefNode( ShaderNode, SH_NODE_VOLUME_ISOTROPIC, 0, "VOLUME_ISOTROPIC", VolumeIsotropic, "Isotropic Volume", "") -DefNode( ShaderNode, SH_NODE_EMISSION, 0, "EMISSION", Emission, "Emission", "") -DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GEOMETRY", Geometry, "Geometry", "") -DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") -DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_NOISE, 0, "TEX_NOISE", TexNoise, "Noise Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_BLEND, def_sh_tex_blend, "TEX_BLEND", TexBlend, "Blend Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_CLOUDS, def_sh_tex_clouds, "TEX_CLOUDS", TexClouds, "Clouds Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_DISTNOISE, def_sh_tex_distnoise, "TEX_DISTORTED_NOISE", TexDistortedNoise, "Distorted Noise Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_MAGIC, def_sh_tex_magic, "TEX_MAGIC", TexMagic, "Magic Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_MARBLE, def_sh_tex_marble, "TEX_MARBLE", TexMarble, "Marble Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_MUSGRAVE, def_sh_tex_musgrave, "TEX_MUSGRAVE", TexMusgrave, "Musgrave Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_STUCCI, def_sh_tex_stucci, "TEX_STUCCI", TexStucci, "Stucci Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_VORONOI, def_sh_tex_voronoi, "TEX_VORONOI", TexVoronoi, "Voronoi Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_WOOD, def_sh_tex_wood, "TEX_WOOD", TexWood, "Wood Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_COORD, 0, "TEX_COORD", TexCoord, "Texture Coordinate", "") +DefNode( ShaderNode, SH_NODE_ATTRIBUTE, def_sh_attribute, "ATTRIBUTE", Attribute, "Attribute", "") +DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "") +DefNode( ShaderNode, SH_NODE_HOLDOUT, 0, "HOLDOUT", Holdout, "Holdout", "") +DefNode( ShaderNode, SH_NODE_BSDF_ANISOTROPIC, 0, "BSDF_ANISOTROPIC", BsdfAnisotropic, "Bsdf Anisotropic", "") +DefNode( ShaderNode, SH_NODE_BSDF_DIFFUSE, 0, "BSDF_DIFFUSE", BsdfDiffuse, "Diffuse Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_GLOSSY, def_glossy, "BSDF_GLOSSY", BsdfGlossy, "Glossy Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_GLASS, def_glossy, "BSDF_GLASS", BsdfGlass, "Glass Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_TRANSLUCENT, 0, "BSDF_TRANSLUCENT", BsdfTranslucent, "Translucent Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_TRANSPARENT, 0, "BSDF_TRANSPARENT", BsdfTransparent, "Transparent Bsdf", "") +DefNode( ShaderNode, SH_NODE_BSDF_VELVET, 0, "BSDF_VELVET", BsdfVelvet, "Velvet Bsdf", "") +DefNode( ShaderNode, SH_NODE_VOLUME_TRANSPARENT, 0, "VOLUME_TRANSPARENT", VolumeTransparent, "Transparent Volume", "") +DefNode( ShaderNode, SH_NODE_VOLUME_ISOTROPIC, 0, "VOLUME_ISOTROPIC", VolumeIsotropic, "Isotropic Volume", "") +DefNode( ShaderNode, SH_NODE_EMISSION, 0, "EMISSION", Emission, "Emission", "") +DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GEOMETRY", Geometry, "Geometry", "") +DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") +DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_NOISE, 0, "TEX_NOISE", TexNoise, "Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_BLEND, def_sh_tex_blend, "TEX_BLEND", TexBlend, "Blend Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_CLOUDS, def_sh_tex_clouds, "TEX_CLOUDS", TexClouds, "Clouds Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_DISTNOISE, def_sh_tex_distnoise, "TEX_DISTORTED_NOISE", TexDistortedNoise, "Distorted Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MAGIC, def_sh_tex_magic, "TEX_MAGIC", TexMagic, "Magic Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MARBLE, def_sh_tex_marble, "TEX_MARBLE", TexMarble, "Marble Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_MUSGRAVE, def_sh_tex_musgrave, "TEX_MUSGRAVE", TexMusgrave, "Musgrave Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_STUCCI, def_sh_tex_stucci, "TEX_STUCCI", TexStucci, "Stucci Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_VORONOI, def_sh_tex_voronoi, "TEX_VORONOI", TexVoronoi, "Voronoi Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_WOOD, def_sh_tex_wood, "TEX_WOOD", TexWood, "Wood Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_COORD, 0, "TEX_COORD", TexCoord, "Texture Coordinate", "") DefNode( CompositorNode, CMP_NODE_VIEWER, 0, "VIEWER", Viewer, "Viewer", "" ) DefNode( CompositorNode, CMP_NODE_RGB, 0, "RGB", RGB, "RGB", "" ) -- cgit v1.2.3 From d293d74942a8f48d4de6c53f4300540bd0035c34 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 15 Oct 2011 20:43:45 +0000 Subject: Cycles: more tweaks to get old/new shading systems working better together, for now also made non-material/world/lamp stuff use old texture datablocks, no time to get this fully working now. Still some python tweaks to do to ensure the right panels show. --- source/blender/makesrna/intern/rna_ID.c | 4 ++-- source/blender/makesrna/intern/rna_lamp.c | 11 ++++++----- source/blender/makesrna/intern/rna_material.c | 11 ++++++----- source/blender/makesrna/intern/rna_nodetree.c | 12 ++++++++++++ source/blender/makesrna/intern/rna_render.c | 2 +- source/blender/makesrna/intern/rna_texture.c | 13 ++++++++++++- source/blender/makesrna/intern/rna_world.c | 11 ++++++----- 7 files changed, 45 insertions(+), 19 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 24e7594e784..cdc79e0a23f 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -485,12 +485,12 @@ static void rna_def_ID(BlenderRNA *brna) prop= RNA_def_property(srna, "recalc", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Recalc", "Datablock is tagged for recalculation."); + RNA_def_property_ui_text(prop, "Recalc", "Datablock is tagged for recalculation"); prop= RNA_def_property(srna, "recalc_data", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC_DATA); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Recalc Data", "Datablock data is tagged for recalculation."); + RNA_def_property_ui_text(prop, "Recalc Data", "Datablock data is tagged for recalculation"); prop= RNA_def_property(srna, "library", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "lib"); diff --git a/source/blender/makesrna/intern/rna_lamp.c b/source/blender/makesrna/intern/rna_lamp.c index 82d095e3510..7d585187f4f 100644 --- a/source/blender/makesrna/intern/rna_lamp.c +++ b/source/blender/makesrna/intern/rna_lamp.c @@ -148,13 +148,14 @@ static void rna_Lamp_spot_size_set(PointerRNA *ptr, float value) la->spotsize= RAD2DEGF(value); } -static void rna_Lamp_use_nodes_set(PointerRNA *ptr, int value) +static void rna_Lamp_use_nodes_update(Main *blain, Scene *scene, PointerRNA *ptr) { Lamp *la= (Lamp*)ptr->data; - la->use_nodes= value; if(la->use_nodes && la->nodetree==NULL) - ED_node_shader_default(&la->id); + ED_node_shader_default(scene, &la->id); + + rna_Lamp_update(blain, scene, ptr); } #else @@ -385,9 +386,9 @@ static void rna_def_lamp(BlenderRNA *brna) prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); - RNA_def_property_boolean_funcs(prop, NULL, "rna_Lamp_use_nodes_set"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the lamp"); - RNA_def_property_update(prop, 0, "rna_Lamp_update"); + RNA_def_property_update(prop, 0, "rna_Lamp_use_nodes_update"); /* common */ rna_def_animdata_common(srna); diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index 16b9371916f..209b27eb1ff 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -271,13 +271,14 @@ static void rna_Material_use_specular_ramp_set(PointerRNA *ptr, int value) ma->ramp_spec= add_colorband(0); } -static void rna_Material_use_nodes_set(PointerRNA *ptr, int value) +static void rna_Material_use_nodes_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Material *ma= (Material*)ptr->data; - ma->use_nodes= value; if(ma->use_nodes && ma->nodetree==NULL) - ED_node_shader_default(&ma->id); + ED_node_shader_default(scene, &ma->id); + + rna_Material_update(bmain, scene, ptr); } static EnumPropertyItem *rna_Material_texture_coordinates_itemf(bContext *UNUSED(C), PointerRNA *ptr, @@ -1956,9 +1957,9 @@ void RNA_def_material(BlenderRNA *brna) prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); - RNA_def_property_boolean_funcs(prop, NULL, "rna_Material_use_nodes_set"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the material"); - RNA_def_property_update(prop, 0, "rna_Material_update"); + RNA_def_property_update(prop, 0, "rna_Material_use_nodes_update"); prop= RNA_def_property(srna, "active_node_material", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "Material"); diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 4cbb1c7deea..f1fe5b6a85e 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -1167,6 +1167,18 @@ static void def_sh_geometry(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); } +static void def_sh_attribute(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeShaderAttribute", "storage"); + + prop = RNA_def_property(srna, "attribute_name", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "name"); + RNA_def_property_ui_text(prop, "Attribute Name", ""); + RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); +} + static void def_sh_tex_sky(StructRNA *srna) { PropertyRNA *prop; diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index ef2e97c4427..45015f491d2 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -376,7 +376,7 @@ static void rna_def_render_engine(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_REQUIRED); func= RNA_def_function(srna, "update_progress", "RE_engine_update_progress"); - prop= RNA_def_float(func, "progress", 0, 0.0f, 1.0f, "", "Percentage of render that's done.", 0.0f, 1.0f); + prop= RNA_def_float(func, "progress", 0, 0.0f, 1.0f, "", "Percentage of render that's done", 0.0f, 1.0f); RNA_def_property_flag(prop, PROP_REQUIRED); func= RNA_def_function(srna, "report", "RE_engine_report"); diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index b5e8acb76e5..61c0605c73b 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -347,6 +347,16 @@ static void rna_Texture_use_nodes_set(PointerRNA *ptr, int v) ED_node_texture_default(tex); } +static void rna_Texture_use_nodes_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + Tex *tex= (Tex*)ptr->data; + + if(tex->use_nodes && tex->nodetree==NULL) + ED_node_shader_default(scene, &tex->id); + + rna_Texture_nodes_update(bmain, scene, ptr); +} + static void rna_ImageTexture_mipmap_set(PointerRNA *ptr, int value) { Tex *tex= (Tex*)ptr->data; @@ -1831,8 +1841,9 @@ static void rna_def_texture(BlenderRNA *brna) prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); RNA_def_property_boolean_funcs(prop, NULL, "rna_Texture_use_nodes_set"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_ui_text(prop, "Use Nodes", "Make this a node-based texture"); - RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); + RNA_def_property_update(prop, 0, "rna_Texture_use_nodes_update"); prop= RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "nodetree"); diff --git a/source/blender/makesrna/intern/rna_world.c b/source/blender/makesrna/intern/rna_world.c index 0b7bf62cc27..eb797158477 100644 --- a/source/blender/makesrna/intern/rna_world.c +++ b/source/blender/makesrna/intern/rna_world.c @@ -123,13 +123,14 @@ static void rna_World_stars_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Po WM_main_add_notifier(NC_WORLD|ND_WORLD_STARS, wo); } -static void rna_World_use_nodes_set(PointerRNA *ptr, int value) +static void rna_World_use_nodes_update(Main *bmain, Scene *scene, PointerRNA *ptr) { World *wrld= (World*)ptr->data; - wrld->use_nodes= value; if(wrld->use_nodes && wrld->nodetree==NULL) - ED_node_shader_default(&wrld->id); + ED_node_shader_default(scene, &wrld->id); + + rna_World_update(bmain, scene, ptr); } #else @@ -583,9 +584,9 @@ void RNA_def_world(BlenderRNA *brna) prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); - RNA_def_property_boolean_funcs(prop, NULL, "rna_World_use_nodes_set"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the world"); - RNA_def_property_update(prop, 0, "rna_World_update"); + RNA_def_property_update(prop, 0, "rna_World_use_nodes_update"); rna_def_lighting(brna); rna_def_world_mist(brna); -- cgit v1.2.3 From 02fae3440c8b4b89aa0f9412bc4e0db60a787c13 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 2 Nov 2011 15:15:45 +0000 Subject: Cycles: RenderEngine api code tweaks, also ensuring it's backwards compatible. --- source/blender/makesrna/intern/rna_render.c | 37 +++++++++++++++++++---------- 1 file changed, 24 insertions(+), 13 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index da6cd02cfbc..ef9bf6a9e02 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -48,18 +48,18 @@ #include "BKE_context.h" #include "BKE_report.h" +/* RenderEngine Callbacks */ + void engine_tag_redraw(RenderEngine *engine) { - engine->do_draw = 1; + engine->flag |= RE_ENGINE_DO_DRAW; } void engine_tag_update(RenderEngine *engine) { - engine->do_update = 1; + engine->flag |= RE_ENGINE_DO_UPDATE; } -/* RenderEngine Callbacks */ - static void engine_update(RenderEngine *engine, Main *bmain, Scene *scene) { extern FunctionRNA rna_RenderEngine_update_func; @@ -78,7 +78,7 @@ static void engine_update(RenderEngine *engine, Main *bmain, Scene *scene) RNA_parameter_list_free(&list); } -static void engine_render(RenderEngine *engine) +static void engine_render(RenderEngine *engine, struct Scene *scene) { extern FunctionRNA rna_RenderEngine_render_func; PointerRNA ptr; @@ -89,6 +89,7 @@ static void engine_render(RenderEngine *engine) func= &rna_RenderEngine_render_func; RNA_parameter_list_create(&list, &ptr, func); + RNA_parameter_set_lookup(&list, "scene", &scene); engine->type->ext.call(NULL, &ptr, func, &list); RNA_parameter_list_free(&list); @@ -314,41 +315,44 @@ static void rna_def_render_engine(BlenderRNA *brna) /* final render callbacks */ func= RNA_def_function(srna, "update", NULL); RNA_def_function_ui_description(func, "Export scene data for render"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); RNA_def_pointer(func, "data", "BlendData", "", ""); RNA_def_pointer(func, "scene", "Scene", "", ""); func= RNA_def_function(srna, "render", NULL); - RNA_def_function_ui_description(func, "Execute render"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_ui_description(func, "Render scene into an image"); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); + RNA_def_pointer(func, "scene", "Scene", "", ""); /* preview render callbacks */ func= RNA_def_function(srna, "preview_update", NULL); RNA_def_function_ui_description(func, "Export scene data for preview render of the given datablock"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); RNA_def_pointer(func, "context", "Context", "", ""); RNA_def_pointer(func, "id", "ID", "", ""); func= RNA_def_function(srna, "preview_render", NULL); RNA_def_function_ui_description(func, "Execute preview render"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); /* viewport render callbacks */ func= RNA_def_function(srna, "view_update", NULL); RNA_def_function_ui_description(func, "Update on data changes for viewport render"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); RNA_def_pointer(func, "context", "Context", "", ""); func= RNA_def_function(srna, "view_draw", NULL); RNA_def_function_ui_description(func, "Draw viewport render"); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); RNA_def_pointer(func, "context", "Context", "", ""); /* tag for redraw */ RNA_def_function(srna, "tag_redraw", "engine_tag_redraw"); + RNA_def_function_ui_description(func, "Request redraw for viewport rendering"); /* tag for update */ RNA_def_function(srna, "tag_update", "engine_tag_update"); + RNA_def_function_ui_description(func, "Request update call for viewport rendering"); func= RNA_def_function(srna, "begin_result", "RE_engine_begin_result"); prop= RNA_def_int(func, "x", 0, 0, INT_MAX, "X", "", 0, INT_MAX); @@ -390,9 +394,16 @@ static void rna_def_render_engine(BlenderRNA *brna) prop= RNA_def_string(func, "message", "", 0, "Report Message", ""); RNA_def_property_flag(prop, PROP_REQUIRED); - /* registration */ RNA_define_verify_sdna(0); + prop= RNA_def_property(srna, "is_animation", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", RE_ENGINE_ANIMATION); + + prop= RNA_def_property(srna, "is_preview", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", RE_ENGINE_PREVIEW); + + /* registration */ + prop= RNA_def_property(srna, "bl_idname", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "type->idname"); RNA_def_property_flag(prop, PROP_REGISTER|PROP_NEVER_CLAMP); -- cgit v1.2.3 From 9a4e1e0f0aec88c79fe4113019b1d7d1c79a7511 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 3 Nov 2011 10:18:58 +0000 Subject: Cycles: updates to follow code committed to trunk. --- source/blender/makesrna/intern/rna_ID.c | 8 +- source/blender/makesrna/intern/rna_main_api.c | 157 +++++++++++++++++++++++++- source/blender/makesrna/intern/rna_texture.c | 13 +-- 3 files changed, 159 insertions(+), 19 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index ba7d2881ad8..e4692d32338 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -486,15 +486,15 @@ static void rna_def_ID(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_LIB_EXCEPTION); RNA_def_property_ui_text(prop, "Tag", "Tools can use this to tag data (initial state is undefined)"); - prop= RNA_def_property(srna, "recalc", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Recalc", "Datablock is tagged for recalculation"); + RNA_def_property_ui_text(prop, "Is Updated", "Datablock is tagged for recalculation"); - prop= RNA_def_property(srna, "recalc_data", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "is_updated_data", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_ID_RECALC_DATA); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Recalc Data", "Datablock data is tagged for recalculation"); + RNA_def_property_ui_text(prop, "Is Updated Data", "Datablock data is tagged for recalculation"); prop= RNA_def_property(srna, "library", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "lib"); diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index 6e5b7d68ea9..a0402ed3593 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -549,7 +549,33 @@ void rna_Main_actions_tag(Main *bmain, int value) { tag_main_lb(&bmain->action, void rna_Main_particles_tag(Main *bmain, int value) { tag_main_lb(&bmain->particle, value); } void rna_Main_gpencil_tag(Main *bmain, int value) { tag_main_lb(&bmain->gpencil, value); } -static int rna_Main_objects_recalc_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_OB); } +static int rna_Main_cameras_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_CA); } +static int rna_Main_scenes_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SCE); } +static int rna_Main_objects_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_OB); } +static int rna_Main_materials_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_MA); } +static int rna_Main_node_groups_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_NT); } +static int rna_Main_meshes_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_ME); } +static int rna_Main_lamps_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_LA); } +static int rna_Main_libraries_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_LI); } +static int rna_Main_screens_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SCR); } +static int rna_Main_window_managers_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_WM); } +static int rna_Main_images_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_IM); } +static int rna_Main_lattices_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_LT); } +static int rna_Main_curves_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_CU); } +static int rna_Main_metaballs_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_MB); } +static int rna_Main_fonts_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_VF); } +static int rna_Main_textures_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_TE); } +static int rna_Main_brushes_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_BR); } +static int rna_Main_worlds_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_WO); } +static int rna_Main_groups_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_GR); } +static int rna_Main_shape_keys_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_KE); } +static int rna_Main_texts_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_TXT); } +static int rna_Main_speakers_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SPK); } +static int rna_Main_sounds_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SO); } +static int rna_Main_armatures_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_AR); } +static int rna_Main_actions_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_AC); } +static int rna_Main_particles_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_PA); } +static int rna_Main_gpencil_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_GD); } #else @@ -577,6 +603,7 @@ void RNA_def_main_cameras(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataCameras"); srna= RNA_def_struct(brna, "BlendDataCameras", NULL); @@ -600,6 +627,10 @@ void RNA_def_main_cameras(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_cameras_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_cameras_is_updated_get", NULL); } void RNA_def_main_scenes(BlenderRNA *brna, PropertyRNA *cprop) @@ -607,6 +638,7 @@ void RNA_def_main_scenes(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataScenes"); srna= RNA_def_struct(brna, "BlendDataScenes", NULL); @@ -626,6 +658,10 @@ void RNA_def_main_scenes(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_function_ui_description(func, "Remove a scene from the current blendfile"); parm= RNA_def_pointer(func, "scene", "Scene", "", "Scene to remove"); RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_scenes_is_updated_get", NULL); } void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop) @@ -662,9 +698,9 @@ void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop) parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); - prop= RNA_def_property(srna, "recalc", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_boolean_funcs(prop, "rna_Main_objects_recalc_get", NULL); + RNA_def_property_boolean_funcs(prop, "rna_Main_objects_is_updated_get", NULL); } void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop) @@ -672,6 +708,7 @@ void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataMaterials"); srna= RNA_def_struct(brna, "BlendDataMaterials", NULL); @@ -695,12 +732,17 @@ void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_materials_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_materials_is_updated_get", NULL); } void RNA_def_main_node_groups(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; static EnumPropertyItem node_nodetree_items[] = { {0, "SHADER", 0, "Shader", ""}, @@ -732,12 +774,17 @@ void RNA_def_main_node_groups(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_node_groups_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_node_groups_is_updated_get", NULL); } void RNA_def_main_meshes(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataMeshes"); srna= RNA_def_struct(brna, "BlendDataMeshes", NULL); @@ -761,12 +808,17 @@ void RNA_def_main_meshes(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_meshes_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_meshes_is_updated_get", NULL); } void RNA_def_main_lamps(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataLamps"); srna= RNA_def_struct(brna, "BlendDataLamps", NULL); @@ -792,6 +844,10 @@ void RNA_def_main_lamps(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_lamps_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_lamps_is_updated_get", NULL); } void RNA_def_main_libraries(BlenderRNA *brna, PropertyRNA *cprop) @@ -799,6 +855,7 @@ void RNA_def_main_libraries(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataLibraries"); srna= RNA_def_struct(brna, "BlendDataLibraries", NULL); @@ -808,6 +865,10 @@ void RNA_def_main_libraries(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_libraries_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_libraries_is_updated_get", NULL); } void RNA_def_main_screens(BlenderRNA *brna, PropertyRNA *cprop) @@ -815,6 +876,7 @@ void RNA_def_main_screens(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataScreens"); srna= RNA_def_struct(brna, "BlendDataScreens", NULL); @@ -824,6 +886,10 @@ void RNA_def_main_screens(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_screens_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_screens_is_updated_get", NULL); } void RNA_def_main_window_managers(BlenderRNA *brna, PropertyRNA *cprop) @@ -831,6 +897,7 @@ void RNA_def_main_window_managers(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataWindowManagers"); srna= RNA_def_struct(brna, "BlendDataWindowManagers", NULL); @@ -840,12 +907,17 @@ void RNA_def_main_window_managers(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_window_managers_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_window_managers_is_updated_get", NULL); } void RNA_def_main_images(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataImages"); srna= RNA_def_struct(brna, "BlendDataImages", NULL); @@ -884,6 +956,10 @@ void RNA_def_main_images(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_images_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_images_is_updated_get", NULL); } void RNA_def_main_lattices(BlenderRNA *brna, PropertyRNA *cprop) @@ -891,6 +967,7 @@ void RNA_def_main_lattices(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataLattices"); srna= RNA_def_struct(brna, "BlendDataLattices", NULL); @@ -914,12 +991,17 @@ void RNA_def_main_lattices(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_lattices_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_lattices_is_updated_get", NULL); } void RNA_def_main_curves(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataCurves"); srna= RNA_def_struct(brna, "BlendDataCurves", NULL); @@ -945,12 +1027,17 @@ void RNA_def_main_curves(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_curves_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_curves_is_updated_get", NULL); } void RNA_def_main_metaballs(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataMetaBalls"); srna= RNA_def_struct(brna, "BlendDataMetaBalls", NULL); @@ -974,12 +1061,17 @@ void RNA_def_main_metaballs(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_metaballs_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_metaballs_is_updated_get", NULL); } void RNA_def_main_fonts(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataFonts"); srna= RNA_def_struct(brna, "BlendDataFonts", NULL); @@ -1004,12 +1096,17 @@ void RNA_def_main_fonts(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_fonts_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_fonts_is_updated_get", NULL); } void RNA_def_main_textures(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataTextures"); srna= RNA_def_struct(brna, "BlendDataTextures", NULL); @@ -1035,12 +1132,17 @@ void RNA_def_main_textures(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_textures_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_textures_is_updated_get", NULL); } void RNA_def_main_brushes(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataBrushes"); srna= RNA_def_struct(brna, "BlendDataBrushes", NULL); @@ -1064,6 +1166,10 @@ void RNA_def_main_brushes(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_brushes_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_brushes_is_updated_get", NULL); } void RNA_def_main_worlds(BlenderRNA *brna, PropertyRNA *cprop) @@ -1071,6 +1177,7 @@ void RNA_def_main_worlds(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataWorlds"); srna= RNA_def_struct(brna, "BlendDataWorlds", NULL); @@ -1094,6 +1201,10 @@ void RNA_def_main_worlds(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_worlds_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_worlds_is_updated_get", NULL); } void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop) @@ -1101,6 +1212,7 @@ void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataGroups"); srna= RNA_def_struct(brna, "BlendDataGroups", NULL); @@ -1123,6 +1235,10 @@ void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_groups_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_groups_is_updated_get", NULL); } void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop) @@ -1130,6 +1246,7 @@ void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataSpeakers"); srna= RNA_def_struct(brna, "BlendDataSpeakers", NULL); @@ -1153,6 +1270,10 @@ void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_speakers_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_speakers_is_updated_get", NULL); } void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop) @@ -1160,6 +1281,7 @@ void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataTexts"); srna= RNA_def_struct(brna, "BlendDataTexts", NULL); @@ -1192,6 +1314,10 @@ void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_texts_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_texts_is_updated_get", NULL); } void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop) @@ -1199,6 +1325,7 @@ void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataSounds"); srna= RNA_def_struct(brna, "BlendDataSounds", NULL); @@ -1210,6 +1337,10 @@ void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_sounds_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_sounds_is_updated_get", NULL); } void RNA_def_main_armatures(BlenderRNA *brna, PropertyRNA *cprop) @@ -1217,6 +1348,7 @@ void RNA_def_main_armatures(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataArmatures"); srna= RNA_def_struct(brna, "BlendDataArmatures", NULL); @@ -1240,12 +1372,17 @@ void RNA_def_main_armatures(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_armatures_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_armatures_is_updated_get", NULL); } void RNA_def_main_actions(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataActions"); srna= RNA_def_struct(brna, "BlendDataActions", NULL); @@ -1269,12 +1406,17 @@ void RNA_def_main_actions(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_actions_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_actions_is_updated_get", NULL); } void RNA_def_main_particles(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataParticles"); srna= RNA_def_struct(brna, "BlendDataParticles", NULL); @@ -1298,6 +1440,10 @@ void RNA_def_main_particles(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_particles_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_particles_is_updated_get", NULL); } void RNA_def_main_gpencil(BlenderRNA *brna, PropertyRNA *cprop) @@ -1305,6 +1451,7 @@ void RNA_def_main_gpencil(BlenderRNA *brna, PropertyRNA *cprop) StructRNA *srna; FunctionRNA *func; PropertyRNA *parm; + PropertyRNA *prop; RNA_def_property_srna(cprop, "BlendDataGreasePencils"); srna= RNA_def_struct(brna, "BlendDataGreasePencils", NULL); @@ -1314,6 +1461,10 @@ void RNA_def_main_gpencil(BlenderRNA *brna, PropertyRNA *cprop) func= RNA_def_function(srna, "tag", "rna_Main_gpencil_tag"); parm= RNA_def_boolean(func, "value", 0, "Value", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Main_gpencil_is_updated_get", NULL); } #endif diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index b7a5b6f5216..c420ecefdae 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -345,16 +345,6 @@ static void rna_Texture_use_nodes_set(PointerRNA *ptr, int v) ED_node_texture_default(tex); } -static void rna_Texture_use_nodes_update(Main *bmain, Scene *scene, PointerRNA *ptr) -{ - Tex *tex= (Tex*)ptr->data; - - if(tex->use_nodes && tex->nodetree==NULL) - ED_node_shader_default(scene, &tex->id); - - rna_Texture_nodes_update(bmain, scene, ptr); -} - static void rna_ImageTexture_mipmap_set(PointerRNA *ptr, int value) { Tex *tex= (Tex*)ptr->data; @@ -1839,9 +1829,8 @@ static void rna_def_texture(BlenderRNA *brna) prop= RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); RNA_def_property_boolean_funcs(prop, NULL, "rna_Texture_use_nodes_set"); - RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_ui_text(prop, "Use Nodes", "Make this a node-based texture"); - RNA_def_property_update(prop, 0, "rna_Texture_use_nodes_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "nodetree"); -- cgit v1.2.3 From 72929172dd0d3d51edf7b5b0cbcc9296ce0bb4da Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 4 Nov 2011 20:58:00 +0000 Subject: Cycles: add location/rotate/scale and XYZ mapping options for all texture nodes, to reduce the amount of nodes needed to set up a simple texture. These are currently editable in the texture properties tab, still need to make them available in the node editor. Projection and color modification options will be added later, they're not implemented yet but allocated already to avoid version patches later. Also an issue with the XYZ mapping is that when you set one to None, texture and material draw mode doesn't draw the image texture well, OpenGL doesn't seem to like the degenerate texture matrix? --- source/blender/makesrna/intern/rna_nodetree.c | 88 +++++------ .../blender/makesrna/intern/rna_nodetree_types.h | 2 +- source/blender/makesrna/intern/rna_space.c | 10 +- source/blender/makesrna/intern/rna_texture.c | 176 +++++++++++++++++---- 4 files changed, 187 insertions(+), 89 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 55432511730..db80f8906fd 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -446,15 +446,6 @@ static void rna_NodeSocketVector_range(PointerRNA *ptr, float *min, float *max) *max = val->max; } -static void rna_Node_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) -{ - bNode *node= (bNode*)ptr->data; - - init_mapping((TexMapping *)node->storage); - - rna_Node_update(bmain, scene, ptr); -} - static void rna_Node_image_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) { bNode *node= (bNode*)ptr->data; @@ -1104,48 +1095,12 @@ static void def_sh_material(StructRNA *srna) static void def_sh_mapping(StructRNA *srna) { PropertyRNA *prop; - - RNA_def_struct_sdna_from(srna, "TexMapping", "storage"); - prop= RNA_def_property(srna, "location", PROP_FLOAT, PROP_TRANSLATION); - RNA_def_property_float_sdna(prop, NULL, "loc"); - RNA_def_property_ui_text(prop, "Location", "Location offset for the input coordinate"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_mapping_update"); - - prop= RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_XYZ); /* Not PROP_EUL, this is already in degrees, not radians */ - RNA_def_property_float_sdna(prop, NULL, "rot"); - RNA_def_property_ui_text(prop, "Rotation", "Rotation offset for the input coordinate"); - RNA_def_property_ui_range(prop, -360.f, 360.f, 1.f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_mapping_update"); - - prop= RNA_def_property(srna, "scale", PROP_FLOAT, PROP_XYZ); - RNA_def_property_float_sdna(prop, NULL, "size"); - RNA_def_property_ui_text(prop, "Scale", "Scale adjustment for the input coordinate"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_mapping_update"); - - prop = RNA_def_property(srna, "use_min", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MIN); - RNA_def_property_ui_text(prop, "Clamp Minimum", "Clamp the output coordinate to a minimum value"); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - - prop= RNA_def_property(srna, "min", PROP_FLOAT, PROP_XYZ); - RNA_def_property_float_sdna(prop, NULL, "min"); - RNA_def_property_ui_text(prop, "Minimum", "Minimum value to clamp coordinate to"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - - prop = RNA_def_property(srna, "use_max", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MAX); - RNA_def_property_ui_text(prop, "Clamp Maximum", "Clamp the output coordinate to a maximum value"); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - - prop= RNA_def_property(srna, "max", PROP_FLOAT, PROP_XYZ); - RNA_def_property_float_sdna(prop, NULL, "max"); - RNA_def_property_ui_text(prop, "Maximum", "Maximum value to clamp coordinate to"); - RNA_def_property_ui_range(prop, -10.f, 10.f, 0.1f, 2); - RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); + prop= RNA_def_property(srna, "mapping", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "storage"); + RNA_def_property_struct_type(prop, "TexMapping"); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Mapping", "Texture coordinate mapping settings"); } static void def_sh_geometry(StructRNA *srna) @@ -1177,11 +1132,33 @@ static void def_sh_attribute(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); } +static void def_sh_tex(StructRNA *srna) +{ + PropertyRNA *prop; + + prop= RNA_def_property(srna, "texture_mapping", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "base.tex_mapping"); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Texture Mapping", "Texture coordinate mapping settings"); + + prop= RNA_def_property(srna, "color_mapping", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "base.color_mapping"); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Color Mapping", "Color mapping settings"); +} + +static void def_sh_tex_noise(StructRNA *srna) +{ + RNA_def_struct_sdna_from(srna, "NodeTexNoise", "storage"); + def_sh_tex(srna); +} + static void def_sh_tex_sky(StructRNA *srna) { PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexSky", "storage"); + def_sh_tex(srna); prop = RNA_def_property(srna, "sun_direction", PROP_FLOAT, PROP_DIRECTION); RNA_def_property_ui_text(prop, "Sun Direction", "Direction from where the sun is shining"); @@ -1209,6 +1186,7 @@ static void def_sh_tex_environment(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "color_space", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, prop_color_space_items); @@ -1233,6 +1211,7 @@ static void def_sh_tex_image(StructRNA *srna) RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); RNA_def_struct_sdna_from(srna, "NodeTexImage", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "color_space", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, prop_color_space_items); @@ -1260,6 +1239,7 @@ static void def_sh_tex_blend(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexBlend", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "progression", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "progression"); @@ -1279,6 +1259,7 @@ static void def_sh_tex_clouds(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexClouds", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "basis"); @@ -1304,6 +1285,7 @@ static void def_sh_tex_distnoise(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexDistortedNoise", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "basis"); @@ -1323,6 +1305,7 @@ static void def_sh_tex_magic(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexMagic", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "depth"); @@ -1342,6 +1325,7 @@ static void def_sh_tex_marble(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexMarble", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "marble_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "type"); @@ -1387,6 +1371,7 @@ static void def_sh_tex_musgrave(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexMusgrave", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "musgrave_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "type"); @@ -1412,6 +1397,7 @@ static void def_sh_tex_stucci(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexStucci", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "stucci_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "type"); @@ -1454,6 +1440,7 @@ static void def_sh_tex_voronoi(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexVoronoi", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "distance_metric", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "distance_metric"); @@ -1480,6 +1467,7 @@ static void def_sh_tex_wood(StructRNA *srna) PropertyRNA *prop; RNA_def_struct_sdna_from(srna, "NodeTexWood", "storage"); + def_sh_tex(srna); prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "basis"); diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index 6744dc77469..c74d8943bcf 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -79,7 +79,7 @@ DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GE DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "") DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_NOISE, 0, "TEX_NOISE", TexNoise, "Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_NOISE, def_sh_tex_noise, "TEX_NOISE", TexNoise, "Noise Texture", "") DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "") DefNode( ShaderNode, SH_NODE_TEX_BLEND, def_sh_tex_blend, "TEX_BLEND", TexBlend, "Blend Texture", "") DefNode( ShaderNode, SH_NODE_TEX_CLOUDS, def_sh_tex_clouds, "TEX_CLOUDS", TexClouds, "Clouds Texture", "") diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 5793a2ba6f1..8315ff4f2c2 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -114,13 +114,14 @@ EnumPropertyItem viewport_shade_items[] = { #include "BLI_math.h" -#include "BKE_screen.h" #include "BKE_animsys.h" #include "BKE_brush.h" #include "BKE_colortools.h" #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_paint.h" +#include "BKE_scene.h" +#include "BKE_screen.h" #include "ED_image.h" #include "ED_node.h" @@ -458,11 +459,12 @@ static EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf(bContext *UNUSED(C RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_WIRE); RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_SOLID); RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_TEXTURE); - RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_MATERIAL); + + if(scene_use_new_shading_nodes(scene)) + RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_MATERIAL); - if(type->view_draw) { + if(type->view_draw) RNA_enum_items_add_value(&item, &totitem, viewport_shade_items, OB_RENDER); - } RNA_enum_item_end(&item, &totitem); *free= 1; diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index c420ecefdae..aac4da9e6f6 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -75,6 +75,25 @@ EnumPropertyItem texture_type_items[] = { {TEX_WOOD, "WOOD", ICON_TEXTURE, "Wood", "Procedural - Wave generated bands or rings, with optional noise"}, {0, NULL, 0, NULL, NULL}}; +EnumPropertyItem blend_type_items[] = { + {MTEX_BLEND, "MIX", 0, "Mix", ""}, + {MTEX_ADD, "ADD", 0, "Add", ""}, + {MTEX_SUB, "SUBTRACT", 0, "Subtract", ""}, + {MTEX_MUL, "MULTIPLY", 0, "Multiply", ""}, + {MTEX_SCREEN, "SCREEN", 0, "Screen", ""}, + {MTEX_OVERLAY, "OVERLAY", 0, "Overlay", ""}, + {MTEX_DIFF, "DIFFERENCE", 0, "Difference", ""}, + {MTEX_DIV, "DIVIDE", 0, "Divide", ""}, + {MTEX_DARK, "DARKEN", 0, "Darken", ""}, + {MTEX_LIGHT, "LIGHTEN", 0, "Lighten", ""}, + {MTEX_BLEND_HUE, "HUE", 0, "Hue", ""}, + {MTEX_BLEND_SAT, "SATURATION", 0, "Saturation", ""}, + {MTEX_BLEND_VAL, "VALUE", 0, "Value", ""}, + {MTEX_BLEND_COLOR, "COLOR", 0, "Color", ""}, + {MTEX_SOFT_LIGHT, "SOFT_LIGHT", 0, "Soft Light", ""}, + {MTEX_LIN_LIGHT , "LINEAR_LIGHT", 0, "Linear Light", ""}, + {0, NULL, 0, NULL, NULL}}; + #ifdef RNA_RUNTIME #include "MEM_guardedalloc.h" @@ -131,13 +150,33 @@ static StructRNA *rna_Texture_refine(struct PointerRNA *ptr) } } -static void rna_Texture_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) +static void rna_Texture_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) { - Tex *tex= ptr->id.data; + ID *id= ptr->id.data; - DAG_id_tag_update(&tex->id, 0); - WM_main_add_notifier(NC_TEXTURE, tex); - WM_main_add_notifier(NC_MATERIAL|ND_SHADING_DRAW, NULL); + if(GS(id->name) == ID_TE) { + Tex *tex= ptr->id.data; + + DAG_id_tag_update(&tex->id, 0); + WM_main_add_notifier(NC_TEXTURE, tex); + WM_main_add_notifier(NC_MATERIAL|ND_SHADING_DRAW, NULL); + } + else if(GS(id->name) == ID_NT) { + bNodeTree *ntree= ptr->id.data; + ED_node_generic_update(bmain, ntree, NULL); + } +} + +static void rna_Texture_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + TexMapping *texmap = ptr->data; + init_tex_mapping(texmap); + rna_Texture_update(bmain, scene, ptr); +} + +static void rna_Color_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + /* nothing to do */ } static void rna_Texture_voxeldata_update(Main *bmain, Scene *scene, PointerRNA *ptr) @@ -400,71 +439,139 @@ static char *rna_VoxelData_path(PointerRNA *UNUSED(ptr)) static void rna_def_texmapping(BlenderRNA *brna) { + static EnumPropertyItem prop_mapping_items[] = { + {MTEX_FLAT, "FLAT", 0, "Flat", "Map X and Y coordinates directly"}, + {MTEX_CUBE, "CUBE", 0, "Cube", "Map using the normal vector"}, + {MTEX_TUBE, "TUBE", 0, "Tube", "Map with Z as central axis"}, + {MTEX_SPHERE, "SPHERE", 0, "Sphere", "Map with Z as central axis"}, + {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem prop_xyz_mapping_items[] = { + {0, "NONE", 0, "None", ""}, + {1, "X", 0, "X", ""}, + {2, "Y", 0, "Y", ""}, + {3, "Z", 0, "Z", ""}, + {0, NULL, 0, NULL, NULL}}; + StructRNA *srna; PropertyRNA *prop; srna= RNA_def_struct(brna, "TexMapping", NULL); - RNA_def_struct_ui_text(srna, "Texture Mapping", "Mapping settings"); + RNA_def_struct_ui_text(srna, "Texture Mapping", "Texture coordinate mapping settings"); prop= RNA_def_property(srna, "location", PROP_FLOAT, PROP_TRANSLATION); RNA_def_property_float_sdna(prop, NULL, "loc"); RNA_def_property_ui_text(prop, "Location", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); - prop= RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_EULER); + prop= RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_XYZ); /* Not PROP_EUL, this is already in degrees, not radians */ RNA_def_property_float_sdna(prop, NULL, "rot"); RNA_def_property_ui_text(prop, "Rotation", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "scale", PROP_FLOAT, PROP_XYZ); RNA_def_property_float_sdna(prop, NULL, "size"); RNA_def_property_ui_text(prop, "Scale", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "min", PROP_FLOAT, PROP_XYZ); RNA_def_property_float_sdna(prop, NULL, "min"); RNA_def_property_ui_text(prop, "Minimum", "Minimum value for clipping"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "max", PROP_FLOAT, PROP_XYZ); RNA_def_property_float_sdna(prop, NULL, "max"); RNA_def_property_ui_text(prop, "Maximum", "Maximum value for clipping"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "use_min", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MIN); RNA_def_property_ui_text(prop, "Has Minimum", "Whether to use minimum clipping value"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); prop= RNA_def_property(srna, "use_max", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", TEXMAP_CLIP_MAX); RNA_def_property_ui_text(prop, "Has Maximum", "Whether to use maximum clipping value"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping_x", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "projx"); + RNA_def_property_enum_items(prop, prop_xyz_mapping_items); + RNA_def_property_ui_text(prop, "X Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping_y", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "projy"); + RNA_def_property_enum_items(prop, prop_xyz_mapping_items); + RNA_def_property_ui_text(prop, "Y Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping_z", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "projz"); + RNA_def_property_enum_items(prop, prop_xyz_mapping_items); + RNA_def_property_ui_text(prop, "Z Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); + + prop= RNA_def_property(srna, "mapping", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_mapping_items); + RNA_def_property_ui_text(prop, "Mapping", ""); + RNA_def_property_update(prop, 0, "rna_Texture_mapping_update"); } -static void rna_def_mtex(BlenderRNA *brna) +static void rna_def_colormapping(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; + + srna= RNA_def_struct(brna, "ColorMapping", NULL); + RNA_def_struct_ui_text(srna, "Color Mapping", "Color mapping settings"); - static EnumPropertyItem prop_blend_type_items[] = { - {MTEX_BLEND, "MIX", 0, "Mix", ""}, - {MTEX_ADD, "ADD", 0, "Add", ""}, - {MTEX_SUB, "SUBTRACT", 0, "Subtract", ""}, - {MTEX_MUL, "MULTIPLY", 0, "Multiply", ""}, - {MTEX_SCREEN, "SCREEN", 0, "Screen", ""}, - {MTEX_OVERLAY, "OVERLAY", 0, "Overlay", ""}, - {MTEX_DIFF, "DIFFERENCE", 0, "Difference", ""}, - {MTEX_DIV, "DIVIDE", 0, "Divide", ""}, - {MTEX_DARK, "DARKEN", 0, "Darken", ""}, - {MTEX_LIGHT, "LIGHTEN", 0, "Lighten", ""}, - {MTEX_BLEND_HUE, "HUE", 0, "Hue", ""}, - {MTEX_BLEND_SAT, "SATURATION", 0, "Saturation", ""}, - {MTEX_BLEND_VAL, "VALUE", 0, "Value", ""}, - {MTEX_BLEND_COLOR, "COLOR", 0, "Color", ""}, - {MTEX_SOFT_LIGHT, "SOFT_LIGHT", 0, "Soft Light", ""}, - {MTEX_LIN_LIGHT , "LINEAR_LIGHT", 0, "Linear Light", ""}, - {0, NULL, 0, NULL, NULL}}; + prop= RNA_def_property(srna, "use_color_ramp", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", COLORMAP_USE_RAMP); + RNA_def_property_ui_text(prop, "Use Color Ramp", "Toggle color ramp operations"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "color_ramp", PROP_POINTER, PROP_NEVER_NULL); + RNA_def_property_pointer_sdna(prop, NULL, "coba"); + RNA_def_property_struct_type(prop, "ColorRamp"); + RNA_def_property_ui_text(prop, "Color Ramp", ""); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "brightness", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "bright"); + RNA_def_property_range(prop, 0, 2); + RNA_def_property_ui_text(prop, "Brightness", "Adjust the brightness of the texture"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "contrast", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0.01, 5); + RNA_def_property_ui_text(prop, "Contrast", "Adjust the contrast of the texture"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "saturation", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0, 2); + RNA_def_property_ui_text(prop, "Saturation", "Adjust the saturation of colors in the texture"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "blend_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, blend_type_items); + RNA_def_property_ui_text(prop, "Blend Type", "Mode used to mix with texture output color"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "blend_color", PROP_FLOAT, PROP_COLOR); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Color", "Blend color to mix with texture output color"); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); + + prop= RNA_def_property(srna, "blend_factor", PROP_FLOAT, PROP_NONE); + RNA_def_property_ui_text(prop, "Blend Factor", ""); + RNA_def_property_update(prop, 0, "rna_Color_mapping_update"); +} + +static void rna_def_mtex(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; static EnumPropertyItem output_node_items[] = { {0, "DUMMY", 0, "Dummy", ""}, @@ -512,7 +619,7 @@ static void rna_def_mtex(BlenderRNA *brna) prop= RNA_def_property(srna, "blend_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "blendtype"); - RNA_def_property_enum_items(prop, prop_blend_type_items); + RNA_def_property_enum_items(prop, blend_type_items); RNA_def_property_ui_text(prop, "Blend Type", "Mode used to apply the texture"); RNA_def_property_update(prop, 0, "rna_TextureSlot_update"); @@ -1866,6 +1973,7 @@ void RNA_def_texture(BlenderRNA *brna) rna_def_mtex(brna); rna_def_environment_map(brna); rna_def_texmapping(brna); + rna_def_colormapping(brna); } #endif -- cgit v1.2.3 From fb56dbc2afc7c8b6ffc24406ed82cbcbff090da3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 6 Nov 2011 21:05:58 +0000 Subject: Cycles: procedural texture nodes reorganization. This will break existing files using them, but rather do it now that I have the chance still. Highlights: * Wood and Marble merged into a single Wave texture * Clouds + Distorted Noise merged into new Noise node * Blend renamed to Gradient * Stucci removed, was mostly useful for old bump * Noise removed, will come back later, didn't actually work yet * Depth setting is now Detail socket, which accepts float values * Scale socket instead of Size socket http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures --- source/blender/makesrna/intern/rna_nodetree.c | 212 ++------------------- .../blender/makesrna/intern/rna_nodetree_types.h | 12 +- 2 files changed, 21 insertions(+), 203 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index db80f8906fd..035a05e5124 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -1147,12 +1147,6 @@ static void def_sh_tex(StructRNA *srna) RNA_def_property_ui_text(prop, "Color Mapping", "Color mapping settings"); } -static void def_sh_tex_noise(StructRNA *srna) -{ - RNA_def_struct_sdna_from(srna, "NodeTexNoise", "storage"); - def_sh_tex(srna); -} - static void def_sh_tex_sky(StructRNA *srna) { PropertyRNA *prop; @@ -1219,9 +1213,9 @@ static void def_sh_tex_image(StructRNA *srna) RNA_def_property_update(prop, 0, "rna_Node_update"); } -static void def_sh_tex_blend(StructRNA *srna) +static void def_sh_tex_gradient(StructRNA *srna) { - static EnumPropertyItem prop_blend_progression[] = { + static EnumPropertyItem prop_gradient_type[] = { {SHD_BLEND_LINEAR, "LINEAR", 0, "Linear", "Creates a linear progression"}, {SHD_BLEND_QUADRATIC, "QUADRATIC", 0, "Quadratic", "Creates a quadratic progression"}, {SHD_BLEND_EASING, "EASING", 0, "Easing", "Creates a progression easing from one step to the next"}, @@ -1231,73 +1225,21 @@ static void def_sh_tex_blend(StructRNA *srna) {SHD_BLEND_RADIAL, "RADIAL", 0, "Radial", "Creates a radial progression"}, {0, NULL, 0, NULL, NULL}}; - static const EnumPropertyItem prop_axis_items[]= { - {SHD_BLEND_HORIZONTAL, "HORIZONTAL", 0, "Horizontal", "Flips the texture's X and Y axis"}, - {SHD_BLEND_VERTICAL, "VERTICAL", 0, "Vertical", "Flips the texture's X and Y axis"}, - {0, NULL, 0, NULL, NULL}}; - - PropertyRNA *prop; - - RNA_def_struct_sdna_from(srna, "NodeTexBlend", "storage"); - def_sh_tex(srna); - - prop= RNA_def_property(srna, "progression", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "progression"); - RNA_def_property_enum_items(prop, prop_blend_progression); - RNA_def_property_ui_text(prop, "Progression", "Sets the style of the color blending"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_bitflag_sdna(prop, NULL, "axis"); - RNA_def_property_enum_items(prop, prop_axis_items); - RNA_def_property_ui_text(prop, "Axis", "Flips the texture's X and Y axis"); - RNA_def_property_update(prop, 0, "rna_Node_update"); -} - -static void def_sh_tex_clouds(StructRNA *srna) -{ PropertyRNA *prop; - RNA_def_struct_sdna_from(srna, "NodeTexClouds", "storage"); + RNA_def_struct_sdna_from(srna, "NodeTexGradient", "storage"); def_sh_tex(srna); - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "hard"); - RNA_def_property_enum_items(prop, prop_noise_type_items); - RNA_def_property_ui_text(prop, "Noise Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "depth"); - RNA_def_property_range(prop, 0, 30); - RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise"); + prop= RNA_def_property(srna, "gradient_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_gradient_type); + RNA_def_property_ui_text(prop, "Gradient Type", "Sets the style of the color blending"); RNA_def_property_update(prop, 0, "rna_Node_update"); } -static void def_sh_tex_distnoise(StructRNA *srna) +static void def_sh_tex_noise(StructRNA *srna) { - PropertyRNA *prop; - - RNA_def_struct_sdna_from(srna, "NodeTexDistortedNoise", "storage"); + RNA_def_struct_sdna_from(srna, "NodeTexNoise", "storage"); def_sh_tex(srna); - - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_distortion", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "distortion_basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Distortion", "Sets the noise basis used for distortion"); - RNA_def_property_update(prop, 0, "rna_Node_update"); } static void def_sh_tex_magic(StructRNA *srna) @@ -1314,50 +1256,6 @@ static void def_sh_tex_magic(StructRNA *srna) RNA_def_property_update(prop, 0, "rna_Node_update"); } -static void def_sh_tex_marble(StructRNA *srna) -{ - static EnumPropertyItem prop_marble_stype[] = { - {SHD_MARBLE_SOFT, "SOFT", 0, "Soft", "Uses soft marble"}, - {SHD_MARBLE_SHARP, "SHARP", 0, "Sharp", "Uses more clearly defined marble"}, - {SHD_MARBLE_SHARPER, "SHARPER", 0, "Sharper", "Uses very clearly defined marble"}, - {0, NULL, 0, NULL, NULL}}; - - PropertyRNA *prop; - - RNA_def_struct_sdna_from(srna, "NodeTexMarble", "storage"); - def_sh_tex(srna); - - prop= RNA_def_property(srna, "marble_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "type"); - RNA_def_property_enum_items(prop, prop_marble_stype); - RNA_def_property_ui_text(prop, "Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "hard"); - RNA_def_property_enum_items(prop, prop_noise_type_items); - RNA_def_property_ui_text(prop, "Noise Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "depth"); - RNA_def_property_range(prop, 0, 30); - RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "wave_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "wave"); - RNA_def_property_enum_items(prop, prop_wave_items); - RNA_def_property_ui_text(prop, "Wave Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); -} - static void def_sh_tex_musgrave(StructRNA *srna) { static EnumPropertyItem prop_musgrave_type[] = { @@ -1374,67 +1272,17 @@ static void def_sh_tex_musgrave(StructRNA *srna) def_sh_tex(srna); prop= RNA_def_property(srna, "musgrave_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_sdna(prop, NULL, "musgrave_type"); RNA_def_property_enum_items(prop, prop_musgrave_type); RNA_def_property_ui_text(prop, "Type", ""); RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); -} - -static void def_sh_tex_stucci(StructRNA *srna) -{ - static EnumPropertyItem prop_stucci_stype[] = { - {SHD_STUCCI_PLASTIC, "PLASTIC", 0, "Plastic", "Uses standard stucci"}, - {SHD_STUCCI_WALL_IN, "WALL_IN", 0, "Wall in", "Creates Dimples"}, - {SHD_STUCCI_WALL_OUT, "WALL_OUT", 0, "Wall out", "Creates Ridges"}, - {0, NULL, 0, NULL, NULL}}; - - PropertyRNA *prop; - - RNA_def_struct_sdna_from(srna, "NodeTexStucci", "storage"); - def_sh_tex(srna); - - prop= RNA_def_property(srna, "stucci_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "type"); - RNA_def_property_enum_items(prop, prop_stucci_stype); - RNA_def_property_ui_text(prop, "Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "hard"); - RNA_def_property_enum_items(prop, prop_noise_type_items); - RNA_def_property_ui_text(prop, "Noise Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); } static void def_sh_tex_voronoi(StructRNA *srna) { - static EnumPropertyItem prop_distance_metric_items[] = { - {SHD_VORONOI_ACTUAL_DISTANCE, "DISTANCE", 0, "Actual Distance", ""}, - {SHD_VORONOI_DISTANCE_SQUARED, "DISTANCE_SQUARED", 0, "Distance Squared", ""}, - {SHD_VORONOI_MANHATTAN, "MANHATTAN", 0, "Manhattan", ""}, - {SHD_VORONOI_CHEBYCHEV, "CHEBYCHEV", 0, "Chebychev", ""}, - {SHD_VORONOI_MINKOVSKY_H, "MINKOVSKY_HALF", 0, "Minkovsky 1/2", ""}, - {SHD_VORONOI_MINKOVSKY_4, "MINKOVSKY_FOUR", 0, "Minkovsky 4", ""}, - {SHD_VORONOI_MINKOVSKY, "MINKOVSKY", 0, "Minkovsky", ""}, - {0, NULL, 0, NULL, NULL}}; - static EnumPropertyItem prop_coloring_items[] = { {SHD_VORONOI_INTENSITY, "INTENSITY", 0, "Intensity", "Only calculate intensity"}, - {SHD_VORONOI_POSITION, "POSITION", 0, "Position", "Color cells by position"}, - {SHD_VORONOI_POSITION_OUTLINE, "POSITION_OUTLINE", 0, "Position and Outline", "Use position plus an outline based on F2-F.1"}, - {SHD_VORONOI_POSITION_OUTLINE_INTENSITY, "POSITION_OUTLINE_INTENSITY", 0, "Position, Outline, and Intensity", "Multiply position and outline by intensity"}, + {SHD_VORONOI_CELLS, "CELLS", 0, "Cells", "Color cells by position"}, {0, NULL, 0, NULL, NULL}}; PropertyRNA *prop; @@ -1442,12 +1290,6 @@ static void def_sh_tex_voronoi(StructRNA *srna) RNA_def_struct_sdna_from(srna, "NodeTexVoronoi", "storage"); def_sh_tex(srna); - prop= RNA_def_property(srna, "distance_metric", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "distance_metric"); - RNA_def_property_enum_items(prop, prop_distance_metric_items); - RNA_def_property_ui_text(prop, "Distance Metric", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - prop= RNA_def_property(srna, "coloring", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "coloring"); RNA_def_property_enum_items(prop, prop_coloring_items); @@ -1455,41 +1297,21 @@ static void def_sh_tex_voronoi(StructRNA *srna) RNA_def_property_update(prop, 0, "rna_Node_update"); } -static void def_sh_tex_wood(StructRNA *srna) +static void def_sh_tex_wave(StructRNA *srna) { - static EnumPropertyItem prop_wood_type_items[] = { - {SHD_WOOD_BANDS, "BANDS", 0, "Bands", "Uses standard wood texture in bands"}, - {SHD_WOOD_RINGS, "RINGS", 0, "Rings", "Uses wood texture in rings"}, - {SHD_WOOD_BAND_NOISE, "BAND_NOISE", 0, "Band Noise", "Adds noise to standard wood"}, - {SHD_WOOD_RING_NOISE, "RING_NOISE", 0, "Ring Noise", "Adds noise to rings"}, + static EnumPropertyItem prop_wave_type_items[] = { + {SHD_WAVE_BANDS, "BANDS", 0, "Bands", "Uses standard wave texture in bands"}, + {SHD_WAVE_RINGS, "RINGS", 0, "Rings", "Uses wave texture in rings"}, {0, NULL, 0, NULL, NULL}}; PropertyRNA *prop; - RNA_def_struct_sdna_from(srna, "NodeTexWood", "storage"); + RNA_def_struct_sdna_from(srna, "NodeTexWave", "storage"); def_sh_tex(srna); - prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "basis"); - RNA_def_property_enum_items(prop, prop_noise_basis_items); - RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "hard"); - RNA_def_property_enum_items(prop, prop_noise_type_items); - RNA_def_property_ui_text(prop, "Noise Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - - prop= RNA_def_property(srna, "wood_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "type"); - RNA_def_property_enum_items(prop, prop_wood_type_items); - RNA_def_property_ui_text(prop, "Wood Type", ""); - RNA_def_property_update(prop, 0, "rna_Node_update"); - prop= RNA_def_property(srna, "wave_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "wave"); - RNA_def_property_enum_items(prop, prop_wave_items); + RNA_def_property_enum_sdna(prop, NULL, "wave_type"); + RNA_def_property_enum_items(prop, prop_wave_type_items); RNA_def_property_ui_text(prop, "Wave Type", ""); RNA_def_property_update(prop, 0, "rna_Node_update"); } diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index c74d8943bcf..911501efc04 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -58,7 +58,7 @@ DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPU //DefNode( ShaderNode, SH_NODE_OUTPUT_TEXTURE, 0, "OUTPUT_TEXTURE", OutputTexture, "Texture Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) -DefNode( ShaderNode, SH_NODE_BLEND_WEIGHT, 0, "BLEND_WEIGHT", BlendWeight, "BlendWeight", "" ) +DefNode( ShaderNode, SH_NODE_LAYER_WEIGHT, 0, "LAYER_WEIGHT", LayerWeight, "LayerWeight", "" ) DefNode( ShaderNode, SH_NODE_MIX_SHADER, 0, "MIX_SHADER", MixShader, "Mix Shader", "" ) DefNode( ShaderNode, SH_NODE_ADD_SHADER, 0, "ADD_SHADER", AddShader, "Add Shader", "" ) @@ -79,17 +79,13 @@ DefNode( ShaderNode, SH_NODE_GEOMETRY, 0, "GE DefNode( ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIGHT_PATH", Light_path, "Light_path", "") DefNode( ShaderNode, SH_NODE_TEX_IMAGE, def_sh_tex_image, "TEX_IMAGE", TexImage, "Image Texture", "") DefNode( ShaderNode, SH_NODE_TEX_ENVIRONMENT, def_sh_tex_environment, "TEX_ENVIRONMENT", TexEnvironment, "Environment Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_NOISE, def_sh_tex_noise, "TEX_NOISE", TexNoise, "Noise Texture", "") DefNode( ShaderNode, SH_NODE_TEX_SKY, def_sh_tex_sky, "TEX_SKY", TexSky, "Sky Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_BLEND, def_sh_tex_blend, "TEX_BLEND", TexBlend, "Blend Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_CLOUDS, def_sh_tex_clouds, "TEX_CLOUDS", TexClouds, "Clouds Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_DISTNOISE, def_sh_tex_distnoise, "TEX_DISTORTED_NOISE", TexDistortedNoise, "Distorted Noise Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_GRADIENT, def_sh_tex_gradient, "TEX_GRADIENT", TexGradient, "Gradient Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_NOISE, def_sh_tex_noise, "TEX_NOISE", TexNoise, "Noise Texture", "") DefNode( ShaderNode, SH_NODE_TEX_MAGIC, def_sh_tex_magic, "TEX_MAGIC", TexMagic, "Magic Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_MARBLE, def_sh_tex_marble, "TEX_MARBLE", TexMarble, "Marble Texture", "") +DefNode( ShaderNode, SH_NODE_TEX_WAVE, def_sh_tex_wave, "TEX_WAVE", TexWave, "Wave Texture", "") DefNode( ShaderNode, SH_NODE_TEX_MUSGRAVE, def_sh_tex_musgrave, "TEX_MUSGRAVE", TexMusgrave, "Musgrave Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_STUCCI, def_sh_tex_stucci, "TEX_STUCCI", TexStucci, "Stucci Texture", "") DefNode( ShaderNode, SH_NODE_TEX_VORONOI, def_sh_tex_voronoi, "TEX_VORONOI", TexVoronoi, "Voronoi Texture", "") -DefNode( ShaderNode, SH_NODE_TEX_WOOD, def_sh_tex_wood, "TEX_WOOD", TexWood, "Wood Texture", "") DefNode( ShaderNode, SH_NODE_TEX_COORD, 0, "TEX_COORD", TexCoord, "Texture Coordinate", "") DefNode( CompositorNode, CMP_NODE_VIEWER, 0, "VIEWER", Viewer, "Viewer", "" ) -- cgit v1.2.3