void ByteStream::insertarDatos(const void* dato, size_t tamanioDato) { if ((tamanio + tamanioDato) > capacidad) { redimensionar(tamanio + tamanioDato); } memcpy(&stream[tamanio], dato, tamanioDato); tamanio += tamanioDato; }
bool hash_guardar(hash_t *hash, const char *clave, void *dato){ bool res; daton_t* paquete = paquete_crear(clave, dato); if (hash->tam > 3 * hash->largo) { unsigned long nuevo_largo = ( hash->largo * 3); redimensionar(hash, nuevo_largo); } res = almacenar(hash, hash->tabla, paquete, hash->largo); return res; }
void ShowGLMult::redimensionar(GLsizei largura, GLsizei altura){ detector.setTamanhoJanela(Size(largura,altura)); if (largura*3%4!=0) { largura+=largura*3%4; redimensionar(largura,detector.getTamanhoJanela().height); } else { if (detector.getImagem_Copia().rows!=0) detector.redimensionar(); } }
void ShowGLMult::executar(int & argc, char** argv){ glutInit(&argc, argv); glutInitWindowPosition( 0, 0); Mat imagemEntrada = detector.getImagemEntrada(); glutInitWindowSize(imagemEntrada.size().width,imagemEntrada.size().height); glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE ); glutCreateWindow( "Jogo Formas (cores diferentes)" ); glutDisplayFunc( desenharTela ); glutIdleFunc( emEspera ); glutReshapeFunc( redimensionar ); glutSpecialFunc( teclasEspeciais ); glClearColor( 0.0, 0.0, 0.0, 1.0 ); glClearDepth( 1.0 ); detector.setTamanhoJanela(imagemEntrada.size()); Size tamanhoJanela = detector.getTamanhoJanela(); redimensionar(tamanhoJanela.width,tamanhoJanela.height); glutMainLoop(); }
void *hash_borrar(hash_t *hash, const char *clave){ unsigned long indice = fh(clave,hash->largo); if (!hash->tabla[indice]) return NULL; lista_iter_t* iter_l = busqueda(hash->tabla[indice], clave); if (lista_iter_al_final(iter_l)) { lista_iter_destruir(iter_l); return NULL; } daton_t* aux = lista_iter_borrar(iter_l); void* dato_salida = aux->dato; free(aux->clave); free(aux); hash->tam--; lista_iter_destruir(iter_l); if (lista_esta_vacia(hash->tabla[indice])){ lista_destruir(hash->tabla[indice], NULL); hash->tabla[indice] = NULL; } if (hash->tam < 3 * hash->largo && hash->largo > TAM_INI) { unsigned long nuevo_largo = hash->largo / 2; redimensionar(hash, nuevo_largo); } return dato_salida; }