Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3425603
  • 博文数量: 864
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10634
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(864)

文章存档

2023年(1)

2021年(1)

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: C/C++

2010-12-06 09:26:09

#include "SDL.h"
#include <QWidget>

class SDLVideo : public QWidget {
    Q_OBJECT

public:
   
SDLVideo(QWidget *parent = 0, Qt::WindowFlags f = 0) : QWidget(parent, f), m_Screen(0){
        setAttribute
(Qt::WA_PaintOnScreen);
        setUpdatesEnabled
(false);

       
// Set the new video mode with the new window size
       
char variable[64];
        snprintf
(variable, sizeof(variable), "SDL_WINDOWID=0x%lx", winId());
        putenv
(variable);

        SDL_InitSubSystem
(SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE);

       
// initialize default Video
       
if((SDL_Init(SDL_INIT_VIDEO) == -1)) {
                std
:cerr << "Could not initialize SDL: " << SDL_GetError() << std::endl;
       
}

        m_Screen
= SDL_SetVideoMode(640, 480, 8, SDL_HWSURFACE | SDL_DOUBLEBUF);
       
if (m_Screen == 0) {
                std
::cerr << "Couldn't set video mode: " << SDL_GetError() << std::endl;
       
}
   
}

   
virtual ~SDLVideo() {
       
if(SDL_WasInit(SDL_INIT_VIDEO) != 0) {
                SDL_QuitSubSystem
(SDL_INIT_VIDEO);
                m_Screen
= 0;
       
}
   
}
private:
    SDL_Surface
*m_Screen;
};
阅读(637) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~