static Itdb_ArtworkFormat *g_value_to_image_format (GValue *value) { GHashTable *dict; Itdb_ArtworkFormat *img_spec; g_return_val_if_fail (G_VALUE_HOLDS (value, G_TYPE_HASH_TABLE), NULL); dict = g_value_get_boxed (value); g_return_val_if_fail (dict != NULL, NULL); img_spec = g_new0 (Itdb_ArtworkFormat, 1); if (img_spec == NULL) { return NULL; } if (!set_pixel_format (img_spec, dict)) { g_free (img_spec); return NULL; } set_back_color (img_spec, dict); dict_to_struct (dict, sysinfo_image_format_fields_mapping, img_spec); if (get_boolean (dict, "AlignRowBytes") && (img_spec->row_bytes_alignment == 0)) { /* at least the nano3g has the AlignRowBytes key with no * RowBytesAlignment key. */ img_spec->row_bytes_alignment = 4; } return img_spec; }
ShaderPhongGen::ShaderPhongGen(bool color_per_vertex) { if (color_per_vertex) { prg_.addShaderFromSourceCode(QOpenGLShader::Vertex, vertex_shader_source_2_); prg_.addShaderFromSourceCode(QOpenGLShader::Fragment, fragment_shader_source_2_); prg_.bindAttributeLocation("vertex_pos", ATTRIB_POS); prg_.bindAttributeLocation("vertex_normal", ATTRIB_NORM); prg_.bindAttributeLocation("vertex_color", ATTRIB_COLOR); prg_.link(); get_matrices_uniforms(); } else { prg_.addShaderFromSourceCode(QOpenGLShader::Vertex, vertex_shader_source_); prg_.addShaderFromSourceCode(QOpenGLShader::Fragment, fragment_shader_source_); prg_.bindAttributeLocation("vertex_pos", ATTRIB_POS); prg_.bindAttributeLocation("vertex_normal", ATTRIB_NORM); prg_.link(); get_matrices_uniforms(); } unif_front_color_ = prg_.uniformLocation("front_color"); unif_back_color_ = prg_.uniformLocation("back_color"); unif_ambiant_color_ = prg_.uniformLocation("ambiant_color"); unif_spec_color_ = prg_.uniformLocation("spec_color"); unif_spec_coef_ = prg_.uniformLocation("spec_coef"); unif_double_side_ = prg_.uniformLocation("double_side"); unif_light_position_ = prg_.uniformLocation("lightPosition"); //default param bind(); set_light_position(QVector3D(10.0f, 100.0f, 1000.0f)); set_front_color(QColor(250, 0, 0)); set_back_color(QColor(0, 250, 5)); set_ambiant_color(QColor(5, 5, 5)); set_specular_color(QColor(100, 100, 100)); set_specular_coef(50.0f); set_double_side(true); release(); }
void colors_init(uint8_t primary, uint8_t accent, uint8_t back) { set_primary_color(primary); set_accent_color(accent); set_back_color(back); }