1
/**************************************************************************
3
* Copyright 2007-2009 VMware, Inc.
6
* Permission is hereby granted, free of charge, to any person obtaining a
7
* copy of this software and associated documentation files (the
8
* "Software"), to deal in the Software without restriction, including
9
* without limitation the rights to use, copy, modify, merge, publish,
10
* distribute, sub license, and/or sell copies of the Software, and to
11
* permit persons to whom the Software is furnished to do so, subject to
12
* the following conditions:
14
* The above copyright notice and this permission notice (including the
15
* next paragraph) shall be included in all copies or substantial portions
18
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21
* IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
**************************************************************************/
30
* Software rasterizer winsys.
38
#include "pipe/p_compiler.h" /* for boolean */
39
#include "pipe/p_format.h"
56
struct sw_displaytarget;
60
* This is the interface that sw expects any window system
61
* hosting it to implement.
63
* sw is for the most part a self sufficient driver. The only thing it
64
* does not know is how to display a surface.
69
(*destroy)( struct sw_winsys *ws );
72
(*is_displaytarget_format_supported)( struct sw_winsys *ws,
74
enum pipe_format format );
77
* Allocate storage for a render target.
79
* Often surfaces which are meant to be blitted to the front screen (i.e.,
80
* display targets) must be allocated with special characteristics, memory
81
* pools, or obtained directly from the windowing system.
83
* This callback is invoked by the pipe_screen when creating a texture marked
84
* with the PIPE_BIND_DISPLAY_TARGET flag to get the underlying
87
struct sw_displaytarget *
88
(*displaytarget_create)( struct sw_winsys *ws,
90
enum pipe_format format,
91
unsigned width, unsigned height,
96
* Used to implement texture_from_handle.
98
struct sw_displaytarget *
99
(*displaytarget_from_handle)( struct sw_winsys *ws,
100
const struct pipe_resource *template,
101
struct winsys_handle *whandle,
105
* Used to implement texture_get_handle.
108
(*displaytarget_get_handle)( struct sw_winsys *ws,
109
struct sw_displaytarget *dt,
110
struct winsys_handle *whandle );
113
* \param flags bitmask of PIPE_TRANSFER_x flags
116
(*displaytarget_map)( struct sw_winsys *ws,
117
struct sw_displaytarget *dt,
121
(*displaytarget_unmap)( struct sw_winsys *ws,
122
struct sw_displaytarget *dt );
125
* @sa pipe_screen:flush_frontbuffer.
127
* This call will likely become asynchronous eventually.
130
(*displaytarget_display)( struct sw_winsys *ws,
131
struct sw_displaytarget *dt,
132
void *context_private );
135
(*displaytarget_destroy)( struct sw_winsys *ws,
136
struct sw_displaytarget *dt );
145
#endif /* SW_WINSYS_H */