📄 texture.cpp
字号:
fw.indent() << "internalFormatMode " << Texture_getInternalFormatModeStr(texture.getInternalFormatMode()) << std::endl; if (texture.getInternalFormatMode()==Texture::USE_USER_DEFINED_FORMAT) { const char* str = Texture_getInternalFormatStr(texture.getInternalFormat()); if (str) fw.indent() << "internalFormat " << str << std::endl; else fw.indent() << "internalFormat " << texture.getInternalFormat() << std::endl; } if (texture.getSourceFormat()) { const char* str = Texture_getInternalFormatStr(texture.getSourceFormat()); if (str) fw.indent() << "sourceFormat " << str << std::endl; else fw.indent() << "sourceFormat " << texture.getSourceFormat() << std::endl; } if (texture.getSourceType()) { const char* str = Texture_getSourceTypeStr(texture.getSourceType()); if (str) fw.indent() << "sourceType " << str << std::endl; else fw.indent() << "sourceType " << texture.getSourceType() << std::endl; } fw.indent() << "resizeNonPowerOfTwo "<< (texture.getResizeNonPowerOfTwoHint()?"TRUE":"FALSE") << std::endl; return true;}bool Texture_matchWrapStr(const char* str,Texture::WrapMode& wrap){ if (strcmp(str,"CLAMP")==0) wrap = Texture::CLAMP; else if (strcmp(str,"CLAMP_TO_EDGE")==0) wrap = Texture::CLAMP_TO_EDGE; else if (strcmp(str,"CLAMP_TO_BORDER")==0) wrap = Texture::CLAMP_TO_BORDER; else if (strcmp(str,"REPEAT")==0) wrap = Texture::REPEAT; else if (strcmp(str,"MIRROR")==0) wrap = Texture::MIRROR; else return false; return true;}const char* Texture_getWrapStr(Texture::WrapMode wrap){ switch(wrap) { case(Texture::CLAMP): return "CLAMP"; case(Texture::CLAMP_TO_EDGE): return "CLAMP_TO_EDGE"; case(Texture::CLAMP_TO_BORDER): return "CLAMP_TO_BORDER"; case(Texture::REPEAT): return "REPEAT"; case(Texture::MIRROR): return "MIRROR"; } return "";}bool Texture_matchFilterStr(const char* str,Texture::FilterMode& filter){ if (strcmp(str,"NEAREST")==0) filter = Texture::NEAREST; else if (strcmp(str,"LINEAR")==0) filter = Texture::LINEAR; else if (strcmp(str,"NEAREST_MIPMAP_NEAREST")==0) filter = Texture::NEAREST_MIPMAP_NEAREST; else if (strcmp(str,"LINEAR_MIPMAP_NEAREST")==0) filter = Texture::LINEAR_MIPMAP_NEAREST; else if (strcmp(str,"NEAREST_MIPMAP_LINEAR")==0) filter = Texture::NEAREST_MIPMAP_LINEAR; else if (strcmp(str,"LINEAR_MIPMAP_LINEAR")==0) filter = Texture::LINEAR_MIPMAP_LINEAR; else if (strcmp(str,"ANISOTROPIC")==0) filter = Texture::LINEAR; else return false; return true;}const char* Texture_getFilterStr(Texture::FilterMode filter){ switch(filter) { case(Texture::NEAREST): return "NEAREST"; case(Texture::LINEAR): return "LINEAR"; case(Texture::NEAREST_MIPMAP_NEAREST): return "NEAREST_MIPMAP_NEAREST"; case(Texture::LINEAR_MIPMAP_NEAREST): return "LINEAR_MIPMAP_NEAREST"; case(Texture::NEAREST_MIPMAP_LINEAR): return "NEAREST_MIPMAP_LINEAR"; case(Texture::LINEAR_MIPMAP_LINEAR): return "LINEAR_MIPMAP_LINEAR"; } return "";}bool Texture_matchInternalFormatModeStr(const char* str,Texture::InternalFormatMode& mode){ if (strcmp(str,"USE_IMAGE_DATA_FORMAT")==0) mode = Texture::USE_IMAGE_DATA_FORMAT; else if (strcmp(str,"USE_USER_DEFINED_FORMAT")==0) mode = Texture::USE_USER_DEFINED_FORMAT; else if (strcmp(str,"USE_ARB_COMPRESSION")==0) mode = Texture::USE_ARB_COMPRESSION; else if (strcmp(str,"USE_S3TC_DXT1_COMPRESSION")==0) mode = Texture::USE_S3TC_DXT1_COMPRESSION; else if (strcmp(str,"USE_S3TC_DXT3_COMPRESSION")==0) mode = Texture::USE_S3TC_DXT3_COMPRESSION; else if (strcmp(str,"USE_S3TC_DXT5_COMPRESSION")==0) mode = Texture::USE_S3TC_DXT5_COMPRESSION; else return false; return true;}const char* Texture_getInternalFormatModeStr(Texture::InternalFormatMode mode){ switch(mode) { case(Texture::USE_IMAGE_DATA_FORMAT): return "USE_IMAGE_DATA_FORMAT"; case(Texture::USE_USER_DEFINED_FORMAT): return "USE_USER_DEFINED_FORMAT"; case(Texture::USE_ARB_COMPRESSION): return "USE_ARB_COMPRESSION"; case(Texture::USE_S3TC_DXT1_COMPRESSION): return "USE_S3TC_DXT1_COMPRESSION"; case(Texture::USE_S3TC_DXT3_COMPRESSION): return "USE_S3TC_DXT3_COMPRESSION"; case(Texture::USE_S3TC_DXT5_COMPRESSION): return "USE_S3TC_DXT5_COMPRESSION"; } return "";}bool Texture_matchInternalFormatStr(const char* str,int& value){ if ( strcmp(str,"GL_INTENSITY")==0) value = GL_INTENSITY; else if (strcmp(str,"GL_LUMINANCE")==0) value = GL_LUMINANCE; else if (strcmp(str,"GL_ALPHA")==0) value = GL_ALPHA; else if (strcmp(str,"GL_LUMINANCE_ALPHA")==0) value = GL_LUMINANCE_ALPHA; else if (strcmp(str,"GL_RGB")==0) value = GL_RGB; else if (strcmp(str,"GL_RGBA")==0) value = GL_RGBA; else if (strcmp(str,"GL_COMPRESSED_ALPHA_ARB")==0) value = GL_COMPRESSED_ALPHA_ARB; else if (strcmp(str,"GL_COMPRESSED_LUMINANCE_ARB")==0) value = GL_COMPRESSED_LUMINANCE_ARB; else if (strcmp(str,"GL_COMPRESSED_INTENSITY_ARB")==0) value = GL_COMPRESSED_INTENSITY_ARB; else if (strcmp(str,"GL_COMPRESSED_LUMINANCE_ALPHA_ARB")==0) value = GL_COMPRESSED_LUMINANCE_ALPHA_ARB; else if (strcmp(str,"GL_COMPRESSED_RGB_ARB")==0) value = GL_COMPRESSED_RGB_ARB; else if (strcmp(str,"GL_COMPRESSED_RGBA_ARB")==0) value = GL_COMPRESSED_RGBA_ARB; else if (strcmp(str,"GL_COMPRESSED_RGB_S3TC_DXT1_EXT")==0) value = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; else if (strcmp(str,"GL_COMPRESSED_RGBA_S3TC_DXT1_EXT")==0) value = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; else if (strcmp(str,"GL_COMPRESSED_RGBA_S3TC_DXT3_EXT")==0) value = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; else if (strcmp(str,"GL_COMPRESSED_RGBA_S3TC_DXT5_EXT")==0) value = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; else { osgDB::Field::FieldType type = osgDB::Field::calculateFieldType(str); if (type==osgDB::Field::INTEGER) { value = atoi(str); return true; } else { return false; } } return true;}const char* Texture_getInternalFormatStr(int value){ switch(value) { case(GL_INTENSITY): return "GL_INTENSITY"; case(GL_LUMINANCE): return "GL_LUMINANCE"; case(GL_ALPHA): return "GL_ALPHA"; case(GL_LUMINANCE_ALPHA): return "GL_LUMINANCE_ALPHA"; case(GL_RGB): return "GL_RGB"; case(GL_RGBA): return "GL_RGBA"; case(GL_COMPRESSED_ALPHA_ARB): return "GL_COMPRESSED_ALPHA_ARB"; case(GL_COMPRESSED_LUMINANCE_ARB): return "GL_COMPRESSED_LUMINANCE_ARB"; case(GL_COMPRESSED_INTENSITY_ARB): return "GL_COMPRESSED_INTENSITY_ARB"; case(GL_COMPRESSED_LUMINANCE_ALPHA_ARB): return "GL_COMPRESSED_LUMINANCE_ALPHA_ARB"; case(GL_COMPRESSED_RGB_ARB): return "GL_COMPRESSED_RGB_ARB"; case(GL_COMPRESSED_RGBA_ARB): return "GL_COMPRESSED_RGBA_ARB"; case(GL_COMPRESSED_RGB_S3TC_DXT1_EXT): return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT"; case(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT): return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"; case(GL_COMPRESSED_RGBA_S3TC_DXT3_EXT): return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"; case(GL_COMPRESSED_RGBA_S3TC_DXT5_EXT): return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"; } return NULL;}bool Texture_matchSourceTypeStr(const char* str,int& value){ if ( strcmp(str,"GL_BYTE")==0) value = GL_BYTE; else if (strcmp(str,"GL_SHORT")==0) value = GL_SHORT; else if (strcmp(str,"GL_INT")==0) value = GL_INT; else if (strcmp(str,"GL_UNSIGNED_BYTE")==0) value = GL_UNSIGNED_BYTE; else if (strcmp(str,"GL_UNSIGNED_SHORT")==0) value = GL_UNSIGNED_SHORT; else if (strcmp(str,"GL_UNSIGNED_INT")==0) value = GL_UNSIGNED_INT; else if (strcmp(str,"GL_FLOAT")==0) value = GL_FLOAT; else { osgDB::Field::FieldType type = osgDB::Field::calculateFieldType(str); if (type==osgDB::Field::INTEGER) { value = atoi(str); return true; } else { return false; } } return true;}const char* Texture_getSourceTypeStr(int value){ switch(value) { case(GL_BYTE): return "GL_BYTE"; case(GL_SHORT): return "GL_SHORT"; case(GL_INT): return "GL_INT"; case(GL_FLOAT): return "GL_FLOAT"; case(GL_UNSIGNED_BYTE): return "GL_UNSIGNED_BYTE"; case(GL_UNSIGNED_SHORT): return "GL_UNSIGNED_SHORT"; case(GL_UNSIGNED_INT): return "GL_UNSIGNED_INT"; } return NULL;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -