[Bf-cycles] Cycles standalone questions
haggi krey
haggi at haggi.de
Sun Nov 1 19:41:22 CET 2015
Okay, I solved the problem by replacing the
/ss->register_closure(name, id, params, prepare, NULL, 16);
/with
/ss->register_closure(name, id, params, prepare, NULL);
/what seems to work. But now I have a different problem. My application
crashes with:
f:\dd\vctools\crt\crtw32\stdcpp\thr\mutex.c(40): mutex destroyed while busy
It seems that I forgot to destroy anything. If anyone could have a look,
it would be great. I could not find out what's missing.
The program cancels correctly but something seems not to be deleted
correctly because the error occurs if the program exits.
My code looks like this:
#include <stdio.h>
#include <fstream>
#include <iostream>
#include <tchar.h>
#include "buffers.h"
#include "camera.h"
#include "device.h"
#include "scene.h"
#include "session.h"
#include "integrator.h"
ccl::Session *session;
ccl::Scene *scene;
string filepath;
ccl::SceneParams scene_params;
ccl::SessionParams session_params;
ccl::BufferParams buffer_params;
static void session_print_status()
{
int sample, tile;
double total_time, sample_time, render_time;
string status, substatus;
sample = session->progress.get_sample();
session->progress.get_tile(tile, total_time, sample_time, render_time);
session->progress.get_status(status, substatus);
std::cout << "Sample " << sample << " Status:" << status << "
Substatus: " << substatus << "\n";
if (sample > 300)
{
std::cout << "Finish session.\n";
session->progress.set_cancel("Cancelled");
}
}
CCL_NAMESPACE_BEGIN
void doit()
{
buffer_params.width = 640;
buffer_params.height = 480;
buffer_params.full_width = 640;
buffer_params.full_height = 480;
session_params.output_path =
"H:/UserDatenHaggi/Documents/coding/cycles/testAPI/output.exr";
scene = new Scene(scene_params, session_params.device);
session_params.samples = 10;
session_params.progressive = true;
session = new Session(session_params);
session->reset(buffer_params, session_params.samples);
session->scene = scene;
session->progress.set_update_callback(function_bind(&session_print_status));
session->start();
session->wait();
};
CCL_NAMESPACE_END
void main(int argc, const char **argv)
{
ccl::doit();
std::cout << "Done.\n";
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/bf-cycles/attachments/20151101/b9a49526/attachment.htm
More information about the Bf-cycles
mailing list