1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Estrutura de um projecto OpenGL em C++

Discussão em 'Programação' iniciada por VuDu, 4 de Dezembro de 2008. (Respostas: 8; Visualizações: 814)

  1. VuDu

    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:
     
  2. IComeFromBehind

    IComeFromBehind Power Member

    Queres saltar para um projecto sério sem arrancar os cabelos? Se não estiveres disposto a arrancar alguns então simplesmente não saltas.
     
  3. VuDu

    VuDu Power Member

    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 :)
     
  4. OubeLa

    OubeLa Power Member

    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.
     
  5. VuDu

    VuDu Power Member

    Sim, não é retirar é organizar criando módulos/classes que contenham essa informação para não estar tudo ao molho na main. ;)
     
  6. PJ

    PJ Power Member

    Segue este link de um prof que tens lá muita matéria sobre o assunto : http://www.inf.pucrs.br/~pinho/CG/Aulas/OpenGL/

    Já não me lembro grande coisa disso, mas em casa tenho algumas coisas feitas em opengl, mal tenha tempo meto aqui mais umas coisas.

    Cumps
     
  7. VuDu

    VuDu Power Member

    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 :(
     
  8. VuDu

    VuDu Power Member

    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?
     
  9. AliFromCairo

    AliFromCairo Power Member

    Boas, dá uma vista de olhos aqui. A licença é GPL.
     

Partilhar esta Página