测试 SDL2
#include <SDL2/SDL.h>
#include <stdio.h>
int main(int argc, char const *argv[])
{
int num = SDL_GetNumVideoDrivers();
printf("Video drivers: %d\n", num);
const char *dri_ok = NULL;
for (int i = 0; i < num; i++)
{
const char *dri = SDL_GetVideoDriver(i);
int ok = SDL_VideoInit(dri);
SDL_VideoQuit();
printf("%d. %s: %s\n", i, dri, ok == 0 ? "ok" : "err");
if(ok == 0) dri_ok = dri;
}
if(dri_ok == NULL)
{
printf("No Available Video Driver\n");
return -1;
}
printf("Use video driver %s\n", dri_ok);
SDL_VideoInit(dri_ok);
if(SDL_Init(SDL_INIT_VIDEO) != 0)
{
printf("SDL Init Error: %s\n", SDL_GetError());
return -1;
}
printf("SDL Init OK!\n");
SDL_Window *window = SDL_CreateWindow("SDL Demo", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN);
SDL_Surface *screenSurface = SDL_GetWindowSurface(window);
SDL_FillRect(screenSurface, NULL, SDL_MapRGB(screenSurface->format, 0x00, 0xE0, 0xFF));
SDL_UpdateWindowSurface(window);
SDL_Delay(2000);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
旧版本 SDL
#include <stdio.h>
#include <stdlib.h>
#include <SDL/SDL.h>
int main()
{
// SDL Initialize
int ret = SDL_Init(SDL_INIT_VIDEO);
if(ret < 0)
{
printf("SDL_Init ERROR: %s\n", SDL_GetError());
return -1;
}
// Screen Initialize
SDL_Surface *screen = SDL_SetVideoMode(240, 240, 32, SDL_SWSURFACE);
Uint32 screenColor = SDL_MapRGB(screen->format, 255, 255, 255);
SDL_FillRect(screen, NULL, screenColor);
SDL_Flip(screen);
// Main Program Loop
SDL_Event event;
do
{
SDL_WaitEvent(&event);
if(event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_z)
break;
} while (event.type != SDL_QUIT);
// SDL Quit
SDL_Quit();
return 0;
}
- QT
main.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel *label = new QLabel("Hello, world!");
label->show();
return a.exec();
}
demo.pro
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = qtdemo
SOURCES += main.cpp
使用 frambuffer 的话, 需指定export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
网友评论