Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenatifragshader.h
Go to the documentation of this file.
00001 /* 00002 * Mesa 3-D graphics library ATI Fragment Shader 00003 * 00004 * Copyright (C) 2004 David Airlie All Rights Reserved. 00005 * 00006 */ 00007 00008 #ifndef ATIFRAGSHADER_H 00009 #define ATIFRAGSHADER_H 00010 00011 #define MAX_NUM_INSTRUCTIONS_PER_PASS_ATI 8 00012 #define MAX_NUM_PASSES_ATI 2 00013 #define MAX_NUM_FRAGMENT_REGISTERS_ATI 6 00014 00015 struct ati_fs_opcode_st 00016 { 00017 GLenum opcode; 00018 GLint num_src_args; 00019 }; 00020 00021 extern struct ati_fs_opcode_st ati_fs_opcodes[]; 00022 00023 struct atifragshader_src_register 00024 { 00025 GLuint Index; 00026 GLuint argRep; 00027 GLuint argMod; 00028 }; 00029 00030 struct atifragshader_dst_register 00031 { 00032 GLuint Index; 00033 GLuint dstMod; 00034 GLuint dstMask; 00035 }; 00036 00037 #define ATI_FRAGMENT_SHADER_COLOR_OP 0 00038 #define ATI_FRAGMENT_SHADER_ALPHA_OP 1 00039 #define ATI_FRAGMENT_SHADER_PASS_OP 2 00040 #define ATI_FRAGMENT_SHADER_SAMPLE_OP 3 00041 00042 /* two opcodes - one for color/one for alpha */ 00043 /* up to three source registers for most ops */ 00044 struct atifs_instruction 00045 { 00046 GLenum Opcode[2]; 00047 GLuint ArgCount[2]; 00048 struct atifragshader_src_register SrcReg[2][3]; 00049 struct atifragshader_dst_register DstReg[2]; 00050 }; 00051 00052 /* different from arithmetic shader instruction */ 00053 struct atifs_setupinst 00054 { 00055 GLenum Opcode; 00056 GLuint src; 00057 GLenum swizzle; 00058 }; 00059 00060 00061 extern struct ati_fragment_shader * 00062 _mesa_new_ati_fragment_shader(GLcontext *ctx, GLuint id); 00063 00064 extern void 00065 _mesa_delete_ati_fragment_shader(GLcontext *ctx, 00066 struct ati_fragment_shader *s); 00067 00068 00069 extern GLuint GLAPIENTRY _mesa_GenFragmentShadersATI(GLuint range); 00070 00071 extern void GLAPIENTRY _mesa_BindFragmentShaderATI(GLuint id); 00072 00073 extern void GLAPIENTRY _mesa_DeleteFragmentShaderATI(GLuint id); 00074 00075 extern void GLAPIENTRY _mesa_BeginFragmentShaderATI(void); 00076 00077 extern void GLAPIENTRY _mesa_EndFragmentShaderATI(void); 00078 00079 extern void GLAPIENTRY 00080 _mesa_PassTexCoordATI(GLuint dst, GLuint coord, GLenum swizzle); 00081 00082 extern void GLAPIENTRY 00083 _mesa_SampleMapATI(GLuint dst, GLuint interp, GLenum swizzle); 00084 00085 extern void GLAPIENTRY 00086 _mesa_ColorFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMask, 00087 GLuint dstMod, GLuint arg1, GLuint arg1Rep, 00088 GLuint arg1Mod); 00089 00090 extern void GLAPIENTRY 00091 _mesa_ColorFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMask, 00092 GLuint dstMod, GLuint arg1, GLuint arg1Rep, 00093 GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, 00094 GLuint arg2Mod); 00095 00096 extern void GLAPIENTRY 00097 _mesa_ColorFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMask, 00098 GLuint dstMod, GLuint arg1, GLuint arg1Rep, 00099 GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, 00100 GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, 00101 GLuint arg3Mod); 00102 00103 extern void GLAPIENTRY 00104 _mesa_AlphaFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, 00105 GLuint arg1Rep, GLuint arg1Mod); 00106 00107 extern void GLAPIENTRY 00108 _mesa_AlphaFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, 00109 GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, 00110 GLuint arg2Rep, GLuint arg2Mod); 00111 00112 extern void GLAPIENTRY 00113 _mesa_AlphaFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, 00114 GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, 00115 GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, 00116 GLuint arg3Rep, GLuint arg3Mod); 00117 00118 extern void GLAPIENTRY 00119 _mesa_SetFragmentShaderConstantATI(GLuint dst, const GLfloat * value); 00120 00121 #endif Generated on Thu May 24 2012 04:20:48 for ReactOS by
1.7.6.1
|