static glws::Drawable * getDrawable(unsigned long long surface_ptr) { if (surface_ptr == 0) { return NULL; } DrawableMap::const_iterator it; it = drawable_map.find(surface_ptr); if (it == drawable_map.end()) { // In Fennec we get the egl window surface from Java which isn't // traced, so just create a drawable if it doesn't exist in here createDrawable(0, surface_ptr); it = drawable_map.find(surface_ptr); assert(it != drawable_map.end()); } return (it != drawable_map.end()) ? it->second : NULL; }
static glws::Drawable * getDrawable(unsigned long drawable_id) { if (drawable_id == 0) { return NULL; } DrawableMap::const_iterator it; it = drawable_map.find(drawable_id); if (it == drawable_map.end()) { return (drawable_map[drawable_id] = ws->createDrawable(visual)); } return it->second; }
static glws::Drawable * getDrawable(unsigned long long hdc) { if (hdc == 0) { return NULL; } DrawableMap::const_iterator it; it = drawable_map.find(hdc); if (it == drawable_map.end()) { return (drawable_map[hdc] = glretrace::createDrawable()); } return it->second; }
static glws::Drawable * getDrawable(unsigned long drawable_id, glprofile::Profile profile) { if (drawable_id == 0) { return NULL; } DrawableMap::const_iterator it; it = drawable_map.find(drawable_id); if (it == drawable_map.end()) { return (drawable_map[drawable_id] = glretrace::createDrawable(profile)); } return it->second; }
static glws::Drawable * getDrawableFromContext(unsigned long long ctx) { if (ctx == 0) { return NULL; } DrawableMap::const_iterator it; it = context_drawable_map.find(ctx); if (it == context_drawable_map.end()) { return (context_drawable_map[ctx] = glretrace::createDrawable()); } return it->second; }
static void retrace_eglDestroySurface(trace::Call &call) { unsigned long long orig_surface = call.arg(1).toUIntPtr(); DrawableMap::iterator it; 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; } drawable_map.erase(it); } }
static glws::Drawable * getDrawable(unsigned long drawable_id) { if (drawable_id == 0) { return NULL; } /* XXX: Support multiple drawables. */ drawable_id = 1; DrawableMap::const_iterator it; it = drawable_map.find(drawable_id); if (it == drawable_map.end()) { return (drawable_map[drawable_id] = glws::createDrawable(visual)); } return it->second; }