mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-22 19:20:22 +01:00
i915: Enable winsys to get buffer from texture
This commit is contained in:
parent
25b32eb8d0
commit
36348ff1da
2 changed files with 31 additions and 0 deletions
|
|
@ -42,6 +42,7 @@
|
|||
#include "i915_texture.h"
|
||||
#include "i915_debug.h"
|
||||
#include "i915_screen.h"
|
||||
#include "i915_winsys.h"
|
||||
|
||||
/*
|
||||
* Helper function and arrays
|
||||
|
|
@ -765,3 +766,20 @@ i915_init_screen_texture_functions(struct pipe_screen *screen)
|
|||
screen->texture_blanket = i915_texture_blanket;
|
||||
screen->tex_surface_release = i915_tex_surface_release;
|
||||
}
|
||||
|
||||
boolean i915_get_texture_buffer( struct pipe_texture *texture,
|
||||
struct pipe_buffer **buf,
|
||||
unsigned *stride )
|
||||
{
|
||||
struct i915_texture *tex = (struct i915_texture *)texture;
|
||||
|
||||
if (!tex)
|
||||
return FALSE;
|
||||
|
||||
pipe_buffer_reference(texture->screen, buf, tex->buffer);
|
||||
|
||||
if (stride)
|
||||
*stride = tex->stride;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ extern "C" {
|
|||
*/
|
||||
|
||||
struct i915_batchbuffer;
|
||||
struct pipe_texture;
|
||||
struct pipe_buffer;
|
||||
struct pipe_fence_handle;
|
||||
struct pipe_winsys;
|
||||
|
|
@ -123,6 +124,18 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen,
|
|||
struct pipe_winsys *winsys,
|
||||
struct i915_winsys *i915 );
|
||||
|
||||
/**
|
||||
* Used for the winsys to get the buffer used for a texture
|
||||
* and also the stride used for the texture.
|
||||
*
|
||||
* Buffer is referenced for you so you need to unref after use.
|
||||
*
|
||||
* This is needed for example kms.
|
||||
*/
|
||||
boolean i915_get_texture_buffer( struct pipe_texture *texture,
|
||||
struct pipe_buffer **buf,
|
||||
unsigned *stride );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue