小编huz*_*zzm的帖子

使用 SDL_Renderer 绘制 2D 内容和使用 SDL_GLContext 绘制 OpenGL 内容

我已经学习 SDL 2D 编程一段时间了,现在我想创建一个结合使用 SDL 和 OpenGL 的程序。我是这样设置的:

SDL_Init(SDL_INIT_VIDEO);

window = SDL_CreateWindow("SDL and OpenGL", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL);

context = SDL_GL_CreateContext(window);
Run Code Online (Sandbox Code Playgroud)

该程序现在只是一个使用 OpenGl 显示的带有白线的黑色窗口。这是渲染的代码:

glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT);         

glBegin(GL_LINES);     
glVertex2d(1, 0);
glVertex2d(-1, 0);
glEnd();

SDL_GL_SwapWindow(window);  
Run Code Online (Sandbox Code Playgroud)

所以问题是,我想额外使用纯 SDL 和 SDL_Renderer 对象渲染纹理,就像我之前没有 OpenGL 所做的那样。我试过了,但没有用。甚至有可能做到这一点以及如何做到这一点?我所做的是创建一个 SDL_Renderer 然后在绘制 OpenGL 的东西之后这样做:

SDL_Rect fillRect;
fillRect.w = 50;
fillRect.h = 50;
fillRect.x = 0;
fillRect.y = 0; 

SDL_SetRenderDrawColor(renderer, 100, 200, 100, 0);
SDL_RenderFillRect(renderer, &fillRect);

SDL_RenderPresent(renderer);    
Run Code Online (Sandbox Code Playgroud)

但这不起作用。矩形未显示,尽管在几毫秒内它会略微出现。我觉得 OpenGL 渲染正在覆盖它。

c++ opengl rendering sdl sdl-2

6
推荐指数
1
解决办法
6528
查看次数

平铺地图编辑器中的 base64 编码如何工作

我正在为我的游戏使用平铺地图编辑器,我用 C++ 编程,在我使用原始 XML .tmx 文件(没有 base64 和 zlib 压缩)为我的关卡实现加载方法之后,我想现在用 base64 来做。

这是我的问题/问题:平铺地图编辑器如何转换这样的数据结构:

<tile gid="25"/>
<tile gid="25"/>
<tile gid="25"/>
<tile gid="25"/>
<tile gid="25"/>
Run Code Online (Sandbox Code Playgroud)

到像这样的 base64 编码字符串:

GQAAABkAAAAZAAAAGQAAABkAAAA=
Run Code Online (Sandbox Code Playgroud)

?

我想我需要了解这一点,以便为此实施加载方法。我想知道如何知道另一个磁贴的 ID 开始的位置以及为什么编码字符串与我将 ID 复制到https://www.base64encode.org/时得到的字符串不匹配。

base64 encoding dictionary editor tiled

0
推荐指数
1
解决办法
1129
查看次数

标签 统计

base64 ×1

c++ ×1

dictionary ×1

editor ×1

encoding ×1

opengl ×1

rendering ×1

sdl ×1

sdl-2 ×1

tiled ×1