void SettingsUI::setupItemsSettings() { auto asset = AssetManager::instance(); _factory = GeometryFactory::instanciate(); _front[0] = new Geometric(glm::vec3(0, 0, 15.1), glm::vec3(0, 0, 0), glm::vec3(39, 20, 2)); _front[1] = new Geometric(glm::vec3(0, 6.5, 12), glm::vec3(), glm::vec3(2.5, 1.75, 15)); _front[2] = new Geometric(glm::vec3(-6.5, -3.5, 6.5), glm::vec3(), glm::vec3(4, 2, 10)); _front[3] = new Geometric(glm::vec3(4.5, _cursor[ALIASING], 12), glm::vec3(0, 0, 0), glm::vec3(1, 1, 1)); int fixItems = _itemsName.size() - _dynamicItems; for (int i = 0; i < _fixItems; i++) { int n = _itemsName.size() - fixItems; _front[i]->setGeometry(_factory->getGeometry(GeometryFactory::VERTICAL_PLANE)); _front[i]->setTexture((*(*THEME((*THEME_HANDLER(asset["themes"]))["default"]))[_itemsName[n]])); _front[i]->initialize(); _front[i]->draw(_shader, _clock); --fixItems; } for (int i = 0; i < _dynamicItems; i++) { _items.push_back(new Geometric(glm::vec3(3, _spreading, 10), glm::vec3(0, 0, 0), glm::vec3(2.5, 1.5, 40))); _items.back()->setGeometry(_factory->getGeometry(GeometryFactory::VERTICAL_PLANE)); _items.back()->setTexture((*(*THEME((*THEME_HANDLER(asset["themes"]))["default"]))[_itemsName[i]])); _items.back()->initialize(); _items.back()->draw(_shader, _clock); if (i < (_dynamicItems - 1)) { std::vector<std::string> tmp; std::ostringstream gv; std::ostringstream fx; gv << _gameVolum; fx << _fxVolum; tmp.push_back(!_antiAliasing ? "OFF" : "ON"); tmp.push_back(gv.str()); tmp.push_back(fx.str()); _settings[i] = new GraphicString(tmp[i]); _settings[i]->render(*_factory); _settings[i]->translate(*_posSettings[i]); _settings[i]->scale(glm::vec3(2, 4, 10)); _settings[i]->draw(_shader, _clock); } _spreading -= 2.5; } _spreading = 2; }
static void theme_parser_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { const gchar *prop_value; Theme *theme = THEME (user_data); ThemePrivate *priv = theme->priv; if (!g_strcmp0 (element_name, "theme")) { prop_value = get_attribute_value ("name", attribute_names, attribute_values); priv->name = g_strdup (prop_value); } else if (!g_strcmp0 (element_name, "icon")) { gchar *src; GdkPixbuf *pixbuf; gint alpha = 255; src = g_build_filename (theme->priv->path, get_attribute_value ("src", attribute_names, attribute_values), NULL); prop_value = get_attribute_value ("alpha", attribute_names, attribute_values); if (prop_value != NULL) alpha = CLAMP (atoi (prop_value), 0, 255); if (theme->priv->tile_width == 0) { pixbuf = gdk_pixbuf_new_from_file (src, NULL); if (pixbuf != NULL) { theme->priv->tile_width = gdk_pixbuf_get_width (pixbuf); theme->priv->tile_height = gdk_pixbuf_get_height (pixbuf); g_object_unref (pixbuf); } } theme_add_image (theme, src, alpha); g_free (src); } else if (!g_strcmp0 (element_name, "animstep")) { priv->animstep = atoi (get_attribute_value ("dist", attribute_names, attribute_values)); } else if (!g_strcmp0 (element_name, "bgcolor")) { /* handle background color */ prop_value = get_attribute_value ("color", attribute_names, attribute_values); gdk_rgba_parse (&(priv->bg_color), prop_value); } else if (!g_strcmp0 (element_name, "bgcolor_rgb")) { /* handle rgb color node */ prop_value = get_attribute_value ("red", attribute_names, attribute_values); priv->bg_color.red = (atof (prop_value) / 255.0) * 65536; prop_value = get_attribute_value ("blue", attribute_names, attribute_values); priv->bg_color.blue = (atof (prop_value) / 255.0) * 65536; prop_value = get_attribute_value ("green", attribute_names, attribute_values); priv->bg_color.green = (atof (prop_value) / 255.0) * 65536; } else if (!g_strcmp0 (element_name, "decor")) { gchar *src; const gchar *base; GQuark base_id; GQuark decor_id; gint alpha = 255; src = g_build_filename (theme->priv->path, get_attribute_value ("src", attribute_names, attribute_values), NULL); prop_value = get_attribute_value ("alpha", attribute_names, attribute_values); if (prop_value != NULL) { alpha = CLAMP (atoi (prop_value), 0, 255); } decor_id = theme_add_image (theme, src, alpha); g_free (src); base = get_attribute_value ("base", attribute_names, attribute_values); if (base == NULL) return; base_id = g_quark_from_string (base); theme_add_image_decoration (theme, base_id, decor_id); } }