[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36352] branches/cycles/intern: Cycles render engine, initial commit.

Ton Roosendaal ton at blender.org
Wed Apr 27 13:58:34 CEST 2011


Revision: 36352
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36352
Author:   ton
Date:     2011-04-27 11:58:34 +0000 (Wed, 27 Apr 2011)
Log Message:
-----------
Cycles render engine, initial commit. This is the engine itself, blender modifications and build instructions will follow later.

Cycles uses code from some great open source projects, many thanks them:

* BVH building and traversal code from NVidia's "Understanding the Efficiency of Ray Traversal on GPUs":
http://code.google.com/p/understanding-the-efficiency-of-ray-traversal-on-gpus/
* Open Shading Language for a large part of the shading system:
http://code.google.com/p/openshadinglanguage/
* Blender for procedural textures and a few other nodes.
* Approximate Catmull Clark subdivision from NVidia Mesh tools:
http://code.google.com/p/nvidia-mesh-tools/
* Sobol direction vectors from:
http://web.maths.unsw.edu.au/~fkuo/sobol/
* Film response functions from:
http://www.cs.columbia.edu/CAVE/software/softlib/dorf.php

Added Paths:
-----------
    branches/cycles/intern/cycles/
    branches/cycles/intern/cycles/CMakeLists.txt
    branches/cycles/intern/cycles/app/
    branches/cycles/intern/cycles/app/CMakeLists.txt
    branches/cycles/intern/cycles/app/cycles_server.cpp
    branches/cycles/intern/cycles/app/cycles_test.cpp
    branches/cycles/intern/cycles/app/cycles_xml.cpp
    branches/cycles/intern/cycles/app/cycles_xml.h
    branches/cycles/intern/cycles/blender/
    branches/cycles/intern/cycles/blender/CMakeLists.txt
    branches/cycles/intern/cycles/blender/addon/
    branches/cycles/intern/cycles/blender/addon/__init__.py
    branches/cycles/intern/cycles/blender/addon/engine.py
    branches/cycles/intern/cycles/blender/addon/enums.py
    branches/cycles/intern/cycles/blender/addon/properties.py
    branches/cycles/intern/cycles/blender/addon/ui.py
    branches/cycles/intern/cycles/blender/addon/xml.py
    branches/cycles/intern/cycles/blender/blender_camera.cpp
    branches/cycles/intern/cycles/blender/blender_mesh.cpp
    branches/cycles/intern/cycles/blender/blender_object.cpp
    branches/cycles/intern/cycles/blender/blender_python.cpp
    branches/cycles/intern/cycles/blender/blender_session.cpp
    branches/cycles/intern/cycles/blender/blender_session.h
    branches/cycles/intern/cycles/blender/blender_shader.cpp
    branches/cycles/intern/cycles/blender/blender_sync.cpp
    branches/cycles/intern/cycles/blender/blender_sync.h
    branches/cycles/intern/cycles/blender/blender_util.h
    branches/cycles/intern/cycles/bvh/
    branches/cycles/intern/cycles/bvh/CMakeLists.txt
    branches/cycles/intern/cycles/bvh/bvh.cpp
    branches/cycles/intern/cycles/bvh/bvh.h
    branches/cycles/intern/cycles/bvh/bvh_build.cpp
    branches/cycles/intern/cycles/bvh/bvh_build.h
    branches/cycles/intern/cycles/bvh/bvh_node.cpp
    branches/cycles/intern/cycles/bvh/bvh_node.h
    branches/cycles/intern/cycles/bvh/bvh_params.h
    branches/cycles/intern/cycles/bvh/bvh_sort.cpp
    branches/cycles/intern/cycles/bvh/bvh_sort.h
    branches/cycles/intern/cycles/cmake/
    branches/cycles/intern/cycles/cmake/create_dmg.py
    branches/cycles/intern/cycles/cmake/external_libs.cmake
    branches/cycles/intern/cycles/cmake/platforms.cmake
    branches/cycles/intern/cycles/device/
    branches/cycles/intern/cycles/device/CMakeLists.txt
    branches/cycles/intern/cycles/device/device.cpp
    branches/cycles/intern/cycles/device/device.h
    branches/cycles/intern/cycles/device/device_cpu.cpp
    branches/cycles/intern/cycles/device/device_cuda.cpp
    branches/cycles/intern/cycles/device/device_intern.h
    branches/cycles/intern/cycles/device/device_memory.h
    branches/cycles/intern/cycles/device/device_multi.cpp
    branches/cycles/intern/cycles/device/device_network.cpp
    branches/cycles/intern/cycles/device/device_network.h
    branches/cycles/intern/cycles/device/device_opencl.cpp
    branches/cycles/intern/cycles/doc/
    branches/cycles/intern/cycles/doc/CMakeLists.txt
    branches/cycles/intern/cycles/doc/development/
    branches/cycles/intern/cycles/doc/development/build.html
    branches/cycles/intern/cycles/doc/development/bvh.html
    branches/cycles/intern/cycles/doc/development/design.html
    branches/cycles/intern/cycles/doc/development/device_abstraction.html
    branches/cycles/intern/cycles/doc/development/displacement.html
    branches/cycles/intern/cycles/doc/development/feature_todo.html
    branches/cycles/intern/cycles/doc/development/geometric_issues.html
    branches/cycles/intern/cycles/doc/development/ideas.html
    branches/cycles/intern/cycles/doc/development/images/
    branches/cycles/intern/cycles/doc/development/images/rng_lcg_50_pass.png
    branches/cycles/intern/cycles/doc/development/images/rng_sobol_50_pass.png
    branches/cycles/intern/cycles/doc/development/index.html
    branches/cycles/intern/cycles/doc/development/kernel.html
    branches/cycles/intern/cycles/doc/development/known_issues.html
    branches/cycles/intern/cycles/doc/development/license.html
    branches/cycles/intern/cycles/doc/development/node_guidelines.html
    branches/cycles/intern/cycles/doc/development/optimization.html
    branches/cycles/intern/cycles/doc/development/osl_gpu.html
    branches/cycles/intern/cycles/doc/development/papers.html
    branches/cycles/intern/cycles/doc/development/sobol.html
    branches/cycles/intern/cycles/doc/development/source.html
    branches/cycles/intern/cycles/doc/development/subdivision.html
    branches/cycles/intern/cycles/doc/development/threads.html
    branches/cycles/intern/cycles/doc/development/threads.svg
    branches/cycles/intern/cycles/doc/development/units_colors.html
    branches/cycles/intern/cycles/doc/generate.py
    branches/cycles/intern/cycles/doc/index.html
    branches/cycles/intern/cycles/doc/license/
    branches/cycles/intern/cycles/doc/license/Apache_2.0.txt
    branches/cycles/intern/cycles/doc/license/Blender.txt
    branches/cycles/intern/cycles/doc/license/GPL.txt
    branches/cycles/intern/cycles/doc/license/ILM.txt
    branches/cycles/intern/cycles/doc/license/NVidia.txt
    branches/cycles/intern/cycles/doc/license/OSL.txt
    branches/cycles/intern/cycles/doc/license/Sobol.txt
    branches/cycles/intern/cycles/doc/license/readme.txt
    branches/cycles/intern/cycles/doc/reference/
    branches/cycles/intern/cycles/doc/reference/camera.html
    branches/cycles/intern/cycles/doc/reference/camera_ortho.svg
    branches/cycles/intern/cycles/doc/reference/camera_persp.svg
    branches/cycles/intern/cycles/doc/reference/curve.html
    branches/cycles/intern/cycles/doc/reference/devices.html
    branches/cycles/intern/cycles/doc/reference/displacement.html
    branches/cycles/intern/cycles/doc/reference/film.html
    branches/cycles/intern/cycles/doc/reference/index.html
    branches/cycles/intern/cycles/doc/reference/integrator.html
    branches/cycles/intern/cycles/doc/reference/interactive.html
    branches/cycles/intern/cycles/doc/reference/lamp.html
    branches/cycles/intern/cycles/doc/reference/material/
    branches/cycles/intern/cycles/doc/reference/material/displacement.html
    branches/cycles/intern/cycles/doc/reference/material/index.html
    branches/cycles/intern/cycles/doc/reference/material/material.svg
    branches/cycles/intern/cycles/doc/reference/material/surface.html
    branches/cycles/intern/cycles/doc/reference/material/volume.html
    branches/cycles/intern/cycles/doc/reference/mesh.html
    branches/cycles/intern/cycles/doc/reference/motion_blur.html
    branches/cycles/intern/cycles/doc/reference/particle.html
    branches/cycles/intern/cycles/doc/reference/shader/
    branches/cycles/intern/cycles/doc/reference/shader/background.html
    branches/cycles/intern/cycles/doc/reference/shader/bsdf.html
    branches/cycles/intern/cycles/doc/reference/shader/bsdf.svg
    branches/cycles/intern/cycles/doc/reference/shader/color_operations.html
    branches/cycles/intern/cycles/doc/reference/shader/custom.html
    branches/cycles/intern/cycles/doc/reference/shader/emission.html
    branches/cycles/intern/cycles/doc/reference/shader/image_textures.html
    branches/cycles/intern/cycles/doc/reference/shader/index.html
    branches/cycles/intern/cycles/doc/reference/shader/input.html
    branches/cycles/intern/cycles/doc/reference/shader/output.html
    branches/cycles/intern/cycles/doc/reference/shader/procedural_textures.html
    branches/cycles/intern/cycles/doc/reference/shader/vector_operations.html
    branches/cycles/intern/cycles/doc/reference/shader/volume.html
    branches/cycles/intern/cycles/doc/reference/shader/volume_textures.html
    branches/cycles/intern/cycles/doc/reference/subdivision.html
    branches/cycles/intern/cycles/doc/reference/units_colors.html
    branches/cycles/intern/cycles/doc/reference/world.html
    branches/cycles/intern/cycles/doc/style/
    branches/cycles/intern/cycles/doc/style/style.css
    branches/cycles/intern/cycles/doc/templates/
    branches/cycles/intern/cycles/doc/templates/development.html
    branches/cycles/intern/cycles/doc/templates/footer.html
    branches/cycles/intern/cycles/doc/templates/header.html
    branches/cycles/intern/cycles/doc/templates/index.html
    branches/cycles/intern/cycles/doc/templates/nodes.html
    branches/cycles/intern/cycles/doc/templates/reference.html
    branches/cycles/intern/cycles/kernel/
    branches/cycles/intern/cycles/kernel/CMakeLists.txt
    branches/cycles/intern/cycles/kernel/kernel.cl
    branches/cycles/intern/cycles/kernel/kernel.cpp
    branches/cycles/intern/cycles/kernel/kernel.cu
    branches/cycles/intern/cycles/kernel/kernel.h
    branches/cycles/intern/cycles/kernel/kernel_bvh.h
    branches/cycles/intern/cycles/kernel/kernel_camera.h
    branches/cycles/intern/cycles/kernel/kernel_compat_cpu.h
    branches/cycles/intern/cycles/kernel/kernel_compat_cuda.h
    branches/cycles/intern/cycles/kernel/kernel_compat_opencl.h
    branches/cycles/intern/cycles/kernel/kernel_differential.h
    branches/cycles/intern/cycles/kernel/kernel_displace.h
    branches/cycles/intern/cycles/kernel/kernel_emission.h
    branches/cycles/intern/cycles/kernel/kernel_film.h
    branches/cycles/intern/cycles/kernel/kernel_globals.h
    branches/cycles/intern/cycles/kernel/kernel_light.h
    branches/cycles/intern/cycles/kernel/kernel_math.h
    branches/cycles/intern/cycles/kernel/kernel_mbvh.h
    branches/cycles/intern/cycles/kernel/kernel_montecarlo.h
    branches/cycles/intern/cycles/kernel/kernel_object.h
    branches/cycles/intern/cycles/kernel/kernel_path.h
    branches/cycles/intern/cycles/kernel/kernel_qbvh.h
    branches/cycles/intern/cycles/kernel/kernel_random.h
    branches/cycles/intern/cycles/kernel/kernel_shader.h
    branches/cycles/intern/cycles/kernel/kernel_triangle.h
    branches/cycles/intern/cycles/kernel/kernel_types.h
    branches/cycles/intern/cycles/kernel/osl/
    branches/cycles/intern/cycles/kernel/osl/CMakeLists.txt
    branches/cycles/intern/cycles/kernel/osl/background.cpp
    branches/cycles/intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp
    branches/cycles/intern/cycles/kernel/osl/bsdf_diffuse.cpp
    branches/cycles/intern/cycles/kernel/osl/bsdf_microfacet.cpp
    branches/cycles/intern/cycles/kernel/osl/bsdf_reflection.cpp
    branches/cycles/intern/cycles/kernel/osl/bsdf_refraction.cpp
    branches/cycles/intern/cycles/kernel/osl/bsdf_transparent.cpp
    branches/cycles/intern/cycles/kernel/osl/bsdf_ward.cpp
    branches/cycles/intern/cycles/kernel/osl/bsdf_westin.cpp
    branches/cycles/intern/cycles/kernel/osl/bssrdf.cpp
    branches/cycles/intern/cycles/kernel/osl/debug.cpp
    branches/cycles/intern/cycles/kernel/osl/emissive.cpp
    branches/cycles/intern/cycles/kernel/osl/nodes/
    branches/cycles/intern/cycles/kernel/osl/nodes/CMakeLists.txt
    branches/cycles/intern/cycles/kernel/osl/nodes/node_add_closure.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_attribute.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_background.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_blend_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_bump.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_clouds_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_convert_from_color.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_convert_from_float.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_convert_from_normal.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_convert_from_point.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_convert_from_vector.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_diffuse_bsdf.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_distorted_noise_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_emission.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_environment_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_fresnel.h
    branches/cycles/intern/cycles/kernel/osl/nodes/node_fresnel.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_geometry.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_image_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_light_path.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_magic_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_mapping.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_marble_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_math.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_mix.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_mix_closure.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_noise_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_output_displacement.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_output_surface.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_output_volume.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_sky_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_stucci_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_texture.h
    branches/cycles/intern/cycles/kernel/osl/nodes/node_texture_coordinate.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_translucent_bsdf.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_transparent_bsdf.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_value.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_vector_math.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_ward_bsdf.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_wood_texture.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/stdosl.h
    branches/cycles/intern/cycles/kernel/osl/osl_closures.cpp
    branches/cycles/intern/cycles/kernel/osl/osl_closures.h
    branches/cycles/intern/cycles/kernel/osl/osl_globals.h
    branches/cycles/intern/cycles/kernel/osl/osl_services.cpp
    branches/cycles/intern/cycles/kernel/osl/osl_services.h
    branches/cycles/intern/cycles/kernel/osl/osl_shader.cpp
    branches/cycles/intern/cycles/kernel/osl/osl_shader.h
    branches/cycles/intern/cycles/kernel/osl/vol_subsurface.cpp
    branches/cycles/intern/cycles/kernel/svm/
    branches/cycles/intern/cycles/kernel/svm/bsdf.h
    branches/cycles/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h
    branches/cycles/intern/cycles/kernel/svm/bsdf_diffuse.h
    branches/cycles/intern/cycles/kernel/svm/bsdf_microfacet.h
    branches/cycles/intern/cycles/kernel/svm/bsdf_reflection.h
    branches/cycles/intern/cycles/kernel/svm/bsdf_refraction.h
    branches/cycles/intern/cycles/kernel/svm/bsdf_transparent.h
    branches/cycles/intern/cycles/kernel/svm/bsdf_ward.h
    branches/cycles/intern/cycles/kernel/svm/bsdf_westin.h
    branches/cycles/intern/cycles/kernel/svm/emissive.h
    branches/cycles/intern/cycles/kernel/svm/svm.h
    branches/cycles/intern/cycles/kernel/svm/svm_attribute.h
    branches/cycles/intern/cycles/kernel/svm/svm_blend.h
    branches/cycles/intern/cycles/kernel/svm/svm_bsdf.h
    branches/cycles/intern/cycles/kernel/svm/svm_closure.h
    branches/cycles/intern/cycles/kernel/svm/svm_clouds.h
    branches/cycles/intern/cycles/kernel/svm/svm_convert.h
    branches/cycles/intern/cycles/kernel/svm/svm_displace.h
    branches/cycles/intern/cycles/kernel/svm/svm_distorted_noise.h
    branches/cycles/intern/cycles/kernel/svm/svm_fresnel.h
    branches/cycles/intern/cycles/kernel/svm/svm_geometry.h
    branches/cycles/intern/cycles/kernel/svm/svm_image.h
    branches/cycles/intern/cycles/kernel/svm/svm_light_path.h
    branches/cycles/intern/cycles/kernel/svm/svm_magic.h
    branches/cycles/intern/cycles/kernel/svm/svm_mapping.h
    branches/cycles/intern/cycles/kernel/svm/svm_marble.h
    branches/cycles/intern/cycles/kernel/svm/svm_math.h
    branches/cycles/intern/cycles/kernel/svm/svm_mix.h
    branches/cycles/intern/cycles/kernel/svm/svm_musgrave.h
    branches/cycles/intern/cycles/kernel/svm/svm_noise.h
    branches/cycles/intern/cycles/kernel/svm/svm_noisetex.h
    branches/cycles/intern/cycles/kernel/svm/svm_sky.h
    branches/cycles/intern/cycles/kernel/svm/svm_stucci.h
    branches/cycles/intern/cycles/kernel/svm/svm_tex_coord.h
    branches/cycles/intern/cycles/kernel/svm/svm_texture.h
    branches/cycles/intern/cycles/kernel/svm/svm_types.h
    branches/cycles/intern/cycles/kernel/svm/svm_value.h
    branches/cycles/intern/cycles/kernel/svm/svm_voronoi.h
    branches/cycles/intern/cycles/kernel/svm/svm_wood.h
    branches/cycles/intern/cycles/kernel/svm/volume.h
    branches/cycles/intern/cycles/render/
    branches/cycles/intern/cycles/render/CMakeLists.txt
    branches/cycles/intern/cycles/render/attribute.cpp
    branches/cycles/intern/cycles/render/attribute.h
    branches/cycles/intern/cycles/render/background.cpp
    branches/cycles/intern/cycles/render/background.h
    branches/cycles/intern/cycles/render/buffers.cpp
    branches/cycles/intern/cycles/render/buffers.h
    branches/cycles/intern/cycles/render/camera.cpp
    branches/cycles/intern/cycles/render/camera.h
    branches/cycles/intern/cycles/render/film.cpp
    branches/cycles/intern/cycles/render/film.h
    branches/cycles/intern/cycles/render/film_response.cpp
    branches/cycles/intern/cycles/render/film_response.h
    branches/cycles/intern/cycles/render/filter.cpp
    branches/cycles/intern/cycles/render/filter.h
    branches/cycles/intern/cycles/render/graph.cpp
    branches/cycles/intern/cycles/render/graph.h
    branches/cycles/intern/cycles/render/image.cpp
    branches/cycles/intern/cycles/render/image.h
    branches/cycles/intern/cycles/render/integrator.cpp
    branches/cycles/intern/cycles/render/integrator.h
    branches/cycles/intern/cycles/render/light.cpp
    branches/cycles/intern/cycles/render/light.h
    branches/cycles/intern/cycles/render/mesh.cpp
    branches/cycles/intern/cycles/render/mesh.h
    branches/cycles/intern/cycles/render/mesh_displace.cpp
    branches/cycles/intern/cycles/render/nodes.cpp
    branches/cycles/intern/cycles/render/nodes.h
    branches/cycles/intern/cycles/render/object.cpp
    branches/cycles/intern/cycles/render/object.h
    branches/cycles/intern/cycles/render/osl.cpp
    branches/cycles/intern/cycles/render/osl.h
    branches/cycles/intern/cycles/render/scene.cpp
    branches/cycles/intern/cycles/render/scene.h
    branches/cycles/intern/cycles/render/session.cpp
    branches/cycles/intern/cycles/render/session.h
    branches/cycles/intern/cycles/render/shader.cpp
    branches/cycles/intern/cycles/render/shader.h
    branches/cycles/intern/cycles/render/sobol.cpp
    branches/cycles/intern/cycles/render/sobol.h
    branches/cycles/intern/cycles/render/svm.cpp
    branches/cycles/intern/cycles/render/svm.h
    branches/cycles/intern/cycles/render/tile.cpp
    branches/cycles/intern/cycles/render/tile.h
    branches/cycles/intern/cycles/subd/
    branches/cycles/intern/cycles/subd/CMakeLists.txt
    branches/cycles/intern/cycles/subd/subd_build.cpp
    branches/cycles/intern/cycles/subd/subd_build.h
    branches/cycles/intern/cycles/subd/subd_dice.cpp
    branches/cycles/intern/cycles/subd/subd_dice.h
    branches/cycles/intern/cycles/subd/subd_edge.h
    branches/cycles/intern/cycles/subd/subd_face.h
    branches/cycles/intern/cycles/subd/subd_mesh.cpp
    branches/cycles/intern/cycles/subd/subd_mesh.h
    branches/cycles/intern/cycles/subd/subd_patch.cpp
    branches/cycles/intern/cycles/subd/subd_patch.h
    branches/cycles/intern/cycles/subd/subd_ring.cpp
    branches/cycles/intern/cycles/subd/subd_ring.h
    branches/cycles/intern/cycles/subd/subd_split.cpp
    branches/cycles/intern/cycles/subd/subd_split.h
    branches/cycles/intern/cycles/subd/subd_stencil.cpp
    branches/cycles/intern/cycles/subd/subd_stencil.h
    branches/cycles/intern/cycles/subd/subd_vert.h
    branches/cycles/intern/cycles/test/
    branches/cycles/intern/cycles/test/models/
    branches/cycles/intern/cycles/test/models/cube.xml
    branches/cycles/intern/cycles/test/models/elephants.xml
    branches/cycles/intern/cycles/test/models/gumbo.xml
    branches/cycles/intern/cycles/test/models/suzanne.xml
    branches/cycles/intern/cycles/test/reference/
    branches/cycles/intern/cycles/test/reference/background.png
    branches/cycles/intern/cycles/test/reference/bsdf_add.png
    branches/cycles/intern/cycles/test/reference/bsdf_add_osl.png
    branches/cycles/intern/cycles/test/reference/bsdf_diffuse.png
    branches/cycles/intern/cycles/test/reference/bsdf_glass.png
    branches/cycles/intern/cycles/test/reference/bsdf_glossy.png
    branches/cycles/intern/cycles/test/reference/bsdf_glossy_gpu.png
    branches/cycles/intern/cycles/test/reference/bsdf_mix.png
    branches/cycles/intern/cycles/test/reference/bsdf_mix_osl.png
    branches/cycles/intern/cycles/test/reference/bsdf_reflection.png
    branches/cycles/intern/cycles/test/reference/bsdf_reflection_gpu.png
    branches/cycles/intern/cycles/test/reference/bsdf_refraction.png
    branches/cycles/intern/cycles/test/reference/bsdf_refraction_gpu.png
    branches/cycles/intern/cycles/test/reference/bsdf_transparent.png
    branches/cycles/intern/cycles/test/reference/bsdf_velvet.png
    branches/cycles/intern/cycles/test/reference/bsdf_velvet_osl.png
    branches/cycles/intern/cycles/test/reference/camera_clip_ortho.png
    branches/cycles/intern/cycles/test/reference/camera_clip_persp.png
    branches/cycles/intern/cycles/test/reference/camera_dof.png
    branches/cycles/intern/cycles/test/reference/camera_ortho.png
    branches/cycles/intern/cycles/test/reference/camera_persp.png
    branches/cycles/intern/cycles/test/reference/displace_both.png
    branches/cycles/intern/cycles/test/reference/displace_bump.png
    branches/cycles/intern/cycles/test/reference/displace_bump_attr.png
    branches/cycles/intern/cycles/test/reference/displace_true.png
    branches/cycles/intern/cycles/test/reference/emission.png
    branches/cycles/intern/cycles/test/reference/emission_total.png
    branches/cycles/intern/cycles/test/reference/geom_camera.png
    branches/cycles/intern/cycles/test/reference/geom_generated.png
    branches/cycles/intern/cycles/test/reference/geom_incoming.png
    branches/cycles/intern/cycles/test/reference/geom_normal.png
    branches/cycles/intern/cycles/test/reference/geom_object.png
    branches/cycles/intern/cycles/test/reference/geom_position.png
    branches/cycles/intern/cycles/test/reference/geom_tangent.png
    branches/cycles/intern/cycles/test/reference/geom_true_normal.png
    branches/cycles/intern/cycles/test/reference/geom_uv.png
    branches/cycles/intern/cycles/test/reference/geom_window.png
    branches/cycles/intern/cycles/test/reference/light_point.png
    branches/cycles/intern/cycles/test/reference/light_point_gpu.png
    branches/cycles/intern/cycles/test/reference/mesh_attribute.png
    branches/cycles/intern/cycles/test/reference/mesh_attribute_convert.png
    branches/cycles/intern/cycles/test/reference/mesh_none.png
    branches/cycles/intern/cycles/test/reference/mesh_one.png
    branches/cycles/intern/cycles/test/reference/mesh_two.png
    branches/cycles/intern/cycles/test/reference/mesh_zero.png
    branches/cycles/intern/cycles/test/reference/node_cycle.png
    branches/cycles/intern/cycles/test/reference/node_empty.png
    branches/cycles/intern/cycles/test/reference/node_math.png
    branches/cycles/intern/cycles/test/reference/node_mix.png
    branches/cycles/intern/cycles/test/reference/node_vector_math.png
    branches/cycles/intern/cycles/test/reference/patch_bicubic.png
    branches/cycles/intern/cycles/test/reference/patch_bilinear.png
    branches/cycles/intern/cycles/test/reference/patch_degenerate.png
    branches/cycles/intern/cycles/test/reference/subd_non_manifold.png
    branches/cycles/intern/cycles/test/reference/subd_one.png
    branches/cycles/intern/cycles/test/reference/subd_two.png
    branches/cycles/intern/cycles/test/reference/tex_blend.png
    branches/cycles/intern/cycles/test/reference/tex_clouds.png
    branches/cycles/intern/cycles/test/reference/tex_distorted_noise.png
    branches/cycles/intern/cycles/test/reference/tex_environment.png
    branches/cycles/intern/cycles/test/reference/tex_environment_osl.png
    branches/cycles/intern/cycles/test/reference/tex_image.png
    branches/cycles/intern/cycles/test/reference/tex_image_osl.png
    branches/cycles/intern/cycles/test/reference/tex_magic.png
    branches/cycles/intern/cycles/test/reference/tex_magic_gpu.png
    branches/cycles/intern/cycles/test/reference/tex_marble.png
    branches/cycles/intern/cycles/test/reference/tex_marble_gpu.png
    branches/cycles/intern/cycles/test/reference/tex_musgrave.png
    branches/cycles/intern/cycles/test/reference/tex_noise.png
    branches/cycles/intern/cycles/test/reference/tex_noise_osl.png
    branches/cycles/intern/cycles/test/reference/tex_sky.png
    branches/cycles/intern/cycles/test/reference/tex_stucci.png
    branches/cycles/intern/cycles/test/reference/tex_voronoi.png
    branches/cycles/intern/cycles/test/reference/tex_wood.png
    branches/cycles/intern/cycles/test/run.py
    branches/cycles/intern/cycles/test/stats/
    branches/cycles/intern/cycles/test/stats/background.xml
    branches/cycles/intern/cycles/test/stats/bsdf_diffuse.xml
    branches/cycles/intern/cycles/test/stats/bsdf_glossy.xml
    branches/cycles/intern/cycles/test/stats/bsdf_glossy_refraction.xml
    branches/cycles/intern/cycles/test/stats/bsdf_reflection.xml
    branches/cycles/intern/cycles/test/stats/bsdf_refraction.xml
    branches/cycles/intern/cycles/test/stats/bsdf_transparent.xml
    branches/cycles/intern/cycles/test/stats/camera_dof.xml
    branches/cycles/intern/cycles/test/stats/camera_ortho.xml
    branches/cycles/intern/cycles/test/stats/camera_persp.xml
    branches/cycles/intern/cycles/test/stats/displace_both.xml
    branches/cycles/intern/cycles/test/stats/displace_bump.xml
    branches/cycles/intern/cycles/test/stats/displace_true.xml
    branches/cycles/intern/cycles/test/stats/emission.xml
    branches/cycles/intern/cycles/test/stats/light_point.xml
    branches/cycles/intern/cycles/test/stats/mesh_attribute.xml
    branches/cycles/intern/cycles/test/stats/mesh_none.xml
    branches/cycles/intern/cycles/test/stats/mesh_one.xml
    branches/cycles/intern/cycles/test/stats/mesh_two.xml
    branches/cycles/intern/cycles/test/stats/mesh_zero.xml
    branches/cycles/intern/cycles/test/stats/patch_bicubic.xml
    branches/cycles/intern/cycles/test/stats/patch_bilinear.xml
    branches/cycles/intern/cycles/test/stats/patch_degenerate.xml
    branches/cycles/intern/cycles/test/stats/subd_non_manifold.xml
    branches/cycles/intern/cycles/test/stats/subd_one.xml
    branches/cycles/intern/cycles/test/stats/subd_two.xml
    branches/cycles/intern/cycles/test/stats/tex_blend.xml
    branches/cycles/intern/cycles/test/stats/tex_clouds.xml
    branches/cycles/intern/cycles/test/stats/tex_distorted_noise.xml
    branches/cycles/intern/cycles/test/stats/tex_image.xml
    branches/cycles/intern/cycles/test/stats/tex_magic.xml
    branches/cycles/intern/cycles/test/stats/tex_marble.xml
    branches/cycles/intern/cycles/test/stats/tex_musgrave.xml
    branches/cycles/intern/cycles/test/stats/tex_noise.xml
    branches/cycles/intern/cycles/test/stats/tex_sky.xml
    branches/cycles/intern/cycles/test/stats/tex_stucci.xml
    branches/cycles/intern/cycles/test/stats/tex_voronoi.xml
    branches/cycles/intern/cycles/test/stats/tex_wood.xml
    branches/cycles/intern/cycles/test/test_camera/
    branches/cycles/intern/cycles/test/test_camera/__init__.py
    branches/cycles/intern/cycles/test/test_camera/camera_clip_ortho.xml
    branches/cycles/intern/cycles/test/test_camera/camera_clip_persp.xml
    branches/cycles/intern/cycles/test/test_camera/camera_dof.xml
    branches/cycles/intern/cycles/test/test_camera/camera_ortho.xml
    branches/cycles/intern/cycles/test/test_camera/camera_persp.xml
    branches/cycles/intern/cycles/test/test_camera/camera_post.xml
    branches/cycles/intern/cycles/test/test_camera/camera_pre.xml
    branches/cycles/intern/cycles/test/test_closure/
    branches/cycles/intern/cycles/test/test_closure/__init__.py
    branches/cycles/intern/cycles/test/test_closure/background.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_add.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_diffuse.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_glass.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_glossy.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_mix.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_reflection.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_refraction.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_transparent.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_velvet.xml
    branches/cycles/intern/cycles/test/test_closure/closure_post.xml
    branches/cycles/intern/cycles/test/test_closure/closure_pre.xml
    branches/cycles/intern/cycles/test/test_closure/emission.xml
    branches/cycles/intern/cycles/test/test_closure/emission_total.xml
    branches/cycles/intern/cycles/test/test_config.py
    branches/cycles/intern/cycles/test/test_displace/
    branches/cycles/intern/cycles/test/test_displace/__init__.py
    branches/cycles/intern/cycles/test/test_displace/displace_both.xml
    branches/cycles/intern/cycles/test/test_displace/displace_bump.xml
    branches/cycles/intern/cycles/test/test_displace/displace_bump_attr.xml
    branches/cycles/intern/cycles/test/test_displace/displace_post.xml
    branches/cycles/intern/cycles/test/test_displace/displace_pre.xml
    branches/cycles/intern/cycles/test/test_displace/displace_true.xml
    branches/cycles/intern/cycles/test/test_geom/
    branches/cycles/intern/cycles/test/test_geom/__init__.py
    branches/cycles/intern/cycles/test/test_geom/geom_camera.xml
    branches/cycles/intern/cycles/test/test_geom/geom_generated.xml
    branches/cycles/intern/cycles/test/test_geom/geom_incoming.xml
    branches/cycles/intern/cycles/test/test_geom/geom_normal.xml
    branches/cycles/intern/cycles/test/test_geom/geom_object.xml
    branches/cycles/intern/cycles/test/test_geom/geom_position.xml
    branches/cycles/intern/cycles/test/test_geom/geom_post.xml
    branches/cycles/intern/cycles/test/test_geom/geom_pre.xml
    branches/cycles/intern/cycles/test/test_geom/geom_tangent.xml
    branches/cycles/intern/cycles/test/test_geom/geom_true_normal.xml
    branches/cycles/intern/cycles/test/test_geom/geom_uv.xml
    branches/cycles/intern/cycles/test/test_geom/geom_window.xml
    branches/cycles/intern/cycles/test/test_light/
    branches/cycles/intern/cycles/test/test_light/__init__.py
    branches/cycles/intern/cycles/test/test_light/light_point.xml
    branches/cycles/intern/cycles/test/test_light/light_post.xml
    branches/cycles/intern/cycles/test/test_light/light_pre.xml
    branches/cycles/intern/cycles/test/test_log.py
    branches/cycles/intern/cycles/test/test_mesh/
    branches/cycles/intern/cycles/test/test_mesh/__init__.py
    branches/cycles/intern/cycles/test/test_mesh/mesh_attribute.xml
    branches/cycles/intern/cycles/test/test_mesh/mesh_attribute_convert.xml
    branches/cycles/intern/cycles/test/test_mesh/mesh_none.xml
    branches/cycles/intern/cycles/test/test_mesh/mesh_one.xml
    branches/cycles/intern/cycles/test/test_mesh/mesh_pre.xml
    branches/cycles/intern/cycles/test/test_mesh/mesh_two.xml
    branches/cycles/intern/cycles/test/test_mesh/mesh_zero.xml
    branches/cycles/intern/cycles/test/test_node/
    branches/cycles/intern/cycles/test/test_node/__init__.py
    branches/cycles/intern/cycles/test/test_node/node_cycle.xml
    branches/cycles/intern/cycles/test/test_node/node_empty.xml
    branches/cycles/intern/cycles/test/test_node/node_math.xml
    branches/cycles/intern/cycles/test/test_node/node_mix.xml
    branches/cycles/intern/cycles/test/test_node/node_post.xml
    branches/cycles/intern/cycles/test/test_node/node_pre.xml
    branches/cycles/intern/cycles/test/test_node/node_vector_math.xml
    branches/cycles/intern/cycles/test/test_patch/
    branches/cycles/intern/cycles/test/test_patch/__init__.py
    branches/cycles/intern/cycles/test/test_patch/patch_bicubic.xml
    branches/cycles/intern/cycles/test/test_patch/patch_bilinear.xml
    branches/cycles/intern/cycles/test/test_patch/patch_degenerate.xml
    branches/cycles/intern/cycles/test/test_patch/patch_pre.xml
    branches/cycles/intern/cycles/test/test_perf.py
    branches/cycles/intern/cycles/test/test_plot.py
    branches/cycles/intern/cycles/test/test_subd/
    branches/cycles/intern/cycles/test/test_subd/__init__.py
    branches/cycles/intern/cycles/test/test_subd/subd_non_manifold.xml
    branches/cycles/intern/cycles/test/test_subd/subd_one.xml
    branches/cycles/intern/cycles/test/test_subd/subd_pre.xml
    branches/cycles/intern/cycles/test/test_subd/subd_two.xml
    branches/cycles/intern/cycles/test/test_texture/
    branches/cycles/intern/cycles/test/test_texture/__init__.py
    branches/cycles/intern/cycles/test/test_texture/image.png
    branches/cycles/intern/cycles/test/test_texture/tex_blend.xml
    branches/cycles/intern/cycles/test/test_texture/tex_clouds.xml
    branches/cycles/intern/cycles/test/test_texture/tex_distorted_noise.xml
    branches/cycles/intern/cycles/test/test_texture/tex_environment.xml
    branches/cycles/intern/cycles/test/test_texture/tex_image.xml
    branches/cycles/intern/cycles/test/test_texture/tex_magic.xml
    branches/cycles/intern/cycles/test/test_texture/tex_marble.xml
    branches/cycles/intern/cycles/test/test_texture/tex_musgrave.xml
    branches/cycles/intern/cycles/test/test_texture/tex_noise.xml
    branches/cycles/intern/cycles/test/test_texture/tex_post.xml
    branches/cycles/intern/cycles/test/test_texture/tex_pre.xml
    branches/cycles/intern/cycles/test/test_texture/tex_sky.xml
    branches/cycles/intern/cycles/test/test_texture/tex_stucci.xml
    branches/cycles/intern/cycles/test/test_texture/tex_voronoi.xml
    branches/cycles/intern/cycles/test/test_texture/tex_wood.xml
    branches/cycles/intern/cycles/test/test_util.py
    branches/cycles/intern/cycles/util/
    branches/cycles/intern/cycles/util/CMakeLists.txt
    branches/cycles/intern/cycles/util/util_algorithm.h
    branches/cycles/intern/cycles/util/util_args.h
    branches/cycles/intern/cycles/util/util_boundbox.h
    branches/cycles/intern/cycles/util/util_cache.cpp
    branches/cycles/intern/cycles/util/util_cache.h
    branches/cycles/intern/cycles/util/util_color.h
    branches/cycles/intern/cycles/util/util_cuda.cpp
    branches/cycles/intern/cycles/util/util_cuda.h
    branches/cycles/intern/cycles/util/util_debug.h
    branches/cycles/intern/cycles/util/util_dynlib.cpp
    branches/cycles/intern/cycles/util/util_dynlib.h
    branches/cycles/intern/cycles/util/util_foreach.h
    branches/cycles/intern/cycles/util/util_function.h
    branches/cycles/intern/cycles/util/util_hash.h
    branches/cycles/intern/cycles/util/util_image.h
    branches/cycles/intern/cycles/util/util_list.h
    branches/cycles/intern/cycles/util/util_map.h
    branches/cycles/intern/cycles/util/util_math.h
    branches/cycles/intern/cycles/util/util_md5.cpp
    branches/cycles/intern/cycles/util/util_md5.h
    branches/cycles/intern/cycles/util/util_opengl.h
    branches/cycles/intern/cycles/util/util_param.h
    branches/cycles/intern/cycles/util/util_path.cpp
    branches/cycles/intern/cycles/util/util_path.h
    branches/cycles/intern/cycles/util/util_progress.h
    branches/cycles/intern/cycles/util/util_set.h
    branches/cycles/intern/cycles/util/util_string.cpp
    branches/cycles/intern/cycles/util/util_string.h
    branches/cycles/intern/cycles/util/util_system.cpp
    branches/cycles/intern/cycles/util/util_system.h
    branches/cycles/intern/cycles/util/util_thread.h
    branches/cycles/intern/cycles/util/util_time.cpp
    branches/cycles/intern/cycles/util/util_time.h
    branches/cycles/intern/cycles/util/util_transform.cpp
    branches/cycles/intern/cycles/util/util_transform.h
    branches/cycles/intern/cycles/util/util_types.h
    branches/cycles/intern/cycles/util/util_vector.h
    branches/cycles/intern/cycles/util/util_view.cpp
    branches/cycles/intern/cycles/util/util_view.h
    branches/cycles/intern/cycles/util/util_xml.h

