Lines Matching refs:ac

99 is_context_valid(struct apple_glx_context *ac)
106 if (ac == i) {
128 struct apple_glx_context *ac;
134 ac = malloc(sizeof *ac);
136 if (NULL == ac) {
148 ac->context_obj = NULL;
149 ac->pixel_format_obj = NULL;
150 ac->drawable = NULL;
151 ac->thread_id = pthread_self();
152 ac->screen = screen;
153 ac->double_buffered = false;
154 ac->uses_stereo = false;
155 ac->need_update = false;
156 ac->is_current = false;
157 ac->made_current = false;
158 ac->last_surface_window = None;
160 apple_visual_create_pfobj(&ac->pixel_format_obj, mode,
161 &ac->double_buffered, &ac->uses_stereo,
164 error = apple_cgl.create_context(ac->pixel_format_obj,
166 &ac->context_obj);
170 (void) apple_cgl.destroy_pixel_format(ac->pixel_format_obj);
172 free(ac);
193 context_list->previous = ac;
195 ac->previous = NULL;
196 ac->next = context_list;
197 context_list = ac;
199 *ptr = ac;
201 apple_glx_diagnostic("%s: ac %p ac->context_obj %p\n",
202 __func__, (void *) ac, (void *) ac->context_obj);
212 struct apple_glx_context *ac = *ptr;
214 if (NULL == ac)
217 apple_glx_diagnostic("%s: ac %p ac->context_obj %p\n",
218 __func__, (void *) ac, (void *) ac->context_obj);
220 if (apple_cgl.get_current_context() == ac->context_obj) {
221 apple_glx_diagnostic("%s: context ac->context_obj %p "
223 (void *) ac->context_obj);
229 /* Remove ac from the context_list as soon as possible. */
232 if (ac->previous) {
233 ac->previous->next = ac->next;
236 context_list = ac->next;
239 if (ac->next) {
240 ac->next->previous = ac->previous;
246 if (apple_cgl.clear_drawable(ac->context_obj)) {
256 * removed the ac pointer from the double-linked list.
258 if (ac->drawable) {
259 ac->drawable->destroy(ac->drawable);
262 if (apple_cgl.destroy_pixel_format(ac->pixel_format_obj)) {
267 if (apple_cgl.destroy_context(ac->context_obj)) {
272 free(ac);
286 struct apple_glx_context *ac = ptr;
292 apple_glx_diagnostic("%s: oldac %p ac %p drawable 0x%lx\n",
293 __func__, (void *) oldac, (void *) ac, drawable);
295 apple_glx_diagnostic("%s: oldac->context_obj %p ac->context_obj %p\n",
298 (void *) (ac ? ac->context_obj : NULL));
302 if (ac && ac->drawable && ac->drawable->drawable == drawable) {
305 if (ac->is_current)
310 if (oldac && (ac != oldac))
313 if (NULL == ac) {
337 if (apple_cgl.set_current_context(ac->context_obj))
340 if (apple_cgl.clear_drawable(ac->context_obj))
343 if (ac->drawable) {
344 ac->drawable->destroy(ac->drawable);
345 ac->drawable = NULL;
349 ac->last_surface_window = None;
358 if (ac->drawable && ac->drawable->drawable == drawable) {
359 newagd = ac->drawable;
371 if (ac->drawable && !same_drawable) {
372 ac->drawable->destroy(ac->drawable);
373 ac->drawable = NULL;
377 if (apple_glx_surface_create(dpy, ac->screen, drawable, &newagd))
404 ac->drawable = newagd;
410 assert(ac->drawable == newagd);
414 ac->drawable = newagd;
423 if (same_drawable && ac->is_current) {
424 apple_glx_diagnostic("same_drawable and ac->is_current\n");
428 cglerr = apple_cgl.set_current_context(ac->context_obj);
436 ac->is_current = true;
438 assert(NULL != ac->context_obj);
439 assert(NULL != ac->drawable);
441 ac->thread_id = pthread_self();
444 ac->last_surface_window = None;
446 switch (ac->drawable->type) {
450 if (ac->drawable->callbacks.make_current) {
451 if (ac->drawable->callbacks.make_current(ac, ac->drawable))
458 ac->drawable->type);
468 struct apple_glx_context *ac = ptr;
470 if (ac->drawable && ac->drawable->drawable == drawable) {
473 else if (NULL == ac->drawable && None != ac->last_surface_window) {
474 apple_glx_context_update(dpy, ac);
476 return (ac->drawable && ac->drawable->drawable == drawable);
529 struct apple_glx_context *ac;
534 for (ac = context_list; ac; ac = ac->next) {
535 if (ac->drawable && APPLE_GLX_DRAWABLE_SURFACE == ac->drawable->type
536 && ac->drawable->types.surface.uid == uid) {
538 if (caller == ac->thread_id) {
542 xp_update_gl_context(ac->context_obj);
545 ac->need_update = true;
559 struct apple_glx_context *ac = ptr;
561 if (NULL == ac->drawable && None != ac->last_surface_window) {
566 apple_glx_make_current_context(dpy, ac, ac, ac->last_surface_window);
572 if (ac->need_update) {
573 xp_update_gl_context(ac->context_obj);
574 ac->need_update = false;
579 if (ac->drawable && APPLE_GLX_DRAWABLE_SURFACE == ac->drawable->type
580 && ac->drawable->types.surface.pending_destroy) {
582 apple_cgl.clear_drawable(ac->context_obj);
584 if (ac->drawable) {
589 apple_glx_diagnostic("%s: ac->drawable->drawable is 0x%lx\n",
590 __func__, ac->drawable->drawable);
592 d = ac->drawable;
594 ac->last_surface_window = d->drawable;
596 ac->drawable = NULL;
613 struct apple_glx_context *ac = ptr;
615 return ac->uses_stereo;