Example #1
0
std::string GetTevStageConfigAlphaCombinerString(const TexturingRegs::TevStageConfig& tev_stage) {
    auto op_str = GetTevStageConfigOperationString(tev_stage.alpha_op);
    op_str = ReplacePattern(
        op_str, "%source1",
        GetTevStageConfigAlphaSourceString(tev_stage.alpha_source1, tev_stage.alpha_modifier1));
    op_str = ReplacePattern(
        op_str, "%source2",
        GetTevStageConfigAlphaSourceString(tev_stage.alpha_source2, tev_stage.alpha_modifier2));
    return ReplacePattern(
        op_str, "%source3",
        GetTevStageConfigAlphaSourceString(tev_stage.alpha_source3, tev_stage.alpha_modifier3));
}
Example #2
0
static std::string GetTevStageConfigColorSourceString(
    const TexturingRegs::TevStageConfig::Source& source,
    const TexturingRegs::TevStageConfig::ColorModifier modifier) {

    using ColorModifier = TexturingRegs::TevStageConfig::ColorModifier;
    static const std::map<ColorModifier, std::string> color_modifier_map = {
        {ColorModifier::SourceColor, "%source.rgb"},
        {ColorModifier::OneMinusSourceColor, "(1.0 - %source.rgb)"},
        {ColorModifier::SourceAlpha, "%source.aaa"},
        {ColorModifier::OneMinusSourceAlpha, "(1.0 - %source.aaa)"},
        {ColorModifier::SourceRed, "%source.rrr"},
        {ColorModifier::OneMinusSourceRed, "(1.0 - %source.rrr)"},
        {ColorModifier::SourceGreen, "%source.ggg"},
        {ColorModifier::OneMinusSourceGreen, "(1.0 - %source.ggg)"},
        {ColorModifier::SourceBlue, "%source.bbb"},
        {ColorModifier::OneMinusSourceBlue, "(1.0 - %source.bbb)"},
    };

    auto src_str = GetTevStageConfigSourceString(source);
    auto modifier_it = color_modifier_map.find(modifier);
    std::string modifier_str = "%source.????";
    if (modifier_it != color_modifier_map.end())
        modifier_str = modifier_it->second;

    return ReplacePattern(modifier_str, "%source", src_str);
}
Example #3
0
static std::string GetTevStageConfigAlphaSourceString(
    const TexturingRegs::TevStageConfig::Source& source,
    const TexturingRegs::TevStageConfig::AlphaModifier modifier) {

    using AlphaModifier = TexturingRegs::TevStageConfig::AlphaModifier;
    static const std::map<AlphaModifier, std::string> alpha_modifier_map = {
        {AlphaModifier::SourceAlpha, "%source.a"},
        {AlphaModifier::OneMinusSourceAlpha, "(1.0 - %source.a)"},
        {AlphaModifier::SourceRed, "%source.r"},
        {AlphaModifier::OneMinusSourceRed, "(1.0 - %source.r)"},
        {AlphaModifier::SourceGreen, "%source.g"},
        {AlphaModifier::OneMinusSourceGreen, "(1.0 - %source.g)"},
        {AlphaModifier::SourceBlue, "%source.b"},
        {AlphaModifier::OneMinusSourceBlue, "(1.0 - %source.b)"},
    };

    auto src_str = GetTevStageConfigSourceString(source);
    auto modifier_it = alpha_modifier_map.find(modifier);
    std::string modifier_str = "%source.????";
    if (modifier_it != alpha_modifier_map.end())
        modifier_str = modifier_it->second;

    return ReplacePattern(modifier_str, "%source", src_str);
}
int APIENTRY WinMain(HINSTANCE hInstance,
					 HINSTANCE hPrevInstance,
					 LPTSTR    lpCmdLine,
					 int       nCmdShow)
{
	HRESULT hr ;
	try 
	{
		//RedirectIOToConsole();
		//RedirectedIOProcess remote;

		//std::string output = remote.RunProcess("tasklist.exe");
		//OutputDebugString(output.c_str());
		//_CrtSetBreakAlloc(358);
		
		//_CrtSetBreakAlloc(95360);
		//CRTDBG_DELAY_FREE_MEM_DF
		//_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

		GLogger.Open();
		GLogger.DebugLevel()=5;
		GLogger.Timestamping()=true;
		//std::cout.rdbuf(&GLogger._outputdebugstream);
		//std::cerr.rdbuf(&GLogger._outputdebugstream);


		if(FAILED(hr=::CoInitialize(NULL)))
			throw  std::exception("CoInitialize failed\n");

		if(FAILED(hr= ::CoInitializeSecurity( NULL, //Points to security descriptor 
			-1, //Count of entries in asAuthSvc 
			NULL, //Array of names to register 
			NULL, //Reserved for future use 
			RPC_C_AUTHN_LEVEL_NONE, //The default authentication //level for proxies 
			RPC_C_IMP_LEVEL_IDENTIFY, //The default impersonation //level for proxies 
			NULL, //Reserved; must be set to  NULL
			EOAC_NONE, //Additional client or //server-side capabilities 
			NULL //Reserved for future use 
			)))  
			throw std::exception("CoInitializeSecurity failed\n");
	
		 //std::cout.rdbuf(GLogger.DebugFile.rdbuf()); //redirect std::cout to out.txt!
		 //std::cerr.rdbuf(GLogger.DebugFile.rdbuf()); //redirect std::cout to out.txt!
#if 0
		 std::string path, contents, ipaddr, devices;
		 ipaddr="127.0.0.1";
		 devices="M33";

		 path = "C:\\Program Files\\NIST\\proj\\MTConnect\\Nist\\MTConnectGadgets\\MtcOpcAgent\\Distribution\\";
		 ReadFile(path+"MtcOpcAgent.ini", contents);

		 ReplacePattern(contents, "ServerMachineName", "\n", "ServerMachineName=" + ipaddr + "\n");
		 ReplacePattern(contents, "MTConnectDevice", "\n", "MTConnectDevice=" + devices + "\n");

		 std::vector<std::string> ips=TrimmedTokenize(ipaddr,",");
		 std::vector<std::string> devs=TrimmedTokenize(devices,",");
		 if(ips.size() != devs.size())
			 ::MessageBox(NULL, "Mismatched # ips and devices", "Error", MB_OK);
		 std::string tagsection="SIEMENS";
		 for(int i=1; i< ips.size(); i++)
		 {
			 tagsection+=",SIEMENS";
		 }
		 ReplacePattern(contents, "OpcTags", "\n", "OpcTags=" + tagsection + "\n");
		 ::MessageBox(NULL,contents.c_str(), "Error", MB_OK);


#endif

		 AgentConfigurationEx config;
#if 0
		 char *argv[4] = {
			 "agent.exe",
			 "debug",
			 "" 
		 };
		 config.main(2, (const char **) argv);
#endif
		 config.main( __argc,(const char **) __argv );
		 /*AgentConfiguration config;
		 return config.main(__argc, (const char **) __argv);*/

	}
	catch(std::exception e)
	{
		OutputDebugString(e.what());
	}
	catch(...)
	{
		OutputDebugString("Service terminated abnormally in main\n");
	}
	::CoUninitialize();

	_CrtDumpMemoryLeaks();
	return -1;
}