Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #===============================================================================
- # Gab Embed Fonts
- #-----------------------------------------------------------------------------
- # Autor: Gab!
- # Data: 24/01/14
- #-----------------------------------------------------------------------------
- # Permite que as fontes sejam carregadas sem a necessidade de instalação e que
- # possam ser encriptadas juntamente com o jogo, além de não ser necessário
- # enviá-las com o jogo.
- #===============================================================================
- module Gab
- module EmbedFonts
- #===============================================================================
- # * CONFIGURAÇÃO
- #===============================================================================
- # Diretório das fontes
- Directory = "Font"
- #===============================================================================
- # * FIM DA CONFIGURAÇÃO
- #===============================================================================
- module_function
- #-------------------------------------------------------------------------
- # * Salva informações dos arquivos da pasta escolhida
- #-------------------------------------------------------------------------
- def dumpFontData
- fontData = []
- Dir.glob(File.join(Directory, '/*.{ttf,otf}')).each{|filename|
- File.open(filename, 'rb'){|orig|
- fontData << orig.read
- }
- }
- save_data(fontData, 'Data/Fonts.rvdata2')
- end
- #-------------------------------------------------------------------------
- # * Carrega e adiciona fontes
- #-------------------------------------------------------------------------
- def loadFontData
- fontData = load_data('Data/Fonts.rvdata2')
- fontData.each{|rawFont|
- Font.addMemoryFont(rawFont.force_encoding('ASCII-8BIT'))
- }
- end
- end
- end
- #===============================================================================
- # ** Font
- #-------------------------------------------------------------------------------
- # Classe fonte. Fonte é uma propriedade da classe Bitmap.
- #===============================================================================
- class << Font
- AddFontMemResourceEx = Win32API.new('GDI32', 'AddFontMemResourceEx', 'PLPP', 'L')
- #---------------------------------------------------------------------------
- # * Adiciona uma fonte a partir da memória
- # data : Cópia da fonte na memória
- #---------------------------------------------------------------------------
- def addMemoryFont(data)
- null = 0.chr * 4
- AddFontMemResourceEx.call(data, data.size, null, null)
- end
- end
- # Realiza os processos
- Gab::EmbedFonts.dumpFontData if $TEST
- Gab::EmbedFonts.loadFontData
Advertisement
Add Comment
Please, Sign In to add comment