美文网首页
视频驱动测试程序

视频驱动测试程序

作者: wjundong | 来源:发表于2022-08-27 21:29 被阅读0次

    测试 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

    相关文章

      网友评论

          本文标题:视频驱动测试程序

          本文链接:https://www.haomeiwen.com/subject/ehbcnrtx.html