~ubuntu-branches/ubuntu/natty/mesa/natty-proposed

« back to all changes in this revision

Viewing changes to src/gallium/include/state_tracker/sw_winsys.h

  • Committer: Bazaar Package Importer
  • Author(s): Robert Hooker, Robert Hooker, Christopher James Halse Rogers
  • Date: 2010-09-14 08:55:40 UTC
  • mfrom: (1.2.28 upstream)
  • Revision ID: james.westby@ubuntu.com-20100914085540-m4fpl0hdjlfd4jgz
Tags: 7.9~git20100909-0ubuntu1
[ Robert Hooker ]
* New upstream git snapshot up to commit 94118fe2d4b1e5 (LP: #631413)
* New features include ATI HD5xxx series support in r600, and a vastly
  improved glsl compiler.
* Remove pre-generated .pc's, use the ones generated at build time
  instead.
* Remove all references to mesa-utils now that its no longer shipped
  with the mesa source.
* Disable the experimental ARB_fragment_shader option by default on
  i915, it exposes incomplete functionality that breaks KDE compositing
  among other things. It can be enabled via driconf still. (LP: #628930).

[ Christopher James Halse Rogers ]
* debian/patches/04_osmesa_version.diff:
  - Refresh for new upstream
* Bugs fixed in this release:
  - Fixes severe rendering corruption in Unity on radeon (LP: #628727,
    LP: #596292, LP: #599741, LP: #630315, LP: #613694, LP: #599741).
  - Also fixes rendering in gnome-shell (LP: #578619).
  - Flickering in OpenGL apps on radeon (LP: #626943, LP: #610541).
  - Provides preliminary support for new intel chips (LP: #601052).
* debian/rules:
  - Update configure flags to match upstream reshuffling.
  - Explicitly remove gallium DRI drivers that we don't want to ship.
* Update debian/gbp.conf for this Maverick-specific packaging
* libegl1-mesa-dri-x11,kms: There are no longer separate kms or x11 drivers
  for EGL, libegl1-mesa-drivers now contains a single driver that provides
  both backends.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**************************************************************************
 
2
 * 
 
3
 * Copyright 2007-2009 VMware, Inc.
 
4
 * All Rights Reserved.
 
5
 * 
 
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:
 
13
 * 
 
14
 * The above copyright notice and this permission notice (including the
 
15
 * next paragraph) shall be included in all copies or substantial portions
 
16
 * of the Software.
 
17
 * 
 
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.
 
25
 * 
 
26
 **************************************************************************/
 
27
 
 
28
/**
 
29
 * @file
 
30
 * Software rasterizer winsys.
 
31
 */
 
32
 
 
33
 
 
34
#ifndef SW_WINSYS_H
 
35
#define SW_WINSYS_H
 
36
 
 
37
 
 
38
#include "pipe/p_compiler.h" /* for boolean */
 
39
#include "pipe/p_format.h"
 
40
 
 
41
 
 
42
#ifdef __cplusplus
 
43
extern "C" {
 
44
#endif
 
45
 
 
46
 
 
47
struct winsys_handle;
 
48
struct pipe_screen;
 
49
struct pipe_context;
 
50
struct pipe_resource;
 
51
 
 
52
 
 
53
/**
 
54
 * Opaque pointer.
 
55
 */
 
56
struct sw_displaytarget;
 
57
 
 
58
 
 
59
/**
 
60
 * This is the interface that sw expects any window system
 
61
 * hosting it to implement.
 
62
 * 
 
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.
 
65
 */
 
66
struct sw_winsys
 
67
{
 
68
   void 
 
69
   (*destroy)( struct sw_winsys *ws );
 
70
 
 
71
   boolean
 
72
   (*is_displaytarget_format_supported)( struct sw_winsys *ws,
 
73
                                         unsigned tex_usage,
 
74
                                         enum pipe_format format );
 
75
   
 
76
   /**
 
77
    * Allocate storage for a render target.
 
78
    * 
 
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.
 
82
    *  
 
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 
 
85
    * storage.
 
86
    */
 
87
   struct sw_displaytarget *
 
88
   (*displaytarget_create)( struct sw_winsys *ws,
 
89
                            unsigned tex_usage,
 
90
                            enum pipe_format format,
 
91
                            unsigned width, unsigned height,
 
92
                            unsigned alignment,
 
93
                            unsigned *stride );
 
94
 
 
95
   /**
 
96
    * Used to implement texture_from_handle.
 
97
    */
 
98
   struct sw_displaytarget *
 
99
   (*displaytarget_from_handle)( struct sw_winsys *ws,
 
100
                                 const struct pipe_resource *template,
 
101
                                 struct winsys_handle *whandle,
 
102
                                 unsigned *stride );
 
103
 
 
104
   /**
 
105
    * Used to implement texture_get_handle.
 
106
    */
 
107
   boolean
 
108
   (*displaytarget_get_handle)( struct sw_winsys *ws,
 
109
                                struct sw_displaytarget *dt,
 
110
                                struct winsys_handle *whandle );
 
111
 
 
112
   /**
 
113
    * \param flags  bitmask of PIPE_TRANSFER_x flags
 
114
    */
 
115
   void *
 
116
   (*displaytarget_map)( struct sw_winsys *ws, 
 
117
                         struct sw_displaytarget *dt,
 
118
                         unsigned flags );
 
119
 
 
120
   void
 
121
   (*displaytarget_unmap)( struct sw_winsys *ws,
 
122
                           struct sw_displaytarget *dt );
 
123
 
 
124
   /**
 
125
    * @sa pipe_screen:flush_frontbuffer.
 
126
    *
 
127
    * This call will likely become asynchronous eventually.
 
128
    */
 
129
   void
 
130
   (*displaytarget_display)( struct sw_winsys *ws, 
 
131
                             struct sw_displaytarget *dt,
 
132
                             void *context_private );
 
133
 
 
134
   void 
 
135
   (*displaytarget_destroy)( struct sw_winsys *ws, 
 
136
                             struct sw_displaytarget *dt );
 
137
};
 
138
 
 
139
 
 
140
 
 
141
#ifdef __cplusplus
 
142
}
 
143
#endif
 
144
 
 
145
#endif /* SW_WINSYS_H */