Seria possível adicionar suporte para geração apenas de arquivo de cabeçalho para GLAD? Quer dizer, semelhante às bibliotecas stb .
Seria muito útil incluir apenas o glad.h no projeto e evitar modificações no pipeline.
Aqui está um exemplo no qual estou trabalhando; Eu criei o arquivo de cabeçalho GLAD sozinho manualmente.
Acho que é uma ótima ideia. Na verdade, nunca quero incluir os arquivos de alegria com o resto do meu código, mas a alternativa por enquanto é um pouco complicada demais.
Acho que a simplicidade é a única característica do alegre que o faz ficar acima do resto (como o GLEW). Ter apenas um arquivo de cabeçalho para importar o tornaria ainda mais simples e melhor.
No entanto, imagino que compilar todo o arquivo @ raysan5 fez leva algum tempo, especialmente se estiver incluído em vários arquivos. Freqüentemente, eu só quero um GLuint declarado para meu arquivo de cabeçalho. Talvez um glad_types.h
cortesia fosse bom. Pessoalmente, não estou preocupado com muitos arquivos, mas sim com .c
arquivos.
Olá @Shimmen , estou usando a versão contente do perfil do núcleo do OpenGL 3.3, originalmente glad.h
já era ~ 14K LoC e glad.c
era ~ 7,6K LoC. Uma vez unificado, glad.h
tem ~ 22K LoC e o tempo de compilação com o GCC 4.7.2 leva cerca de 2-3 segundos na minha estação de trabalho de desenvolvimento .
Estou pensando em fazer um pedido de pull. Você deseja que seja uma opção ter apenas um arquivo de cabeçalho e deve ser o padrão?
Ei, isso é incrível!
Ainda estou pensando se essa opção faz sentido, como apontado anteriormente, o arquivo de cabeçalho seria muito grande e retardaria um pouco o processo de compilação. Também não tenho certeza se dividir o cabeçalho em vários arquivos de cabeçalho é uma boa ideia.
Então, novamente, ter a opção provavelmente não faz mal, a opção apenas de cabeçalho não seria o padrão.
Usei a ferramenta da web apenas para selecionar as extensões de que precisava (básico OpenGL 3.3 Core) e criei um arquivo apenas de cabeçalho; era cerca de 5K LoC e compila em milissegundos (qualquer atraso imperceptível).
Apenas um aviso, o branch glad2 oferece suporte a uma opção apenas de cabeçalho agora!
python -m glad --out-path=build --api="gl:core=" --extensions= c --header-only
Os pré-processadores modernos são muito rápidos, portanto, quando GLAD_IMPLEMENTATION
não estiver definido, não haverá praticamente nenhum impacto no desempenho.
Grande adição @ Dav1dde! Muito obrigado pela atualização! :)
Alguma notícia de quando essa funcionalidade chegará ao site ou será quando a versão 2 for lançada oficialmente? Obrigado!
Eu não tenho um HEC.
Se você quiser brincar com isso, o branch glad2 deve produzir C-Code funcional. API ligeiramente alterada: gladLoadGL
é a única maneira de carregar um contexto GL e sempre requer a passagem de uma função de carregador.
Eu esperava que pudéssemos obter uma atualização de status sobre quando isso pode chegar ao site. Eu amo o serviço da web! Eu acho ótimo! O suporte apenas de cabeçalho o tornaria perfeito. Obrigado!
http://glad2.dav1d.de atualmente hospeda o branch glad2, é funcional, mas sem API fixa. O glad2 suporta apenas cabeçalho. Se você encontrar bugs, terei todo o gosto em corrigi-los.
Acredito que encontrei alguns problemas com isso:
__glad_gl_h_
deve ser fechado no final do arquivo, não apenas após a parte glad.hinline
caso contrário, você está quebrando o ODR, ou seja, não é possível incluí-lo mais de uma vezObrigado, sim, o cabeçalho ainda precisa de algumas melhorias.
@elmindreda me indicou (só para não esquecer): https://github.com/nothings/stb/blob/master/docs/stb_howto.txt#L9
Funciona em glad2.
Comentários muito úteis
Apenas um aviso, o branch glad2 oferece suporte a uma opção apenas de cabeçalho agora!
python -m glad --out-path=build --api="gl:core=" --extensions= c --header-only