Squashed commit of the following:
[mesa.git] / src / gallium / state_trackers / python / p_state.i
index 318fe1c46373e3fc7917c82919110414b8a9d2ff..c1e6ea1b43c9d990fa13479bbcce03885ca2858a 100644 (file)
 };
 
 
+%extend pipe_blend_state
+{
+   pipe_blend_state(void)
+   {
+      return CALLOC_STRUCT(pipe_blend_state);
+   }
+
+   %cstring_input_binary(const char *STRING, unsigned LENGTH);
+   pipe_blend_state(const char *STRING, unsigned LENGTH)
+   {
+      struct pipe_blend_state *state;
+      state = CALLOC_STRUCT(pipe_blend_state);
+      if (state) {
+         LENGTH = MIN2(sizeof *state, LENGTH);
+         memcpy(state, STRING, LENGTH);
+      }
+      return state;
+   }
+
+   %cstring_output_allocate_size(char **STRING, int *LENGTH, os_free(*$1));
+   void __str__(char **STRING, int *LENGTH)
+   {
+      struct os_stream *stream;
+
+      stream = os_str_stream_create(1);
+      util_dump_blend_state(stream, $self);
+
+      *STRING = os_str_stream_get_and_close(stream);
+      *LENGTH = strlen(*STRING);
+   }
+};
+
+
 %extend pipe_framebuffer_state {
    
    pipe_framebuffer_state(void) {
          SWIG_exception(SWIG_ValueError, "index out of bounds");
       
       if(surface) {
-         _surface = st_pipe_surface(surface, PIPE_BUFFER_USAGE_GPU_WRITE);
+         _surface = st_pipe_surface(surface, PIPE_BIND_RENDER_TARGET);
          if(!_surface)
             SWIG_exception(SWIG_ValueError, "couldn't acquire surface for writing");
       }
       struct pipe_surface *_surface = NULL;
 
       if(surface) {
-         _surface = st_pipe_surface(surface, PIPE_BUFFER_USAGE_GPU_WRITE);
+         _surface = st_pipe_surface(surface, PIPE_BIND_DEPTH_STENCIL);
          if(!_surface)
             SWIG_exception(SWIG_ValueError, "couldn't acquire surface for writing");
       }