示例#1
0
//--------------------------------------------------------------------------
// Print
//--------------------------------------------------------------------------
void DecOp::print( Stream &stream )
{
   Var *var = dynamic_cast<Var*>( mInput[0] );

   WRITESTR( (char*)var->type );
   WRITESTR( " " );

   mInput[0]->print( stream );
}
示例#2
0
void PixelParamsDefHLSL::print( Stream &stream, bool isVerterShader )
{
   assignConstantNumbers();

   const char * opener = "Fragout main( ConnectData IN";
   stream.write( dStrlen(opener), opener );

   // find all the sampler & uniform variables and print them out
   for( U32 i=0; i<LangElement::elementList.size(); i++)
   {
      Var *var = dynamic_cast<Var*>(LangElement::elementList[i]);
      if( var )
      {
         if( var->uniform )
         {
            WRITESTR( ",\r\n              " );

            U8 varNum[32];

            if( var->sampler )
            {
               dSprintf( (char*)varNum, sizeof(varNum), ": register(S%d)", var->constNum );
            }
            else if (var->texture)
            {
               dSprintf((char*)varNum, sizeof(varNum), ": register(T%d)", var->constNum);
            }
            else
            {
               dSprintf( (char*)varNum, sizeof(varNum), ": register(C%d)", var->constNum );
            }

            U8 output[256];
            if (var->arraySize <= 1)
               dSprintf( (char*)output, sizeof(output), "uniform %-9s %-15s %s", var->type, var->name, varNum );
            else
               dSprintf( (char*)output, sizeof(output), "uniform %-9s %s[%d] %s", var->type, var->name, var->arraySize, varNum );

            WRITESTR( (char*) output );
         }
      }
   }

   const char *closer = "\r\n)\r\n{\r\n   Fragout OUT;\r\n\r\n";
   stream.write( dStrlen(closer), closer );
}
示例#3
0
static BOOL
write_all_strings(DSNINFO * di)
{
	char odbcini[FILENAME_MAX];
	char tmp[100];
	const char *section = tds_dstr_cstr(&di->dsn);

	strcpy(odbcini, "odbc.ini");

	WRITESTR("Server", FIELD_STRING(server_name));
	WRITESTR("Language", FIELD_STRING(language));
	WRITESTR("Database", FIELD_STRING(database));

	sprintf(tmp, "%u", di->login->port);
	WRITESTR("Port", tmp);

	sprintf(tmp, "%d.%d", TDS_MAJOR(di->login), TDS_MINOR(di->login));
	WRITESTR("TDS_Version", tmp);

	sprintf(tmp, "%u", di->login->text_size);
	WRITESTR("TextSize", tmp);

	sprintf(tmp, "%u", di->login->block_size);
	WRITESTR("PacketSize", tmp);

	return TRUE;
}
示例#4
0
void ShaderGenPrinterGLSL::printPixelShaderOutputStruct( Stream& stream, const MaterialFeatureData &featureData )
{
    // Determine the number of output targets we need
    U32 numMRTs = 0;
    for (U32 i = 0; i < FEATUREMGR->getFeatureCount(); i++)
    {
        const FeatureInfo &info = FEATUREMGR->getAt(i);
        if (featureData.features.hasFeature(*info.type))
            numMRTs |= info.feature->getOutputTargets(featureData);
    }

    WRITESTR(avar("//Fragment shader OUT\r\n"));
    WRITESTR(avar("out vec4 OUT_col;\r\n"));
    for( U32 i = 1; i < 4; i++ )
    {
        if( numMRTs & 1 << i )
            WRITESTR(avar("out vec4 OUT_col%d;\r\n", i));
    }

    WRITESTR("\r\n");
    WRITESTR("\r\n");
}
示例#5
0
void ShaderGenPrinterHLSL::printPixelShaderCloser(Stream& stream)
{
   WRITESTR( "\r\n   return OUT;\r\n}\r\n" );
}
示例#6
0
int netcfg_save_to(const char * fn, const netcfg_t * cfg) {
    FILE * f;
    char buf[64];

    assert(cfg);

    dbgp("Saving: %s\n", fn);

    // Open the output file
    if(fn[0] == '/' && fn[1] == 'v' && fn[2] == 'm' && fn[3] == 'u') {
        dbgp("Saving to VMU\n");
        f = fopen("/ram/netcfg.tmp", "wb");
    }
    else {
        f = fopen(fn, "wb");
    }

    if(!f)
        return -1;

    // Write out each line...
    sprintf(buf, "# KOS Network Config written by netcfg_save_to\n");

    if(fwrite(buf, strlen(buf), 1, f) != 1)
        goto error;

#define WRITESTR(fmt, data) \
    sprintf(buf, fmt, data); \
    if (fwrite(buf, strlen(buf), 1, f) != 1) \
        goto error;

    WRITESTR("driver=%s\n", cfg->driver);
    WRITESTR("ip=%08lx\n", cfg->ip);
    WRITESTR("gateway=%08lx\n", cfg->gateway);
    WRITESTR("netmask=%08lx\n", cfg->netmask);
    WRITESTR("broadcast=%08lx\n", cfg->broadcast);
    WRITESTR("dns1=%08lx\n", cfg->dns[0]);
    WRITESTR("dns2=%08lx\n", cfg->dns[1]);
    WRITESTR("hostname=%s\n", cfg->hostname);
    WRITESTR("email=%s\n", cfg->email);
    WRITESTR("smtp=%s\n", cfg->smtp);
    WRITESTR("pop3=%s\n", cfg->pop3);
    WRITESTR("pop3_login=%s\n", cfg->pop3_login);
    WRITESTR("pop3_passwd=%s\n", cfg->pop3_passwd);
    WRITESTR("proxy_host=%s\n", cfg->proxy_host);
    WRITESTR("proxy_port=%d\n", cfg->proxy_port);
    WRITESTR("ppp_login=%s\n", cfg->ppp_login);
    WRITESTR("ppp_passwd=%s\n", cfg->ppp_passwd);

    switch(cfg->method) {
        case 0:
            WRITESTR("method=%s\n", "dhcp");
            break;
        case 1:
            WRITESTR("method=%s\n", "static");
            break;
        case 4:
            WRITESTR("method=%s\n", "pppoe");
            break;
    }

#undef WRITESTR

    fclose(f);

    //If we're saving to a VMU, tack on the header and send it out
    if(fn[0] == '/' && fn[1] == 'v' && fn[2] == 'm' && fn[3] == 'u') {
        netcfg_vmuify("/ram/netcfg.tmp", fn);
        unlink("/ram/netcfg.tmp");
    }

    return 0;

error:
    fclose(f);
    return -1;
}
示例#7
0
//--------------------------------------------------------------------------
// Print
//--------------------------------------------------------------------------
void EchoOp::print( Stream &stream )
{
   WRITESTR( mStatement );
}