mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-30 18:00:24 +01:00
graw-null: New target to ensure we always have a graw implementation available.
This commit is contained in:
parent
2b322ad147
commit
d5e741d6d8
4 changed files with 145 additions and 3 deletions
|
|
@ -10,10 +10,13 @@ if 'gdi' in env['winsys']:
|
|||
'libgl-gdi/SConscript',
|
||||
])
|
||||
|
||||
if 'graw-xlib' in env['winsys']:
|
||||
if env['platform'] == 'linux' and 'xlib' in env['winsys'] and 'graw-xlib' in env['winsys']:
|
||||
SConscript([
|
||||
'graw-xlib/SConscript',
|
||||
])
|
||||
else:
|
||||
SConscript('graw-null/SConscript')
|
||||
|
||||
|
||||
if env['dri']:
|
||||
SConscript([
|
||||
|
|
|
|||
53
src/gallium/targets/graw-null/SConscript
Normal file
53
src/gallium/targets/graw-null/SConscript
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#######################################################################
|
||||
# SConscript for xlib winsys
|
||||
|
||||
Import('*')
|
||||
|
||||
env = env.Clone()
|
||||
|
||||
env.Prepend(LIBS = [
|
||||
ws_null,
|
||||
trace,
|
||||
identity,
|
||||
# gallium,
|
||||
])
|
||||
|
||||
env.Append(CPPPATH = [
|
||||
'#src/gallium/drivers',
|
||||
])
|
||||
|
||||
if env['platform'] == 'windows':
|
||||
# For trace
|
||||
env.Append(LIBS = [
|
||||
'ws2_32',
|
||||
])
|
||||
|
||||
sources = [
|
||||
'graw_null.c',
|
||||
]
|
||||
|
||||
if True:
|
||||
env.Append(CPPDEFINES = 'GALLIUM_SOFTPIPE')
|
||||
env.Prepend(LIBS = [softpipe])
|
||||
|
||||
if env['llvm']:
|
||||
env.Append(CPPDEFINES = 'GALLIUM_LLVMPIPE')
|
||||
env.Tool('udis86')
|
||||
env.Prepend(LIBS = [llvmpipe])
|
||||
|
||||
# Need this for trace, identity drivers referenced by
|
||||
# gallium_wrap_screen().
|
||||
#
|
||||
env.Prepend(LIBS = [gallium])
|
||||
|
||||
# TODO: write a wrapper function http://www.scons.org/wiki/WrapperFunctions
|
||||
graw = env.SharedLibrary(
|
||||
target ='graw',
|
||||
source = sources,
|
||||
)
|
||||
|
||||
env.InstallSharedLibrary(graw, version=(1, 0))
|
||||
|
||||
graw = env.FindIxes(graw, 'SHLIBPREFIX', 'SHLIBSUFFIX')
|
||||
|
||||
Export('graw')
|
||||
83
src/gallium/targets/graw-null/graw_null.c
Normal file
83
src/gallium/targets/graw-null/graw_null.c
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
#include "pipe/p_compiler.h"
|
||||
#include "util/u_debug.h"
|
||||
#include "util/u_memory.h"
|
||||
#include "target-helpers/wrap_screen.h"
|
||||
#include "sw/null/null_sw_winsys.h"
|
||||
|
||||
#ifdef GALLIUM_SOFTPIPE
|
||||
#include "softpipe/sp_public.h"
|
||||
#endif
|
||||
|
||||
#ifdef GALLIUM_LLVMPIPE
|
||||
#include "llvmpipe/lp_public.h"
|
||||
#endif
|
||||
|
||||
/* Haven't figured out a decent way to build the helper code yet -
|
||||
* #include it here temporarily.
|
||||
*/
|
||||
#include "sw/sw_public.h"
|
||||
#include "sw/sw.c"
|
||||
|
||||
#include "state_tracker/graw.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
struct pipe_screen *
|
||||
graw_init( void )
|
||||
{
|
||||
const char *default_driver;
|
||||
const char *driver;
|
||||
struct pipe_screen *screen = NULL;
|
||||
struct sw_winsys *winsys = NULL;
|
||||
|
||||
/* Create the underlying winsys, which performs presents to Xlib
|
||||
* drawables:
|
||||
*/
|
||||
winsys = null_sw_create();
|
||||
if (winsys == NULL)
|
||||
return NULL;
|
||||
|
||||
#if defined(GALLIUM_LLVMPIPE)
|
||||
default_driver = "llvmpipe";
|
||||
#elif defined(GALLIUM_SOFTPIPE)
|
||||
default_driver = "softpipe";
|
||||
#else
|
||||
default_driver = "";
|
||||
#endif
|
||||
|
||||
driver = debug_get_option("GALLIUM_DRIVER", default_driver);
|
||||
|
||||
#if defined(GALLIUM_LLVMPIPE)
|
||||
if (screen == NULL && strcmp(driver, "llvmpipe") == 0)
|
||||
screen = llvmpipe_create_screen( winsys );
|
||||
#endif
|
||||
|
||||
#if defined(GALLIUM_SOFTPIPE)
|
||||
if (screen == NULL)
|
||||
screen = softpipe_create_screen( winsys );
|
||||
#endif
|
||||
|
||||
/* Inject any wrapping layers we want to here:
|
||||
*/
|
||||
return gallium_wrap_screen( screen );
|
||||
}
|
||||
|
||||
|
||||
void *
|
||||
graw_create_window( int x,
|
||||
int y,
|
||||
unsigned width,
|
||||
unsigned height,
|
||||
enum pipe_format format )
|
||||
{
|
||||
static int dummy;
|
||||
return &dummy;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
graw_destroy_window( void *window )
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -1,12 +1,15 @@
|
|||
Import('*')
|
||||
|
||||
if 'graw-xlib' not in env['winsys']:
|
||||
try:
|
||||
graw
|
||||
except NameError:
|
||||
print 'warning: graw library not avaiable: skipping build of graw test'
|
||||
Return()
|
||||
|
||||
env = env.Clone()
|
||||
|
||||
env.Prepend(LIBPATH = [graw.dir])
|
||||
env.Prepend(LIBS = [graw.name])
|
||||
env.Prepend(LIBS = ['graw'])
|
||||
|
||||
progs = [
|
||||
'clear'
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue