Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Flèche <charlesf>2021-01-18 09:43:42 +0300
committerKévin Dietrich <kevin.dietrich@mailoo.org>2021-01-26 16:39:32 +0300
commit76ab0381d1e5f8df6b23803b75b2013933484bcd (patch)
tree2dfab6ceda254a18bae2a222db7385da644bb375 /intern/cycles/app
parent532d3a103a874574856d732fffc3a04fee30b337 (diff)
Fix Cycles standalone compilation following API changes
The changes to the socket API were not applied to the standalone app. Also modify Camera.compute_auto_viewplane() to use Camera.full_width and Camera.full_height as it is not possible to publicly access Camera.width and Camera.height anymore, so the aspect ratio could be computed with stale data. Differential Revision: https://developer.blender.org/D9961
Diffstat (limited to 'intern/cycles/app')
-rw-r--r--intern/cycles/app/cycles_standalone.cpp31
-rw-r--r--intern/cycles/app/cycles_xml.cpp62
2 files changed, 48 insertions, 45 deletions
diff --git a/intern/cycles/app/cycles_standalone.cpp b/intern/cycles/app/cycles_standalone.cpp
index f057ce7a2f0..6b3513b065a 100644
--- a/intern/cycles/app/cycles_standalone.cpp
+++ b/intern/cycles/app/cycles_standalone.cpp
@@ -133,12 +133,12 @@ static void scene_init()
/* Camera width/height override? */
if (!(options.width == 0 || options.height == 0)) {
- options.scene->camera->width = options.width;
- options.scene->camera->height = options.height;
+ options.scene->camera->set_full_width(options.width);
+ options.scene->camera->set_full_height(options.height);
}
else {
- options.width = options.scene->camera->width;
- options.height = options.scene->camera->height;
+ options.width = options.scene->camera->get_full_width();
+ options.height = options.scene->camera->get_full_height();
}
/* Calculate Viewplane */
@@ -233,7 +233,7 @@ static void display()
static void motion(int x, int y, int button)
{
if (options.interactive) {
- Transform matrix = options.session->scene->camera->matrix;
+ Transform matrix = options.session->scene->camera->get_matrix();
/* Translate */
if (button == 0) {
@@ -251,8 +251,8 @@ static void motion(int x, int y, int button)
}
/* Update and Reset */
- options.session->scene->camera->matrix = matrix;
- options.session->scene->camera->need_update = true;
+ options.session->scene->camera->set_matrix(matrix);
+ options.session->scene->camera->need_flags_update = true;
options.session->scene->camera->need_device_update = true;
options.session->reset(session_buffer_params(), options.session_params.samples);
@@ -266,10 +266,10 @@ static void resize(int width, int height)
if (options.session) {
/* Update camera */
- options.session->scene->camera->width = width;
- options.session->scene->camera->height = height;
+ options.session->scene->camera->set_full_width(options.width);
+ options.session->scene->camera->set_full_height(options.height);
options.session->scene->camera->compute_auto_viewplane();
- options.session->scene->camera->need_update = true;
+ options.session->scene->camera->need_flags_update = true;
options.session->scene->camera->need_device_update = true;
options.session->reset(session_buffer_params(), options.session_params.samples);
@@ -302,7 +302,7 @@ static void keyboard(unsigned char key)
/* Navigation */
else if (options.interactive && (key == 'w' || key == 'a' || key == 's' || key == 'd')) {
- Transform matrix = options.session->scene->camera->matrix;
+ Transform matrix = options.session->scene->camera->get_matrix();
float3 translate;
if (key == 'w')
@@ -317,8 +317,8 @@ static void keyboard(unsigned char key)
matrix = matrix * transform_translate(translate);
/* Update and Reset */
- options.session->scene->camera->matrix = matrix;
- options.session->scene->camera->need_update = true;
+ options.session->scene->camera->set_matrix(matrix);
+ options.session->scene->camera->need_flags_update = true;
options.session->scene->camera->need_device_update = true;
options.session->reset(session_buffer_params(), options.session_params.samples);
@@ -345,10 +345,7 @@ static void keyboard(unsigned char key)
break;
}
- options.session->scene->integrator->max_bounce = bounce;
-
- /* Update and Reset */
- options.session->scene->integrator->need_update = true;
+ options.session->scene->integrator->set_max_bounce(bounce);
options.session->reset(session_buffer_params(), options.session_params.samples);
}
diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp
index a86e06f92d1..272d509585e 100644
--- a/intern/cycles/app/cycles_xml.cpp
+++ b/intern/cycles/app/cycles_xml.cpp
@@ -190,17 +190,18 @@ static void xml_read_camera(XMLReadState &state, xml_node node)
{
Camera *cam = state.scene->camera;
- xml_read_int(&cam->width, node, "width");
- xml_read_int(&cam->height, node, "height");
+ int width = -1, height = -1;
+ xml_read_int(&width, node, "width");
+ xml_read_int(&height, node, "height");
- cam->full_width = cam->width;
- cam->full_height = cam->height;
+ cam->set_full_width(width);
+ cam->set_full_height(height);
xml_read_node(state, cam, node);
- cam->matrix = state.tfm;
+ cam->set_matrix(state.tfm);
- cam->need_update = true;
+ cam->need_flags_update = true;
cam->update(state.scene);
}
@@ -338,11 +339,13 @@ static void xml_read_shader_graph(XMLReadState &state, Shader *shader, xml_node
if (node_name == "image_texture") {
ImageTextureNode *img = (ImageTextureNode *)snode;
- img->filename = path_join(state.base, img->filename.string());
+ ustring filename(path_join(state.base, img->get_filename().string()));
+ img->set_filename(filename);
}
else if (node_name == "environment_texture") {
EnvironmentTextureNode *env = (EnvironmentTextureNode *)snode;
- env->filename = path_join(state.base, env->filename.string());
+ ustring filename(path_join(state.base, env->get_filename().string()));
+ env->set_filename(filename);
}
if (snode) {
@@ -384,8 +387,8 @@ static Mesh *xml_add_mesh(Scene *scene, const Transform &tfm)
/* create object*/
Object *object = new Object();
- object->geometry = mesh;
- object->tfm = tfm;
+ object->set_geometry(mesh);
+ object->set_tfm(tfm);
scene->objects.push_back(object);
return mesh;
@@ -395,7 +398,9 @@ static void xml_read_mesh(const XMLReadState &state, xml_node node)
{
/* add mesh */
Mesh *mesh = xml_add_mesh(state.scene, state.tfm);
- mesh->used_shaders.push_back(state.shader);
+ array<Node *> used_shaders = mesh->get_used_shaders();
+ used_shaders.push_back_slow(state.shader);
+ mesh->set_used_shaders(used_shaders);
/* read state */
int shader = 0;
@@ -411,20 +416,24 @@ static void xml_read_mesh(const XMLReadState &state, xml_node node)
xml_read_int_array(nverts, node, "nverts");
if (xml_equal_string(node, "subdivision", "catmull-clark")) {
- mesh->subdivision_type = Mesh::SUBDIVISION_CATMULL_CLARK;
+ mesh->set_subdivision_type(Mesh::SUBDIVISION_CATMULL_CLARK);
}
else if (xml_equal_string(node, "subdivision", "linear")) {
- mesh->subdivision_type = Mesh::SUBDIVISION_LINEAR;
+ mesh->set_subdivision_type(Mesh::SUBDIVISION_LINEAR);
}
- if (mesh->subdivision_type == Mesh::SUBDIVISION_NONE) {
+ array<float3> P_array;
+ P_array = P;
+
+ if (mesh->get_subdivision_type() == Mesh::SUBDIVISION_NONE) {
/* create vertices */
- mesh->verts = P;
+
+ mesh->set_verts(P_array);
size_t num_triangles = 0;
for (size_t i = 0; i < nverts.size(); i++)
num_triangles += nverts[i] - 2;
- mesh->reserve_mesh(mesh->verts.size(), num_triangles);
+ mesh->reserve_mesh(mesh->get_verts().size(), num_triangles);
/* create triangles */
int index_offset = 0;
@@ -474,7 +483,7 @@ static void xml_read_mesh(const XMLReadState &state, xml_node node)
}
else {
/* create vertices */
- mesh->verts = P;
+ mesh->set_verts(P_array);
size_t num_ngons = 0;
size_t num_corners = 0;
@@ -513,23 +522,20 @@ static void xml_read_mesh(const XMLReadState &state, xml_node node)
}
/* setup subd params */
- if (!mesh->subd_params) {
- mesh->subd_params = new SubdParams(mesh);
- }
- SubdParams &sdparams = *mesh->subd_params;
-
- sdparams.dicing_rate = state.dicing_rate;
- xml_read_float(&sdparams.dicing_rate, node, "dicing_rate");
- sdparams.dicing_rate = std::max(0.1f, sdparams.dicing_rate);
+ float dicing_rate = state.dicing_rate;
+ xml_read_float(&dicing_rate, node, "dicing_rate");
+ dicing_rate = std::max(0.1f, dicing_rate);
- sdparams.objecttoworld = state.tfm;
+ mesh->set_subd_dicing_rate(dicing_rate);
+ mesh->set_subd_objecttoworld(state.tfm);
}
/* we don't yet support arbitrary attributes, for now add vertex
* coordinates as generated coordinates if requested */
if (mesh->need_attribute(state.scene, ATTR_STD_GENERATED)) {
Attribute *attr = mesh->attributes.add(ATTR_STD_GENERATED);
- memcpy(attr->data_float3(), mesh->verts.data(), sizeof(float3) * mesh->verts.size());
+ memcpy(
+ attr->data_float3(), mesh->get_verts().data(), sizeof(float3) * mesh->get_verts().size());
}
}
@@ -539,7 +545,7 @@ static void xml_read_light(XMLReadState &state, xml_node node)
{
Light *light = new Light();
- light->shader = state.shader;
+ light->set_shader(state.shader);
xml_read_node(state, light, node);
state.scene->lights.push_back(light);