Exemple #1
0
int main(int argc, char *argv[])
{
	if( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 ){
		printf("Unable to initialize SDL: %s\n", SDL_GetError());
		exit(1);
	}
	atexit(SDL_Quit);

	screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 32, SDL_HWSURFACE|SDL_HWPALETTE|SDL_DOUBLEBUF);
//	screen = SDL_SetVideoMode(800, 600, 32, SDL_SWSURFACE|SDL_HWPALETTE); //Slow


	if(screen == NULL)
	{
		printf("Unable to set 0x0 video: %s\n", SDL_GetError());
		exit(1);
	}

	Initialize();
	NewGame();
	Scorpion.DrawStaticScene();

	SDL_Event event;
	int done = 0;

	while(done == 0)
	{
		while(SDL_PollEvent(&event))
		{
			switch(event.type)
			{
				case SDL_QUIT:
     				return 0;

				case SDL_KEYDOWN:
     				if(event.key.keysym.sym == SDLK_ESCAPE) { done = 1; }
					HandleKeyDownEvent(event);
         			break;

				case SDL_MOUSEBUTTONDOWN:
					HandleMouseDownEvent(event);
  					break;

				case SDL_MOUSEMOTION:
					HandleMouseMoveEvent(event);
					break;

				case SDL_MOUSEBUTTONUP:
					HandleMouseUpEvent(event);
 					break;
			}
		}
	}

// perform cleaning up in here

	freeFont(font1);
	freeFont(font2);
	return 0;
}
Exemple #2
0
	mxFontObject::~mxFontObject()
	{

		if(font != 0)
		{

			freeFont(font);

		}

	}
Exemple #3
0
sf2Instrument::~sf2Instrument()
{
	engine::mixer()->removePlayHandles( instrumentTrack() );
	freeFont();
	delete_fluid_synth( m_synth );
	delete_fluid_settings( m_settings );
	if( m_srcState != NULL )
	{
		src_delete( m_srcState );
	}

}
Exemple #4
0
sf2Instrument::~sf2Instrument()
{
	Engine::mixer()->removePlayHandlesOfTypes( instrumentTrack(),
				PlayHandle::TypeNotePlayHandle
				| PlayHandle::TypeInstrumentPlayHandle );
	freeFont();
	delete_fluid_synth( m_synth );
	delete_fluid_settings( m_settings );
	if( m_srcState != NULL )
	{
		src_delete( m_srcState );
	}

}
void freeAll(char* fmt, ...) {
	const char* p = 0;
	void* a = 0;

	va_list argp;

	va_start(argp, fmt);

	for (p = fmt; *p != '\0'; p++) {

		a = va_arg(argp, void*);

		if(!a) continue;
		
		switch(*p) {
			case 'c':
				/* handle char* */
				free((char*) a);
				break;
			case 'f':
				/* handle FILE* */
				fclose((FILE*) a);
				break;
			case 'n':
				/* handle font* */
				freeFont((font*) a);
				free((font*) a);
				break;
			case 'm':
				/* handle meme* */
				freeMeme((meme*) a);
				free((meme*) a);
				break;
			case 's':
				/* handle simp* */
				freeSimp((simp*) a);
				free((simp*) a);
				break;
		}

		a = 0;
	}

	va_end(argp);
}
Exemple #6
0
gxGraphics::~gxGraphics(){
	if( _gamma ) _gamma->Release();
#ifdef PRO
	while( scene_set.size() ) freeScene( *scene_set.begin() );
#endif
	while( movie_set.size() ) closeMovie( *movie_set.begin() );
	while( font_set.size() ) freeFont( *font_set.begin() );
	while( canvas_set.size() ) freeCanvas( *canvas_set.begin() );

	set<string>::iterator it;
	for( it=font_res.begin();it!=font_res.end();++it ) RemoveFontResource( (*it).c_str() );
	font_res.clear();

	delete back_canvas;
	delete front_canvas;

	ds_dirDraw->Release();

	dirDraw->RestoreDisplayMode();
	dirDraw->Release();
}
Exemple #7
0
bool Font::loadFont(const Common::String &filename) {
    // Free previously loaded font (if any)
    freeFont();

    Common::File f;

    f.open(filename);
    if (f.isOpen()) {
        debugC(6, kDraciGeneralDebugLevel, "Opened font file %s",
               filename.c_str());
    } else {
        debugC(6, kDraciGeneralDebugLevel, "Error opening font file %s",
               filename.c_str());
        return false;
    }

    _maxCharWidth = f.readByte();
    _fontHeight = f.readByte();

    // Read in the widths of the glyphs
    _charWidths = new uint8[kCharNum];
    for (uint i = 0; i < kCharNum; ++i) {
        _charWidths[i] = f.readByte();
    }

    // Calculate size of font data
    uint fontDataSize = kCharNum * _maxCharWidth * _fontHeight;

    // Read in all glyphs
    _charData = new byte[fontDataSize];
    f.read(_charData, fontDataSize);

    debugC(5, kDraciGeneralDebugLevel, "Font %s loaded", filename.c_str());

    return true;
}
Exemple #8
0
void sf2Instrument::openFile( const QString & _sf2File, bool updateTrackName )
{
	emit fileLoading();

	// Used for loading file
	char * sf2Ascii = qstrdup( qPrintable( SampleBuffer::tryToMakeAbsolute( _sf2File ) ) );
	QString relativePath = SampleBuffer::tryToMakeRelative( _sf2File );

	// free reference to soundfont if one is selected
	freeFont();

	m_synthMutex.lock();
	s_fontsMutex.lock();

	// Increment Reference
	if( s_fonts.contains( relativePath ) )
	{
		qDebug() << "Using existing reference to " << relativePath;

		m_font = s_fonts[ relativePath ];

		m_font->refCount++;

		m_fontId = fluid_synth_add_sfont( m_synth, m_font->fluidFont );
	}

	// Add to map, if doesn't exist.
	else
	{
		m_fontId = fluid_synth_sfload( m_synth, sf2Ascii, true );

		if( fluid_synth_sfcount( m_synth ) > 0 )
		{
			// Grab this sf from the top of the stack and add to list
			m_font = new sf2Font( fluid_synth_get_sfont( m_synth, 0 ) );
			s_fonts.insert( relativePath, m_font );
		}
		else
		{
			// TODO: Couldn't load file!
		}
	}

	s_fontsMutex.unlock();
	m_synthMutex.unlock();

	if( m_fontId >= 0 )
	{
		// Don't reset patch/bank, so that it isn't cleared when
		// someone resolves a missing file
		//m_patchNum.setValue( 0 );
		//m_bankNum.setValue( 0 );
		m_filename = relativePath;

		emit fileChanged();
	}

	delete[] sf2Ascii;

	if( updateTrackName )
	{
		instrumentTrack()->setName( QFileInfo( _sf2File ).baseName() );
	}
}
Exemple #9
0
Font::~Font() {
    freeFont();
}