Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Mesa 3-D graphics library
  3.  *
  4.  * Copyright © 2013 Gregory Hainaut <gregory.hainaut@gmail.com>
  5.  *
  6.  * Permission is hereby granted, free of charge, to any person obtaining a
  7.  * copy of this software and associated documentation files (the "Software"),
  8.  * to deal in the Software without restriction, including without limitation
  9.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  10.  * and/or sell copies of the Software, and to permit persons to whom the
  11.  * Software is furnished to do so, subject to the following conditions:
  12.  *
  13.  * The above copyright notice and this permission notice (including the next
  14.  * paragraph) shall be included in all copies or substantial portions of the
  15.  * Software.
  16.  *
  17.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  20.  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  21.  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  22.  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  23.  * IN THE SOFTWARE.
  24.  */
  25.  
  26. #ifndef PIPELINEOBJ_H
  27. #define PIPELINEOBJ_H
  28.  
  29. #include "glheader.h"
  30.  
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif
  34.  
  35. struct _glapi_table;
  36. struct gl_context;
  37. struct gl_pipeline_object;
  38.  
  39. extern void
  40. _mesa_delete_pipeline_object(struct gl_context *ctx, struct gl_pipeline_object *obj);
  41.  
  42. extern void
  43. _mesa_init_pipeline(struct gl_context *ctx);
  44.  
  45. extern void
  46. _mesa_free_pipeline_data(struct gl_context *ctx);
  47.  
  48. extern void
  49. _mesa_reference_pipeline_object_(struct gl_context *ctx,
  50.                                  struct gl_pipeline_object **ptr,
  51.                                  struct gl_pipeline_object *obj);
  52.  
  53. static inline void
  54. _mesa_reference_pipeline_object(struct gl_context *ctx,
  55.                                 struct gl_pipeline_object **ptr,
  56.                                 struct gl_pipeline_object *obj)
  57. {
  58.    if (*ptr != obj)
  59.       _mesa_reference_pipeline_object_(ctx, ptr, obj);
  60. }
  61.  
  62. extern void
  63. _mesa_bind_pipeline(struct gl_context *ctx,
  64.                     struct gl_pipeline_object *pipe);
  65.  
  66. extern GLboolean
  67. _mesa_validate_program_pipeline(struct gl_context * ctx, struct gl_pipeline_object *pipe, GLboolean IsBound);
  68.  
  69.  
  70. extern void GLAPIENTRY
  71. _mesa_UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
  72.  
  73. extern void GLAPIENTRY
  74. _mesa_ActiveShaderProgram(GLuint pipeline, GLuint program);
  75.  
  76. extern void GLAPIENTRY
  77. _mesa_BindProgramPipeline(GLuint pipeline);
  78.  
  79. extern void GLAPIENTRY
  80. _mesa_DeleteProgramPipelines(GLsizei n, const GLuint *pipelines);
  81.  
  82. extern void GLAPIENTRY
  83. _mesa_GenProgramPipelines(GLsizei n, GLuint *pipelines);
  84.  
  85. void GLAPIENTRY
  86. _mesa_CreateProgramPipelines(GLsizei n, GLuint *pipelines);
  87.  
  88. extern GLboolean GLAPIENTRY
  89. _mesa_IsProgramPipeline(GLuint pipeline);
  90.  
  91. extern void GLAPIENTRY
  92. _mesa_GetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params);
  93.  
  94. extern void GLAPIENTRY
  95. _mesa_ValidateProgramPipeline(GLuint pipeline);
  96.  
  97. extern void GLAPIENTRY
  98. _mesa_GetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize,
  99.                                 GLsizei *length, GLchar *infoLog);
  100.  
  101. #ifdef __cplusplus
  102. }
  103. #endif
  104.  
  105. #endif /* PIPELINEOBJ_H */
  106.