it = drawable_map.find(orig_surface);
if (it != drawable_map.end()) {
+ glretrace::Context *currentContext = glretrace::getCurrentContext();
if (!currentContext || it->second != currentContext->drawable) {
// TODO: reference count
delete it->second;
static void retrace_eglBindAPI(trace::Call &call) {
current_api = call.arg(0).toUInt();
+ eglBindAPI(current_api);
}
static void retrace_eglCreateContext(trace::Call &call) {
unsigned long long orig_context = call.ret->toUIntPtr();
unsigned long long orig_config = call.arg(1).toUIntPtr();
Context *share_context = getContext(call.arg(2).toUIntPtr());
- trace::Array *attrib_array = dynamic_cast<trace::Array *>(&call.arg(3));
+ trace::Array *attrib_array = call.arg(3).toArray();
glws::Profile profile;
switch (current_api) {
}
retrace::warning(call) << "Failed to create " << name << " context.\n";
- os::abort();
+ exit(1);
}
context_map[orig_context] = context;
it = context_map.find(orig_context);
if (it != context_map.end()) {
+ glretrace::Context *currentContext = glretrace::getCurrentContext();
if (it->second != currentContext) {
// TODO: reference count
delete it->second;