projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
st/mesa: always expose ARB_ES2_compatibility
[mesa.git]
/
src
/
mesa
/
state_tracker
/
st_program.h
diff --git
a/src/mesa/state_tracker/st_program.h
b/src/mesa/state_tracker/st_program.h
index c4244df939e01a5092bd266d2579fac654225c2d..6c4b4f6c37229fe60f69f6d700fafad52de551e3 100644
(file)
--- a/
src/mesa/state_tracker/st_program.h
+++ b/
src/mesa/state_tracker/st_program.h
@@
-38,6
+38,7
@@
#include "program/program.h"
#include "pipe/p_state.h"
#include "st_context.h"
#include "program/program.h"
#include "pipe/p_state.h"
#include "st_context.h"
+#include "st_glsl_to_tgsi.h"
/** Fragment program variant key */
/** Fragment program variant key */
@@
-54,6
+55,9
@@
struct st_fp_variant_key
GLuint pixelMaps:1; /**< glDrawPixels w/ pixel lookup map? */
GLuint drawpixels_z:1; /**< glDrawPixels(GL_DEPTH) */
GLuint drawpixels_stencil:1; /**< glDrawPixels(GL_STENCIL) */
GLuint pixelMaps:1; /**< glDrawPixels w/ pixel lookup map? */
GLuint drawpixels_z:1; /**< glDrawPixels(GL_DEPTH) */
GLuint drawpixels_stencil:1; /**< glDrawPixels(GL_STENCIL) */
+
+ /** for ARB_color_buffer_float */
+ GLuint clamp_color:1;
};
};
@@
-65,6
+69,8
@@
struct st_fp_variant
/** Parameters which generated this version of fragment program */
struct st_fp_variant_key key;
/** Parameters which generated this version of fragment program */
struct st_fp_variant_key key;
+ struct pipe_shader_state tgsi;
+
/** Driver's compiled shader */
void *driver_shader;
/** Driver's compiled shader */
void *driver_shader;
@@
-83,8
+89,7
@@
struct st_fp_variant
struct st_fragment_program
{
struct gl_fragment_program Base;
struct st_fragment_program
{
struct gl_fragment_program Base;
-
- struct pipe_shader_state tgsi;
+ struct glsl_to_tgsi_visitor* glsl_to_tgsi;
struct st_fp_variant *variants;
};
struct st_fp_variant *variants;
};
@@
-96,6
+101,9
@@
struct st_vp_variant_key
{
struct st_context *st; /**< variants are per-context */
boolean passthrough_edgeflags;
{
struct st_context *st; /**< variants are per-context */
boolean passthrough_edgeflags;
+
+ /** for ARB_color_buffer_float */
+ boolean clamp_color;
};
};
@@
-136,6
+144,7
@@
struct st_vp_variant
struct st_vertex_program
{
struct gl_vertex_program Base; /**< The Mesa vertex program */
struct st_vertex_program
{
struct gl_vertex_program Base; /**< The Mesa vertex program */
+ struct glsl_to_tgsi_visitor* glsl_to_tgsi;
/** maps a Mesa VERT_ATTRIB_x to a packed TGSI input index */
GLuint input_to_index[VERT_ATTRIB_MAX];
/** maps a Mesa VERT_ATTRIB_x to a packed TGSI input index */
GLuint input_to_index[VERT_ATTRIB_MAX];
@@
-184,6
+193,7
@@
struct st_gp_variant
struct st_geometry_program
{
struct gl_geometry_program Base; /**< The Mesa geometry program */
struct st_geometry_program
{
struct gl_geometry_program Base; /**< The Mesa geometry program */
+ struct glsl_to_tgsi_visitor* glsl_to_tgsi;
/** map GP input back to VP output */
GLuint input_map[PIPE_MAX_SHADER_INPUTS];
/** map GP input back to VP output */
GLuint input_map[PIPE_MAX_SHADER_INPUTS];
@@
-276,6
+286,14
@@
st_get_gp_variant(struct st_context *st,
const struct st_gp_variant_key *key);
const struct st_gp_variant_key *key);
+extern void
+st_prepare_vertex_program(struct gl_context *ctx,
+ struct st_vertex_program *stvp);
+
+extern GLboolean
+st_prepare_fragment_program(struct gl_context *ctx,
+ struct st_fragment_program *stfp);
+
extern void
st_release_vp_variants( struct st_context *st,
extern void
st_release_vp_variants( struct st_context *st,