示例#1
0
inline int dtypeStrToDType(const std::string& s)
{
	for (hxb_datatype type = HXB_DTYPE_BOOL; type <= HXB_DTYPE_16BYTES; type = hxb_datatype(type + 1))
		if (shortDatatypeName(type) == s || datatypeName(type) == s)
			return type;

	return -1;
}
示例#2
0
文件: UniformData.cpp 项目: jrco/nau
char *UniformData::UniformString(){
	ostringstream os;

	if (outputString){
		free(outputString);
	}

	os << name << "(" << program << ", " << location << ") type: " << std::hex << datatype_enum << " : " << datatypeName(datatype);
	
	if (isValueSet){

		
		if ((datasize[0] == datasize[1]) && (datasize[0] == 1)){ //Single Value
			switch(datatype){
				case CINT:
					os << " = " << ((int*) data)[0];
					break;
				case CUINT:
					os << " = " << ((unsigned int*) data)[0];
					break;
				case CFLOAT:
					os << " = " << ((float*) data)[0];
					break;
				case CBOOL:
					os << " = " << ((bool*) data)[0];
					break;
				default:
					os << " = " << std::hex << ((unsigned int*) data)[0];
					break;
			}
		}
		else if (datasize[0] == 1){ //Array
			os << " = ";
			printRow(&os, 0);
		}
		else if (datasize[0] != 0){ //Matrix
			os << " = ";
			int blanklength = os.str().length();
			char *blank = (char*) malloc (sizeof(char) * (blanklength + 1));
			for (int i = 0; i < blanklength; i++){
				blank[i] = ' ';
			}
			blank[blanklength] = 0;
			printRow(&os, 0);
			for (int i = 1; i < datasize[0]; i++)
			{
				os << '\n' << blank;
				printRow(&os, i);
			}
		}
		else{
			os << " = (not implemented yet / unknown)";
		}
	}
	else{
		os << " = (null / not set)";
	}

	outputString = strdup(os.str().c_str());
	return outputString;
}
示例#3
0
文件: UniformData.cpp 项目: jrco/nau
char *UniformData::InfoString(){
	ostringstream os;

	if (outputString){
		free(outputString);
	}

	os << name << "(" << program << ", " << location << ") type: " << std::hex << datatype_enum << " : " << datatypeName(datatype);
	

	outputString = strdup(os.str().c_str());
	return outputString;
}