slang_link.h
来自「mesa-6.5-minigui源码」· C头文件 代码 · 共 196 行
H
196 行
/*
* Mesa 3-D graphics library
* Version: 6.5
*
* Copyright (C) 2006 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* 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 NONINFRINGEMENT. IN NO EVENT SHALL
* BRIAN PAUL 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.
*/
#if !defined SLANG_LINK_H
#define SLANG_LINK_H
#include "slang_compile.h"
#if defined __cplusplus
extern "C" {
#endif
enum
{
SLANG_SHADER_VERTEX,
SLANG_SHADER_FRAGMENT,
SLANG_SHADER_MAX
};
typedef struct
{
slang_export_data_quant *quant;
char *name;
GLuint address[SLANG_SHADER_MAX];
} slang_uniform_binding;
typedef struct
{
slang_uniform_binding *table;
GLuint count;
} slang_uniform_bindings;
typedef struct
{
slang_export_data_quant *quant;
char *name;
} slang_active_uniform;
typedef struct
{
slang_active_uniform *table;
GLuint count;
} slang_active_uniforms;
typedef struct
{
slang_export_data_quant *quant;
GLuint frag_address;
} slang_texture_usage;
typedef struct
{
slang_texture_usage *table;
GLuint count;
} slang_texture_usages;
GLvoid slang_texture_usages_ctr (slang_texture_usages *);
GLvoid slang_texture_usages_dtr (slang_texture_usages *);
enum
{
SLANG_COMMON_FIXED_MODELVIEWMATRIX,
SLANG_COMMON_FIXED_PROJECTIONMATRIX,
SLANG_COMMON_FIXED_MODELVIEWPROJECTIONMATRIX,
SLANG_COMMON_FIXED_TEXTUREMATRIX,
SLANG_COMMON_FIXED_NORMALMATRIX,
SLANG_COMMON_FIXED_MODELVIEWMATRIXINVERSE,
SLANG_COMMON_FIXED_PROJECTIONMATRIXINVERSE,
SLANG_COMMON_FIXED_MODELVIEWPROJECTIONMATRIXINVERSE,
SLANG_COMMON_FIXED_TEXTUREMATRIXINVERSE,
SLANG_COMMON_FIXED_MODELVIEWMATRIXTRANSPOSE,
SLANG_COMMON_FIXED_PROJECTIONMATRIXTRANSPOSE,
SLANG_COMMON_FIXED_MODELVIEWPROJECTIONMATRIXTRANSPOSE,
SLANG_COMMON_FIXED_TEXTUREMATRIXTRANSPOSE,
SLANG_COMMON_FIXED_MODELVIEWMATRIXINVERSETRANSPOSE,
SLANG_COMMON_FIXED_PROJECTIONMATRIXINVERSETRANSPOSE,
SLANG_COMMON_FIXED_MODELVIEWPROJECTIONMATRIXINVERSETRANSPOSE,
SLANG_COMMON_FIXED_TEXTUREMATRIXINVERSETRANSPOSE,
SLANG_COMMON_FIXED_NORMALSCALE,
SLANG_COMMON_FIXED_DEPTHRANGE,
SLANG_COMMON_FIXED_CLIPPLANE,
SLANG_COMMON_FIXED_POINT,
SLANG_COMMON_FIXED_FRONTMATERIAL,
SLANG_COMMON_FIXED_BACKMATERIAL,
SLANG_COMMON_FIXED_LIGHTSOURCE,
SLANG_COMMON_FIXED_LIGHTMODEL,
SLANG_COMMON_FIXED_FRONTLIGHTMODELPRODUCT,
SLANG_COMMON_FIXED_BACKLIGHTMODELPRODUCT,
SLANG_COMMON_FIXED_FRONTLIGHTPRODUCT,
SLANG_COMMON_FIXED_BACKLIGHTPRODUCT,
SLANG_COMMON_FIXED_TEXTUREENVCOLOR,
SLANG_COMMON_FIXED_EYEPLANES,
SLANG_COMMON_FIXED_EYEPLANET,
SLANG_COMMON_FIXED_EYEPLANER,
SLANG_COMMON_FIXED_EYEPLANEQ,
SLANG_COMMON_FIXED_OBJECTPLANES,
SLANG_COMMON_FIXED_OBJECTPLANET,
SLANG_COMMON_FIXED_OBJECTPLANER,
SLANG_COMMON_FIXED_OBJECTPLANEQ,
SLANG_COMMON_FIXED_FOG,
SLANG_COMMON_FIXED_MAX
};
enum
{
SLANG_VERTEX_FIXED_POSITION,
SLANG_VERTEX_FIXED_POINTSIZE,
SLANG_VERTEX_FIXED_CLIPVERTEX,
SLANG_VERTEX_FIXED_COLOR,
SLANG_VERTEX_FIXED_SECONDARYCOLOR,
SLANG_VERTEX_FIXED_NORMAL,
SLANG_VERTEX_FIXED_VERTEX,
SLANG_VERTEX_FIXED_MULTITEXCOORD0,
SLANG_VERTEX_FIXED_MULTITEXCOORD1,
SLANG_VERTEX_FIXED_MULTITEXCOORD2,
SLANG_VERTEX_FIXED_MULTITEXCOORD3,
SLANG_VERTEX_FIXED_MULTITEXCOORD4,
SLANG_VERTEX_FIXED_MULTITEXCOORD5,
SLANG_VERTEX_FIXED_MULTITEXCOORD6,
SLANG_VERTEX_FIXED_MULTITEXCOORD7,
SLANG_VERTEX_FIXED_FOGCOORD,
SLANG_VERTEX_FIXED_FRONTCOLOR,
SLANG_VERTEX_FIXED_BACKCOLOR,
SLANG_VERTEX_FIXED_FRONTSECONDARYCOLOR,
SLANG_VERTEX_FIXED_BACKSECONDARYCOLOR,
SLANG_VERTEX_FIXED_TEXCOORD,
SLANG_VERTEX_FIXED_FOGFRAGCOORD,
SLANG_VERTEX_FIXED_MAX
};
enum
{
SLANG_FRAGMENT_FIXED_FRAGCOORD,
SLANG_FRAGMENT_FIXED_FRONTFACING,
SLANG_FRAGMENT_FIXED_FRAGCOLOR,
SLANG_FRAGMENT_FIXED_FRAGDATA,
SLANG_FRAGMENT_FIXED_FRAGDEPTH,
SLANG_FRAGMENT_FIXED_COLOR,
SLANG_FRAGMENT_FIXED_SECONDARYCOLOR,
SLANG_FRAGMENT_FIXED_TEXCOORD,
SLANG_FRAGMENT_FIXED_FOGFRAGCOORD,
SLANG_FRAGMENT_FIXED_MAX
};
enum
{
SLANG_COMMON_CODE_MAIN,
SLANG_COMMON_CODE_MAX
};
typedef struct
{
slang_uniform_bindings uniforms;
slang_active_uniforms active_uniforms;
slang_texture_usages texture_usage;
GLuint common_fixed_entries[SLANG_SHADER_MAX][SLANG_COMMON_FIXED_MAX];
GLuint vertex_fixed_entries[SLANG_VERTEX_FIXED_MAX];
GLuint fragment_fixed_entries[SLANG_FRAGMENT_FIXED_MAX];
GLuint code[SLANG_SHADER_MAX][SLANG_COMMON_CODE_MAX];
slang_machine *machines[SLANG_SHADER_MAX];
slang_assembly_file *assemblies[SLANG_SHADER_MAX];
} slang_program;
GLvoid slang_program_ctr (slang_program *);
GLvoid slang_program_dtr (slang_program *);
GLboolean _slang_link (slang_program *, slang_translation_unit **, GLuint);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?