Home | History | Annotate | Download | only in apple

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) {
145 free(ac);
149 ac->context_obj = NULL;
150 ac->pixel_format_obj = NULL;
151 ac->drawable = NULL;
152 ac->thread_id = pthread_self();
153 ac->screen = screen;
154 ac->double_buffered = false;
155 ac->uses_stereo = false;
156 ac->need_update = false;
157 ac->is_current = false;
158 ac->made_current = false;
159 ac->last_surface_window = None;
161 apple_visual_create_pfobj(&ac->pixel_format_obj, mode,
162 &ac->double_buffered, &ac->uses_stereo,
165 error = apple_cgl.create_context(ac->pixel_format_obj,
167 &ac->context_obj);
171 (void) apple_cgl.destroy_pixel_format(ac->pixel_format_obj);
173 free(ac);
194 context_list->previous = ac;
196 ac->previous = NULL;
197 ac->next = context_list;
198 context_list = ac;
200 *ptr = ac;
202 apple_glx_diagnostic("%s: ac %p ac->context_obj %p\n",
203 __func__, (void *) ac, (void *) ac->context_obj);
213 struct apple_glx_context *ac = *ptr;
215 if (NULL == ac)
218 apple_glx_diagnostic("%s: ac %p ac->context_obj %p\n",
219 __func__, (void *) ac, (void *) ac->context_obj);
221 if (apple_cgl.get_current_context() == ac->context_obj) {
222 apple_glx_diagnostic("%s: context ac->context_obj %p "
224 (void *) ac->context_obj);
230 /* Remove ac from the context_list as soon as possible. */
233 if (ac->previous) {
234 ac->previous->next = ac->next;
237 context_list = ac->next;
240 if (ac->next) {
241 ac->next->previous = ac->previous;
247 if (apple_cgl.clear_drawable(ac->context_obj)) {
257 * removed the ac pointer from the double-linked list.
259 if (ac->drawable) {
260 ac->drawable->destroy(ac->drawable);
263 if (apple_cgl.destroy_pixel_format(ac->pixel_format_obj)) {
268 if (apple_cgl.destroy_context(ac->context_obj)) {
273 free(ac);
287 struct apple_glx_context *ac = ptr;
293 apple_glx_diagnostic("%s: oldac %p ac %p drawable 0x%lx\n",
294 __func__, (void *) oldac, (void *) ac, drawable);
296 apple_glx_diagnostic("%s: oldac->context_obj %p ac->context_obj %p\n",
299 (void *) (ac ? ac->context_obj : NULL));
303 if (ac && ac->drawable && ac->drawable->drawable == drawable) {
306 if (ac->is_current)
311 if (oldac && (ac != oldac))
314 if (NULL == ac) {
338 if (apple_cgl.set_current_context(ac->context_obj))
341 if (apple_cgl.clear_drawable(ac->context_obj))
344 if (ac->drawable) {
345 ac->drawable->destroy(ac->drawable);
346 ac->drawable = NULL;
350 ac->last_surface_window = None;
359 if (ac->drawable && ac->drawable->drawable == drawable) {
360 newagd = ac->drawable;
372 if (ac->drawable && !same_drawable) {
373 ac->drawable->destroy(ac->drawable);
374 ac->drawable = NULL;
378 if (apple_glx_surface_create(dpy, ac->screen, drawable, &newagd))
405 ac->drawable = newagd;
411 assert(ac->drawable == newagd);
415 ac->drawable = newagd;
424 if (same_drawable && ac->is_current) {
425 apple_glx_diagnostic("same_drawable and ac->is_current\n");
429 cglerr = apple_cgl.set_current_context(ac->context_obj);
437 ac->is_current = true;
439 assert(NULL != ac->context_obj);
440 assert(NULL != ac->drawable);
442 ac->thread_id = pthread_self();
445 ac->last_surface_window = None;
447 switch (ac->drawable->type) {
451 if (ac->drawable->callbacks.make_current) {
452 if (ac->drawable->callbacks.make_current(ac, ac->drawable))
459 ac->drawable->type);
469 struct apple_glx_context *ac = ptr;
471 if (ac->drawable && ac->drawable->drawable == drawable) {
474 else if (NULL == ac->drawable && None != ac->last_surface_window) {
475 apple_glx_context_update(dpy, ac);
477 return (ac->drawable && ac->drawable->drawable == drawable);
530 struct apple_glx_context *ac;
535 for (ac = context_list; ac; ac = ac->next) {
536 if (ac->drawable && APPLE_GLX_DRAWABLE_SURFACE == ac->drawable->type
537 && ac->drawable->types.surface.uid == uid) {
539 if (caller == ac->thread_id) {
543 xp_update_gl_context(ac->context_obj);
546 ac->need_update = true;
560 struct apple_glx_context *ac = ptr;
562 if (NULL == ac->drawable && None != ac->last_surface_window) {
567 apple_glx_make_current_context(dpy, ac, ac, ac->last_surface_window);
573 if (ac->need_update) {
574 xp_update_gl_context(ac->context_obj);
575 ac->need_update = false;
580 if (ac->drawable && APPLE_GLX_DRAWABLE_SURFACE == ac->drawable->type
581 && ac->drawable->types.surface.pending_destroy) {
583 apple_cgl.clear_drawable(ac->context_obj);
585 if (ac->drawable) {
590 apple_glx_diagnostic("%s: ac->drawable->drawable is 0x%lx\n",
591 __func__, ac->drawable->drawable);
593 d = ac->drawable;
595 ac->last_surface_window = d->drawable;
597 ac->drawable = NULL;
614 struct apple_glx_context *ac = ptr;
616 return ac->uses_stereo;