瀏覽代碼

reformat comments in Doxygen style

tags/mesa_6_5_2
Brian Paul 19 年之前
父節點
當前提交
e90e827824
共有 1 個檔案被更改,包括 71 行新增44 行删除
  1. 71
    44
      src/mesa/shader/slang/slang_link.h

+ 71
- 44
src/mesa/shader/slang/slang_link.h 查看文件

@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
* Version: 6.6
* Version: 6.5.2
*
* Copyright (C) 2006 Brian Paul All Rights Reserved.
*
@@ -38,13 +38,15 @@ enum
SLANG_SHADER_MAX
};

/*

/**
* Active variables.
*
* Active uniforms/attribs can be queried by the application to get a list of
* uniforms/attribs actually used by shaders (uniforms) or vertex shader only (attribs).
* Active uniforms/attribs can be queried by the application to get a
* list of uniforms/attribs actually used by shaders (uniforms) or
* vertex shader only (attribs).
*/
/*@{*/
typedef struct
{
slang_export_data_quant *quant;
@@ -56,14 +58,17 @@ typedef struct
slang_active_variable *table;
GLuint count;
} slang_active_variables;
/*@}*/

/*

/**
* Attrib binding override.
*
* The application can override GL attrib binding by specifying its preferred index assignment
* for a given attrib name. Those overrides are taken into account while linking the program.
* The application can override GL attrib binding by specifying its
* preferred index assignment for a given attrib name. Those overrides
* are taken into account while linking the program.
*/
/*@{*/
typedef struct
{
GLuint index;
@@ -75,26 +80,33 @@ typedef struct
slang_attrib_override *table;
GLuint count;
} slang_attrib_overrides;
/*@}*/


extern GLboolean
_slang_attrib_overrides_add (slang_attrib_overrides *, GLuint, const GLchar *);

/*

/**
* Uniform bindings.
*
* Each slang_uniform_binding holds an array of addresses to actual memory locations in those
* shader types that use that uniform. Uniform bindings are held in an array and accessed
* by array index which is seen to the application as a uniform location.
* Each slang_uniform_binding holds an array of addresses to actual
* memory locations in those shader types that use that
* uniform. Uniform bindings are held in an array and accessed by
* array index which is seen to the application as a uniform location.
*
* When the application writes to a particular uniform, it specifies its location.
* This location is treated as an array index to slang_uniform_bindings::table and tested
* against slang_uniform_bindings::count limit. The result is a pointer to slang_uniform_binding.
* The type of data being written to uniform is tested against slang_uniform_binding::quant.
* If the types are compatible, the array slang_uniform_binding::address is iterated for
* each shader type and if the address is valid (i.e. the uniform is used by this shader type),
* the new uniform value is written at that address.
* When the application writes to a particular uniform, it specifies
* its location. This location is treated as an array index to
* slang_uniform_bindings::table and tested against
* slang_uniform_bindings::count limit. The result is a pointer to
* slang_uniform_binding. The type of data being written to uniform
* is tested against slang_uniform_binding::quant. If the types are
* compatible, the array slang_uniform_binding::address is iterated
* for each shader type and if the address is valid (i.e. the uniform
* is used by this shader type), the new uniform value is written at
* that address.
*/

/*@{*/
typedef struct
{
slang_export_data_quant *quant;
@@ -107,16 +119,20 @@ typedef struct
slang_uniform_binding *table;
GLuint count;
} slang_uniform_bindings;
/*@}*/

/*

/**
* Attrib bindings.
*
* There is a fixed number of vertex attrib vectors (attrib slots). The slang_attrib_slot::addr
* maps vertex attrib index to the actual memory location of the attrib in vertex shader.
* One vertex attrib can span over many attrib slots (this is the case for matrices). The
* slang_attrib_binding::first_slot_index holds the first slot index that the attrib is bound to.
* There is a fixed number of vertex attrib vectors (attrib
* slots). The slang_attrib_slot::addr maps vertex attrib index to the
* actual memory location of the attrib in vertex shader. One vertex
* attrib can span over many attrib slots (this is the case for
* matrices). The slang_attrib_binding::first_slot_index holds the
* first slot index that the attrib is bound to.
*/

/*@{*/
typedef struct
{
slang_export_data_quant *quant;
@@ -126,8 +142,8 @@ typedef struct

typedef struct
{
GLuint addr; /* memory location */
GLuint fill; /* 1..4, number of components used */
GLuint addr; /**< memory location */
GLuint fill; /**< 1..4, number of components used */
} slang_attrib_slot;

typedef struct
@@ -136,16 +152,20 @@ typedef struct
GLuint binding_count;
slang_attrib_slot slots[MAX_VERTEX_ATTRIBS];
} slang_attrib_bindings;
/*@}*/

/*


/**
* Varying bindings.
*
* There is a fixed number of varying floats (varying slots). The slang_varying_slot::vert_addr
* maps varying float index to the actual memory location of the output variable in vertex shader.
* The slang_varying_slot::frag_addr maps varying float index to the actual memory location of
* the input variable in fragment shader.
* There is a fixed number of varying floats (varying slots). The
* slang_varying_slot::vert_addr maps varying float index to the
* actual memory location of the output variable in vertex shader.
* The slang_varying_slot::frag_addr maps varying float index to the
* actual memory location of the input variable in fragment shader.
*/
/*@{*/
typedef struct
{
GLuint vert_addr;
@@ -166,20 +186,25 @@ typedef struct
slang_varying_slot slots[MAX_VARYING_FLOATS];
GLuint slot_count;
} slang_varying_bindings;
/*@}*/

/*

/**
* Texture usage.
*
* A slang_texture_usage struct holds indirect information about texture image unit usage. The
* slang_texture_usages::table is derived from active uniform table by extracting only uniforms
* that are samplers.
* A slang_texture_usage struct holds indirect information about
* texture image unit usage. The slang_texture_usages::table is
* derived from active uniform table by extracting only uniforms that
* are samplers.
*
* To collect current texture usage one must iterate the slang_texture_usages::table and read
* uniform at address slang_texture_usage::frag_address to get texture unit index. This
* index, coupled with texture access type (target) taken from slang_texture_usage::quant
* forms texture usage for that texture unit.
* To collect current texture usage one must iterate the
* slang_texture_usages::table and read uniform at address
* slang_texture_usage::frag_address to get texture unit index. This
* index, coupled with texture access type (target) taken from
* slang_texture_usage::quant forms texture usage for that texture
* unit.
*/

/*@{*/
typedef struct
{
slang_export_data_quant *quant;
@@ -191,6 +216,8 @@ typedef struct
slang_texture_usage *table;
GLuint count;
} slang_texture_usages;
/*@}*/


extern GLvoid
_slang_texture_usages_ctr (slang_texture_usages *);

Loading…
取消
儲存