zoukankan      html  css  js  c++  java
  • Lesson2

    #ifdef __cplusplus
        #include <cstdlib>
    #else
        #include <stdlib.h>
    #endif
    
    #include <SDL/SDL.h>
    #include <string>
    const int SCREEN_WIDTH=640;
    const int SCREEN_HEIGT=480;
    const int SCREEN_BPP=32;
    
    SDL_Surface *message=NULL;
    SDL_Surface *background=NULL;
    SDL_Surface *screen=NULL;
    
    
    SDL_Surface *load_image(std::string filename)
    {
        SDL_Surface* loadedImage=NULL;
        SDL_Surface* optimizedImage=NULL;
        loadedImage=SDL_LoadBMP(filename.c_str());
        if(loadedImage!=NULL)
        {
            optimizedImage=SDL_DisplayFormat(loadedImage);
    
            SDL_FreeSurface(loadedImage);
    
    
        }return  optimizedImage;
    }
    
    void apply_surface(int x,int y,SDL_Surface* source,SDL_Surface* destination)
    {
        SDL_Rect offset;
    
        offset.x=x;
        offset.y=y;
    
        SDL_BlitSurface(source,NULL,destination,&offset);
    }
    int main ( int argc, char** argv )
    {
        if(SDL_Init(SDL_INIT_EVERYTHING)==-1)
        {
            return 1;
    
        }
        screen=SDL_SetVideoMode(SCREEN_WIDTH,SCREEN_HEIGT,SCREEN_BPP,SDL_SWSURFACE);
        SDL_WM_SetCaption("hello world",NULL);
        message=load_image("hello.bmp");
        background=load_image("background.bmp");
    
        apply_surface(0,0,background,screen);
             apply_surface( 320, 0, background, screen );
        apply_surface( 0, 240, background, screen );
        apply_surface( 320, 240, background, screen );
    
    
    
        apply_surface( 180, 140, message, screen );
             //更新窗口
        if( SDL_Flip( screen ) == -1 )
        {
        return 1;
        }
    
        SDL_Delay( 2000 );
    
         //释放表面
        SDL_FreeSurface( message );
        SDL_FreeSurface( background );
    //退出SDL
        SDL_Quit();
    
        return 0;
    }

    其中有两个图片:hello.bmp和background.bmp(找了一下大于10M的要先上传,然后保存链接地址)


    都在我的相册中,打开网页另存图片即可。

    如有疑问请留言!

  • 相关阅读:
    65 进程互斥锁的优化实现
    Linux多线程编程
    互斥锁和自旋锁
    64 进程互斥锁的初步实现(下)
    63 进程互斥锁的初步实现(中)
    Linux中断子系统
    62 进程互斥锁的初步实现(上)
    61 进程互斥锁的详细设计
    Linux进程调度的时机
    嵌入式领域linux作为实时操作系统的缺点(转)
  • 原文地址:https://www.cnblogs.com/orangebook/p/3409818.html
Copyright © 2011-2022 走看看