不调整内容大小的情况下调整SDL窗口大小
创始人
2024-12-23 13:30:27
0

在SDL中,可以通过设置窗口的标志位来实现不调整内容大小的情况下调整窗口大小。具体步骤如下:

  1. 在创建窗口前,设置窗口的标志位为SDL_WINDOW_RESIZABLESDL_WINDOW_SHOWN
SDL_Window* window = NULL;
SDL_Renderer* renderer = NULL;
int windowWidth = 800;
int windowHeight = 600;

// 初始化SDL
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
    printf("SDL initialization error: %s\n", SDL_GetError());
    return 1;
}

// 创建窗口
window = SDL_CreateWindow("Resizable Window", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, windowWidth, windowHeight, SDL_WINDOW_RESIZABLE | SDL_WINDOW_SHOWN);
if (window == NULL) {
    printf("Window creation error: %s\n", SDL_GetError());
    return 1;
}

// 创建渲染器
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
if (renderer == NULL) {
    printf("Renderer creation error: %s\n", SDL_GetError());
    return 1;
}

// 主循环
bool quit = false;
while (!quit) {
    SDL_Event event;
    while (SDL_PollEvent(&event)) {
        if (event.type == SDL_QUIT) {
            quit = true;
        }
        else if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_RESIZED) {
            // 窗口大小改变事件处理
            int newWidth = event.window.data1;
            int newHeight = event.window.data2;
            // 更新窗口大小
            SDL_SetWindowSize(window, newWidth, newHeight);
        }
    }

    // 渲染绘制代码
    // ...

    SDL_RenderPresent(renderer);
}

// 释放资源
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();

在主循环中,通过监听窗口事件SDL_WINDOWEVENT_RESIZED,当窗口大小改变时,可以获取到新的窗口大小,然后通过调用SDL_SetWindowSize函数来更新窗口大小。注意,这里只改变了窗口的大小,并没有改变渲染器的大小,所以需要在渲染绘制代码中根据新的窗口大小来进行渲染。

相关内容

热门资讯

今日!wpk透视工作室,德普之... 今日!wpk透视工作室,德普之星透视辅助插件,都是真的是有挂(有挂技巧)1、点击下载安装,德普之星透...
每日必看推荐!wpk辅助插件,... 每日必看推荐!wpk辅助插件,wepoker免费透视,本来真的是有挂(有挂方法)1、打开软件启动之后...
据悉!wepoker有没有插件... 据悉!wepoker有没有插件,德扑之星怎么开辅助,总是存在有挂(新版有挂)1、每一步都需要思考,不...
玩家必看分享!poker辅助器... 玩家必看分享!poker辅助器免费安装,wepoker软件辅助程序,其实是有挂(有挂解惑)1、用户打...
于此同时!wepoker黑侠破... 于此同时!wepoker黑侠破解,德普之星辅助工具如何设置,确实确实有挂(有挂猫腻)1、于此同时!w...
科普常识!wepoker软件安... 科普常识!wepoker软件安装包,约局吧能不能开挂,一直是有挂(了解有挂)1、玩家可以在透视最简单...
黑科技辅助挂!德州透视是真的假... 黑科技辅助挂!德州透视是真的假的,德扑之心免费透视,总是存在有挂(有挂教学)1、德扑之心免费透视破解...
避坑细节!cloudpoker... 避坑细节!cloudpoker作弊,hh poker辅助有用吗,好像是真的有挂(有挂总结)1、全新机...
此事引发广泛关注!wepoke... 此事引发广泛关注!wepoker免费透视,德普之星透视辅助插件,原来存在有挂(真实有挂)1、下载好德...
揭秘攻略!wepoker如何设... 揭秘攻略!wepoker如何设置透视,fishpoker透视,一直真的是有挂(有挂规律)1、模拟器是...