Glad: Suporte para geração de biblioteca apenas de arquivo de cabeçalho

Criado em 1 jun. 2016  ·  15Comentários  ·  Fonte: Dav1dde/glad

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.

enhancement 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

Todos 15 comentários

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:

  1. O protetor de cabeçalho __glad_gl_h_ deve ser fechado no final do arquivo, não apenas após a parte glad.h
  2. Você deve definir todas as funções como inline caso contrário, você está quebrando o ODR, ou seja, não é possível incluí-lo mais de uma vez

Obrigado, 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.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Algorithmus picture Algorithmus  ·  7Comentários

Kazade picture Kazade  ·  3Comentários

Develon5543 picture Develon5543  ·  8Comentários

tysonbrochu picture tysonbrochu  ·  7Comentários

ButchDean picture ButchDean  ·  4Comentários