Ir ao conteúdo
  • Cadastre-se
RodrigoFapp

Ajuda com Programação Gráfica

Recommended Posts

O negócio é o seguinte. Preciso da ajuda de pessoas experts em programação. Talvez não precise ser expert, mas eu já tentei perguntar pra várias pessoas e muitas me dão respostas insatisfatórias, dizendo que eu não preciso saber isso e que já tem ferramentas prontas pra isso. Eu não ligo. Eu quero aprender, não importando se é preciso ou não.

Eu comecei a aprender programação já tem um tempo. Eu sei C, um pouco de C++ consequentemente, Java e C#. Vou falar de C aqui.

Eu sei fazer aqueles exercícios que passam em apostilas, que manda você falar pro usuário inserir dados e exibir os dados na tela, por exemplo. Mas isso é tudo impresso em texto na tela. Então eu comecei a pensar em programar jogos eletrônicos, então comecei a pesquisar sobre engines, como Unity 3D.

Não satisfeito, queria saber como eram feitas essas engines, e fui ler um pouco sobre XNA, e depois descobri OpenGL. Aí eu cheguei na questão que tento responder há meses:

A partir da linguagem C, sem usar nenhuma biblioteca, nenhum daqueles arquivos .h que eu tenha que baixar separadamente do compilador, como os programadores conseguem criar funções que exibem dados como pixels na tela?

Essa é minha pergunta principal, e eu recuso qualquer resposta do tipo "Usa OpenGL mesmo porque hoje é inútil aprender mais a fundo", ok?

----------------------------------

Mas já aproveito o espaço e peço material pra aprender programação mais avançada do que aquelas coisinhas básicas de matrizes e ponteiros que você aprende como iniciante. Eu estudei C na faculdade e sozinho antes disso, em livros, mas até hoje não entendo nada daquelas diretivas de pré-processamento, e não entendo muitas coisas de C, como "extern". Sinto que tenho mais a aprender, mas qualquer material que eu encontro na internet só tem o básico que eu já sei.

Gente, esqueci de falar. Se precisar de Assembly, tudo bem, porque eu sei um pouco de Assembly também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

C não te da acesso ao hardware

Sim precisa de assembly,em modo real de endereço é até fácil pixealizar usando rotinas de serviço da BIOS,mapeamento de memória de video ou usando as próprias portas,o problema é como ter acesso à isso em modo protegido já que voce precisaria de um nivel de privilégio 0 para ter acesso direto ao hardware e isso geralmente é reservado para o próprio Kernel

 

Enfim,voce precisa saber sobre interrupções,se seu processador for um x86,um bom material para como fazer na "mão" em modo real de endereço(16bits) :

"Assembly language for x86 processors" ou o "The Art of Assembly Language" - os tópicos sobre real mode são muito bons e dão o básico sobre como funcionam as coisas nos 1mb de memória.

O "Graphics Programming Black Book",tambem  é um livro muito bom,expecialmente para quem quer atuar na área,apesar de antigo(assembly antigo),as dicas de otimização são ótimas

 

Como usar as interrupções em modo protegido,existem varios livros..porém poucos são realmente uteis,talvez você queira procurar por outros livros diferente dos que eu vou citar,mas o que voce tem que saber para poder fazer tal coisa é sobre "call gates" :

 

"The Indispensable PC Hardware" - dá a teoria de como fazer isso,falando sobre como funcionam os call gates

"Windows Assembly Language and Systems Programming: 16- and 32-Bit Low-Level Programming for the PC and Windows" - é um livro que aborda exatamente esse assunto com foco no DPMI,porém não é bem escrito e o autor ta beirando entre o Windows 3.1 e o 95 ainda

"Windows 95 System programming SECRETS" - nao é espicifcamente sobre o assunto,porém o capitulo sobre o assunto,é muito didático e fácil de entender 

"The Rootkit Arsenal - Escape and Evasion in the Dark Corners of the System" é o mais atualizado que eu li sobre o assunto e já aborda novas instruções usadas para fazer esse tipo de coisa,como SYSCALL,SYSRET etc..

 

Espero que tenha sido sobre isso que perguntou

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o atlos respondeu a pergunta,

 

Mas se você quiser criar aplicações gráfica para Windows, por exemplo, qualquer compilador compatível com Win16/32 terá suporte as APIs do Windows.

 

Eu gosto de programar no Borland C++ 4 ou 3.1 for Windows, que já vem com o framework OWL. São compiladores antigos, mas são mais do que suficientes para se divertir. Se você tiver o Visual C++ poderá criar aplicações com MFC.

 

 

Portanto, de qualquer forma, a implementação e suporte dos recursos do ambiente gráfico (GUI) que o SO estiver rodando, vai depender do compilador ou algum framework externo.

 

Como você se interessa por jogos eletrônicos e caso tenha interesse em usar algum compilador antigo da Borland, talvez goste do livro Programming Windows Games with Borland C++ de Nabajyoti Barkakati.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que o oliver disse é verdade,voce tambem pode usar a WDK do windows para criar seus próprios drivers e fazer o que tiver que fazer à nivel de Kernel,porém a API abstrai mais(o que eu acho que voce nao quer),apesar de ser o jeito convencional de se fazer tal coisa pra plataforma Windows..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×