diff options
| author | George Sapountzis <gsapountzis@gmail.com> | 2010-03-25 17:01:51 +0200 | 
|---|---|---|
| committer | George Sapountzis <gsapountzis@gmail.com> | 2010-03-25 17:01:51 +0200 | 
| commit | d7f78065acb09769195a58303ce3e9a401bf7a43 (patch) | |
| tree | 3e849dc3612eaec4150a6b7e3049d5b9422caa41 | |
| parent | 20755c5c4c88f8c442fc5b65f5368a32d0693a07 (diff) | |
st/dri: add inline for dri2 check done in multiple places
| -rw-r--r-- | src/gallium/state_trackers/dri/dri_screen.c | 9 | ||||
| -rw-r--r-- | src/gallium/state_trackers/dri/dri_screen.h | 10 | ||||
| -rw-r--r-- | src/gallium/state_trackers/dri/dri_st_api.c | 2 | 
3 files changed, 13 insertions, 8 deletions
diff --git a/src/gallium/state_trackers/dri/dri_screen.c b/src/gallium/state_trackers/dri/dri_screen.c index 17b9f1c5fa..733d71f995 100644 --- a/src/gallium/state_trackers/dri/dri_screen.c +++ b/src/gallium/state_trackers/dri/dri_screen.c @@ -148,9 +148,7 @@ dri_fill_in_modes(struct dri_screen *screen,  					     PIPE_TEXTURE_USAGE_RENDER_TARGET, 0);     /* We can only get a 16 or 32 bit depth buffer with getBuffersWithFormat */ -   if (screen->sPriv->dri2.loader && -       (screen->sPriv->dri2.loader->base.version > 2) && -       (screen->sPriv->dri2.loader->getBuffersWithFormat != NULL)) { +   if (dri_with_format(screen->sPriv)) {        pf_z16 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z16_UNORM,                                               PIPE_TEXTURE_2D,                                               PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0); @@ -352,8 +350,6 @@ dri_init_screen2(__DRIscreen * sPriv)  {     struct dri_screen *screen;     struct drm_create_screen_arg arg; -   const __DRIdri2LoaderExtension *dri2_ext = -     sPriv->dri2.loader;     screen = CALLOC_STRUCT(dri_screen);     if (!screen) @@ -379,8 +375,7 @@ dri_init_screen2(__DRIscreen * sPriv)     driParseOptionInfo(&screen->optionCache,  		      __driConfigOptions, __driNConfigOptions); -   screen->auto_fake_front = dri2_ext->base.version >= 3 && -      dri2_ext->getBuffersWithFormat != NULL; +   screen->auto_fake_front = dri_with_format(sPriv);     return dri_fill_in_modes(screen, 32);  fail: diff --git a/src/gallium/state_trackers/dri/dri_screen.h b/src/gallium/state_trackers/dri/dri_screen.h index e9944e0f63..3b805c539f 100644 --- a/src/gallium/state_trackers/dri/dri_screen.h +++ b/src/gallium/state_trackers/dri/dri_screen.h @@ -75,6 +75,16 @@ dri_screen(__DRIscreen * sPriv)     return (struct dri_screen *)sPriv->private;  } +static INLINE boolean +dri_with_format(__DRIscreen * sPriv) +{ +   const __DRIdri2LoaderExtension *loader = sPriv->dri2.loader; + +   return loader +       && (loader->base.version >= 3) +       && (loader->getBuffersWithFormat != NULL); +} +  extern const uint __driNConfigOptions;  const __DRIconfig ** diff --git a/src/gallium/state_trackers/dri/dri_st_api.c b/src/gallium/state_trackers/dri/dri_st_api.c index 263c1e19a7..67ab89e7aa 100644 --- a/src/gallium/state_trackers/dri/dri_st_api.c +++ b/src/gallium/state_trackers/dri/dri_st_api.c @@ -172,7 +172,7 @@ dri_drawable_get_buffers(struct dri_drawable *drawable,     unsigned num_attachments, i;     assert(loader); -   with_format = (loader->base.version > 2 && loader->getBuffersWithFormat); +   with_format = dri_with_format(drawable->sPriv);     num_attachments = 0;  | 
