Pergunta

Eu tenho trabalhado em um pequeno aplicativo e usei o DirectX/3D para desenhar texturas para a tela (todos os elementos bidimensionais). A API, acho, é muito fácil de usar e incorporar o uso de princípios de OOP, mas não posso deixar de sentir que usar o DirectX em algo tão pequeno é incrivelmente matante.

Não consigo encontrar consenso em uma boa alternativa, no entanto. Alguma sugestão?

EDITAR: É necessário um suporte nativo de mistura alfa e PNG.

Com muito amor de primeiro post, Jengerer

Foi útil?

Solução

Se você precisar de uma mistura alfa, precisará usar o hardware gráfico; A única boa maneira de fazer isso é usar uma API 3D semelhante a como você está fazendo agora (DirectX ou OpenGL). Qualquer alternativa (GDI/+ ou Say, DirectDraw) não usará o hardware gráfico completo para acelerar a mistura e terá que executá -lo na CPU, reduzindo bastante o desempenho.

Como mencionado, o Direct2D também é uma opção-é funcionalmente uma camada em cima do Direct3D que suporta mais funcionalidade específica 2D e excelente suporte de texto.

Outras dicas

Se você não precisar de suporte ao XP, use DIRETO2D.
Caso contrário, use GDI+.

O Windows inclui um fora da caixa. (Gdi32.dll). É possível prender no WM_PAINT mensagem na chamada do windowproc e uso BeginPaint() para começar a desenhar. Uma boa ideia do que pode ser feito e um tutorial básico está disponível em ZetCode.

Eu tenho usado GOSU No passado, e estava tudo bem para trabalhar. Foi projetado para ser usado mais com o Ruby, mas não é ruim para C ++. Nós o usamos em um jogo de rolante lateral rápido, onde mexemos com a ordem Z e o canal alfa. Pode valer a pena conferir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top