【问题标题】:Retina Display Support with SDL使用 SDL 支持 Retina 显示
【发布时间】:2013-07-29 08:07:42
【问题描述】:

我在任何 Google 搜索中都找不到任何关于支持视网膜显示器的 SDL (2.0) 的有用信息。谁能指出我正确的方向?

我正在使用此代码:

//Start SDL
    SDL_Init(SDL_INIT_EVERYTHING);
    SDL_Window *screen = NULL;
    SDL_Renderer *render = NULL;
    SDL_Texture *texture = NULL;
    SDL_Event e;
    bool quit = false;
    screen = SDL_CreateWindow("Sample Image",100,100,500,500,SDL_WINDOW_SHOWN);
    render = SDL_CreateRenderer(screen,-1,SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
    texture = IMG_LoadTexture(render,"image.bmp");
    if (texture == NULL)
    {
        printf("%s",IMG_GetError());
    }
    //Render all graphics
    SDL_RenderClear(render);
    SDL_RenderCopy(render,texture,NULL,NULL);
    SDL_RenderPresent(render);
    while (quit == false) {
        while (SDL_PollEvent(&e)) {
            if (e.type == SDL_QUIT)
                quit = true;
        }
    }
    //Remove all graphics from memory
    SDL_DestroyRenderer(render);
    SDL_DestroyTexture(texture);
    SDL_DestroyWindow(screen);
    //Quit SDL
    SDL_Quit();

【问题讨论】:

  • 需要支持吗? AFAIK 您只需以大显示模式(13' macbook pro 为 2560×1600)启动 SDL,然后正常绘制到屏幕上。不需要特别的支持。这只是一个高质量的屏幕。
  • @handuel 我会调查的。
  • 嗯,好像没有这样的支持。
  • 没有这样的支持是什么意思? Retina 和普通显示器没有区别,只是更大更好,SDL 完全一样。
  • 也许他在谈论控制缩放?

标签: c sdl retina-display


【解决方案1】:
SDL_Window* win = SDL_CreateWindow("test",
    SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 600, 480,
    SDL_WINDOW_RESIZABLE|SDL_WINDOW_OPENGL|SDL_WINDOW_ALLOW_HIGHDPI);

“SDL_WINDOW_ALLOW_HIGHDPI”标志可以为您完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多