Olá. Estou com uma dúvida sobre a inicialização dos drivers de vídeo dentro do linux.
Preciso criar uma mini interface gráfica em com SDL e Nuklear para rodar em cima de uma distro qualquer do linux, parecia li do nos planos, mas na hora de chamar o executavel gerado com o software escrido com SDL, a tela em Fullscreen nao aparece e gera um erro informado a falta da inicialização do video.
Gostaria da ajuda de vocês para saber o que devo buscar e como fuinciona essa parte da inicialização da interface grafica no linux.
SDL_Delay (3000); // da uma pausa de 3 segundos e termina ...
SDL_Quit ();
return 0;
}
Se compilar e executar ... se aparecer uma janela por 3 segundos, então o seu sistema funciona com SDL 1.x
Outra vez tentei rodar um programa em SDL e essa "parada acima" não funcionou ... era uma distro nova e não sei o motivo de não ter funcionado.
Se for SDL 2, não me pergunte ...
3. Re: Interface gráfica para linux embarcado.
theniel02usa Linux Mint
Post recolhido
Enviado em 17/09/2018 - 22:15h
Acredito que não me expressei direiro.
Não estou tentando criar uma janela com SDL, estou tentando executar o SDL em um linux sem interface gráfica.
Estou testando apertando por exemplo CTRL + ALT + F2 e tentando executar o programa SDL por ali, porém, não tive sucesso, mesmo me retorna uma mensagem de erro: "No avaliable video device."
A ideia é: Instalar um linux somente com as bibliotecas necessárias em uma placa muito similar a um Raspberry PI e rodar um sistema desenhado com SDL.
Estou seguindo pelo caminho certo ou estou patinando em cima de algo que não vai para frente?
Caso esteja seguindo o caminho errado, saberiam me apontar o caminho certo para a criação de um mini sistema embarcado desenvolvido em cima do linux?
Desde já, agradeço.
Edit: So para constar, o codigo que estou tentando executar é:
//Using SDL and standard IO
#include <SDL2/SDL.h>
#include <stdio.h>
int main( int argc, char* args[] ) {
//The window we'll be rendering to
SDL_Window* window = NULL;
//The surface contained by the window
SDL_Surface* screenSurface = NULL;
void fb_exit (void) {
munmap (FB.screen, FB.smem_len);
close (FB.fd);
}
void putpixel16 (int x, int y, unsigned short color) {
UCHAR *p;
p = (UCHAR*)(FB.screen + (y * FB.w + x) * 2);
*(unsigned short*)p = color;
}
void putpixel32 (int x, int y, int color) {
int location = (x+fb_var_info.xoffset) * (fb_var_info.bits_per_pixel/8) +
(y+fb_var_info.yoffset) * fb_fix_info.line_length;
int makecol16 (unsigned char r, unsigned char g, unsigned char b) {
r >>= 3; // 5-bit red
g >>= 2; // 6-bit green
b >>= 3; // 5-bit blue
return b + (g << 5) + (r << (5+6));
}
int makecol32 (unsigned char r, unsigned char g, unsigned char b) {
return b + (g << 8) + (r << 16);
}
Usamos cookies essenciais para manter o site funcionando e Google Analytics para métricas de audiência. Cookies de anúncios só serão carregados se você permitir.