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

« back to all changes in this revision

Viewing changes to src/mesa/main/dd.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:
36
36
struct gl_pixelstore_attrib;
37
37
struct gl_display_list;
38
38
 
39
 
#if FEATURE_ARB_vertex_buffer_object
 
39
/* GL_ARB_vertex_buffer_object */
40
40
/* Modifies GL_MAP_UNSYNCHRONIZED_BIT to allow driver to fail (return
41
41
 * NULL) if buffer is unavailable for immediate mapping.
42
42
 *
49
49
 * respect the contents of already referenced data.
50
50
 */
51
51
#define MESA_MAP_NOWAIT_BIT       0x0040
52
 
#endif
53
52
 
54
53
 
55
54
/**
595
594
   
596
595
   /*@}*/
597
596
 
 
597
   /**
 
598
    * \name GLSL shader/program functions.
 
599
    */
 
600
   /*@{*/
 
601
   /**
 
602
    * Called when a shader is compiled.
 
603
    *
 
604
    * Note that not all shader objects get ShaderCompile called on
 
605
    * them.  Notably, the shaders containing builtin functions do not
 
606
    * have CompileShader() called, so if lowering passes are done they
 
607
    * need to also be performed in LinkShader().
 
608
    */
 
609
   GLboolean (*CompileShader)(GLcontext *ctx, struct gl_shader *shader);
 
610
   /**
 
611
    * Called when a shader program is linked.
 
612
    *
 
613
    * This gives drivers an opportunity to clone the IR and make their
 
614
    * own transformations on it for the purposes of code generation.
 
615
    */
 
616
   GLboolean (*LinkShader)(GLcontext *ctx, struct gl_shader_program *shader);
 
617
   /*@}*/
598
618
 
599
619
   /**
600
620
    * \name State-changing functions.
706
726
   /*@}*/
707
727
 
708
728
 
709
 
   /** 
710
 
    * \name State-query functions
711
 
    *
712
 
    * Return GL_TRUE if query was completed, GL_FALSE otherwise.
713
 
    */
714
 
   /*@{*/
715
 
   /** Return the value or values of a selected parameter */
716
 
   GLboolean (*GetBooleanv)(GLcontext *ctx, GLenum pname, GLboolean *result);
717
 
   /** Return the value or values of a selected parameter */
718
 
   GLboolean (*GetDoublev)(GLcontext *ctx, GLenum pname, GLdouble *result);
719
 
   /** Return the value or values of a selected parameter */
720
 
   GLboolean (*GetFloatv)(GLcontext *ctx, GLenum pname, GLfloat *result);
721
 
   /** Return the value or values of a selected parameter */
722
 
   GLboolean (*GetIntegerv)(GLcontext *ctx, GLenum pname, GLint *result);
723
 
   /** Return the value or values of a selected parameter */
724
 
   GLboolean (*GetInteger64v)(GLcontext *ctx, GLenum pname, GLint64 *result);
725
 
   /** Return the value or values of a selected parameter */
726
 
   GLboolean (*GetPointerv)(GLcontext *ctx, GLenum pname, GLvoid **result);
727
 
   /*@}*/
728
 
   
729
 
 
730
729
   /**
731
730
    * \name Vertex/pixel buffer object functions
732
731
    */
733
 
#if FEATURE_ARB_vertex_buffer_object
734
732
   /*@{*/
735
733
   void (*BindBuffer)( GLcontext *ctx, GLenum target,
736
734
                       struct gl_buffer_object *obj );
774
772
   GLboolean (*UnmapBuffer)( GLcontext *ctx, GLenum target,
775
773
                             struct gl_buffer_object *obj );
776
774
   /*@}*/
777
 
#endif
778
775
 
779
776
   /**
780
777
    * \name Functions for GL_APPLE_object_purgeable
781
778
    */
782
 
#if FEATURE_APPLE_object_purgeable
783
779
   /*@{*/
784
780
   /* variations on ObjectPurgeable */
785
781
   GLenum (*BufferObjectPurgeable)( GLcontext *ctx, struct gl_buffer_object *obj, GLenum option );
791
787
   GLenum (*RenderObjectUnpurgeable)( GLcontext *ctx, struct gl_renderbuffer *obj, GLenum option );
792
788
   GLenum (*TextureObjectUnpurgeable)( GLcontext *ctx, struct gl_texture_object *obj, GLenum option );
793
789
   /*@}*/
794
 
#endif
795
790
 
796
791
   /**
797
 
    * \name Functions for GL_EXT_framebuffer_object
 
792
    * \name Functions for GL_EXT_framebuffer_{object,blit}.
798
793
    */
799
 
#if FEATURE_EXT_framebuffer_object
800
794
   /*@{*/
