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)));
}
Exemple #3
0
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());
}
Exemple #6
0
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();
}