<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Okay, I solved the problem by replacing
the <br>
<i>ss->register_closure(name, id, params, prepare, NULL, 16);<br>
</i>with<br>
<i>ss->register_closure(name, id, params, prepare, NULL);<br>
</i>what seems to work. But now I have a different problem. My
application crashes with:<br>
<br>
f:\dd\vctools\crt\crtw32\stdcpp\thr\mutex.c(40): mutex destroyed
while busy<br>
<br>
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.<br>
The program cancels correctly but something seems not to be
deleted correctly because the error occurs if the program exits.<br>
<br>
My code looks like this:<br>
<br>
#include <stdio.h><br>
#include <fstream><br>
#include <iostream><br>
#include <tchar.h><br>
<br>
#include "buffers.h"<br>
#include "camera.h"<br>
#include "device.h"<br>
#include "scene.h"<br>
#include "session.h"<br>
#include "integrator.h"<br>
<br>
ccl::Session *session;<br>
ccl::Scene *scene;<br>
string filepath;<br>
ccl::SceneParams scene_params;<br>
ccl::SessionParams session_params;<br>
ccl::BufferParams buffer_params;<br>
<br>
static void session_print_status()<br>
{<br>
int sample, tile;<br>
double total_time, sample_time, render_time;<br>
string status, substatus;<br>
<br>
sample = session->progress.get_sample();<br>
session->progress.get_tile(tile, total_time, sample_time,
render_time);<br>
session->progress.get_status(status, substatus);<br>
<br>
std::cout << "Sample " << sample << "
Status:" << status << " Substatus: " <<
substatus << "\n";<br>
<br>
if (sample > 300)<br>
{<br>
std::cout << "Finish session.\n";<br>
session->progress.set_cancel("Cancelled");<br>
}<br>
}<br>
<br>
CCL_NAMESPACE_BEGIN<br>
void doit()<br>
{ <br>
buffer_params.width = 640;<br>
buffer_params.height = 480;<br>
buffer_params.full_width = 640;<br>
buffer_params.full_height = 480;<br>
<br>
session_params.output_path =
"H:/UserDatenHaggi/Documents/coding/cycles/testAPI/output.exr";<br>
scene = new Scene(scene_params, session_params.device);<br>
session_params.samples = 10;<br>
session_params.progressive = true;<br>
session = new Session(session_params);<br>
session->reset(buffer_params, session_params.samples);<br>
session->scene = scene;<br>
session->progress.set_update_callback(function_bind(&session_print_status));<br>
session->start();<br>
session->wait(); <br>
};<br>
<br>
CCL_NAMESPACE_END<br>
<br>
void main(int argc, const char **argv)<br>
{<br>
ccl::doit();<br>
std::cout << "Done.\n";<br>
}<br>
<br>
</div>
</body>
</html>