801
795
   struct gl_framebuffer * (*NewFramebuffer)(GLcontext *ctx, GLuint name);
802
796
   struct gl_renderbuffer * (*NewRenderbuffer)(GLcontext *ctx, GLuint name);
815
809
   void (*ValidateFramebuffer)(GLcontext *ctx,
816
810
                               struct gl_framebuffer *fb);
817
811
   /*@}*/
818
 
#endif
819
 
#if FEATURE_EXT_framebuffer_blit
820
812
   void (*BlitFramebuffer)(GLcontext *ctx,
821
813
                           GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
822
814
                           GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
823
815
                           GLbitfield mask, GLenum filter);
824
 
#endif
825
816
 
826
817
   /**
827
818
    * \name Query objects
849
840
    * \name GLSL-related functions (ARB extensions and OpenGL 2.x)
850
841
    */
851
842
   /*@{*/
852
 
   void (*AttachShader)(GLcontext *ctx, GLuint program, GLuint shader);
853
 
   void (*BindAttribLocation)(GLcontext *ctx, GLuint program, GLuint index,
854
 
                              const GLcharARB *name);
855
 
   void (*CompileShader)(GLcontext *ctx, GLuint shader);
856
 
   GLuint (*CreateShader)(GLcontext *ctx, GLenum type);
857
 
   GLuint (*CreateProgram)(GLcontext *ctx);
858
 
   void (*DeleteProgram2)(GLcontext *ctx, GLuint program);
859
 
   void (*DeleteShader)(GLcontext *ctx, GLuint shader);
860
 
   void (*DetachShader)(GLcontext *ctx, GLuint program, GLuint shader);
861
 
   void (*GetActiveAttrib)(GLcontext *ctx, GLuint program, GLuint index,
862
 
                           GLsizei maxLength, GLsizei * length, GLint * size,
863
 
                           GLenum * type, GLcharARB * name);
864
 
   void (*GetActiveUniform)(GLcontext *ctx, GLuint program, GLuint index,
865
 
                            GLsizei maxLength, GLsizei *length, GLint *size,
866
 
                            GLenum *type, GLcharARB *name);
867
 
   void (*GetAttachedShaders)(GLcontext *ctx, GLuint program, GLsizei maxCount,
868
 
                              GLsizei *count, GLuint *obj);
869
 
   GLint (*GetAttribLocation)(GLcontext *ctx, GLuint program,
870
 
                              const GLcharARB *name);
871
 
   GLuint (*GetHandle)(GLcontext *ctx, GLenum pname);
872
 
   void (*GetProgramiv)(GLcontext *ctx, GLuint program,
873
 
                        GLenum pname, GLint *params);
874
 
   void (*GetProgramInfoLog)(GLcontext *ctx, GLuint program, GLsizei bufSize,
875
 
                             GLsizei *length, GLchar *infoLog);
876
 
   void (*GetShaderiv)(GLcontext *ctx, GLuint shader,
877
 
                       GLenum pname, GLint *params);
878
 
   void (*GetShaderInfoLog)(GLcontext *ctx, GLuint shader, GLsizei bufSize,
879
 
                            GLsizei *length, GLchar *infoLog);
880
 
   void (*GetShaderSource)(GLcontext *ctx, GLuint shader, GLsizei maxLength,
881
 
                           GLsizei *length, GLcharARB *sourceOut);
882
 
   void (*GetUniformfv)(GLcontext *ctx, GLuint program, GLint location,
883
 
                        GLfloat *params);
884
 
   void (*GetUniformiv)(GLcontext *ctx, GLuint program, GLint location,
885
 
                        GLint *params);
886
 
   GLint (*GetUniformLocation)(GLcontext *ctx, GLuint program,
887
 
                               const GLcharARB *name);
888
 
   GLboolean (*IsProgram)(GLcontext *ctx, GLuint name);
889
 
   GLboolean (*IsShader)(GLcontext *ctx, GLuint name);
890
 
   void (*LinkProgram)(GLcontext *ctx, GLuint program);
891
 
   void (*ShaderSource)(GLcontext *ctx, GLuint shader, const GLchar *source);
892
 
   void (*Uniform)(GLcontext *ctx, GLint location, GLsizei count,
893
 
                   const GLvoid *values, GLenum type);
894
 
   void (*UniformMatrix)(GLcontext *ctx, GLint cols, GLint rows,
895
 
                         GLint location, GLsizei count,
896
 
                         GLboolean transpose, const GLfloat *values);
897
 
   void (*UseProgram)(GLcontext *ctx, GLuint program);
898
 
   void (*ValidateProgram)(GLcontext *ctx, GLuint program);
899
 
   /* XXX many more to come */
 
843
   struct gl_shader *(*NewShader)(GLcontext *ctx, GLuint name, GLenum type);
 