Added: branches/cycles/intern/cycles/CMakeLists.txt
===================================================================
--- branches/cycles/intern/cycles/CMakeLists.txt	                        (rev 0)
+++ branches/cycles/intern/cycles/CMakeLists.txt	2011-04-27 11:58:34 UTC (rev 36352)
@@ -0,0 +1,59 @@
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+PROJECT(cycles)
+SET(CYCLES_VERSION_MAJOR 0)
+SET(CYCLES_VERSION_MINOR 0)
+SET(CYCLES_VERSION ${CYCLES_VERSION_MAJOR}.${CYCLES_VERSION_MINOR})
+
+# Options
+
+OPTION(WITH_OSL "Build with Open Shading Language support" OFF)
+OPTION(WITH_CUDA "Build with CUDA support" OFF)
+OPTION(WITH_OPENCL "Build with OpenCL support (not working)" OFF)
+OPTION(WITH_BLENDER "Build Blender Python extension" OFF)
+OPTION(WITH_PARTIO "Build with Partio point cloud support (unfinished)" OFF)
+OPTION(WITH_NETWORK "Build with network rendering support (unfinished)" OFF)
+OPTION(WITH_MULTI "Build with network rendering support (unfinished)" OFF)
+OPTION(WITH_DOCS "Build html documentation" OFF)
+
+# Flags
+SET(CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for")
+SET(CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use")
+
+# Paths
+
+SET(OSL_PATH "" CACHE PATH "Path to OpenShadingLanguage installation")
+SET(OIIO_PATH "" CACHE PATH "Path to OpenImageIO installation")
+SET(BOOST_PATH "/usr" CACHE PATH "Path to Boost installation")
+SET(CUDA_PATH "/usr/local/cuda" CACHE PATH "Path to CUDA installation")
+SET(OPENCL_PATH "" CACHE PATH "Path to OpenCL installation")
+SET(PYTHON_PATH "" CACHE PATH "Path to Python installation")
+SET(BLENDER_PATH "" CACHE PATH "Path to Blender installation")
+SET(PARTIO_PATH "" CACHE PATH "Path to Partio installation")
+SET(GLEW_PATH "" CACHE PATH "Path to GLEW installation")
+SET(GLUT_PATH "" CACHE PATH "Path to GLUT installation")
+SET(INSTALL_PATH "${CMAKE_BINARY_DIR}/install" CACHE PATH "Path to install to")
+
+# External Libraries
+
+INCLUDE(cmake/external_libs.cmake)
+
+# Platforms
+
+INCLUDE(cmake/platforms.cmake)
+
+# Subdirectories
+
+IF(WITH_BLENDER)
+	ADD_SUBDIRECTORY(blender)
+ENDIF(WITH_BLENDER)
+
+ADD_SUBDIRECTORY(app)
+ADD_SUBDIRECTORY(bvh)
+ADD_SUBDIRECTORY(device)
+ADD_SUBDIRECTORY(doc)
+ADD_SUBDIRECTORY(kernel)
+ADD_SUBDIRECTORY(render)
+ADD_SUBDIRECTORY(subd)
+ADD_SUBDIRECTORY(util)
+

Added: branches/cycles/intern/cycles/app/CMakeLists.txt
===================================================================
--- branches/cycles/intern/cycles/app/CMakeLists.txt	                        (rev 0)
+++ branches/cycles/intern/cycles/app/CMakeLists.txt	2011-04-27 11:58:34 UTC (rev 36352)
@@ -0,0 +1,48 @@
+
+INCLUDE_DIRECTORIES(. ../device ../kernel ../kernel/svm ../bvh ../util ../render ../subd)
+
+SET(LIBRARIES
+	device
+	kernel
+	render
+	bvh
+	subd
+	util
+	${Boost_LIBRARIES}
+	${OPENGL_LIBRARIES}
+	${GLEW_LIBRARIES}
+	${OPENIMAGEIO_LIBRARY}
+	${GLUT_LIBRARIES})
+
+IF(WITH_OSL)
+	LIST(APPEND LIBRARIES kernel_osl ${OSL_LIBRARIES})
+ENDIF(WITH_OSL)
+
+IF(WITH_PARTIO)
+	LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES})
+ENDIF(WITH_PARTIO)
+
+IF(WITH_OPENCL)
+	LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES})
+ENDIF(WITH_OPENCL)
+
+ADD_EXECUTABLE(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h)
+TARGET_LINK_LIBRARIES(cycles_test ${LIBRARIES})
+INSTALL(TARGETS cycles_test DESTINATION ${INSTALL_PATH}/cycles)
+
+IF(UNIX AND NOT APPLE)
+	SET_TARGET_PROPERTIES(cycles_test PROPERTIES INSTALL_RPATH $ORIGIN/lib)
+ENDIF()
+
+IF(WITH_NETWORK)
+	ADD_EXECUTABLE(cycles_server cycles_server.cpp)
+	TARGET_LINK_LIBRARIES(cycles_server ${LIBRARIES})
+	INSTALL(TARGETS cycles_server DESTINATION ${INSTALL_PATH}/cycles)
+
+	IF(UNIX AND NOT APPLE)
+		SET_TARGET_PROPERTIES(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib)
+	ENDIF()
+ENDIF()
+
+INSTALL(CODE "FILE(MAKE_DIRECTORY ${INSTALL_PATH}/cycles/cache)")
+

