zoukankan      html  css  js  c++  java
  • SDL 显示图片

    来源:

    http://adolfans.github.io/sdltutorialcn/ (中文教程)

    http://www.willusher.io/pages/sdl2/ (英文教程)

    环境:SDL2 + VC++2015

    下面的代码将打开一个窗口显示hello.bmp

     1 #include <iostream>

     2 #include <SDL.h>

     3 

     4 int main(int argc, char** argv)

     5 {

     6     //初始化SDL

     7     if (SDL_Init(SDL_INIT_VIDEO) != 0)

     8     {

     9         std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;

    10         return 1;

    11     }

    12 

    13     //创建窗口

    14     SDL_Window *win = nullptr;

    15     win = SDL_CreateWindow("Hello World!",

    16         SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,

    17         640, 480, SDL_WINDOW_SHOWN);

    18     if (win == nullptr)

    19     {

    20         std::cout << SDL_GetError() << std::endl;

    21         return 1;

    22     }

    23 

    24     //创建渲染器

    25     SDL_Renderer *ren = nullptr;

    26     ren = SDL_CreateRenderer(win, -1,

    27         SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);

    28     if (ren == nullptr)

    29     {

    30         std::cout << SDL_GetError() << std::endl;

    31         return 1;

    32     }

    33 

    34     //创建表面

    35     SDL_Surface *bmp = nullptr;

    36     bmp = SDL_LoadBMP("hello.bmp");

    37     if (bmp == nullptr) {

    38         std::cout << SDL_GetError() << std::endl;

    39         return 1;

    40     }

    41 

    42     //创建材质

    43     SDL_Texture *tex = nullptr;

    44     tex = SDL_CreateTextureFromSurface(ren, bmp);

    45     SDL_FreeSurface(bmp);

    46 

    47     //清空渲染器

    48     SDL_RenderClear(ren);

    49     //将材质复制到渲染器

    50     SDL_RenderCopy(ren, tex, NULL, NULL);

    51     //呈现渲染器

    52     SDL_RenderPresent(ren);

    53     //窗口延时

    54     SDL_Delay(2000);

    55 

    56     //释放资源

    57     SDL_DestroyTexture(tex);

    58     SDL_DestroyRenderer(ren);

    59     SDL_DestroyWindow(win);

    60     //退出SDL

    61     SDL_Quit();

    62 

    63     return 0;

    64 }

    https://i-beta.cnblogs.com/posts/edit

  • 相关阅读:
    大端模式与小端模式
    通过tcp socket实现Linux与windows之间的文件传输
    关于递归的几个小例子
    关于线性表的一些简单应用
    数据结构(c语言实现)--线性表
    简单实现getpwnam()
    chapter 7 内存分配函数
    chapter6 非局部跳转函数 setjmp()与longjmp()
    Xcode 出现Permission denied 解决方法
    关于ARfoundation ILRuntime热更新项目的坑
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/12454916.html
Copyright © 2011-2022 走看看