844
   void (*DeleteShader)(GLcontext *ctx, struct gl_shader *shader);
 
845
   struct gl_shader_program *(*NewShaderProgram)(GLcontext *ctx, GLuint name);
 
846
   void (*DeleteShaderProgram)(GLcontext *ctx,
 
847
                               struct gl_shader_program *shProg);
 
848
   void (*UseProgram)(GLcontext *ctx, struct gl_shader_program *shProg);
900
849
   /*@}*/
901
850
 
902
851
 
1018
967
   void (*EndCallList)( GLcontext *ctx );
1019
968
 
1020
969
 
1021
 
#if FEATURE_ARB_sync
1022
970
   /**
1023
971
    * \name GL_ARB_sync interfaces
1024
972
    */
1032
980
   void (*ServerWaitSync)(GLcontext *, struct gl_sync_object *,
1033
981
                          GLbitfield, GLuint64);
1034
982
   /*@}*/
1035
 
#endif
1036
983
 
1037
984
   /** GL_NV_conditional_render */
1038
985
   void (*BeginConditionalRender)(GLcontext *ctx, struct gl_query_object *q,
1039
986
                                  GLenum mode);
1040
987
   void (*EndConditionalRender)(GLcontext *ctx, struct gl_query_object *q);
1041
988
 
1042
 
#if FEATURE_OES_draw_texture
1043
989
   /**
1044
990
    * \name GL_OES_draw_texture interface
1045
991
    */
1047
993
   void (*DrawTex)(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z,
1048
994
                   GLfloat width, GLfloat height);
1049
995
   /*@}*/
1050
 
#endif
1051
996
 
1052
 
#if FEATURE_OES_EGL_image
 
997
   /**
 
998
    * \name GL_OES_EGL_image interface
 
999
    */
1053
1000
   void (*EGLImageTargetTexture2D)(GLcontext *ctx, GLenum target,
1054
1001
                                   struct gl_texture_object *texObj,
1055
1002
                                   struct gl_texture_image *texImage,
1057
1004
   void (*EGLImageTargetRenderbufferStorage)(GLcontext *ctx,
1058
1005
                                             struct gl_renderbuffer *rb,
1059
1006
                                             void *image_handle);
1060
 
#endif
1061
1007
 
 
1008
   /**
 
1009
    * \name GL_EXT_transform_feedback interface
 
1010
    */
 
1011
   struct gl_transform_feedback_object *
 
1012
        (*NewTransformFeedback)(GLcontext *ctx, GLuint name);
 
1013
   void (*DeleteTransformFeedback)(GLcontext *ctx,
 
1014
                                   struct gl_transform_feedback_object *obj);
 
1015
   void (*BeginTransformFeedback)(GLcontext *ctx, GLenum mode,
 
1016
                                  struct gl_transform_feedback_object *obj);
 
1017
   void (*EndTransformFeedback)(GLcontext *ctx,
 
1018
                                struct gl_transform_feedback_object *obj);
 
1019
   void (*PauseTransformFeedback)(GLcontext *ctx,
 
1020
                                  struct gl_transform_feedback_object *obj);
 
1021
   void (*ResumeTransformFeedback)(GLcontext *ctx,
 
1022
                                   struct gl_transform_feedback_object *obj);
 
1023
   void (*DrawTransformFeedback)(GLcontext *ctx, GLenum mode,
 
1024
                                 struct gl_transform_feedback_object *obj);
1062
1025
};
1063
1026
 
1064
1027
 
1085
1048
    * \name Vertex
1086
1049
    */
1087
1050
   /*@{*/
1088
 
   void (GLAPIENTRYP ArrayElement)( GLint ); /* NOTE */
 
1051
   void (GLAPIENTRYP ArrayElement)( GLint );
1089
1052
   void (GLAPIENTRYP Color3f)( GLfloat, GLfloat, GLfloat );
1090
1053
   void (GLAPIENTRYP Color3fv)( const GLfloat * );
1091
1054
   void (GLAPIENTRYP Color4f)( GLfloat, GLfloat, GLfloat, GLfloat );
1092
1055
   void (GLAPIENTRYP Color4fv)( const GLfloat * );
1093
1056
   void (GLAPIENTRYP EdgeFlag)( GLboolean );
1094
 
   void (GLAPIENTRYP EvalCoord1f)( GLfloat );          /* NOTE */
1095
 
   void (GLAPIENTRYP EvalCoord1fv)( const GLfloat * ); /* NOTE */
1096
 
   void (GLAPIENTRYP EvalCoord2f)( GLfloat, GLfloat ); /* NOTE */
1097
 
   void (GLAPIENTRYP EvalCoord2fv)( const GLfloat * ); /* NOTE */
