Lines Matching defs:psc

103    struct dri2_screen *psc = (struct dri2_screen *) context->psc;
109 (*psc->core->destroyContext) (pcp->driContext);
119 struct dri2_screen *psc = (struct dri2_screen *) pcp->base.psc;
138 if (!(*psc->core->bindContext) (pcp->driContext, dri_draw, dri_read))
148 struct dri2_screen *psc = (struct dri2_screen *) pcp->base.psc;
150 (*psc->core->unbindContext) (pcp->driContext);
163 struct dri2_screen *psc = (struct dri2_screen *) base;
205 if (!glx_context_init(&pcp->base, &psc->base, config_base))
244 (*psc->dri2->createContextAttribs) (psc->driScreen,
269 struct dri2_screen *psc = (struct dri2_screen *) base->psc;
271 struct glx_display *dpyPriv = psc->base.display;
275 (*psc->core->destroyDrawable) (pdraw->driDrawable);
285 DRI2DestroyDrawable(psc->base.dpy, pdraw->base.xDrawable);
296 struct dri2_screen *psc = (struct dri2_screen *) base;
301 dpyPriv = __glXInitialize(psc->base.dpy);
312 pdraw->base.psc = &psc->base;
314 pdraw->swap_interval = dri_get_initial_swap_interval(psc->driScreen, psc->config);
317 DRI2CreateDrawable(psc->base.dpy, xDrawable);
321 (*psc->dri2->createNewDrawable) (psc->driScreen,
325 DRI2DestroyDrawable(psc->base.dpy, xDrawable);
331 (*psc->core->destroyDrawable) (pdraw->driDrawable);
332 DRI2DestroyDrawable(psc->base.dpy, xDrawable);
341 if (psc->vtable.setSwapInterval)
342 psc->vtable.setSwapInterval(&pdraw->base, pdraw->swap_interval);
348 dri2DrawableGetMSC(struct glx_screen *psc, __GLXDRIdrawable *pdraw,
351 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
373 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
405 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
444 dri2Throttle(struct dri2_screen *psc,
448 if (psc->throttle) {
451 psc->throttle->throttle(ctx, draw->driDrawable, reason);
462 dri2Flush(struct dri2_screen *psc,
468 if (ctx && psc->f && psc->f->base.version >= 4) {
469 psc->f->flush_with_flags(ctx, draw->driDrawable, flags, throttle_reason);
474 if (psc->f)
475 psc->f->flush(draw->driDrawable);
477 dri2Throttle(psc, draw, throttle_reason);
487 struct dri2_screen *psc = (struct dri2_screen *) pdraw->psc;
505 dri2Flush(psc, ctx, priv, flags, __DRI2_THROTTLE_COPYSUBBUFFER);
507 region = XFixesCreateRegion(psc->base.dpy, &xrect, 1);
508 DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
515 DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
518 XFixesDestroyRegion(psc->base.dpy, region);
535 struct dri2_screen *psc = (struct dri2_screen *) priv->base.psc;
542 if (psc->f)
543 (*psc->f->flush) (priv->driDrawable);
545 region = XFixesCreateRegion(psc->base.dpy, &xrect, 1);
546 DRI2CopyRegion(psc->base.dpy, priv->base.xDrawable, region, dest, src);
547 XFixesDestroyRegion(psc->base.dpy, region);
585 struct dri2_screen *psc;
590 if (!pdraw->base.psc)
593 psc = (struct dri2_screen *) pdraw->base.psc;
595 priv = __glXInitialize(psc->base.dpy);
602 dri2Throttle(psc, pdraw, __DRI2_THROTTLE_FLUSHFRONT);
611 struct dri2_screen *psc = (struct dri2_screen *) base;
614 (*psc->core->destroyScreen) (psc->driScreen);
615 driDestroyConfigs(psc->driver_configs);
616 free(psc->driverName);
617 close(psc->fd);
618 free(psc);
666 ((struct dri2_screen *) draw->base.psc)->show_fps_interval;
737 struct dri2_screen *psc = (struct dri2_screen *) priv->base.psc;
748 dri2Flush(psc, ctx, priv, flags, __DRI2_THROTTLE_SWAPBUFFER);
750 ret = dri2XcbSwapBuffers(pdraw->psc->dpy, pdraw,
753 if (psc->show_fps_interval) {
769 buffers = DRI2GetBuffers(pdraw->base.psc->dpy, pdraw->base.xDrawable,
792 buffers = DRI2GetBuffersWithFormat(pdraw->base.psc->dpy,
811 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
813 struct dri2_screen *psc = (struct dri2_screen *) priv->base.psc;
815 if (!dri_valid_swap_interval(psc->driScreen, psc->config, interval))
848 return pcp->base.psc->dpy->lock_fns != NULL;
875 struct dri2_screen *psc;
881 psc = (struct dri2_screen *) pdraw->psc;
883 if (psc->f && psc->f->base.version >= 3 && psc->f->invalidate)
884 psc->f->invalidate(pdp->driDrawable);
894 struct dri2_screen *psc;
897 psc = (struct dri2_screen *) base->psc;
899 if (psc->texBuffer->base.version >= 2 &&
900 psc->texBuffer->setTexBuffer2 != NULL) {
901 (*psc->texBuffer->setTexBuffer2) (pcp->driContext,
907 (*psc->texBuffer->setTexBuffer) (pcp->driContext,
920 struct dri2_screen *psc;
923 psc = (struct dri2_screen *) base->psc;
925 if (psc->texBuffer->base.version >= 3 &&
926 psc->texBuffer->releaseTexBuffer != NULL) {
927 (*psc->texBuffer->releaseTexBuffer) (pcp->driContext,
945 dri2BindExtensions(struct dri2_screen *psc, struct glx_display * priv,
948 const unsigned mask = psc->dri2->getAPIMask(psc->driScreen);
952 extensions = psc->core->getExtensions(psc->driScreen);
954 __glXEnableDirectExtension(&psc->base, "GLX_EXT_swap_control");
955 __glXEnableDirectExtension(&psc->base, "GLX_SGI_swap_control");
956 __glXEnableDirectExtension(&psc->base, "GLX_MESA_swap_control");
957 __glXEnableDirectExtension(&psc->base, "GLX_SGI_make_current_read");
971 __glXEnableDirectExtension(&psc->base, "GLX_INTEL_swap_event");
974 __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context");
975 __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context_profile");
976 __glXEnableDirectExtension(&psc->base, "GLX_EXT_no_config_context");
981 __glXEnableDirectExtension(&psc->base,
983 __glXEnableDirectExtension(&psc->base,
989 psc->texBuffer = (__DRItexBufferExtension *) extensions[i];
990 __glXEnableDirectExtension(&psc->base, "GLX_EXT_texture_from_pixmap");
994 psc->f = (__DRI2flushExtension *) extensions[i];
999 psc->config = (__DRI2configQueryExtension *) extensions[i];
1002 psc->throttle = (__DRI2throttleExtension *) extensions[i];
1005 __glXEnableDirectExtension(&psc->base,
1009 psc->rendererQuery = (__DRI2rendererQueryExtension *) extensions[i];
1010 __glXEnableDirectExtension(&psc->base, "GLX_MESA_query_renderer");
1012 if (psc->rendererQuery->queryInteger(psc->driScreen,
1015 __glXEnableDirectExtension(&psc->base,
1020 psc->interop = (__DRI2interopExtension*)extensions[i];
1023 __glXEnableDirectExtension(&psc->base,
1031 struct dri2_screen *psc = (struct dri2_screen *)glx_screen;
1033 return psc->driverName;
1051 struct dri2_screen *psc;
1058 psc = calloc(1, sizeof *psc);
1059 if (psc == NULL)
1062 psc->fd = -1;
1064 if (!glx_screen_init(&psc->base, screen, priv)) {
1065 free(psc);
1071 glx_screen_cleanup(&psc->base);
1072 free(psc);
1077 psc->fd = loader_open_device(deviceName);
1078 if (psc->fd < 0) {
1083 if (drmGetMagic(psc->fd, &magic)) {
1096 loader_driverName = loader_get_driver_for_fd(psc->fd);
1101 psc->driverName = driverName;
1103 extensions = driOpenDriver(driverName, &psc->driver);
1109 psc->core = (__DRIcoreExtension *) extensions[i];
1111 psc->dri2 = (__DRIdri2Extension *) extensions[i];
1114 if (psc->core == NULL || psc->dri2 == NULL || psc->dri2->base.version < 3) {
1119 if (psc->dri2->base.version >= 4) {
1120 psc->driScreen =
1121 psc->dri2->createNewScreen2(screen, psc->fd,
1125 &driver_configs, psc);
1127 psc->driScreen =
1128 psc->dri2->createNewScreen(screen, psc->fd,
1131 &driver_configs, psc);
1134 if (psc->driScreen == NULL) {
1139 dri2BindExtensions(psc, priv, driverName);
1141 configs = driConvertConfigs(psc->core, psc->base.configs, driver_configs);
1142 visuals = driConvertConfigs(psc->core, psc->base.visuals, driver_configs);
1149 glx_config_destroy_list(psc->base.configs);
1150 psc->base.configs = configs;
1151 glx_config_destroy_list(psc->base.visuals);
1152 psc->base.visuals = visuals;
1154 psc->driver_configs = driver_configs;
1156 psc->base.vtable = &dri2_screen_vtable;
1157 psc->base.context_vtable = &dri2_context_vtable;
1158 psp = &psc->vtable;
1159 psc->base.driScreen = psp;
1179 __glXEnableDirectExtension(&psc->base, "GLX_OML_sync_control");
1180 __glXEnableDirectExtension(&psc->base, "GLX_SGI_video_sync");
1182 if (psc->config->base.version > 1 &&
1183 psc->config->configQuerys(psc->driScreen, "glx_extension_override",
1185 __glXParseExtensionOverride(&psc->base, tmp);
1187 if (psc->config->base.version > 1 &&
1188 psc->config->configQuerys(psc->driScreen,
1191 __IndirectGlParseExtensionOverride(&psc->base, tmp);
1193 if (psc->config->base.version > 1) {
1195 if (psc->config->configQueryb(psc->driScreen, "force_direct_glx_context",
1197 psc->base.force_direct_context = force;
1201 if (psc->config->configQueryb(psc->driScreen,
1204 psc->base.allow_invalid_glx_destroy_window = invalid_glx_destroy_window;
1211 __glXEnableDirectExtension(&psc->base, "GLX_MESA_copy_sub_buffer");
1216 psc->show_fps_interval = (tmp) ? atoi(tmp) : 0;
1217 if (psc->show_fps_interval < 0)
1218 psc->show_fps_interval = 0;
1222 return &psc->base;
1231 if (psc->driScreen)
1232 psc->core->destroyScreen(psc->driScreen);
1233 psc->driScreen = NULL;
1234 if (psc->fd >= 0)
1235 close(psc->fd);
1236 if (psc->driver)
1237 dlclose(psc->driver);
1240 glx_screen_cleanup(&psc->base);
1241 free(psc);