/** * Create a new pipe_screen object * Note: we're not presently subclassing pipe_screen (no softpipe_screen). */ struct pipe_screen * softpipe_create_screen(struct sw_winsys *winsys) { struct softpipe_screen *screen = CALLOC_STRUCT(softpipe_screen); if (!screen) return NULL; screen->winsys = winsys; screen->base.destroy = softpipe_destroy_screen; screen->base.get_name = softpipe_get_name; screen->base.get_vendor = softpipe_get_vendor; screen->base.get_param = softpipe_get_param; screen->base.get_shader_param = softpipe_get_shader_param; screen->base.get_paramf = softpipe_get_paramf; screen->base.get_video_param = softpipe_get_video_param; screen->base.get_timestamp = softpipe_get_timestamp; screen->base.is_format_supported = softpipe_is_format_supported; screen->base.is_video_format_supported = vl_video_buffer_is_format_supported; screen->base.context_create = softpipe_create_context; screen->base.flush_frontbuffer = softpipe_flush_frontbuffer; screen->use_llvm = debug_get_option_use_llvm(); util_format_s3tc_init(); softpipe_init_screen_texture_funcs(&screen->base); softpipe_init_screen_fence_funcs(&screen->base); return &screen->base; }
/** * Create a new pipe_screen object * Note: we're not presently subclassing pipe_screen (no softpipe_screen). */ struct pipe_screen * softpipe_create_screen(struct pipe_winsys *winsys) { struct softpipe_screen *screen = CALLOC_STRUCT(softpipe_screen); if (!screen) return NULL; screen->base.winsys = winsys; screen->base.destroy = softpipe_destroy_screen; screen->base.get_name = softpipe_get_name; screen->base.get_vendor = softpipe_get_vendor; screen->base.get_param = softpipe_get_param; screen->base.get_paramf = softpipe_get_paramf; screen->base.is_format_supported = softpipe_is_format_supported; softpipe_init_screen_texture_funcs(&screen->base); return &screen->base; }