NetworkInstance::NetworkInstance(QWidget* parent) : QWidget(parent), nv_(nullptr), trained_(false), argmax_(false), remainingNodesForEdgeAddition_(0), id1_(-1), id2_(-1) { discretisationSelection_ = new DiscretisationSelection(this); connect(discretisationSelection_, SIGNAL(accepted()), this, SLOT(loadSamples())); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), mGraphicsScene(0), mFontPath("fonts/"), mFreeTypeInitialized(false), mRendering(false), mLibrary(0), mFace(0), mResourceFace(0), mRawGlyphString(0), mShapedGlyphString(0), mRawVisualizer(0), mShapedVisualizer(0), mShapedRenderer(0), ui(new Ui::MainWindow) { ui->setupUi(this); setWindowTitle("BidiRenderer"); statusBar(); loadSamples(); ui->fontPathLE->setText(mFontPath); listFonts(); ui->levelsColorPickerLabel->setColor(Qt::blue); mFontSize = ui->fontSizeSB->value(); mPenWidth = ui->penWidthSB->value(); ui->lineWidthSlider->setRange(mFontSize * 4, mFontSize * 40); ui->lineWidthSlider->setValue(mFontSize * 40); if (FT_Init_FreeType(&mLibrary)) { statusBar()->showMessage("Error initializing FreeType", messageTimeout); return; } mFreeTypeInitialized = true; QFile fontFile(":/files/fonts/DejaVuSans.ttf"); if (fontFile.open(QIODevice::ReadOnly)) mResourceFaceData = fontFile.readAll(); if (FT_New_Memory_Face(mLibrary, reinterpret_cast<const FT_Byte*>(mResourceFaceData.constData()), fontFile.size(), 0, &mResourceFace)) { statusBar()->showMessage("Error loading DejaVuSans.ttf", messageTimeout); } else { if (FT_Set_Pixel_Sizes(mResourceFace, 0, mFontSize)) { statusBar()->showMessage("Error setting font pixel size", messageTimeout); FT_Done_Face(mResourceFace); mResourceFace = 0; } else { mFace = mResourceFace; } } mGraphicsScene = new QGraphicsScene(this); ui->graphicsView->setScene(mGraphicsScene); connect(ui->actionE_xit, SIGNAL(triggered()), this, SLOT(close())); connect(ui->action_Panel, SIGNAL(toggled(bool)), ui->dockWidget, SLOT(setVisible(bool))); connect(ui->dockWidget, SIGNAL(visibilityChanged(bool)), ui->action_Panel, SLOT(setChecked(bool))); connect(ui->textCombo->lineEdit(), SIGNAL(returnPressed()), ui->renderButton, SLOT(animateClick())); connect(ui->renderButton, SIGNAL(clicked()), this, SLOT(render())); connect(ui->rtlRB, SIGNAL(clicked()), this, SLOT(render())); connect(ui->ltrRB, SIGNAL(clicked()), this, SLOT(render())); connect(ui->autoRB, SIGNAL(clicked()), this, SLOT(render())); connect(ui->resolveScriptsCB, SIGNAL(clicked()), this, SLOT(render())); connect(ui->breakRunsCB, SIGNAL(clicked()), this, SLOT(render())); connect(ui->linesCB, SIGNAL(clicked()), this, SLOT(setVisualizerFlags())); connect(ui->levelsCB, SIGNAL(clicked()), this, SLOT(setVisualizerFlags())); connect(ui->runsCB, SIGNAL(clicked()), this, SLOT(setVisualizerFlags())); connect(ui->codePointsCB, SIGNAL(clicked()), this, SLOT(setVisualizerFlags())); connect(ui->glyphIndicesCB, SIGNAL(clicked()), this, SLOT(setVisualizerFlags())); connect(ui->charTypesCB, SIGNAL(clicked()), this, SLOT(setVisualizerFlags())); connect(ui->scriptsCB, SIGNAL(clicked()), this, SLOT(setVisualizerFlags())); connect(ui->geometriesCB, SIGNAL(clicked()), this, SLOT(setVisualizerFlags())); connect(ui->indicesCB, SIGNAL(clicked()), this, SLOT(setVisualizerFlags())); connect(ui->reorderedIndicesCB, SIGNAL(clicked()), this, SLOT(setVisualizerFlags())); connect(ui->paragraphCB, SIGNAL(clicked()), this, SLOT(setRendererFlags())); connect(ui->levelsGB, SIGNAL(clicked()), this, SLOT(setRendererFlags())); connect(ui->runsGB, SIGNAL(clicked()), this, SLOT(setRendererFlags())); connect(ui->levelsColorPickerLabel, SIGNAL(colorChanged(QColor)), this, SLOT(setRendererLevelColor(QColor))); connect(ui->runsColorPickerLabel, SIGNAL(colorChanged(QColor)), this, SLOT(setRendererRunColor(QColor))); connect(ui->shapeHarfBuzzRB, SIGNAL(clicked()), this, SLOT(render())); connect(ui->shapeFriBidiRB, SIGNAL(clicked()), this, SLOT(render())); connect(ui->removeZeroWidthCB, SIGNAL(clicked()), this, SLOT(render())); connect(ui->shapeFriBidiRB, SIGNAL(toggled(bool)), ui->removeZeroWidthCB, SLOT(setEnabled(bool))); connect(ui->fontPathButton, SIGNAL(clicked()), this, SLOT(setFontPath())); connect(ui->fontsCombo, SIGNAL(currentIndexChanged(QString)), this, SLOT(setFontFile(QString))); connect(ui->zoomSlider, SIGNAL(valueChanged(int)), ui->graphicsView, SLOT(setScale(int))); connect(ui->graphicsView, SIGNAL(scaleChanged(int)), ui->zoomSlider, SLOT(setValue(int))); connect(ui->lineWidthSlider, SIGNAL(valueChanged(int)), this, SLOT(setMaxLineWidth(int))); connect(ui->fontSizeSB, SIGNAL(valueChanged(int)), this, SLOT(setFontSize(int))); connect(ui->fontColorPickerLabel, SIGNAL(colorChanged(QColor)), this, SLOT(render())); connect(ui->penWidthSB, SIGNAL(valueChanged(int)), this, SLOT(setPenWidth(int))); }
int initGame(SDL_Surface* screen) { if(player()->gameStarted) { printf("ERROR: Called init when a game was running\n"); return(0); } //Only load the back-image once. if( !ptrRestart ) { ptrRestart = loadImg( DATADIR"data/ptr-restart.png" ); ptrRestartRect.x=HSCREENW-160; ptrRestartRect.w=ptrRestartRect.x+ptrRestart->w; ptrRestartRect.y=HSCREENH+120-ptrRestart->h; ptrRestartRect.h=ptrRestartRect.y+ptrRestart->h; } debugNumInit++; initCursor(&cur); restartConfirm=0; //Read info's for level. (this is done instead of using the one in packInfo so it don't need resetting) pf.levelInfo = mkLevelInfo( player()->levelFile ); if(!loadField(&pf, player()->levelFile )) { printf("Error: Couldn't init playfield.\n"); return(0); } if(!initDraw(pf.levelInfo,screen)) { printf("Error: Couldn't init graphics.\n"); return(0); } char* buf = malloc(sizeof(char)*128); sprintf(buf, "themes/%s",pf.levelInfo->soundDir); loadSamples( buf, levelInfo( player()->level)->musicFile ); //Load samples from sounddir, note we use the levelInfo from packInfo for the music since the playlist is hacked onto that. free(buf); txtLoadGameCharSet( pf.levelInfo->fontName ); pf.levelInfo->time *= 1000; //Convert seconds to ms countdown=500; countdownSeconds=3; gameState=GAMESTATECOUNTDOWN; player()->gameStarted=1; //Clear player stats memset( &player()->hsEntry, 0, sizeof( hsEntry_t ) ); //Set the levelNum player()->hsEntry.levelNum = player()->level; startStopImg=0; if(pf.levelInfo->startImg) { gameState=GAMESTATESTARTIMAGE; } //We also simulate the first switch tick here so all looks right at the countdown. switchUpdateAll( &pf ); justWon=0; return(1); }
void NetworkInstance::loadSamples(const QString& samples, const QString& controlFile) { loadSamples(samples, DiscretisationSettings(controlFile.toStdString())); }
void NetworkInstance::loadSamples() { loadSamples(discretisationSelection_->samples(), discretisationSelection_->getPropertyTree()); }
int main() { // Device memory float *landmarks, *landmark; int freeList; float *samples; int *indices; float *distances; int index; // Validation only float *backup; int i, j; #if TIMING clock_t t1; clock_t t2; #endif srand((unsigned int) time(NULL)); #if DEBUG fprintf(stderr, "findWinnersCuda.c: warming Up for execution...\n"); #endif /** Warming up **/ samples = loadSamples(); landmarks_setSpaceDimension(DIMENSION); landmarks = (float *) malloc(MAX_LANDMARKS * DIMENSION * sizeof(float)); landmarks_initialize(landmarks, MAX_LANDMARKS, &freeList); indices = (int *) malloc(SAMPLES * SIZEOF_INDEX); distances = (float *) malloc(SAMPLES * SIZEOF_DISTANCE); #if DEBUG fprintf(stderr, "findWinnersCuda.c: system ready, variables initialized.\n"); #endif /** Insert a Landmark at the position of the first casual sample, in order to have at least one iteration **/ #ifdef LOAD_LANDMARKS #if DEBUG fprintf(stderr, "findWinnersCuda.c: initializing list with %d samples...\n", LOAD_LANDMARKS); #endif for (i = 0; i < LOAD_LANDMARKS; i++) { index = landmarks_newLandmarkIndex(landmarks, MAX_LANDMARKS, &freeList); landmark = landmarks + index * DIMENSION; for(j = 0; j < DIMENSION; j++) landmark[j] = rand_float(-F_BOUNDING_BOX_RADIUS, F_BOUNDING_BOX_RADIUS); } #else sample = malloc(DIMENSION * sizeof(float)); seed = rand_int(0, SAMPLES); for (i = 0; i < DIMENSION; i++){ sample[i] = samples[seed + i]; } landmarks_newLandmark(sample, landmarks, MAX_LANDMARKS, &freeList); for (i = 0; i < DIMENSION; i++){ sample[i] = samples[seed + i]; } landmarks_newLandmark(sample, landmarks, MAX_LANDMARKS, &freeList); #endif #if DEBUG fprintf(stderr, "findWinnersCuda.c: landmarks initialized.\n"); #endif fwk_setup(MAX_LANDMARKS, SAMPLES, DIMENSION); fprintf(stderr, "findWinnersCuda.c: kernel setup.\n"); fprintf(stderr, "findWinnersCuda.c: registers per thread: %d.\n", fwk_regsPerThread); fprintf(stderr, "findWinnersCuda.c: threads per block: %d.\n", fwk_threadsPerBlock); fprintf(stderr, "findWinnersCuda.c: blocks per grid: %d.\n", fwk_blocksPerGrid); fprintf(stderr, "findWinnersCuda.c: shared memory size: %d.\n", fwk_sharedMemSize); fwk_setLandmarks(landmarks, 0, MAX_LANDMARKS); fprintf(stderr, "findWinnersCuda.c: landmarks copied to device.\n"); backup = (float *) malloc(MAX_LANDMARKS * DIMENSION * sizeof(float)); fwk_getLandmarks(backup, 0, MAX_LANDMARKS); fprintf(stderr, "findWinnersCuda.c: backup landmarks copied back to host.\n"); fprintf(stderr, "findWinnersCuda.c: landmarks[0] %f d_landmarks[0] %f.\n", landmarks[0], backup[0]); fwk_setSamples(samples, 0, SAMPLES); fprintf(stderr, "findWinnersCuda.c: samples copied to device.\n"); #if DEBUG fprintf(stderr,"findWinnersCuda.c: search Winners main loop.\n"); #endif #if TIMING fprintf(stderr,"findWinnersCuda.c: started Timing.\n"); t1 = clock(); #endif /** Kernel invocation **/ fwk_findWinners(); fwk_threadSyncronize(); #if TIMING t2 = clock(); #endif #if TIMING fprintf(stderr, "findWinnersCuda.c: %d samples and %d landmarks\n", SAMPLES, LOAD_LANDMARKS); fprintf(stderr, "findWinnersCuda.c: elapsed time (host): %fs\n", ((double) (t2 - t1)) / CLOCKS_PER_SEC); #endif fwk_getIndices(indices, 0, SAMPLES); fprintf(stderr, "findWinnersCuda.c: indices retrieved.\n"); fwk_getDistances(distances, 0, SAMPLES); fprintf(stderr, "findWinnersCuda.c: distances retrieved.\n"); i = 0; fprintf(stderr, "findWinnersCuda.c: index %d sample [%f,%f,%f,%f]:\n", i, samples[i*DIMENSION*sizeof(float)], samples[i*DIMENSION*sizeof(float) + 1], samples[i*DIMENSION*sizeof(float) + 2], samples[i*DIMENSION*sizeof(float) + 3]); fprintf(stderr, "findWinnersCuda.c: index %d bestMatching %d bestDistance %f secondBestMatching %d secondBestDistance %f\n", i, indices[i*SIZEOF_INDEX], distances[i*SIZEOF_DISTANCE], indices[i*SIZEOF_INDEX+1], distances[i*SIZEOF_DISTANCE+1]); i = 1; fprintf(stderr, "findWinnersCuda.c: index %d sample [%f,%f,%f,%f]:\n", i, samples[i*DIMENSION*sizeof(float)], samples[i*DIMENSION*sizeof(float) + 1], samples[i*DIMENSION*sizeof(float) + 2], samples[i*DIMENSION*sizeof(float) + 3]); fprintf(stderr, "findWinnersCuda.c: index %d bestMatching %d bestDistance %f secondBestMatching %d secondBestDistance %f\n", i, indices[i*SIZEOF_INDEX], distances[i*SIZEOF_DISTANCE], indices[i*SIZEOF_INDEX+1], distances[i*SIZEOF_DISTANCE+1]); i = 2; fprintf(stderr, "findWinnersCuda.c: index %d sample [%f,%f,%f,%f]:\n", i, samples[i*DIMENSION*sizeof(float)], samples[i*DIMENSION*sizeof(float) + 1], samples[i*DIMENSION*sizeof(float) + 2], samples[i*DIMENSION*sizeof(float) + 3]); fprintf(stderr, "findWinnersCuda.c: index %d bestMatching %d bestDistance %f secondBestMatching %d secondBestDistance %f\n", i, indices[i*SIZEOF_INDEX], distances[i*SIZEOF_DISTANCE], indices[i*SIZEOF_INDEX+1], distances[i*SIZEOF_DISTANCE+1]); fwk_release(); fprintf(stderr, "findWinnersCuda.c: kernel memory released.\n"); waitUntilKeyPressed(); }