"L. Spiro Engine"
|
00001 00016 #ifndef __LSG_DIRECTX10SHADERTRANSLATOR_H__ 00017 #define __LSG_DIRECTX10SHADERTRANSLATOR_H__ 00018 00019 #include "../LSGGraphicsLib.h" 00020 #include "../ShaderLanguage/LSGShaderTranslationProcessorBase.h" 00021 #include "LSGDirectX10CBuffer.h" 00022 00023 #ifdef LSG_DX10 00024 00025 namespace lsg { 00026 00033 class CDirectX10ShaderTranslator : public CShaderTranslationProcessorBase { 00034 public : 00035 // == Various constructors. 00036 LSE_CALLCTOR CDirectX10ShaderTranslator(); 00037 virtual LSE_CALLCTOR ~CDirectX10ShaderTranslator(); 00038 00039 00040 // == Types. 00041 00042 00043 // == Functions. 00044 protected : 00045 // == Members. 00049 CVector<CDirectX10CBuffer> m_vCBuffers; 00050 00051 00052 // == Functions. 00060 LSBOOL LSE_CALL PostShaderString( CString &_sShader, CString &_sError ); 00061 00069 LSG_PROCESSING_DIRECTIVE LSE_CALL HandleFunctionDeclaration( LSG_NODE_CALLBACK &_ncData ); 00070 00078 LSG_PROCESSING_DIRECTIVE LSE_CALL HandleInitListWrap( LSG_NODE_CALLBACK &_ncData ); 00079 00087 LSG_PROCESSING_DIRECTIVE LSE_CALL HandleSingleDeclaration( LSG_NODE_CALLBACK &_ncData ); 00088 00096 LSG_PROCESSING_DIRECTIVE LSE_CALL HandleIntrinsic( LSG_NODE_CALLBACK &_ncData ); 00097 00105 LSG_PROCESSING_DIRECTIVE LSE_CALL HandleSemantic( LSG_NODE_CALLBACK &_ncData ); 00106 00114 virtual LSBOOL LSE_CALL DecodeTypeQualifier( LSUINT64 _ui64Qualifier, CString &_sString ); 00115 00123 virtual LSBOOL LSE_CALL DecodeType( LSUINT64 _ui64Type, CString &_sString ); 00124 00125 00126 private : 00127 typedef CShaderTranslationProcessorBase Parent; 00128 }; 00129 00130 } // namespace lsg 00131 00132 #endif // #ifdef LSG_DX10 00133 00134 #endif // __LSG_DIRECTX10SHADERTRANSLATOR_H__