static vector<float> filter_table(FilterType type, float width) { vector<float> filter_table(FILTER_TABLE_SIZE); float (*filter_func)(float, float) = NULL; switch(type) { case FILTER_BOX: filter_func = filter_func_box; break; case FILTER_GAUSSIAN: filter_func = filter_func_gaussian; width *= 3.0f; break; case FILTER_BLACKMAN_HARRIS: filter_func = filter_func_blackman_harris; width *= 2.0f; break; default: assert(0); } /* Create importance sampling table. */ /* TODO(sergey): With the even filter table size resolution we can not * really make it nice symmetric importance map without sampling full range * (meaning, we would need to sample full filter range and not use the * make_symmetric argument). * * Current code matches exactly initial filter table code, but we should * consider either making FILTER_TABLE_SIZE odd value or sample full filter. */ util_cdf_inverted(FILTER_TABLE_SIZE, 0.0f, width * 0.5f, function_bind(filter_func, _1, width), true, filter_table); return filter_table; }
void FrmAlbaranProveedor::setUpBusqueda() { m_busqueda = new BarraBusqueda(this); this->setMouseTracking(true); this->setAttribute(Qt::WA_Hover); this->installEventFilter(this); QStringList orden; orden << tr("Albarán") << tr("Fecha") <<tr("Cif/Nif") <<tr("Proveedor"); m_busqueda->setOrderCombo(orden); QStringList modo; modo << tr("A-Z") << tr("Z-A"); m_busqueda->setModeCombo(modo); connect(m_busqueda,SIGNAL(showMe()),this,SLOT(mostrarBusqueda())); connect(m_busqueda,SIGNAL(hideMe()),this,SLOT(ocultarBusqueda())); connect(m_busqueda,SIGNAL(doSearch(QString,QString,QString)),this,SLOT(filter_table(QString,QString,QString))); QPushButton *btnAdd = new QPushButton(QIcon(":/Icons/PNG/add.png"),tr("Añadir"),this); connect(btnAdd,SIGNAL(clicked()),this,SLOT(on_btnAnadir_clicked())); m_busqueda->addWidget(btnAdd); QPushButton *btnEdit = new QPushButton(QIcon(":/Icons/PNG/edit.png"),tr("Editar"),this); connect(btnEdit,SIGNAL(clicked()),this,SLOT(on_btnEditar_clicked())); m_busqueda->addWidget(btnEdit); QPushButton *btnDelete = new QPushButton(QIcon(":/Icons/PNG/borrar.png"),tr("Borrar"),this); connect(btnDelete,SIGNAL(clicked()),this,SLOT(on_btnBorrar_clicked())); m_busqueda->addWidget(btnDelete); QPushButton *btnPrint = new QPushButton(QIcon(":/Icons/PNG/print2.png"),tr("Imprimir"),this); connect(btnDelete,SIGNAL(clicked()),this,SLOT(on_btnImprimir_clicked())); m_busqueda->addWidget(btnPrint); m_busqueda->addSpacer(); connect(m_busqueda,SIGNAL(key_Down_Pressed()),ui->tabla,SLOT(setFocus())); //connect(m_busqueda,SIGNAL(key_F2_Pressed()),this,SLOT(ocultarBusqueda())); m_busqueda->hideMe(); }
void FrmTransportistas::setUpBusqueda() { m_busqueda = new BarraBusqueda(this); this->setMouseTracking(true); this->setAttribute(Qt::WA_Hover); this->installEventFilter(this); QStringList orden; orden << tr("Código") << tr("Descripción"); m_busqueda->setOrderCombo(orden); QStringList modo; modo << tr("A-Z") << tr("Z-A"); m_busqueda->setModeCombo(modo); connect(m_busqueda,SIGNAL(showMe()),this,SLOT(mostrarBusqueda())); connect(this,&MayaModule::hideBusqueda,this,&FrmTransportistas::ocultarBusqueda); connect(m_busqueda,SIGNAL(doSearch(QString,QString,QString)),this,SLOT(filter_table(QString,QString,QString))); QPushButton* add = new QPushButton(QIcon(":/Icons/PNG/add.png"),tr("Añadir forma de pago"),this); connect(add,SIGNAL(clicked()),this,SLOT(on_btnAnadir_clicked())); m_busqueda->addWidget(add); QPushButton* edit = new QPushButton(QIcon(":/Icons/PNG/edit.png"),tr("Editar forma de pago"),this); connect(edit,SIGNAL(clicked()),this,SLOT(on_btnEditar_2_clicked())); m_busqueda->addWidget(edit); QPushButton* print = new QPushButton(QIcon(":/Icons/PNG/print2.png"),tr("Imprimir forma de pago"),this); // connect(print,SIGNAL(clicked()),this,SLOT(on_btnEditar_2_clicked()));//TODO m_busqueda->addWidget(print); QPushButton* del = new QPushButton(QIcon(":/Icons/PNG/borrar.png"),tr("Borrar forma de pago"),this); // connect(del,SIGNAL(clicked()),this,SLOT(on_btnEditar_2_clicked()));//TODO m_busqueda->addWidget(del); }
/* * === FUNCTION ====================================================================== * Name: main * ===================================================================================== */ int main (int argc, char *argv[]) { if (argc == 1) { print_usage(); exit(EXIT_SUCCESS); } table_t *tab = km_calloc(1, sizeof(*tab), &km_onerr_print_exit); tab->skipped_row_fn = &print_header; tab->skipped_col_fn = NULL; if (!parse_args(argc, argv, tab)) { destroy_table_t(tab); fprintf(stderr, "Cannot parse arguments.\n"); print_usage(); exit(EXIT_FAILURE); } if (!filter_table(tab)) { destroy_table_t(tab); fprintf(stderr, "Error during table filtering.\n"); exit(EXIT_FAILURE); } destroy_table_t(tab); return EXIT_SUCCESS; } /* ---------- end of function main ---------- */
void Film::device_update(Device *device, DeviceScene *dscene, Scene *scene) { if(!need_update) return; device_free(device, dscene, scene); KernelFilm *kfilm = &dscene->data.film; /* update __data */ kfilm->exposure = exposure; kfilm->pass_flag = 0; kfilm->light_pass_flag = 0; kfilm->pass_stride = 0; kfilm->use_light_pass = use_light_visibility || use_sample_clamp; for(size_t i = 0; i < passes.size(); i++) { Pass& pass = passes[i]; if(pass.type == PASS_NONE) continue; int pass_flag = (1 << (pass.type % 32)); if(pass.type <= PASS_CATEGORY_MAIN_END) { kfilm->pass_flag |= pass_flag; } else { assert(pass.type <= PASS_CATEGORY_LIGHT_END); kfilm->use_light_pass = 1; kfilm->light_pass_flag |= pass_flag; } switch(pass.type) { case PASS_COMBINED: kfilm->pass_combined = kfilm->pass_stride; break; case PASS_DEPTH: kfilm->pass_depth = kfilm->pass_stride; break; case PASS_NORMAL: kfilm->pass_normal = kfilm->pass_stride; break; case PASS_UV: kfilm->pass_uv = kfilm->pass_stride; break; case PASS_MOTION: kfilm->pass_motion = kfilm->pass_stride; break; case PASS_MOTION_WEIGHT: kfilm->pass_motion_weight = kfilm->pass_stride; break; case PASS_OBJECT_ID: kfilm->pass_object_id = kfilm->pass_stride; break; case PASS_MATERIAL_ID: kfilm->pass_material_id = kfilm->pass_stride; break; case PASS_MIST: kfilm->pass_mist = kfilm->pass_stride; break; case PASS_EMISSION: kfilm->pass_emission = kfilm->pass_stride; break; case PASS_BACKGROUND: kfilm->pass_background = kfilm->pass_stride; break; case PASS_AO: kfilm->pass_ao = kfilm->pass_stride; break; case PASS_SHADOW: kfilm->pass_shadow = kfilm->pass_stride; break; case PASS_LIGHT: break; case PASS_DIFFUSE_COLOR: kfilm->pass_diffuse_color = kfilm->pass_stride; break; case PASS_GLOSSY_COLOR: kfilm->pass_glossy_color = kfilm->pass_stride; break; case PASS_TRANSMISSION_COLOR: kfilm->pass_transmission_color = kfilm->pass_stride; break; case PASS_SUBSURFACE_COLOR: kfilm->pass_subsurface_color = kfilm->pass_stride; break; case PASS_DIFFUSE_INDIRECT: kfilm->pass_diffuse_indirect = kfilm->pass_stride; break; case PASS_GLOSSY_INDIRECT: kfilm->pass_glossy_indirect = kfilm->pass_stride; break; case PASS_TRANSMISSION_INDIRECT: kfilm->pass_transmission_indirect = kfilm->pass_stride; break; case PASS_SUBSURFACE_INDIRECT: kfilm->pass_subsurface_indirect = kfilm->pass_stride; break; case PASS_VOLUME_INDIRECT: kfilm->pass_volume_indirect = kfilm->pass_stride; break; case PASS_DIFFUSE_DIRECT: kfilm->pass_diffuse_direct = kfilm->pass_stride; break; case PASS_GLOSSY_DIRECT: kfilm->pass_glossy_direct = kfilm->pass_stride; break; case PASS_TRANSMISSION_DIRECT: kfilm->pass_transmission_direct = kfilm->pass_stride; break; case PASS_SUBSURFACE_DIRECT: kfilm->pass_subsurface_direct = kfilm->pass_stride; break; case PASS_VOLUME_DIRECT: kfilm->pass_volume_direct = kfilm->pass_stride; break; #ifdef WITH_CYCLES_DEBUG case PASS_BVH_TRAVERSED_NODES: kfilm->pass_bvh_traversed_nodes = kfilm->pass_stride; break; case PASS_BVH_TRAVERSED_INSTANCES: kfilm->pass_bvh_traversed_instances = kfilm->pass_stride; break; case PASS_BVH_INTERSECTIONS: kfilm->pass_bvh_intersections = kfilm->pass_stride; break; case PASS_RAY_BOUNCES: kfilm->pass_ray_bounces = kfilm->pass_stride; break; #endif case PASS_RENDER_TIME: break; default: assert(false); break; } kfilm->pass_stride += pass.components; } kfilm->pass_denoising_data = 0; kfilm->pass_denoising_clean = 0; kfilm->denoising_flags = 0; if(denoising_data_pass) { kfilm->pass_denoising_data = kfilm->pass_stride; kfilm->pass_stride += DENOISING_PASS_SIZE_BASE; kfilm->denoising_flags = denoising_flags; if(denoising_clean_pass) { kfilm->pass_denoising_clean = kfilm->pass_stride; kfilm->pass_stride += DENOISING_PASS_SIZE_CLEAN; kfilm->use_light_pass = 1; } } kfilm->pass_stride = align_up(kfilm->pass_stride, 4); kfilm->pass_alpha_threshold = pass_alpha_threshold; /* update filter table */ vector<float> table = filter_table(filter_type, filter_width); scene->lookup_tables->remove_table(&filter_table_offset); filter_table_offset = scene->lookup_tables->add_table(dscene, table); kfilm->filter_table_offset = (int)filter_table_offset; /* mist pass parameters */ kfilm->mist_start = mist_start; kfilm->mist_inv_depth = (mist_depth > 0.0f)? 1.0f/mist_depth: 0.0f; kfilm->mist_falloff = mist_falloff; pass_stride = kfilm->pass_stride; denoising_data_offset = kfilm->pass_denoising_data; denoising_clean_offset = kfilm->pass_denoising_clean; need_update = false; }