Allegro 4.3.10

Eu baixei a versão 4.3.10 da Allegro e a 4.9.2. Infelizmente não consegui compilar a 4.9.2 ainda, mas a 4.3.10 eu consegui!

A primeira coisa que percebi, foi o tamanho da DLL que aumentou dos seus 560 Kb, na versão 4.2.1 (não testei a 4.2.2) para 1,04MB! Mas isso não importa! hehehe

Gostei dos demos, o do skate e o shooter, bem legal, ainda não conferi o código fonte, mas é interessante. Também vi exemplos novos, que não tinham anteriormente.

A versão instável 4.3.10, é uma WIP da próxima versão estável (se sair) 4.4, mas eu desconfio que talvez nem saia, por causa da nova versão cinco em desenvolvimento. Ela, diferente da 5, não muda nada, mas já vem com addons juntamente, como a AllegroGL, JPGAlleg, LoadPNG e a LOGG.

Nova Storage Engine no MySQL!

Recentemente, Michael Widenius, um dos ‘pais’ do MySQL, anunciou uma nova storage engine para o MySQL, chamada MARIA, cujo nome é de sua terceira filha. Segundo ele, MARIA veio para substituir o MyISAM, na qual contava com alguns problemas, como o crash-storage, ou seja, se uma queda de energia fizesse com que o servidor MySQL se desligasse, possivelmente alguns dados seriam perdidos, mas com MARIA isso não ocorre mais, pois a engine foi projetada para ser mais segura.

Ou seja, agora você tem uma engine com acesso rápido, como a MyISAM, e mais segura!

Você pode baixar a nova versão do MySQL (5.1.23) que contém já esta engine, mas não é aconselhável, pois ainda é muito recente.

[Via: iMasters]

Allegro 5

Galera, o Allegro 5 está chegando! Segunda feira eles liberaram a versão 4.9.2, que é uma versão instável, como se fosse um “demo” da biblioteca. É um WIP da futura Allegro 5. Essa versão é totalmente modificada, várias coisas foram refeitas, e foi adicionado bibliotecas addons, agora, por exemplo, o OpenGL é nativo! Todas as funções e tipos de variáveis na biblioteca agora tem o prefixo al em funções e ALLEGRO em tipos. Ela também conta com eventos agora, que até então não existia.

Você pode conferir o manual da versão 4.9.2 aqui.

Uma semana antes de liberarem a 4.9.2, eles haviam liberado a versão 4.3.10, que é também um WIP (versão instável), porém é uma “continuação” da última versão estável (4.2.2), não muda quase nada, só foram adicionadas alguns addons.

Vou baixar as duas versões para dizer aqui o que achei, mas acho que a nova allegro vai estar muito boa!

Fontes TTF no Allegro

Com a Lib AddOn AllegroFont é possível utilizar fontest TTF no Allegro com e sem AntiAliasing!

Primeiramente instale o AddOn, ou baixe o DevPak dele aqui. Então crie um projeto com Allegro. Linke a biblioteca estática da AlFont ANTES da do Allegro, assim: -lalfont.

Insira seu Header:

#include <alfont.h>

Quando estiver inicializando o Allegro, inicialize ela também:

alfont_init();

Pronto, vamos criar uma fonte e carregar a Arial do Windows:

ALFONT_FONT *arial = alfont_load_font("C:/Windows/Fonts/arial.ttf");

Vamos setar o tamanho da fonte:

alfont_set_font_size(arial, 40);

Tamanho 40! Você pode escolher o tamanho que quiser!

Agora para imprimir um texto na tela, utilizamos as funções da LIB

void alfont_textout_ex(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color, int backg);
void alfont_textout_centre_ex(BITMAP *bmp, ALFONT_FONT *f, const char *s, int x, int y, int color, int backg);

void alfont_textprintf_ex(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, int backg, const char *format, ...);
void alfont_textprintf_centre_ex(BITMAP *bmp, ALFONT_FONT *f, int x, int y, int color, int backg, const char *format, ...);

Como você pode ver, as funções são iguais as do Allegro, só muda o prefixo (alfont) e o parâmetro de fonte, que aceita uma fonte do Alfonte!

