首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将用于SDL屏幕的字节数组混合起来

将用于SDL屏幕的字节数组混合起来
EN

Stack Overflow用户
提问于 2016-11-19 18:47:41
回答 1查看 1.1K关注 0票数 0

我正在为学校实现一个软件栅格,我想简单地传递给SDL一个带有像素的缓冲区,并告诉它它们的格式(RGB,每像素24b )。然后SDL会将其呈现到屏幕上。

我尝试过使用SDL_Surface,但由于以下失败,它似乎只适用于图片或数据头:

代码语言:javascript
运行
复制
    unsigned char pixels[BYTES_PER_PIXEL * SCREEN_WIDTH * SCREEN_HEIGHT];
    // ... all pixels are filled with white color

    imageSurface = SDL_CreateRGBSurfaceFrom(pixels,
      SCREEN_WIDTH,
      SCREEN_HEIGHT,
      sizeof(unsigned char) * BYTES_PER_PIXEL,       // depth
      SCREEN_WIDTH * BYTES_PER_PIXEL,               // pitch (row length * BPP)
      0x000000ff,                                   // red mask
      0x0000ff00,                                   // green mask
      0x00ff0000,                                   // blue mask
      0);                                           // alpha mask

错误是: SDL_CreateRGBSurfaceFrom失败:未知像素格式。在SDL中最快的方法是什么?另外,这种方法与绘制到OpenGL纹理之间是否存在速度差异,然后我会将其渲染到全屏四角体上?

EN

Stack Overflow用户

回答已采纳

发布于 2016-11-20 05:13:36

SDL_CreateRGBSurfaceFrom depth参数为the depth of the surface in bitssizeof(unsigned char) * BYTES_PER_PIXEL为3(假设BYTES_PER_PIXEL为3,正如您所说的是24 bpp);乘以一个字节中的位数。

至于第二部分-是的。取决于许多事情,包括CPU和GPU硬件和GL驱动程序。最好的测试方法是同时编写这两个版本。然而,你不太可能看到大的改进,因为在屏幕上画一个四角不是昂贵的操作;光栅的其他部分应该消耗更多。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40696665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档