/**************************************************************************
*
- * Copyright 2004 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * Copyright 2004 VMware, Inc.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* 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 TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * IN NO EVENT SHALL VMWARE 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.
/*
* Authors:
- * Keith Whitwell <keith@tungstengraphics.com>
+ * Keith Whitwell <keithw@vmware.com>
*/
#ifndef ST_DRAW_H
#define ST_DRAW_H
-struct _mesa_prim;
+#include "main/glheader.h"
+
struct _mesa_index_buffer;
+struct _mesa_prim;
+struct gl_context;
+struct st_context;
-void st_init_draw( struct st_context *st );
+void st_init_draw_functions(struct dd_function_table *functions);
void st_destroy_draw( struct st_context *st );
-extern void
-st_draw_vbo(GLcontext *ctx,
- const struct gl_client_array **arrays,
- const struct _mesa_prim *prims,
- GLuint nr_prims,
- const struct _mesa_index_buffer *ib,
- GLboolean index_bounds_valid,
- GLuint min_index,
- GLuint max_index);
+struct draw_context *st_get_draw_context(struct st_context *st);
extern void
-st_feedback_draw_vbo(GLcontext *ctx,
- const struct gl_client_array **arrays,
+st_feedback_draw_vbo(struct gl_context *ctx,
const struct _mesa_prim *prims,
GLuint nr_prims,
const struct _mesa_index_buffer *ib,
GLboolean index_bounds_valid,
GLuint min_index,
- GLuint max_index);
-
-/* Internal function:
- */
-extern GLuint
-st_pipe_vertex_format(GLenum type, GLuint size, GLenum format,
- GLboolean normalized);
-
+ GLuint max_index,
+ GLuint num_instances,
+ GLuint base_instance,
+ struct gl_transform_feedback_object *tfb_vertcount,
+ unsigned stream);
/**
* When drawing with VBOs, the addresses specified with
* This function is basically a cast wrapper to avoid warnings when building
* in 64-bit mode.
*/
-static INLINE unsigned
+static inline unsigned
pointer_to_offset(const void *ptr)
{
- return (unsigned) (((unsigned long) ptr) & 0xffffffffUL);
+ return (unsigned) (((GLsizeiptr) ptr) & 0xffffffffUL);
}
+bool
+st_draw_quad(struct st_context *st,
+ float x0, float y0, float x1, float y1, float z,
+ float s0, float t0, float s1, float t1,
+ const float *color,
+ unsigned num_instances);
+
#endif