char const * glloader_get_feature_name(int index) { if ((index >= 0) && (index < glloader_num_features())) { return glloader::gl_features_extractor::instance().feature_name(index); } else { return NULL; } }
void OGLESRenderEngine::GetCustomAttrib(std::string const & name, void* value) { if ("VENDOR" == name) { char const * str = reinterpret_cast<char const *>(glGetString(GL_VENDOR)); if (str) { *static_cast<std::string*>(value) = str; } else { static_cast<std::string*>(value)->clear(); } } if ("RENDERER" == name) { char const * str = reinterpret_cast<char const *>(glGetString(GL_RENDERER)); if (str) { *static_cast<std::string*>(value) = str; } else { static_cast<std::string*>(value)->clear(); } } if ("VERSION" == name) { char const * str = reinterpret_cast<char const *>(glGetString(GL_VERSION)); if (str) { *static_cast<std::string*>(value) = str; } else { static_cast<std::string*>(value)->clear(); } } if ("SHADING_LANGUAGE_VERSION" == name) { char const * str = reinterpret_cast<char const *>(glGetString(GL_SHADING_LANGUAGE_VERSION)); if (str) { *static_cast<std::string*>(value) = str; } else { static_cast<std::string*>(value)->clear(); } } if ("NUM_FEATURES" == name) { *static_cast<int*>(value) = glloader_num_features(); } if (0 == name.find("FEATURE_NAME_")) { std::istringstream iss(name.substr(13)); int n; iss >> n; *static_cast<std::string*>(value) = glloader_get_feature_name(n); }