"L. Spiro Engine"
|
00001 00016 #ifndef __LSG_OPENGLSHADERTRANSLATOR_H__ 00017 #define __LSG_OPENGLSHADERTRANSLATOR_H__ 00018 00019 #include "../LSGGraphicsLib.h" 00020 #include "../ShaderLanguage/LSGShaderTranslationProcessorBase.h" 00021 00022 #if defined( LSG_OGL ) 00023 00024 namespace lsg { 00025 00032 class COpenGlShaderTranslator : public CShaderTranslationProcessorBase { 00033 public : 00034 // == Various constructors. 00035 LSE_CALLCTOR COpenGlShaderTranslator(); 00036 virtual LSE_CALLCTOR ~COpenGlShaderTranslator(); 00037 00038 00039 protected : 00040 // == Members. 00044 LSBOOL m_bIsMainNow; 00045 00046 00047 // == Functions. 00055 virtual LSBOOL LSE_CALL PostShaderString( CString &_sShader, CString &_sError ); 00056 00064 virtual LSG_PROCESSING_DIRECTIVE LSE_CALL HandleFunctionDeclaration( LSG_NODE_CALLBACK &_ncData ); 00065 00073 virtual LSG_PROCESSING_DIRECTIVE LSE_CALL HandleParamaterDeclarator( LSG_NODE_CALLBACK &_ncData ); 00074 00082 virtual LSG_PROCESSING_DIRECTIVE LSE_CALL HandleSingleDeclaration( LSG_NODE_CALLBACK &_ncData ); 00083 00091 virtual LSG_PROCESSING_DIRECTIVE LSE_CALL HandleFullySpecifiedType( LSG_NODE_CALLBACK &_ncData ); 00092 00100 virtual LSG_PROCESSING_DIRECTIVE LSE_CALL HandleIntrinsic( LSG_NODE_CALLBACK &_ncData ); 00101 00109 virtual LSG_PROCESSING_DIRECTIVE LSE_CALL HandleCast( LSG_NODE_CALLBACK &_ncData ); 00110 00118 virtual LSG_PROCESSING_DIRECTIVE LSE_CALL HandleIdentifier( LSG_NODE_CALLBACK &_ncData ); 00119 00127 virtual LSBOOL LSE_CALL DecodeTypeQualifier( LSUINT64 _ui64Qualifier, CString &_sString ); 00128 00136 virtual LSBOOL LSE_CALL DecodeType( LSUINT64 _ui64Type, CString &_sString ); 00137 00148 virtual LSG_PROCESSING_DIRECTIVE LSE_CALL VertexInTexCoord( LSG_NODE_CALLBACK &_ncData, 00149 LSUINT32 _ui32ParmNodeIndex, 00150 LSUINT32 _ui32Index, CString &_sRet, CString &_sError ); 00151 00162 virtual LSG_PROCESSING_DIRECTIVE LSE_CALL VertexOutTexCoord( LSG_NODE_CALLBACK &_ncData, 00163 LSUINT32 _ui32ParmNodeIndex, 00164 LSUINT32 _ui32Index, CString &_sRet, CString &_sError ); 00165 00176 virtual LSG_PROCESSING_DIRECTIVE LSE_CALL PixelInTexCoord( LSG_NODE_CALLBACK &_ncData, 00177 LSUINT32 _ui32ParmNodeIndex, 00178 LSUINT32 _ui32Index, CString &_sRet, CString &_sError ); 00179 00180 00181 private : 00182 typedef CShaderTranslationProcessorBase Parent; 00183 00184 }; 00185 00186 } // namespace lsg 00187 00188 #endif // #if defined( LSG_OGL ) 00189 00190 #endif // __LSG_OPENGLSHADERTRANSLATOR_H__