4 * ***** BEGIN GPL LICENSE BLOCK *****
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software Foundation,
18 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 * Contributor(s): Blender Foundation (2008).
22 * ***** END GPL LICENSE BLOCK *****
28 #include "RNA_define.h"
29 #include "RNA_types.h"
31 #include "rna_internal.h"
33 #include "DNA_material_types.h"
34 #include "DNA_texture_types.h"
35 #include "DNA_world_types.h"
41 static PointerRNA rna_World_ambient_occlusion_get(PointerRNA *ptr)
43 return rna_pointer_inherit_refine(ptr, &RNA_WorldAmbientOcclusion, ptr->id.data);
46 static PointerRNA rna_World_stars_get(PointerRNA *ptr)
48 return rna_pointer_inherit_refine(ptr, &RNA_WorldStarsSettings, ptr->id.data);
51 static PointerRNA rna_World_mist_get(PointerRNA *ptr)
53 return rna_pointer_inherit_refine(ptr, &RNA_WorldMistSettings, ptr->id.data);
56 static void rna_World_mtex_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
58 World *wo= (World*)ptr->data;
59 rna_iterator_array_begin(iter, (void*)wo->mtex, sizeof(MTex*), MAX_MTEX, 0, NULL);
62 static PointerRNA rna_World_active_texture_get(PointerRNA *ptr)
64 World *wo= (World*)ptr->data;
66 return rna_pointer_inherit_refine(ptr, &RNA_TextureSlot, wo->mtex[(int)wo->texact]);
71 static void rna_def_world_mtex(BlenderRNA *brna)
76 static EnumPropertyItem texco_items[] = {
77 {TEXCO_VIEW, "VIEW", 0, "View", "Uses view vector for the texture coordinates."},
78 {TEXCO_GLOB, "GLOBAL", 0, "Global", "Uses global coordinates for the texture coordinates (interior mist)."},
79 {TEXCO_ANGMAP, "ANGMAP", 0, "AngMap", "Uses 360 degree angular coordinates, e.g. for spherical light probes."},
80 {TEXCO_H_SPHEREMAP, "SPHERE", 0, "Sphere", "For 360 degree panorama sky, spherical mapped, only top half."},
81 {TEXCO_H_TUBEMAP, "TUBE", 0, "Tube", "For 360 degree panorama sky, cylindrical mapped, only top half."},
82 {TEXCO_OBJECT, "OBJECT", 0, "Object", "Uses linked object's coordinates for texture coordinates."},
83 {0, NULL, 0, NULL, NULL}};
85 srna= RNA_def_struct(brna, "WorldTextureSlot", "TextureSlot");
86 RNA_def_struct_sdna(srna, "MTex");
87 RNA_def_struct_ui_text(srna, "World Texture Slot", "Texture slot for textures in a World datablock.");
90 prop= RNA_def_property(srna, "map_to_blend", PROP_BOOLEAN, PROP_NONE);
91 RNA_def_property_boolean_sdna(prop, NULL, "mapto", WOMAP_BLEND);
92 RNA_def_property_ui_text(prop, "Map To Blend", "Affect the color progression of the background.");
94 prop= RNA_def_property(srna, "map_to_horizon", PROP_BOOLEAN, PROP_NONE);
95 RNA_def_property_boolean_sdna(prop, NULL, "mapto", WOMAP_HORIZ);
96 RNA_def_property_ui_text(prop, "Map To Horizon", "Affect the color of the horizon.");
98 prop= RNA_def_property(srna, "map_to_zenith_up", PROP_BOOLEAN, PROP_NONE);
99 RNA_def_property_boolean_sdna(prop, NULL, "mapto", WOMAP_ZENUP);
100 RNA_def_property_ui_text(prop, "Map To Zenith Up", "Affect the color of the zenith above.");
102 prop= RNA_def_property(srna, "map_to_zenith_down", PROP_BOOLEAN, PROP_NONE);
103 RNA_def_property_boolean_sdna(prop, NULL, "mapto", WOMAP_ZENDOWN);
104 RNA_def_property_ui_text(prop, "Map To Zenith Down", "Affect the color of the zenith below.");
107 prop= RNA_def_property(srna, "map_to_mist", PROP_BOOLEAN, PROP_NONE);
108 RNA_def_property_boolean_sdna(prop, NULL, "mapto", WOMAP_MIST);
109 RNA_def_property_ui_text(prop, "Map To Mist", "Causes the texture to affect the intensity of the mist.");*/
111 prop= RNA_def_property(srna, "texture_coordinates", PROP_ENUM, PROP_NONE);
112 RNA_def_property_enum_sdna(prop, NULL, "texco");
113 RNA_def_property_enum_items(prop, texco_items);
114 RNA_def_property_ui_text(prop, "Texture Coordinates", "Texture coordinates used to map the texture onto the background.");
116 prop= RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
117 RNA_def_property_pointer_sdna(prop, NULL, "object");
118 RNA_def_property_struct_type(prop, "Object");
119 RNA_def_property_flag(prop, PROP_EDITABLE);
120 RNA_def_property_ui_text(prop, "Object", "Object to use for mapping with Object texture coordinates.");
123 static void rna_def_ambient_occlusion(BlenderRNA *brna)
128 static EnumPropertyItem blend_mode_items[] = {
129 {WO_AOADD, "ADD", 0, "Add", "Add light and shadow."},
130 {WO_AOSUB, "SUBTRACT", 0, "Subtract", "Subtract light and shadow (needs a normal light to make anything visible.)"},
131 {WO_AOADDSUB, "BOTH", 0, "Both", "Both lighten and darken."},
132 {0, NULL, 0, NULL, NULL}};
134 static EnumPropertyItem prop_color_items[] = {
135 {WO_AOPLAIN, "PLAIN", 0, "White", "Plain diffuse energy (white.)"},
136 {WO_AOSKYCOL, "SKY_COLOR", 0, "Sky Color", "Use horizon and zenith color for diffuse energy."},
137 {WO_AOSKYTEX, "SKY_TEXTURE", 0, "Sky Texture", "Does full Sky texture render for diffuse energy."},
138 {0, NULL, 0, NULL, NULL}};
140 static EnumPropertyItem prop_sample_method_items[] = {
141 {WO_AOSAMP_CONSTANT, "CONSTANT_JITTERED", 0, "Constant Jittered", ""},
142 {WO_AOSAMP_HALTON, "ADAPTIVE_QMC", 0, "Adaptive QMC", "Fast in high-contrast areas."},
143 {WO_AOSAMP_HAMMERSLEY, "CONSTANT_QMC", 0, "Constant QMC", "Best quality."},
144 {0, NULL, 0, NULL, NULL}};
146 static EnumPropertyItem prop_gather_method_items[] = {
147 {WO_AOGATHER_RAYTRACE, "RAYTRACE", 0, "Raytrace", "Accurate, but slow when noise-free results are required."},
148 {WO_AOGATHER_APPROX, "APPROXIMATE", 0, "Approximate", "Inaccurate, but faster and without noise."},
149 {0, NULL, 0, NULL, NULL}};
151 srna= RNA_def_struct(brna, "WorldAmbientOcclusion", NULL);
152 RNA_def_struct_sdna(srna, "World");
153 RNA_def_struct_nested(brna, srna, "World");
154 RNA_def_struct_ui_text(srna, "Ambient Occlusion", "Ambient occlusion settings for a World datablock.");
156 prop= RNA_def_property(srna, "enabled", PROP_BOOLEAN, PROP_NONE);
157 RNA_def_property_boolean_sdna(prop, NULL, "mode", WO_AMB_OCC);
158 RNA_def_property_ui_text(prop, "Enabled", "Use Ambient Occlusion to add light based on distance between elements, creating the illusion of omnipresent light");
160 prop= RNA_def_property(srna, "distance", PROP_FLOAT, PROP_NONE);
161 RNA_def_property_float_sdna(prop, NULL, "aodist");
162 RNA_def_property_ui_text(prop, "Distance", "Length of rays, defines how far away other faces give occlusion effect.");
164 prop= RNA_def_property(srna, "strength", PROP_FLOAT, PROP_NONE);
165 RNA_def_property_float_sdna(prop, NULL, "aodistfac");
166 RNA_def_property_ui_text(prop, "Strength", "Distance attenuation factor, the higher, the 'shorter' the shadows.");
168 prop= RNA_def_property(srna, "energy", PROP_FLOAT, PROP_NONE);
169 RNA_def_property_float_sdna(prop, NULL, "aoenergy");
170 RNA_def_property_ui_range(prop, 0, 10, 0.1, 3);
171 RNA_def_property_ui_text(prop, "Energy", "Amount of enerygy generated by ambient occlusion.");
173 prop= RNA_def_property(srna, "bias", PROP_FLOAT, PROP_NONE);
174 RNA_def_property_float_sdna(prop, NULL, "aobias");
175 RNA_def_property_range(prop, 0, 0.5);
176 RNA_def_property_ui_text(prop, "Bias", "Bias (in radians) to prevent smoothed faces from showing banding (for Raytrace Constant Jittered).");
178 prop= RNA_def_property(srna, "threshold", PROP_FLOAT, PROP_NONE);
179 RNA_def_property_float_sdna(prop, NULL, "ao_adapt_thresh");
180 RNA_def_property_range(prop, 0, 1);
181 RNA_def_property_ui_text(prop, "Threshold", "Samples below this threshold will be considered fully shadowed/unshadowed and skipped (for Raytrace Adaptive QMC).");
183 prop= RNA_def_property(srna, "adapt_to_speed", PROP_FLOAT, PROP_NONE);
184 RNA_def_property_float_sdna(prop, NULL, "ao_adapt_speed_fac");
185 RNA_def_property_range(prop, 0, 1);
186 RNA_def_property_ui_text(prop, "Adapt To Speed", "Use the speed vector pass to reduce AO samples in fast moving pixels. Higher values result in more aggressive sample reduction. Requires Vec pass enabled (for Raytrace Adaptive QMC).");
188 prop= RNA_def_property(srna, "error_tolerance", PROP_FLOAT, PROP_NONE);
189 RNA_def_property_float_sdna(prop, NULL, "ao_approx_error");
190 RNA_def_property_range(prop, 0.0001, 10);
191 RNA_def_property_ui_text(prop, "Error Tolerance", "Low values are slower and higher quality (for Approximate).");
193 prop= RNA_def_property(srna, "correction", PROP_FLOAT, PROP_NONE);
194 RNA_def_property_float_sdna(prop, NULL, "ao_approx_correction");
195 RNA_def_property_range(prop, 0, 1);
196 RNA_def_property_ui_range(prop, 0, 1, 0.1, 2);
197 RNA_def_property_ui_text(prop, "Correction", "Ad-hoc correction for over-occlusion due to the approximation (for Approximate).");
199 prop= RNA_def_property(srna, "falloff", PROP_BOOLEAN, PROP_NONE);
200 RNA_def_property_boolean_sdna(prop, NULL, "aomode", WO_AODIST);
201 RNA_def_property_ui_text(prop, "Falloff", "");
203 prop= RNA_def_property(srna, "pixel_cache", PROP_BOOLEAN, PROP_NONE);
204 RNA_def_property_boolean_sdna(prop, NULL, "aomode", WO_AOCACHE);
205 RNA_def_property_ui_text(prop, "Pixel Cache", "Cache AO results in pixels and interpolate over neighbouring pixels for speedup (for Approximate).");
207 prop= RNA_def_property(srna, "samples", PROP_INT, PROP_NONE);
208 RNA_def_property_int_sdna(prop, NULL, "aosamp");
209 RNA_def_property_range(prop, 1, 32);
210 RNA_def_property_ui_text(prop, "Samples", "Amount of ray samples. Higher values give smoother results and longer rendering times");
212 prop= RNA_def_property(srna, "blend_mode", PROP_ENUM, PROP_NONE);
213 RNA_def_property_enum_sdna(prop, NULL, "aomix");
214 RNA_def_property_enum_items(prop, blend_mode_items);
215 RNA_def_property_ui_text(prop, "Blend Mode", "Defines how AO mixes with material shading.");
217 prop= RNA_def_property(srna, "color", PROP_ENUM, PROP_NONE);
218 RNA_def_property_enum_sdna(prop, NULL, "aocolor");
219 RNA_def_property_enum_items(prop, prop_color_items);
220 RNA_def_property_ui_text(prop, "Color", "Defines the color of the AO light");
222 prop= RNA_def_property(srna, "sample_method", PROP_ENUM, PROP_NONE);
223 RNA_def_property_enum_sdna(prop, NULL, "ao_samp_method");
224 RNA_def_property_enum_items(prop, prop_sample_method_items);
225 RNA_def_property_ui_text(prop, "Sample Method", "Method for generating shadow samples (for Raytrace).");
227 prop= RNA_def_property(srna, "gather_method", PROP_ENUM, PROP_NONE);
228 RNA_def_property_enum_sdna(prop, NULL, "ao_gather_method");
229 RNA_def_property_enum_items(prop, prop_gather_method_items);
230 RNA_def_property_ui_text(prop, "Gather Method", "");
232 prop= RNA_def_property(srna, "passes", PROP_INT, PROP_NONE);
233 RNA_def_property_int_sdna(prop, NULL, "ao_approx_passes");
234 RNA_def_property_range(prop, 0, 10);
235 RNA_def_property_ui_text(prop, "Passes", "Number of preprocessing passes to reduce overocclusion (for Approximate).");
238 static void rna_def_world_mist(BlenderRNA *brna)
243 static EnumPropertyItem falloff_items[] = {
244 {0, "QUADRATIC", 0, "Quadratic", "Mist uses quadratic progression."},
245 {1, "LINEAR", 0, "Linear", "Mist uses linear progression."},
246 {2, "INVERSE_QUADRATIC", 0, "Inverse Quadratic", "Mist uses inverse quadratic progression."},
247 {0, NULL, 0, NULL, NULL}};
249 srna= RNA_def_struct(brna, "WorldMistSettings", NULL);
250 RNA_def_struct_sdna(srna, "World");
251 RNA_def_struct_nested(brna, srna, "World");
252 RNA_def_struct_ui_text(srna, "World Mist", "Mist settings for a World data-block.");
254 prop= RNA_def_property(srna, "enabled", PROP_BOOLEAN, PROP_NONE);
255 RNA_def_property_boolean_sdna(prop, NULL, "mode", WO_MIST);
256 RNA_def_property_ui_text(prop, "Enabled", "Occlude objects with the environment color as they are further away.");
258 prop= RNA_def_property(srna, "intensity", PROP_FLOAT, PROP_NONE);
259 RNA_def_property_float_sdna(prop, NULL, "misi");
260 RNA_def_property_range(prop, 0, 1);
261 RNA_def_property_ui_text(prop, "Intensity", "Intensity of the mist effect.");
263 prop= RNA_def_property(srna, "start", PROP_FLOAT, PROP_NONE);
264 RNA_def_property_float_sdna(prop, NULL, "miststa");
265 RNA_def_property_range(prop, 0, FLT_MAX);
266 RNA_def_property_ui_range(prop, 0, 10000, 10, 2);
267 RNA_def_property_ui_text(prop, "Start", "Starting distance of the mist, measured from the camera");
269 prop= RNA_def_property(srna, "depth", PROP_FLOAT, PROP_NONE);
270 RNA_def_property_float_sdna(prop, NULL, "mistdist");
271 RNA_def_property_range(prop, 0, FLT_MAX);
272 RNA_def_property_ui_range(prop, 0, 10000, 10, 2);
273 RNA_def_property_ui_text(prop, "Depth", "The distance over which the mist effect fades in");
275 prop= RNA_def_property(srna, "height", PROP_FLOAT, PROP_NONE);
276 RNA_def_property_float_sdna(prop, NULL, "misthi");
277 RNA_def_property_range(prop, 0, 100);
278 RNA_def_property_ui_text(prop, "Height", "Control how much mist density decreases with height");
280 prop= RNA_def_property(srna, "falloff", PROP_ENUM, PROP_NONE);
281 RNA_def_property_enum_sdna(prop, NULL, "mistype");
282 RNA_def_property_enum_items(prop, falloff_items);
283 RNA_def_property_ui_text(prop, "Falloff", "Type of transition used to fade mist");
286 static void rna_def_world_stars(BlenderRNA *brna)
291 srna= RNA_def_struct(brna, "WorldStarsSettings", NULL);
292 RNA_def_struct_sdna(srna, "World");
293 RNA_def_struct_nested(brna, srna, "World");
294 RNA_def_struct_ui_text(srna, "World Stars", "Stars setting for a World data-block.");
296 prop= RNA_def_property(srna, "enabled", PROP_BOOLEAN, PROP_NONE);
297 RNA_def_property_boolean_sdna(prop, NULL, "mode", WO_STARS);
298 RNA_def_property_ui_text(prop, "Enabled", "Enable starfield generation.");
299 RNA_def_property_update(prop, NC_WORLD, NULL);
301 prop= RNA_def_property(srna, "size", PROP_FLOAT, PROP_NONE);
302 RNA_def_property_float_sdna(prop, NULL, "starsize");
303 RNA_def_property_range(prop, 0, 10);
304 RNA_def_property_ui_text(prop, "Size", "Average screen dimension of stars.");
305 RNA_def_property_update(prop, NC_WORLD, NULL);
307 prop= RNA_def_property(srna, "min_distance", PROP_FLOAT, PROP_NONE);
308 RNA_def_property_float_sdna(prop, NULL, "starmindist");
309 RNA_def_property_range(prop, 0, 1000);
310 RNA_def_property_ui_text(prop, "Minimum Distance", "Minimum distance to the camera for stars.");
311 RNA_def_property_update(prop, NC_WORLD, NULL);
313 prop= RNA_def_property(srna, "average_separation", PROP_FLOAT, PROP_NONE);
314 RNA_def_property_float_sdna(prop, NULL, "stardist");
315 RNA_def_property_range(prop, 2, 1000);
316 RNA_def_property_ui_text(prop, "Average Separation", "Average distance between any two stars.");
317 RNA_def_property_update(prop, NC_WORLD, NULL);
319 prop= RNA_def_property(srna, "color_randomization", PROP_FLOAT, PROP_NONE);
320 RNA_def_property_float_sdna(prop, NULL, "starcolnoise");
321 RNA_def_property_range(prop, 0, 1);
322 RNA_def_property_ui_text(prop, "Color Randomization", "Randomize star colors.");
323 RNA_def_property_update(prop, NC_WORLD, NULL);
326 prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR);
327 RNA_def_property_float_sdna(prop, NULL, "starr");
328 RNA_def_property_array(prop, 3);
329 RNA_def_property_ui_text(prop, "Color", "Stars color.");*/
332 void RNA_def_world(BlenderRNA *brna)
337 static EnumPropertyItem physics_engine_items[] = {
338 {WOPHY_NONE, "NONE", 0, "None", ""},
339 //{WOPHY_ENJI, "ENJI", 0, "Enji", ""},
340 //{WOPHY_SUMO, "SUMO", 0, "Sumo (Deprecated)", ""},
341 //{WOPHY_DYNAMO, "DYNAMO", 0, "Dynamo", ""},
342 //{WOPHY_ODE, "ODE", 0, "ODE", ""},
343 {WOPHY_BULLET, "BULLET", 0, "Bullet", ""},
344 {0, NULL, 0, NULL, NULL}};
346 srna= RNA_def_struct(brna, "World", "ID");
347 RNA_def_struct_ui_text(srna, "World", "World datablock describing the environment and ambient lighting of a scene.");
348 RNA_def_struct_ui_icon(srna, ICON_WORLD_DATA);
350 rna_def_animdata_common(srna);
351 rna_def_mtex_common(srna, "rna_World_mtex_begin", "rna_World_active_texture_get", "WorldTextureSlot");
354 prop= RNA_def_property(srna, "horizon_color", PROP_FLOAT, PROP_COLOR);
355 RNA_def_property_float_sdna(prop, NULL, "horr");
356 RNA_def_property_array(prop, 3);
357 RNA_def_property_ui_text(prop, "Horizon Color", "Color at the horizon.");
358 RNA_def_property_update(prop, NC_WORLD, NULL);
360 prop= RNA_def_property(srna, "zenith_color", PROP_FLOAT, PROP_COLOR);
361 RNA_def_property_float_sdna(prop, NULL, "zenr");
362 RNA_def_property_array(prop, 3);
363 RNA_def_property_ui_text(prop, "Zenith Color", "Color at the zenith.");
364 RNA_def_property_update(prop, NC_WORLD, NULL);
366 prop= RNA_def_property(srna, "ambient_color", PROP_FLOAT, PROP_COLOR);
367 RNA_def_property_float_sdna(prop, NULL, "ambr");
368 RNA_def_property_array(prop, 3);
369 RNA_def_property_ui_text(prop, "Ambient Color", "");
372 prop= RNA_def_property(srna, "exposure", PROP_FLOAT, PROP_NONE);
373 RNA_def_property_float_sdna(prop, NULL, "exp");
374 RNA_def_property_range(prop, 0.0, 1.0);
375 RNA_def_property_ui_text(prop, "Exposure", "Amount of exponential color correction for light.");
377 prop= RNA_def_property(srna, "range", PROP_FLOAT, PROP_NONE);
378 RNA_def_property_float_sdna(prop, NULL, "range");
379 RNA_def_property_range(prop, 0.2, 5.0);
380 RNA_def_property_ui_text(prop, "Range", "The color range that will be mapped to 0-1.");
383 prop= RNA_def_property(srna, "blend_sky", PROP_BOOLEAN, PROP_NONE);
384 RNA_def_property_boolean_sdna(prop, NULL, "skytype", WO_SKYBLEND);
385 RNA_def_property_ui_text(prop, "Blend Sky", "Render background with natural progression from horizon to zenith.");
386 RNA_def_property_update(prop, NC_WORLD, NULL);
388 prop= RNA_def_property(srna, "paper_sky", PROP_BOOLEAN, PROP_NONE);
389 RNA_def_property_boolean_sdna(prop, NULL, "skytype", WO_SKYPAPER);
390 RNA_def_property_ui_text(prop, "Paper Sky", "Flatten blend or texture coordinates.");
391 RNA_def_property_update(prop, NC_WORLD, NULL);
393 prop= RNA_def_property(srna, "real_sky", PROP_BOOLEAN, PROP_NONE);
394 RNA_def_property_boolean_sdna(prop, NULL, "skytype", WO_SKYREAL);
395 RNA_def_property_ui_text(prop, "Real Sky", "Render background with a real horizon, relative to the camera angle.");
396 RNA_def_property_update(prop, NC_WORLD, NULL);
399 prop= RNA_def_property(srna, "physics_engine", PROP_ENUM, PROP_NONE);
400 RNA_def_property_enum_sdna(prop, NULL, "physicsEngine");
401 RNA_def_property_enum_items(prop, physics_engine_items);
402 RNA_def_property_ui_text(prop, "Physics Engine", "Physics engine used for physics simulation in the game engine.");
404 prop= RNA_def_property(srna, "physics_gravity", PROP_FLOAT, PROP_NONE);
405 RNA_def_property_float_sdna(prop, NULL, "gravity");
406 RNA_def_property_range(prop, 0.0, 25.0);
407 RNA_def_property_ui_text(prop, "Physics Gravity", "Gravitational constant used for physics simulation in the game engine.");
410 prop= RNA_def_property(srna, "ambient_occlusion", PROP_POINTER, PROP_NEVER_NULL);
411 RNA_def_property_struct_type(prop, "WorldAmbientOcclusion");
412 RNA_def_property_pointer_funcs(prop, "rna_World_ambient_occlusion_get", NULL, NULL);
413 RNA_def_property_ui_text(prop, "Ambient Occlusion", "World ambient occlusion settings.");
415 prop= RNA_def_property(srna, "mist", PROP_POINTER, PROP_NEVER_NULL);
416 RNA_def_property_struct_type(prop, "WorldMistSettings");
417 RNA_def_property_pointer_funcs(prop, "rna_World_mist_get", NULL, NULL);
418 RNA_def_property_ui_text(prop, "Mist", "World mist settings.");
420 prop= RNA_def_property(srna, "stars", PROP_POINTER, PROP_NEVER_NULL);
421 RNA_def_property_struct_type(prop, "WorldStarsSettings");
422 RNA_def_property_pointer_funcs(prop, "rna_World_stars_get", NULL, NULL);
423 RNA_def_property_ui_text(prop, "Stars", "World stars settings.");
425 prop= RNA_def_property(srna, "script_link", PROP_POINTER, PROP_NEVER_NULL);
426 RNA_def_property_pointer_sdna(prop, NULL, "scriptlink");
427 RNA_def_property_ui_text(prop, "Script Link", "Scripts linked to this object.");
429 rna_def_ambient_occlusion(brna);
430 rna_def_world_mist(brna);
431 rna_def_world_stars(brna);
432 rna_def_world_mtex(brna);