Added: branches/cycles/intern/cycles/app/cycles_server.cpp
===================================================================
--- branches/cycles/intern/cycles/app/cycles_server.cpp	                        (rev 0)
+++ branches/cycles/intern/cycles/app/cycles_server.cpp	2011-04-27 11:58:34 UTC (rev 36352)
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <stdio.h>
+
+#include "device.h"
+
+#include "util_args.h"
+#include "util_foreach.h"
+#include "util_path.h"
+#include "util_string.h"
+
+using namespace ccl;
+
+int main(int argc, const char **argv)
+{
+	path_init();
+
+	/* device types */
+	string devices = "";
+	string devicename = "cpu";
+
+	vector<DeviceType> types = Device::available_types();
+
+	foreach(DeviceType type, types) {
+		if(devices != "")
+			devices += ", ";
+
+		devices += Device::string_from_type(type);
+	}
+
+	/* parse options */
+	ArgParse ap;
+
+	ap.options ("Usage: cycles_server [options]",
+		"--device %s", &devicename, ("Devices to use: " + devices).c_str(),
+		NULL);
+
+	if(ap.parse(argc, argv) < 0) {
+		fprintf(stderr, "%s\n", ap.error_message().c_str());
+		ap.usage();
+		exit(EXIT_FAILURE);
+	}
+
+	DeviceType dtype = Device::type_from_string(devicename.c_str());
+
+	while(1) {
+		Device *device = Device::create(dtype);
+		printf("Cycles Server with device: %s\n", device->description().c_str());
+		device->server_run();
+		delete device;
+	}
+
+	return 0;
+}
+

