Example #1
0
/*
 * Program entry point.
 */
void main( int argc, char *argv[] )
/*********************************/
{
    OPT_STORAGE         cmdOpts;
    CmdLine *           compCmdLine;
    CmdLine *           linkCmdLine;
    int                 itemsParsed;
    int                 compRc = COMPILE_NOACTION;
    int                 linkRc = LINK_NOACTION;

#ifndef __WATCOMC__
    _argc = argc;
    _argv = argv;
#endif
    /*** Initialize ***/
    SetBannerFuncError( BannerMessage );
    compCmdLine = InitCmdLine( CL_C_NUM_SECTIONS );
    linkCmdLine = InitCmdLine( CL_L_NUM_SECTIONS );
    SetDefaultFile( TYPE_C_FILE, "source" );
    AllowTypeFile( TYPE_C_FILE, TYPE_CPP_FILE, TYPE_DEF_FILE, TYPE_OBJ_FILE,
                   TYPE_LIB_FILE, TYPE_RES_FILE, TYPE_INVALID_FILE );
    InitMacro();

    /*** Parse the command line and translate to Watcom options ***/
    InitParse( &cmdOpts );
    itemsParsed = do_parsing( &cmdOpts );
    if( itemsParsed==0 || cmdOpts.help ) {
        if( !cmdOpts.nologo )
            BannerMessage();
        PrintHelpMessage();
        exit( EXIT_SUCCESS );
    }
    OptionsTranslate( &cmdOpts, compCmdLine, linkCmdLine );

    /*** Spawn the compiler ***/
    compRc = compile( &cmdOpts, compCmdLine );
    if( compRc == COMPILE_ERROR )  exit( EXIT_FAILURE );
    if( !cmdOpts.c ) {
        linkRc = link( &cmdOpts, linkCmdLine );
    }
    if( compRc == COMPILE_NOACTION  &&  linkRc == LINK_NOACTION ) {
        FatalError( "Nothing to do!" );
    }
    FiniParse( &cmdOpts );
    exit( EXIT_SUCCESS );
}
void ShaderMacroMgr::Initialize(void)
{
	InitMacro(MakeSysVS_ID(SSI_BASE_VS_SYSTEM_ID)	,SCT_VERTEX_TRAN);
	InitMacro(MakeSysVS_ID(SSI_SKELETAL_ANI)		,SCT_VERTEX_TRAN);
	InitMacro(MakeSysVS_ID(SSI_VERTEX_ANI)			,SCT_VERTEX_TRAN);

	InitMacro(Input_Macro_ID(SSI_BASE_VS_SYSTEM_ID)	,SCT_INPUT_VAR);
	InitMacro(Input_Macro_ID(SSI_SKELETAL_ANI)		,SCT_INPUT_VAR);
	InitMacro(Input_Macro_ID(SSI_VERTEX_ANI)		,SCT_INPUT_VAR);

	InitMacro(Input_Macro_ID(SSI_PRE_RENDER_LIGHT)	,SCT_LIGHT_TRAN);//默认公式
	InitMacro(MakeSysVS_ID(SSI_PRE_RENDER_LIGHT)	,SCT_LIGHT_TRAN);

	InitMacro(Input_Macro_ID(SSI_INSTANCE)	,SCT_TRANSFORM_TRAN);//默认公式
	InitMacro(MakeSysVS_ID(SSI_INSTANCE)	,SCT_TRANSFORM_TRAN);

	InitMacro(MakeSysVS_ID(SSI_LIGHT_MAP)	,SCT_TEXTURE_TRAN);
	InitMacro(MakeSysVS_ID(SSI_SHADOW_MAP)	,SCT_TEXTURE_TRAN);

	InitMacro(MakeSysPS_ID(SSI_LIGHT_MAP) ,SCT_PS_SHADOW);
	InitMacro(MakeSysPS_ID(SSI_SHADOW_MAP)	,SCT_PS_SHADOW);

	InitMacroMap(SCT_VERTEX_TRAN,SYS_VERTEX_TRAN);
	InitMacroMap(SCT_TRANSFORM_TRAN,SYS_TRANSFORM_TRAN);
	InitMacroMap(SCT_LIGHT_TRAN,SYS_LIGHT_TRAN);
	InitMacroMap(SCT_DIFFUSE_TRAN,SYS_DIFFUSE_TRAN);
	InitMacroMap(SCT_TEXTURE_TRAN,SYS_TEXTURE_TRAN);
	InitMacroMap(SCT_INPUT_VAR,SYS_INPUT_VAR);
	InitMacroMap(SCT_PS_SHADOW,SYS_PS_SHADOW_TRAN);
}