st/glx: Make xmesa_create_st_api a callback of xm_driver.
Instead of guessing the API in st/glx, let the target decide how to create st_api.
This commit is contained in:
@@ -708,7 +708,7 @@ xmesa_init( Display *display )
|
||||
if (firstTime) {
|
||||
pipe_mutex_init(_xmesa_lock);
|
||||
screen = driver.create_pipe_screen( display );
|
||||
stapi = xmesa_create_st_api();
|
||||
stapi = driver.create_st_api();
|
||||
smapi = CALLOC_STRUCT(st_manager);
|
||||
if (smapi)
|
||||
smapi->screen = screen;
|
||||
|
||||
@@ -26,19 +26,23 @@
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef XM_WINSYS_H
|
||||
#define XM_WINSYS_H
|
||||
#ifndef XM_PUBLIC_H
|
||||
#define XM_PUBLIC_H
|
||||
|
||||
struct xm_driver;
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
struct pipe_screen;
|
||||
struct st_api;
|
||||
|
||||
/* This is the driver interface required by the glx/xlib state tracker.
|
||||
*/
|
||||
struct xm_driver {
|
||||
struct pipe_screen *(*create_pipe_screen)( Display *display );
|
||||
struct st_api *(*create_st_api)( void );
|
||||
};
|
||||
|
||||
extern void
|
||||
xmesa_set_driver( const struct xm_driver *driver );
|
||||
|
||||
|
||||
#endif
|
||||
#endif /* XM_PUBLIC_H */
|
||||
|
||||
@@ -31,11 +31,6 @@
|
||||
#include "xm_api.h"
|
||||
#include "xm_st.h"
|
||||
|
||||
/* support OpenGL by default */
|
||||
#ifndef XMESA_ST_MODULE
|
||||
#define XMESA_ST_MODULE st_module_OpenGL
|
||||
#endif
|
||||
|
||||
struct xmesa_st_framebuffer {
|
||||
struct pipe_screen *screen;
|
||||
XMesaBuffer buffer;
|
||||
@@ -267,9 +262,3 @@ xmesa_copy_st_framebuffer(struct st_framebuffer_iface *stfbi,
|
||||
{
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
struct st_api *
|
||||
xmesa_create_st_api(void)
|
||||
{
|
||||
return XMESA_ST_MODULE.create_api();
|
||||
}
|
||||
|
||||
@@ -33,9 +33,6 @@
|
||||
|
||||
#include "xm_api.h"
|
||||
|
||||
struct st_api *
|
||||
xmesa_create_st_api(void);
|
||||
|
||||
struct st_framebuffer_iface *
|
||||
xmesa_create_st_framebuffer(struct pipe_screen *screen, XMesaBuffer b);
|
||||
|
||||
|
||||
@@ -104,9 +104,10 @@ fail:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct xm_driver xlib_driver =
|
||||
static struct xm_driver xlib_driver =
|
||||
{
|
||||
.create_pipe_screen = swrast_xlib_create_screen,
|
||||
.create_st_api = st_manager_create_api,
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user