Para imprimir o texto com AntiAliasing, basta colocar um aa antes do ex de cada função, por exemplo:

alfont_textprintf_aa_ex(buffer, arial, 10, 10, 0x0000FF, -1, "Hello World!");

Bem fácil, né?

O Interessante também, são as funções:

int alfont_text_height(ALFONT_FONT *f);
int alfont_text_length(ALFONT_FONT *f, const char *str);

Que você pode pegar o tamanho (em pixels) da fonte ou string usando a fonte!

Mas no fim do seu programa, não se esqueça de liberar as fontes assim:

alfont_destroy_font(arial);

E finalizar o Alfont:

alfont_exit();

Bom uso disto! =D

CrociDBlog no seu Celular!

Agora, graças ao post do Velho, você pode acessar o blog diretamente do seu celular!

Pode acessar pelo endereço: http://crocidb.mofuse.mobi/

O Mofuse é um sistema que lhe permite, em alguns poucos cliques, criar, a partir de um site ou blog, um site para dispositivos mobile. Concerteza isso é muito útil, com ele você pode aumentar a acessibilidade e a popularidade do seu site facilmente! Eu não pensei duas vezes! hehehe

Valeu OVelho!

Prologue, o Twitter do WordPress!

A Automattic, empresa dona do WordPress, está criando agora um “concorrente” para o Twitter, o Prologue. Eles mesmos afirmam que são fãs do Twitter, e que alguns funcionários tem uma conta nessa ótima ferramenta de microblogging.

Legal, eu adoraria mesmo uma ferramenta dessas no maior estilo WordPress, que é o maior sistema de blogs da atualidade! Agora é só esperar o Prologue!

[Via: IDG NOW!]

TinyXML – Parte 2

No primeiro tutorial, eu mostrei como pegar dados de atributos das tags. Hoje, vou ensinar como pegar os dados contidos dentro das tags. Vou aproveitar para mostrar como fazer um request de XML de um servidor com a DBXmlRequest e parsear com a TinyXML!

Eu ainda não liberei nenhum release da DBXmlRequest, mas essa semana ainda libero, então vou aproveitar para mostrar como usá-la!

Você tem duas opções para usá-la, uma delas é incluindo os arquivo DBXmlRequest.h e o DBXmlRequest.cpp ao seu projeto, ou então utilizar a versão já compilada, incluindo a DBXmlRequest e linkando a libDBXmlRequest.a.

Vamos incluir aqui os dois arquivos no projeto, aí basta incluir ela no arquivo que for usar:

#include "DBXmlRequest.h"

Vamos supor que você queira baixar o arquivo (fictício) http://www.seusite.com/arquivo.xml, então faríamos assim:

TiXmlDocument *tixml = NULL;
DBXmlRequest *xml = new DBXmlRequest("www.seusite.com", "arquivo.xml");
if (xml->Download())
{
   tixml = xml->getTiXmlDocument();
}
else
{
   cout << "Erro ao baixar arquivo.";
}&#91;/sourcecode&#93;
Pronto, a partir deste ponto, você pode usar a &#91;b&#93;tixml&#91;/b&#93; normalmente! hehehe

Bom, mas vamos então ao tutorial né! xD

Para pegar os atributos, nós utilizávamos o método <b>Attribute</b> da classe TiXmlElement. Já para pegarmos o conteúdo da tag (o texto que contém nela), nós usamos o método <b>GetText</b>.

Um exemplo prático, se nós temos o seguinte arquivo XML:
<?xml version="1.0" ?>
<Agenda>
   <reg>
      <nome>Bruno</nome>
      <tel>2222-2222</tel>
   </reg>
</Agenda>

Para recuperarmos os dados, faríamos assim:
TiXmlDocument *xml = new TiXmlDocument(“teste.xml”);
xml->LoadFile();

TiXmlElement *reg = xml->FirstChildElement(“Agenda”)->FirstChildElement(“reg”);

cout << "Nome: " << reg->FirstChildElement(“nome”)->GetText() << endl; cout << "Telefone: " << reg->FirstChildElement(“tel”)->GetText() << endl;[/sourcecode] É bem fácil, não é? Pretendo no próximo tutorial explicar como criar um arquivo xml, com a TinyXML! =D Falou!