python: Allow hardware support.

This commit is contained in:
José Fonseca
2008-07-15 08:42:16 +09:00
parent 2c4349aa3a
commit 1d03102b31
8 changed files with 96 additions and 13 deletions

View File

@@ -15,12 +15,19 @@ if 'python' in env['statetrackers']:
env.Append(CPPPATH = '.') env.Append(CPPPATH = '.')
env.SharedLibrary( pyst = env.ConvenienceLibrary(
target = '_gallium', target = 'pyst',
source = [ source = [
'gallium.i', 'gallium.i',
'st_device.c', 'st_device.c',
'st_softpipe_winsys.c', 'st_softpipe_winsys.c',
], ],
LIBS = softpipe + auxiliaries + env['LIBS'], )
env.SharedLibrary(
target = '_gallium',
source = [
'st_hardpipe_winsys.c',
],
LIBS = [pyst, softpipe] + auxiliaries + env['LIBS'],
) )

View File

@@ -100,7 +100,7 @@ struct st_context {
%extend st_device { %extend st_device {
st_device(int hardware = 0) { st_device(int hardware = 1) {
return st_device_create(hardware ? TRUE : FALSE); return st_device_create(hardware ? TRUE : FALSE);
} }

View File

@@ -185,7 +185,7 @@ def test(dev):
def main(): def main():
dev = Device(hardware = False) dev = Device()
test(dev) test(dev)

View File

@@ -82,12 +82,10 @@ st_device_create_from_st_winsys(const struct st_winsys *st_ws)
struct st_device * struct st_device *
st_device_create(boolean hardware) { st_device_create(boolean hardware) {
#if 0
if(hardware) if(hardware)
return st_device_create_from_st_winsys(&st_hardware_winsys); return st_device_create_from_st_winsys(&st_hardpipe_winsys);
else else
#endif return st_device_create_from_st_winsys(&st_softpipe_winsys);
return st_device_create_from_st_winsys(&st_software_winsys);
} }

View File

@@ -0,0 +1,78 @@
/**************************************************************************
*
* Copyright 2008 Tungsten Graphics, Inc., Bismarck, ND., USA
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sub license, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
* USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* The above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial portions
* of the Software.
*
*
**************************************************************************/
/**
* @file
* Stub for hardware pipe driver support.
*/
#include "pipe/p_compiler.h"
#include "st_winsys.h"
extern void init_gallium(void);
void (*force_init_gallium_linkage)(void) = &init_gallium;
static void
st_hardpipe_screen_destroy(struct pipe_screen *screen)
{
st_softpipe_winsys.screen_destroy(screen);
}
static struct pipe_screen *
st_hardpipe_screen_create(void)
{
return st_softpipe_winsys.screen_create();
}
static void
st_hardpipe_context_destroy(struct pipe_context *pipe)
{
st_softpipe_winsys.context_destroy(pipe);
}
static struct pipe_context *
st_hardpipe_context_create(struct pipe_screen *screen)
{
return st_softpipe_winsys.context_create(screen);
}
const struct st_winsys st_hardpipe_winsys = {
&st_hardpipe_screen_create,
&st_hardpipe_screen_destroy,
&st_hardpipe_context_create,
&st_hardpipe_context_destroy
};

View File

@@ -313,7 +313,7 @@ st_softpipe_context_create(struct pipe_screen *screen)
} }
const struct st_winsys st_software_winsys = { const struct st_winsys st_softpipe_winsys = {
&st_softpipe_screen_create, &st_softpipe_screen_create,
&st_softpipe_screen_destroy, &st_softpipe_screen_destroy,
&st_softpipe_context_create, &st_softpipe_context_create,

View File

@@ -50,9 +50,9 @@ struct st_winsys
}; };
extern const struct st_winsys st_software_winsys; extern const struct st_winsys st_softpipe_winsys;
extern const struct st_winsys st_hardware_winsys; extern const struct st_winsys st_hardpipe_winsys;
#endif /* ST_WINSYS_H_ */ #endif /* ST_WINSYS_H_ */

View File

@@ -227,7 +227,7 @@ class TextureTest(Test):
def main(): def main():
dev = Device(hardware = False) dev = Device()
test = TextureTest(dev = dev) test = TextureTest(dev = dev)
test.run() test.run()