Articles of sdl

GLEW不初始化; 抛出“缺lessOpenGL版本”

我正试图在SDL_Window上初始化一个OpenGL上下文。 问题是,当我尝试执行glewInit() ,它无法初始化并给出错误信息“Missing OpenGL version”。 我在Google上search了一下,看来这个错误要么在OpenGL上下文没有初始化的时候出现,要么当SDL_GL_MakeCurrent没有上下文的时候,更确切的说是SDL。 值得一提的是这里使用的SDL / OpenGL对象(gi_window,gi_glcontext)是GameInstance类中的公共variables。 我的OpenGL版本是3.0,我的SDL版本是2.0.3,而我的GLEW版本是1.10-2。 正在使用的系统是64位Arch Linux(因此安装了上述库的64位版本)。 初始化代码 #include "../headers/init.h" GameInstance::GameInstance(int p_fps, int p_height, int p_width, const char* p_wtitle) { gi_fps = p_fps; if(SDL_Init(SDL_INIT_EVERYTHING) < 0) { std::cerr << "SDL Error(something about the init):" << SDL_GetError() << std::endl; } gi_window = SDL_CreateWindow(p_wtitle, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, p_width, p_height, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN); if(gi_window […]

不显示SDL的OpenGL窗口

我正在使用OpenGL / SDL开发一个程序,但窗口不会绘制。 该窗口的条目出现在任务栏和alt +选项卡菜单中,但不显示缩略图。 当我点击它时,它被标记为活动,但屏幕上没有任何变化。 我可以validationglClear(GL_COLOR_BUFFER_BIT)和SDL_GL_SwapBuffers()从我的渲染循环被调用,并且SDL_SetVideoMode成功,但它仍然不会呈现。 这不是共享库问题,因为其他SDL / GL应用程序正常工作。 有任何想法吗? 编辑: 这里是graphics初始化: void GraphicsManager::initGraphics() { // Access prefs PreferencesManager* prefMgr = PreferencesManager::getInstance(); int width = prefMgr->getIntKey("res_width"); int height = prefMgr->getIntKey("res_height"); if(SDL_InitSubSystem(SDL_INIT_VIDEO) != 0) { fprintf(stderr, "Cannot initialize SDL video!\n"); exit(1); } SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8); m_screen = SDL_SetVideoMode(width, […]

无法识别的音乐格式使用SDL播放mp3文件

#include <SDL/SDL.h> #include <SDL/SDL_mixer.h> #include <stdio.h> #include <stdlib.h> Mix_Music *play_sound = NULL; void cleanUp(); int main(int argc, char* args[]) { int channel; int audio_rate; Uint16 audio_format; int audio_channels; int audio_buffers; if(SDL_Init(SDL_INIT_AUDIO)<0) printf("Error In Init"); audio_rate = 44100; audio_format = AUDIO_S16; audio_channels = 2; audio_buffers = 4096; if(Mix_OpenAudio(audio_rate, audio_format, 2, 4096)<0) { //Some error shows here […]

为什么SDL不能在Linux上检测我的iBuffalo游戏控制器(PocketCHIP)?

我最近获得了一个名为PocketCHIP的基于ARM的Linux计算机。 这是一个伟大的小电脑! 我正在编写一个使用SDL 2.0.4和我的iBuffalo USB手柄的程序 。 但是,SDL似乎无法识别PocketCHIP上的控制器。 我认为这是一个很受欢迎的控制器,所以如果SDL不支持它,会让我感到惊讶,这让我觉得我的设置/安装有问题。 控制器确实在其他程序中工作(mednafen)。 在我的Mac上,运行包含在SDLtesting目录中的testgamecontroller.c , testjoystick.c和controllermap.c脚本时,它们都能正确识别控制器: INFO: Joystick 0: USB,2-axis 8-button gamepad (guid 83050000000000006020000000000000) INFO: There are 0 game controller(s) attached (1 joystick(s)) 但是,当我在PocketCHIP上运行相同的脚本时,它不会检测到控制器。 INFO: There are 0 game controller(s) attached (0 joystick(s)) Linux似乎认识到设备连接虽然: $ cat /proc/bus/input/devices … I: Bus=0003 Vendor=0583 Product=2060 Version=0110 N: Name="USB,2-axis 8-button gamepad " P: […]

如果我只使用OpenGL ES 1.x调用构build和链接OpenGL应用程序,它仍然可以工作吗?

我正在编写一个OpenGL游戏,希望对于Linux和iPhoneOS都有帮助,我基本上希望能够使用OpenGL ES 1.5头文件构build并在我的Linux桌面上运行它。 我可以这样做吗? IE,我只想使用OpenGL和OpenGL-ES之间通用的API调用子集。 做上面的,并从我的系统链接正常的libGL.a让我的屏幕,但我似乎无能为力,但改变场景的背景颜色。

用于OpenGL 3 +的UI实用程序库,还是Xlib好吗?

我想写一些OpenGL 3.2,也可能是Linux上的OpenGL 4的东西,我刚刚看到libsdl 1.2(最新的稳定版)只支持2.x. LibSDL 1.3(正在开发中)应该支持它,但是在它进入主stream发行版之前还需要一段时间。 现在是否有任何图书馆允许我创build一个OpenGL的窗口,我的select上下文,最好还帮我input? 如果没有,是否有一些小型图书馆可以减轻Xlib的痛苦? 我的OpenGL的Windowspath是用普通的WinAPI编写的,带有自己的消息泵等,我不知道X11是否比这更糟糕。 快速网页search表明应该使用Xlib上方的库。 如果XLib真的太可怕了,那么我可以用XLX来包装OpenGL环境。

链接对象与g ++时的问题

我想在c ++中用opengl做一个简单的obj加载器。 用一个命令编译一切正常, g++ -o main main.cpp timer.cpp screen.cpp obj_loader.cpp `sdl-config –cflags –libs` `pkg-config –cflags –libs glu` 不会返回错误。 单独编译对象也能正常工作, g++ main.cpp -o main.o -c -Wall `sdl-config –cflags –libs` `pkg-config glu –cflags –libs` g++ obj_loader.cpp -o obj_loader.o -c -Wall `sdl-config –cflags –libs` `pkg-config glu –cflags –libs` g++ timer.cpp -o timer.o -c -Wall `sdl-config –cflags –libs` `pkg-config […]

保持sdl2和sdl1.2在同一个操作系统?

我很早以前使用我的软件包pipe理器安装了SDL 1.2,现在我已经从源代码安装了新的SDL版本(2.0)。 你认为将这两个版本保持在同一个操作系统上是安全的吗? 我需要旧版本的其他应用程序,所以我宁愿有两个.. PS我在Linux上。 干杯!

部署Linux游戏,共享库/依赖关系

我有一个跨平台的应用程序(游戏)。 它使用SDL库。 由于LGPL许可证,我无法静态链接它。 在Windows上捆绑DLL文件,在Mac OSX I捆绑Frameworks目录。 但是如何在GNU / Linux上解决呢? 如果用户在他的系统上没有安装SDL库,则会出现以下错误: 加载共享库时出错:libSDL-1.2.so.0:无法打开共享目标文件:没有这样的文件或目录 即使我捆绑.so文件,系统似乎并没有使用它。 另一个问题是我不想强行覆盖用户库。 SDL不是问题,但是例如OpenAL库差异很大,用户可以使用OpenAL库,而我的机器可能会崩溃。

gcc不会编译SDL C程序(对SDL函数的未定义引用)

我最近搬到了Linux,我遇到了使用gcc编译SDL C程序的问题。 我正在使用的命令: gcc `sdl-config –cflags –libs` -o main main.c 即使通过分离sdl-config标志: gcc `sdl-config –cflags` -c main.c gcc `sdl-config –libs` -o main main.o 我得到了同样的错误: /tmp/ccHYyjKd.o: In function `main': main.c:(.text+0xe): undefined reference to `SDL_SetMainReady' main.c:(.text+0x18): undefined reference to `SDL_Init' main.c:(.text+0x31): undefined reference to `SDL_SetVideoMode' main.c:(.text+0x54): undefined reference to `SDL_MapRGB' main.c:(.text+0x6b): undefined reference to `SDL_FillRect' main.c:(.text+0x77): undefined reference […]