inline_wrapper_sw_helper.h revision f8f3baa43a3954b7078e5e24b41ae123f398bff8
1bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz 2bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz#ifndef INLINE_WRAPPER_SW_HELPER_H 3bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz#define INLINE_WRAPPER_SW_HELPER_H 4bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz 5bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz#include "target-helpers/inline_sw_helper.h" 6bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz#include "sw/wrapper/wrapper_sw_winsys.h" 7bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz 8bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz/** 9bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz * Try to wrap a hw screen with a software screen. 10bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz * On failure will return given screen. 11bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz */ 12bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantzstatic INLINE struct pipe_screen * 13bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantzsw_screen_wrap(struct pipe_screen *screen) 14bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz{ 15bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz struct sw_winsys *sws; 16bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz struct pipe_screen *sw_screen; 17bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz 18f8f3baa43a3954b7078e5e24b41ae123f398bff8Jakob Bornecrantz sws = wrapper_sw_winsys_wrap_pipe_screen(screen); 19bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz if (!sws) 20bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz goto err; 21bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz 22bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz sw_screen = sw_screen_create(sws); 23bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz if (sw_screen == screen) 24bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz goto err_winsys; 25bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz 26bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz return sw_screen; 27bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz 28bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantzerr_winsys: 29bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz sws->destroy(sws); 30bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantzerr: 31bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz return screen; 32bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz} 33bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz 34bd739e95763d8051679649cc44d16d4fcbb0fec1Jakob Bornecrantz#endif 35