Estrutura de um projecto OpenGL em C++

VuDu

Power Member
Boas,

estou a iniciar um projecto OpenGL em C++ e a minha questão é: como deverei estruturar a aplicação?
Quero ter um projecto o mais modular possível e já estou a adivinhar que vou ter problemas com as classes, porque vou precisar de ler e escrever em variáveis em todo o lado...

Alguém conhece algumas "guidelines" para criar projectos assim?
Os sites de ajuda limitam-se a ter tutoriais para fazer pequenas tarefas e até agora não vi nenhum que ajudasse a dar o "salto" para um projecto a serio, sem arrancarmos os cabelos.

:003:
 
Se não queres ajudar, ninguém te obriga a vires aqui responder assim... :rolleyes:

Se calhar não fui explicito o suficiente, mas a questão é simples. Organizar e manter código de um programa OpenGL que funciona como uma máquina de estados, principalmente se for "desenhado" para ser usado/modificado por terceiros, não é trivial.
O meu objectivo é esse mesmo, tornar o código o mais "claro" possível para que se houver alguém quer queira tentar perceber, usar ou modificar tenha o mínimo de dificuldades possível, mas para isso, um molho de variáveis globais e funções myIdle/myDisplay num ficheiro main não ajuda nada, right? ;)

Se alguém tiver algum "conhecimento de causa", opinião sobre o assunto ou que conheça algum tipo de ajuda, eu agradeço.
Antes de abrir o tópico pesquisei nesta secção e não encontrei nenhuma discussão sobre este tema, mas certamente que por aqui deve de haver quem esteja envolvido em projectos mais "responsáveis" ou que pelo menos planeie melhor um programa antes de começar a martelar código :)
 
Penso que não é possível retirar isso. Alias, muitas dessas funções simplesmente podes ignorar, visto que são necessárias para processar eventos do rato, do teclado, etc. As funções de dislay, inicialização e main são as que precisas de prestar atenção, a menos que precises de outras coisas.
 
Sim, não é retirar é organizar criando módulos/classes que contenham essa informação para não estar tudo ao molho na main. ;)
 
Obrigado pelo link, mas nesse site só vejo tutoriais, daqueles que como disse no primeiro post, ajudam quem está aprender a utilizar a biblioteca e como já falei no primeiro post, não é isso que preciso :(
 
Bem... o feedback está fraquito :(

Ok, mudando o sentido da abordagem, imaginando que temos um conjunto de variáveis e que as queremos ter num contentor "global" onde cada classe pode ler e escrever nessas variáveis (a tal máquina de estados).

Qual seria a melhor implementação:
- uma classe static com as variáveis protected e criar as restantes como sub-classes, a herdarem todas as mesmas variáveis?
- uma classe normal com as variáveis public e usar apontadores para essa classe em cada uma outras classes (e aceder a elas tipo variaveis->variavelX)?
- um header com variáveis globais declaradas (num namespace) e serem declaradas em cada classe com extern?
- outra... qual?
 
Back
Topo