Added: branches/cycles/intern/cycles/app/cycles_test.cpp
===================================================================
--- branches/cycles/intern/cycles/app/cycles_test.cpp	                        (rev 0)
+++ branches/cycles/intern/cycles/app/cycles_test.cpp	2011-04-27 11:58:34 UTC (rev 36352)
@@ -0,0 +1,306 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <stdio.h>
+
+#include "buffers.h"
+#include "camera.h"
+#include "device.h"
+#include "scene.h"
+#include "session.h"
+
+#include "util_args.h"
+#include "util_foreach.h"
+#include "util_function.h"
+#include "util_path.h"
+#include "util_progress.h"
+#include "util_string.h"
+#include "util_time.h"
+#include "util_view.h"
+
+#include "cycles_xml.h"
+
+CCL_NAMESPACE_BEGIN
+
+struct Options {
+	Session *session;
+	Scene *scene;
+	string filepath;
+	int width, height;
+	SceneParams scene_params;
+	SessionParams session_params;
+	bool quiet;
+} options;
+
+static void session_print(const string& str)
+{
+	/* print with carriage return to overwrite previous */
+	printf("\r%s", str.c_str());
+
+	/* add spaces to overwrite longer previous print */
+	static int maxlen = 0;
+	int len = str.size();
+	maxlen = max(len, maxlen);
+
+	for(int i = len; i < maxlen; i++)
+		printf(" ");
+
+	/* flush because we don't write an end of line */
+	fflush(stdout);
+}
+
+static void session_print_status()
+{
+	int pass;
+	double total_time, pass_time;
+	string status, substatus;
+
+	/* get status */
+	options.session->progress.get_pass(pass, total_time, pass_time);
+	options.session->progress.get_status(status, substatus);
+
+	if(substatus != "")
+		status += ": " + substatus;
+
+	/* print status */
+	status = string_printf("Pass %d   %s", pass, status.c_str());
+	session_print(status);
+}
+
+static void session_init()
+{
+	options.session = new Session(options.session_params);
+	options.session->reset(options.width, options.height);
+	options.session->scene = options.scene;
+	
+	if(options.session_params.background && !options.quiet)
+		options.session->progress.set_update_callback(function_bind(&session_print_status));
+	else
+		options.session->progress.set_update_callback(function_bind(&view_redraw));
+
+	options.session->start();
+
+	options.scene = NULL;
+}
+
+static void scene_init()
+{
+	options.scene = new Scene(options.scene_params);
+	xml_read_file(options.scene, options.filepath.c_str());
+	options.width = options.scene->camera->width;
+	options.height = options.scene->camera->height;
+}
+
+static void session_exit()
+{
+	if(options.session) {
+		delete options.session;
+		options.session = NULL;
+	}
+	if(options.scene) {
+		delete options.scene;
+		options.scene = NULL;
+	}
+
+	if(options.session_params.background && !options.quiet) {
+		session_print("Finished Rendering.");
+		printf("\n");
+	}
+}
+
+static void display_info(Progress& progress)
+{
+	static double latency = 0.0;
+	static double last = 0;
+	double elapsed = time_dt();
+	string str;
+
+	latency = (elapsed - last);
+	last = elapsed;
+
+	int pass;
+	double total_time, pass_time;
+	string status, substatus;
+
+	progress.get_pass(pass, total_time, pass_time);
+	progress.get_status(status, substatus);
+
+	if(substatus != "")
+		status += ": " + substatus;
+
+	str = string_printf("latency: %.4f        pass: %d        total: %.4f        average: %.4f        %s",
+		latency, pass, total_time, pass_time, status.c_str());
+
+	view_display_info(str.c_str());
+}
+
+static void display()
+{
+	options.session->draw(options.width, options.height);
+
+	display_info(options.session->progress);
+}
+
+static void resize(int width, int height)
+{
+	options.width= width;
+	options.height= height;
+
+	if(options.session)
+		options.session->reset(options.width, options.height);
+}
+
+void keyboard(unsigned char key)
+{
+	if(key == 'r')

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list