1098
 
   void (GLAPIENTRYP EvalPoint1)( GLint );             /* NOTE */
1099
 
   void (GLAPIENTRYP EvalPoint2)( GLint, GLint );      /* NOTE */
 
1057
   void (GLAPIENTRYP EvalCoord1f)( GLfloat );
 
1058
   void (GLAPIENTRYP EvalCoord1fv)( const GLfloat * );
 
1059
   void (GLAPIENTRYP EvalCoord2f)( GLfloat, GLfloat );
 
1060
   void (GLAPIENTRYP EvalCoord2fv)( const GLfloat * );
 
1061
   void (GLAPIENTRYP EvalPoint1)( GLint );
 
1062
   void (GLAPIENTRYP EvalPoint2)( GLint, GLint );
1100
1063
   void (GLAPIENTRYP FogCoordfEXT)( GLfloat );
1101
1064
   void (GLAPIENTRYP FogCoordfvEXT)( const GLfloat * );
1102
1065
   void (GLAPIENTRYP Indexf)( GLfloat );
1103
1066
   void (GLAPIENTRYP Indexfv)( const GLfloat * );
1104
 
   void (GLAPIENTRYP Materialfv)( GLenum face, GLenum pname, const GLfloat * ); /* NOTE */
 
1067
   void (GLAPIENTRYP Materialfv)( GLenum face, GLenum pname, const GLfloat * );
1105
1068
   void (GLAPIENTRYP MultiTexCoord1fARB)( GLenum, GLfloat );
1106
1069
   void (GLAPIENTRYP MultiTexCoord1fvARB)( GLenum, const GLfloat * );
1107
1070
   void (GLAPIENTRYP MultiTexCoord2fARB)( GLenum, GLfloat, GLfloat );
1128
1091
   void (GLAPIENTRYP Vertex3fv)( const GLfloat * );
1129
1092
   void (GLAPIENTRYP Vertex4f)( GLfloat, GLfloat, GLfloat, GLfloat );
1130
1093
   void (GLAPIENTRYP Vertex4fv)( const GLfloat * );
1131
 
   void (GLAPIENTRYP CallList)( GLuint );       /* NOTE */
1132
 
   void (GLAPIENTRYP CallLists)( GLsizei, GLenum, const GLvoid * );     /* NOTE */
 
1094
   void (GLAPIENTRYP CallList)( GLuint );
 
1095
   void (GLAPIENTRYP CallLists)( GLsizei, GLenum, const GLvoid * );
1133
1096
   void (GLAPIENTRYP Begin)( GLenum );
1134
1097
   void (GLAPIENTRYP End)( void );
1135
1098
   /* GL_NV_vertex_program */
1141
1104
   void (GLAPIENTRYP VertexAttrib3fvNV)( GLuint index, const GLfloat *v );
1142
1105
   void (GLAPIENTRYP VertexAttrib4fNV)( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w );
1143
1106
   void (GLAPIENTRYP VertexAttrib4fvNV)( GLuint index, const GLfloat *v );
1144
 
#if FEATURE_ARB_vertex_program
 
1107
   /* GL_ARB_vertex_program */
1145
1108
   void (GLAPIENTRYP VertexAttrib1fARB)( GLuint index, GLfloat x );
1146
1109
   void (GLAPIENTRYP VertexAttrib1fvARB)( GLuint index, const GLfloat *v );
1147
1110
   void (GLAPIENTRYP VertexAttrib2fARB)( GLuint index, GLfloat x, GLfloat y );
1150
1113
   void (GLAPIENTRYP VertexAttrib3fvARB)( GLuint index, const GLfloat *v );
1151
1114
   void (GLAPIENTRYP VertexAttrib4fARB)( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w );
1152
1115
   void (GLAPIENTRYP VertexAttrib4fvARB)( GLuint index, const GLfloat *v );
1153
 
#endif
1154
1116
   /*@}*/
1155
1117
 
1156
 
   /*
1157
 
    */
1158
1118
   void (GLAPIENTRYP Rectf)( GLfloat, GLfloat, GLfloat, GLfloat );
1159
1119
 
1160
1120
   /**
1186
1146
                                                   const GLvoid **indices,
1187
1147
                                                   GLsizei primcount,
1188
1148
                                                   const GLint *basevertex);
 
1149
   void (GLAPIENTRYP DrawArraysInstanced)(GLenum mode, GLint first,
 
1150
                                          GLsizei count, GLsizei primcount);
 
1151
   void (GLAPIENTRYP DrawElementsInstanced)(GLenum mode, GLsizei count,
 
1152
                                            GLenum type, const GLvoid *indices,
 
1153
                                            GLsizei primcount);
1189
1154
   /*@}*/
1190
1155
 
1191
1156
   /**