private void renderResponder(IntPtr opaque, ref ADLError error, int i)
{
try
{
Console.Error.WriteLine("Got rendering result");
int callId = (int)opaque;
PendingCall call = _pendingCalls[callId];
_pendingCalls.Remove(callId);
if (error.err_code == 0)
{
call.manualRenderer.rendererId = i;
_activeRenderers[i] = new WeakReference(call.manualRenderer);
if (call.manual)
{
call.manualRendererResponder.resultHandler(call.manualRenderer);
}
else
{
call.rendererResponder.resultHandler(
new RenderingWidget(call.manualRenderer));
}
}
else
{
if (call.manual)
call.manualRendererResponder.errHandler(error.err_code,
StringHelper.fromNative(error.err_message));
else
call.rendererResponder.errHandler(error.err_code,
StringHelper.fromNative(error.err_message));
}
}
catch (Exception) { }
}