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; }
mxFontObject::~mxFontObject() { if(font != 0) { freeFont(font); } }
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 ); } }
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); }
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(); }
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; }
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() ); } }
Font::~Font() { freeFont(); }